Skip to content
Snippets Groups Projects
Commit 4c3bc223 authored by wenqing's avatar wenqing
Browse files

[HT] Added two parameters of the solid thermal expansion in the flow process

parent 69903439
No related branches found
No related tags found
No related merge requests found
Parameters of solid thermal expansion in flow process.
Biot's constant for the liquid thermal expansion computation.
Line thermal expansion of solid.
...@@ -50,8 +50,8 @@ std::unique_ptr<Process> createHTProcess( ...@@ -50,8 +50,8 @@ std::unique_ptr<Process> createHTProcess(
"pressure"}); "pressure"});
MaterialLib::PorousMedium::PorousMediaProperties porous_media_properties{ MaterialLib::PorousMedium::PorousMediaProperties porous_media_properties{
MaterialLib::PorousMedium::createPorousMediaProperties( MaterialLib::PorousMedium::createPorousMediaProperties(mesh, config,
mesh, config, parameters)}; parameters)};
//! \ogs_file_param{prj__processes__process__HT__fluid} //! \ogs_file_param{prj__processes__process__HT__fluid}
auto const& fluid_config = config.getConfigSubtree("fluid"); auto const& fluid_config = config.getConfigSubtree("fluid");
...@@ -134,6 +134,54 @@ std::unique_ptr<Process> createHTProcess( ...@@ -134,6 +134,54 @@ std::unique_ptr<Process> createHTProcess(
std::copy_n(b.data(), b.size(), specific_body_force.data()); std::copy_n(b.data(), b.size(), specific_body_force.data());
} }
SecondaryVariableCollection secondary_variables;
NumLib::NamedFunctionCaller named_function_caller(
{"HT_temperature_pressure"});
ProcessLib::parseSecondaryVariables(config, secondary_variables,
named_function_caller);
//! \ogs_file_param{prj__processes__process__HT__solid_thermal_expansion}
auto const solid_config =
config.getConfigSubtreeOptional("solid_thermal_expansion");
if (solid_config)
{
auto& solid_thermal_expansion = findParameter<double>(
//! \ogs_file_param_special{prj__processes__process__HT__solid_thermal_expansion__thermal_expansion}
*solid_config, "thermal_expansion", parameters, 1);
DBUG("Use \'%s\' as solid thermal expansion.",
solid_thermal_expansion.name.c_str());
auto& biot_constant = findParameter<double>(
//! \ogs_file_param_special{prj__processes__process__HT__solid_thermal_expansion__biot_constant}
*solid_config, "biot_constant", parameters, 1);
std::unique_ptr<HTMaterialProperties> material_properties =
std::make_unique<HTMaterialProperties>(
std::move(porous_media_properties),
density_solid,
fluid_reference_density,
std::move(fluid_properties),
thermal_dispersivity_longitudinal,
thermal_dispersivity_transversal,
specific_heat_capacity_solid,
thermal_conductivity_solid,
thermal_conductivity_fluid,
solid_thermal_expansion,
biot_constant,
specific_body_force,
has_gravity);
return std::make_unique<HTProcess>(
mesh, std::move(jacobian_assembler), parameters, integration_order,
std::move(process_variables), std::move(material_properties),
std::move(secondary_variables), std::move(named_function_caller));
}
ConstantParameter<double> default_solid_thermal_expansion(
"default solid thermal expansion", 0.);
ConstantParameter<double> default_biot_constant("default_biot constant",
0.);
std::unique_ptr<HTMaterialProperties> material_properties = std::unique_ptr<HTMaterialProperties> material_properties =
std::make_unique<HTMaterialProperties>( std::make_unique<HTMaterialProperties>(
std::move(porous_media_properties), std::move(porous_media_properties),
...@@ -145,17 +193,11 @@ std::unique_ptr<Process> createHTProcess( ...@@ -145,17 +193,11 @@ std::unique_ptr<Process> createHTProcess(
specific_heat_capacity_solid, specific_heat_capacity_solid,
thermal_conductivity_solid, thermal_conductivity_solid,
thermal_conductivity_fluid, thermal_conductivity_fluid,
default_solid_thermal_expansion,
default_biot_constant,
specific_body_force, specific_body_force,
has_gravity); has_gravity);
SecondaryVariableCollection secondary_variables;
NumLib::NamedFunctionCaller named_function_caller(
{"HT_temperature_pressure"});
ProcessLib::parseSecondaryVariables(config, secondary_variables,
named_function_caller);
return std::make_unique<HTProcess>( return std::make_unique<HTProcess>(
mesh, std::move(jacobian_assembler), parameters, integration_order, mesh, std::move(jacobian_assembler), parameters, integration_order,
std::move(process_variables), std::move(material_properties), std::move(process_variables), std::move(material_properties),
......
...@@ -36,6 +36,8 @@ struct HTMaterialProperties ...@@ -36,6 +36,8 @@ struct HTMaterialProperties
ProcessLib::Parameter<double> const& specific_heat_capacity_solid_, ProcessLib::Parameter<double> const& specific_heat_capacity_solid_,
ProcessLib::Parameter<double> const& thermal_conductivity_solid_, ProcessLib::Parameter<double> const& thermal_conductivity_solid_,
ProcessLib::Parameter<double> const& thermal_conductivity_fluid_, ProcessLib::Parameter<double> const& thermal_conductivity_fluid_,
Parameter<double> const& solid_thermal_expansion_,
Parameter<double> const& biot_constant_,
Eigen::VectorXd specific_body_force_, Eigen::VectorXd specific_body_force_,
bool const has_gravity_) bool const has_gravity_)
: porous_media_properties(std::move(porous_media_properties_)), : porous_media_properties(std::move(porous_media_properties_)),
...@@ -47,6 +49,8 @@ struct HTMaterialProperties ...@@ -47,6 +49,8 @@ struct HTMaterialProperties
thermal_dispersivity_transversal(thermal_dispersivity_transversal_), thermal_dispersivity_transversal(thermal_dispersivity_transversal_),
thermal_conductivity_solid(thermal_conductivity_solid_), thermal_conductivity_solid(thermal_conductivity_solid_),
thermal_conductivity_fluid(thermal_conductivity_fluid_), thermal_conductivity_fluid(thermal_conductivity_fluid_),
solid_thermal_expansion(solid_thermal_expansion_),
biot_constant(biot_constant),
specific_body_force(std::move(specific_body_force_)), specific_body_force(std::move(specific_body_force_)),
has_gravity(has_gravity_) has_gravity(has_gravity_)
{ {
...@@ -87,6 +91,10 @@ struct HTMaterialProperties ...@@ -87,6 +91,10 @@ struct HTMaterialProperties
Parameter<double> const& thermal_dispersivity_transversal; Parameter<double> const& thermal_dispersivity_transversal;
Parameter<double> const& thermal_conductivity_solid; Parameter<double> const& thermal_conductivity_solid;
Parameter<double> const& thermal_conductivity_fluid; Parameter<double> const& thermal_conductivity_fluid;
Parameter<double> const& solid_thermal_expansion;
Parameter<double> const& biot_constant;
Eigen::VectorXd const specific_body_force; Eigen::VectorXd const specific_body_force;
bool const has_gravity; bool const has_gravity;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment