[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