33 using namespace Utilities;
37 using namespace FeatureUtilities;
38 namespace ContinentalPlateModels
44 min_depth(NaN::
DSNAN),
45 max_depth(NaN::
DSNAN),
46 potential_mantle_temperature(NaN::
DSNAN),
47 thermal_expansion_coefficient(NaN::
DSNAN),
48 specific_heat(NaN::
DSNAN),
52 this->
name =
"adiabatic";
63 "Adiabatic temperature model. Uses global values by default.");
67 "The depth in meters from which the composition of this feature is present.");
70 "The depth in meters to which the composition of this feature is present.");
73 "The potential temperature of the mantle at the surface in Kelvin. " 74 "If the value is lower then zero, the global value is used.");
77 "The thermal expansion coefficient in $K^{-1}$. " 78 "If the value is lower then zero, the global value is used.");
81 "The specific heat in $J kg^{-1} K^{-1}$. " 82 "If the value is lower then zero, the global value is used.");
132 const double gravity_norm,
138 if (depth <= max_depth && depth >=
min_depth)
142 if (depth <= max_depth_local && depth >= min_depth_local)
149 WBAssert(!std::isnan(adabatic_temperature),
150 "adabatic_temperature is not a number: " << adabatic_temperature <<
". " 153 <<
", gravity_norm = " << gravity_norm
155 <<
", depth = " << depth);
157 WBAssert(std::isfinite(adabatic_temperature),
158 "adabatic_temperature is not a finite: " << adabatic_temperature <<
'.');
void parse_entries(Parameters &prm, const std::vector< Point< 2 >> &coordinates) override final
~Adiabatic() override final
double potential_mantle_temperature
Objects::Surface max_depth_surface
Operations string_operations_to_enum(const std::string &operation)
#define WBAssert(condition, message)
Point< 2 > get_surface_point() const
double get_temperature(const Point< 3 > &position, const Objects::NaturalCoordinate &position_in_natural_coordinates, const double depth, const double gravity, double temperature, const double feature_min_depth, const double feature_max_depth) const override final
double potential_mantle_temperature
SurfaceValueInfo local_value(const Point< 2 > &check_point) const
double thermal_expansion_coefficient
double apply_operation(const Operations operation, const double old_value, const double new_value)
void declare_entry(const std::string &name, const Types::Interface &type, const std::string &documentation)
T get(const std::string &name)
#define WB_REGISTER_FEATURE_CONTINENTAL_PLATE_TEMPERATURE_MODEL(classname, name)
Objects::Surface min_depth_surface
double thermal_expansion_coefficient
static void declare_entries(Parameters &prm, const std::string &parent_name="")
WorldBuilder::World * world