[cig-commits] [commit] master: Add the declare parameters function for heating model interface. Use heating model->radiogenic_heating_rate in assembly. (db19808)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Fri May 16 18:39:29 PDT 2014


Repository : https://github.com/geodynamics/aspect

On branch  : master
Link       : https://github.com/geodynamics/aspect/compare/7b658caa05d489ae3f8d61b8049b015e7be94f77...cc43d3ac6f571573118eb54c2103bf92dfe8355f

>---------------------------------------------------------------

commit db19808d3398fb7f309da6783b28b3b89fb78b2f
Author: Rene Gassmoeller <R.Gassmoeller at mailbox.org>
Date:   Fri May 16 08:49:47 2014 -0500

    Add the declare parameters function for heating model interface. Use heating model->radiogenic_heating_rate in assembly.


>---------------------------------------------------------------

db19808d3398fb7f309da6783b28b3b89fb78b2f
 source/heating_model/interface.cc | 21 +++++++++++++++++++++
 source/simulator/assembly.cc      |  6 +++++-
 source/simulator/parameters.cc    |  1 +
 3 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/source/heating_model/interface.cc b/source/heating_model/interface.cc
index 583ffca..3c87906 100644
--- a/source/heating_model/interface.cc
+++ b/source/heating_model/interface.cc
@@ -127,6 +127,27 @@ namespace aspect
     void
     declare_parameters (ParameterHandler &prm)
     {
+      // declare the actual entry in the parameter file
+      prm.enter_subsection ("Heating model");
+      {
+        const std::string pattern_of_names
+          = std_cxx1x::get<dim>(registered_plugins).get_pattern_of_names ();
+        try
+          {
+            prm.declare_entry ("Model name", "constant heating",
+                               Patterns::Selection (pattern_of_names),
+                               "Select one of the following models:\n\n"
+                               +
+                               std_cxx1x::get<dim>(registered_plugins).get_description_string());
+          }
+        catch (const ParameterHandler::ExcValueDoesNotMatchPattern &)
+          {
+            // ignore the fact that the default value for this parameter
+            // does not match the pattern
+          }
+      }
+      prm.leave_subsection ();
+
       std_cxx1x::get<dim>(registered_plugins).declare_parameters (prm);
     }
   }
diff --git a/source/simulator/assembly.cc b/source/simulator/assembly.cc
index 9a34efb..bd6fe5b 100644
--- a/source/simulator/assembly.cc
+++ b/source/simulator/assembly.cc
@@ -1290,6 +1290,10 @@ namespace aspect
     const double density              = material_model_outputs.densities[q];
     const double viscosity            = material_model_outputs.viscosities[q];
     const bool is_compressible        = material_model->is_compressible();
+    const double specific_radiogenic_heating_rate = heating_model->specific_heating_rate(material_model_inputs.temperature[q],
+                                                                                    material_model_inputs.pressure[q],
+                                                                                    material_model_inputs.composition[q],
+                                                                                    material_model_inputs.position[q]);
     const double compressibility      = (is_compressible
                                          ?
                                          material_model_outputs.compressibilities[q]
@@ -1301,7 +1305,7 @@ namespace aspect
     gravity = gravity_model->gravity_vector (scratch.finite_element_values.quadrature_point(q));
 
     const double gamma
-      = (parameters.radiogenic_heating_rate * density
+      = (specific_radiogenic_heating_rate * density
          +
          // add the term 2*eta*(eps - 1/3*(tr eps)1):(eps - 1/3*(tr eps)1)
          //
diff --git a/source/simulator/parameters.cc b/source/simulator/parameters.cc
index 304dbaf..b1012ff 100644
--- a/source/simulator/parameters.cc
+++ b/source/simulator/parameters.cc
@@ -814,6 +814,7 @@ namespace aspect
     MeshRefinement::Manager<dim>::declare_parameters (prm);
     TerminationCriteria::Manager<dim>::declare_parameters (prm);
     MaterialModel::declare_parameters<dim> (prm);
+    HeatingModel::declare_parameters<dim> (prm);
     GeometryModel::declare_parameters <dim>(prm);
     GravityModel::declare_parameters<dim> (prm);
     InitialConditions::declare_parameters<dim> (prm);



More information about the CIG-COMMITS mailing list