[cig-commits] [commit] master: Provide some more cleanups. (1a84bc3)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Mon May 12 05:15:10 PDT 2014
Repository : https://github.com/geodynamics/aspect
On branch : master
Link : https://github.com/geodynamics/aspect/compare/555391b308f972e57b2488cb024ed6bda549ebf0...485a82a477d4e359644ce65c4155a55cdde612d7
>---------------------------------------------------------------
commit 1a84bc3d53092d69be69da50a9ca7c683c5ef3cb
Author: Wolfgang Bangerth <bangerth at math.tamu.edu>
Date: Sun May 11 21:22:22 2014 -0500
Provide some more cleanups.
>---------------------------------------------------------------
1a84bc3d53092d69be69da50a9ca7c683c5ef3cb
include/aspect/simulator.h | 9 ++++++++-
source/simulator/assembly.cc | 14 ++------------
source/simulator/helper_functions.cc | 12 ++++++++++++
3 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/include/aspect/simulator.h b/include/aspect/simulator.h
index aa3db00..1b03f72 100644
--- a/include/aspect/simulator.h
+++ b/include/aspect/simulator.h
@@ -399,9 +399,16 @@ namespace aspect
/**
* Look up the block index for this temperature or compositional field
- * i. See Introspection::block_indices for more information.
+ * See Introspection::block_indices for more information.
*/
unsigned int block_index(const Introspection<dim> &introspection) const;
+
+ /**
+ * Look up the base element within the larger composite finite element we used
+ * for everything, for this temperature or compositional field
+ * See Introspection::base_elements for more information.
+ */
+ unsigned int base_element(const Introspection<dim> &introspection) const;
};
/**
diff --git a/source/simulator/assembly.cc b/source/simulator/assembly.cc
index b551ebd..9a34efb 100644
--- a/source/simulator/assembly.cc
+++ b/source/simulator/assembly.cc
@@ -1689,12 +1689,7 @@ namespace aspect
// field index.)
internal::Assembly::Scratch::
AdvectionSystem<dim> (finite_element,
-//TODO: Give TemperatureOrComposition a way to return the base element index
- finite_element.base_element(temperature_or_composition.is_temperature()
- ?
- introspection.base_elements.temperature
- :
- introspection.base_elements.compositional_fields),
+ finite_element.base_element(temperature_or_composition.base_element(introspection)),
mapping,
QGauss<dim>((temperature_or_composition.is_temperature()
?
@@ -1705,12 +1700,7 @@ namespace aspect
(parameters.stokes_velocity_degree+1)/2),
parameters.n_compositional_fields),
internal::Assembly::CopyData::
-//TODO: Give TemperatureOrComposition a way to return the base element index
- AdvectionSystem<dim> (finite_element.base_element(temperature_or_composition.is_temperature()
- ?
- introspection.base_elements.temperature
- :
- introspection.base_elements.compositional_fields)));
+ AdvectionSystem<dim> (finite_element.base_element(temperature_or_composition.base_element(introspection))));
system_matrix.compress(VectorOperation::add);
system_rhs.compress(VectorOperation::add);
diff --git a/source/simulator/helper_functions.cc b/source/simulator/helper_functions.cc
index 1759954..5007d2f 100644
--- a/source/simulator/helper_functions.cc
+++ b/source/simulator/helper_functions.cc
@@ -97,6 +97,7 @@ namespace aspect
return (field_type == temperature_field);
}
+
template <int dim>
unsigned int
Simulator<dim>::TemperatureOrComposition::block_index(const Introspection<dim> &introspection) const
@@ -109,6 +110,17 @@ namespace aspect
template <int dim>
+ unsigned int
+ Simulator<dim>::TemperatureOrComposition::base_element(const Introspection<dim> &introspection) const
+ {
+ if (this->is_temperature())
+ return introspection.base_elements.temperature;
+ else
+ return introspection.base_elements.compositional_fields;
+ }
+
+
+ template <int dim>
void Simulator<dim>::output_program_stats()
{
if (!aspect::output_parallel_statistics)
More information about the CIG-COMMITS
mailing list