32 using namespace Utilities;
36 namespace SubductingPlateModels
42 min_depth(NaN::
DSNAN),
43 max_depth(NaN::
DSNAN),
44 potential_mantle_temperature(NaN::
DSNAN),
45 thermal_expansion_coefficient(NaN::
DSNAN),
46 specific_heat(NaN::
DSNAN),
50 this->
name =
"adiabatic";
61 "Adiabatic temperature model. Uses global values by default.");
65 "todo The depth in meters from which the composition of this feature is present.");
68 "todo The depth in meters to which the composition of this feature is present.");
71 "The potential temperature of the mantle at the surface in Kelvin. " 72 "If the value is lower then zero, the global value is used.");
75 "The thermal expansion coefficient in $K^{-1}$. " 76 "If the value is lower then zero, the global value is used.");
79 "The specific heat in $J kg^{-1} K^{-1}$. " 80 "If the value is lower then zero, the global value is used.");
127 const double gravity_norm,
136 if (distance_from_plane <= max_depth && distance_from_plane >=
min_depth)
143 WBAssert(!std::isnan(adabatic_temperature),
144 "adabatic_temperature is not a number: " << adabatic_temperature <<
". " 147 <<
", gravity_norm = " << gravity_norm
149 <<
", depth = " << depth);
151 WBAssert(std::isfinite(adabatic_temperature),
152 "adabatic_temperature is not a finite: " << adabatic_temperature <<
'.');
static void declare_entries(Parameters &prm, const std::string &parent_name="")
WorldBuilder::World * world
double potential_mantle_temperature
double thermal_expansion_coefficient
Operations string_operations_to_enum(const std::string &operation)
#define WBAssert(condition, message)
double distance_from_plane
void parse_entries(Parameters &prm) override final
#define WB_REGISTER_FEATURE_SUBDUCTING_PLATE_TEMPERATURE_MODEL(classname, name)
double get_temperature(const Point< 3 > &position, const double depth, const double gravity, double temperature, const double feature_min_depth, const double feature_max_depth, const WorldBuilder::Utilities::PointDistanceFromCurvedPlanes &distance_from_planes, const AdditionalParameters &additional_parameters) const override final
double thermal_expansion_coefficient
double apply_operation(const Operations operation, const double old_value, const double new_value)
double potential_mantle_temperature
void declare_entry(const std::string &name, const Types::Interface &type, const std::string &documentation)
T get(const std::string &name)
~Adiabatic() override final