32 using namespace Utilities;
42 min_depth(NaN::
DSNAN),
43 max_depth(NaN::
DSNAN),
44 center_temperature(NaN::
DSNAN),
45 side_temperature(NaN::
DSNAN),
49 this->
name =
"linear";
61 "Linear temperature model. Can be set to use an adiabatic temperature at the boundaries.");
65 "The minimum distance to the center of the fault. This determines where the linear temperature starts.");
68 "The minimum distance to the center of the fault. This determines where the linear temperature end.");
71 "The temperature at the center of this feature in degree Kelvin." 72 "If the value is below zero, the an adiabatic temperature is used.");
75 "The temperature at the sides of this feature in degree Kelvin. " 76 "If the value is below zero, an adiabatic temperature is used.");
83 min_depth = prm.
get<
double>(
"min distance fault center");
84 max_depth = prm.
get<
double>(
"max distance fault center");
85 WBAssert(max_depth >=
min_depth,
"max depth needs to be larger or equal to min depth.");
95 const double gravity_norm,
105 const double min_depth_local =
min_depth;
106 const double max_depth_local =
max_depth;
109 if (center_temperature_local < 0)
113 this->world->specific_heat) * min_depth_local);
117 if (side_temperature_local < 0)
121 this->world->specific_heat) * max_depth_local);
124 const double new_temperature = center_temperature_local +
126 ((side_temperature_local - center_temperature_local) / (max_depth_local - min_depth_local));
#define WB_REGISTER_FEATURE_FAULT_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 potential_mantle_temperature
Operations string_operations_to_enum(const std::string &operation)
#define WBAssert(condition, message)
double distance_from_plane
void parse_entries(Parameters &prm) override final
WorldBuilder::World * world
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)
double center_temperature
static void declare_entries(Parameters &prm, const std::string &parent_name="")