34 using namespace Utilities;
38 using namespace FeatureUtilities;
39 namespace MantleLayerModels
45 min_depth(NaN::
DSNAN),
46 max_depth(NaN::
DSNAN),
47 potential_mantle_temperature(NaN::
DSNAN),
48 thermal_expansion_coefficient(NaN::
DSNAN),
49 specific_heat(NaN::
DSNAN),
53 this->
name =
"adiabatic";
64 "Adiabatic temperature model. Uses global values by default.");
68 "The depth in meters from which the temperature of this feature is present.");
71 "The depth in meters to which the temperature of this feature is present.");
74 "The potential temperature of the mantle at the surface in Kelvin. " 75 "If the value is lower then zero, the global value is used.");
78 "The thermal expansion coefficient in $K^{-1}$. " 79 "If the value is lower then zero, the global value is used.");
82 "The specific heat in $J kg^{-1} K^{-1}$. " 83 "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 <<
'.');
double potential_mantle_temperature
static void declare_entries(Parameters &prm, const std::string &parent_name="")
double potential_mantle_temperature
void parse_entries(Parameters &prm, const std::vector< Point< 2 >> &coordinates) override final
#define WB_REGISTER_FEATURE_MANTLE_LAYER_TEMPERATURE_MODEL(classname, name)
WorldBuilder::World * world
Operations string_operations_to_enum(const std::string &operation)
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
#define WBAssert(condition, message)
double thermal_expansion_coefficient
Point< 2 > get_surface_point() const
SurfaceValueInfo local_value(const Point< 2 > &check_point) const
double thermal_expansion_coefficient
~Adiabatic() override final
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)
Objects::Surface max_depth_surface
Objects::Surface min_depth_surface