Skip to content
Snippets Groups Projects
Commit 229943bc authored by wenqing's avatar wenqing
Browse files

[LIE] Added a reference temperature to the processes with LIE

parent 43598158
No related branches found
No related tags found
No related merge requests found
......@@ -302,6 +302,11 @@ std::unique_ptr<Process> createHydroMechanicsProcess(
if (deactivate_matrix_in_flow)
INFO("Deactivate matrix elements in flow calculation.");
// Reference temperature
const auto& reference_temperature =
//! \ogs_file_param{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__reference_temperature}
config.getConfigParameterOptional<double>("reference_temperature");
HydroMechanicsProcessData<GlobalDim> process_data{
std::move(material),
intrinsic_permeability,
......@@ -316,7 +321,8 @@ std::unique_ptr<Process> createHydroMechanicsProcess(
std::move(frac_prop),
initial_effective_stress,
initial_fracture_effective_stress,
deactivate_matrix_in_flow};
deactivate_matrix_in_flow,
*reference_temperature};
SecondaryVariableCollection secondary_variables;
......
......@@ -52,7 +52,8 @@ struct HydroMechanicsProcessData
std::unique_ptr<FracturePropertyHM>&& fracture_prop,
Parameter<double> const& initial_effective_stress_,
Parameter<double> const& initial_fracture_effective_stress_,
bool const deactivate_matrix_in_flow_)
bool const deactivate_matrix_in_flow_,
double const reference_temperature_)
: material{std::move(material_)},
intrinsic_permeability(intrinsic_permeability_),
specific_storage(specific_storage_),
......@@ -66,7 +67,8 @@ struct HydroMechanicsProcessData
fracture_property{std::move(fracture_prop)},
initial_effective_stress(initial_effective_stress_),
initial_fracture_effective_stress(initial_fracture_effective_stress_),
deactivate_matrix_in_flow(deactivate_matrix_in_flow_)
deactivate_matrix_in_flow(deactivate_matrix_in_flow_),
reference_temperature(reference_temperature_)
{
}
......@@ -89,7 +91,8 @@ struct HydroMechanicsProcessData
p_element_status(std::move(other.p_element_status)),
p0(other.p0),
dt(other.dt),
t(other.t)
t(other.t),
reference_temperature(other.reference_temperature)
{
}
......@@ -155,6 +158,8 @@ struct HydroMechanicsProcessData
MeshLib::PropertyVector<double>* mesh_prop_nodal_forces_jump = nullptr;
MeshLib::PropertyVector<double>* mesh_prop_hydraulic_flow = nullptr;
double const reference_temperature;
EIGEN_MAKE_ALIGNED_OPERATOR_NEW;
};
......
......@@ -236,7 +236,7 @@ void HydroMechanicsLocalAssemblerMatrix<ShapeFunctionDisplacement,
auto&& solution = _ip_data[ip].solid_material.integrateStress(
t, x_position, _process_data.dt, eps_prev, eps, sigma_eff_prev,
*state, MaterialLib::PhysicalConstant::RoomTemperature);
*state, _process_data.reference_temperature);
if (!solution)
OGS_FATAL("Computation of local constitutive relation failed.");
......@@ -354,7 +354,7 @@ void HydroMechanicsLocalAssemblerMatrix<ShapeFunctionDisplacement,
auto&& solution = _ip_data[ip].solid_material.integrateStress(
t, x_position, _process_data.dt, eps_prev, eps, sigma_eff_prev,
*state, MaterialLib::PhysicalConstant::RoomTemperature);
*state, _process_data.reference_temperature);
if (!solution)
OGS_FATAL("Computation of local constitutive relation failed.");
......
......@@ -167,9 +167,14 @@ std::unique_ptr<Process> createSmallDeformationProcess(
"are not consistent");
}
// Reference temperature
const auto& reference_temperature =
//! \ogs_file_param{prj__processes__process__SMALL_DEFORMATION_WITH_LIE__reference_temperature}
config.getConfigParameterOptional<double>("reference_temperature");
SmallDeformationProcessData<DisplacementDim> process_data(
std::move(material), std::move(fracture_model),
std::move(vec_fracture_property));
std::move(vec_fracture_property), *reference_temperature);
SecondaryVariableCollection secondary_variables;
......
......@@ -147,7 +147,7 @@ void SmallDeformationLocalAssemblerMatrix<ShapeFunction, IntegrationMethod,
auto&& solution = _ip_data[ip]._solid_material.integrateStress(
t, x_position, _process_data.dt, eps_prev, eps, sigma_prev, *state,
MaterialLib::PhysicalConstant::RoomTemperature);
_process_data._reference_temperature);
if (!solution)
{
......
......@@ -244,7 +244,7 @@ void SmallDeformationLocalAssemblerMatrixNearFracture<
auto&& solution = _ip_data[ip]._solid_material.integrateStress(
t, x_position, _process_data.dt, eps_prev, eps, sigma_prev, *state,
MaterialLib::PhysicalConstant::RoomTemperature);
_process_data._reference_temperature);
if (!solution)
{
......
......@@ -38,17 +38,20 @@ struct SmallDeformationProcessData
std::unique_ptr<
MaterialLib::Fracture::FractureModelBase<DisplacementDim>>&&
fracture_model,
std::vector<std::unique_ptr<FractureProperty>>&& vec_fracture_prop)
std::vector<std::unique_ptr<FractureProperty>>&& vec_fracture_prop,
double const reference_temperature)
: _material{std::move(material)},
_fracture_model{std::move(fracture_model)},
_vec_fracture_property(std::move(vec_fracture_prop))
_vec_fracture_property(std::move(vec_fracture_prop)),
_reference_temperature(reference_temperature)
{
}
SmallDeformationProcessData(SmallDeformationProcessData&& other)
: _material{std::move(other._material)},
_fracture_model{std::move(other._fracture_model)},
_vec_fracture_property(std::move(other._vec_fracture_property))
_vec_fracture_property(std::move(other._vec_fracture_property)),
_reference_temperature(other._reference_temperature)
{
}
......@@ -94,6 +97,8 @@ struct SmallDeformationProcessData
// mesh property for fracture aperture
MeshLib::PropertyVector<double>* _mesh_prop_b = nullptr;
double const _reference_temperature;
};
} // namespace SmallDeformation
......
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