[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