diff --git a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp index 26ad711fb421f5d39bd13ab5ad3664147f5a7441..06496c002e235701c0cd3ba0e3cf4714e7175756 100644 --- a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp +++ b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp @@ -128,21 +128,6 @@ std::unique_ptr<Process> createHydroMechanicsProcess( "fluid_density", parameters, 1, &mesh); DBUG("Use '%s' as fluid density parameter.", fluid_density.name.c_str()); - // Biot coefficient - auto& biot_coefficient = ParameterLib::findParameter<double>( - config, - //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS__biot_coefficient} - "biot_coefficient", parameters, 1, &mesh); - DBUG("Use '%s' as Biot coefficient parameter.", - biot_coefficient.name.c_str()); - - // Solid density - auto& solid_density = ParameterLib::findParameter<double>( - config, - //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS__solid_density} - "solid_density", parameters, 1, &mesh); - DBUG("Use '%s' as solid density parameter.", solid_density.name.c_str()); - // Specific body force Eigen::Matrix<double, DisplacementDim, 1> specific_body_force; { @@ -166,7 +151,9 @@ std::unique_ptr<Process> createHydroMechanicsProcess( MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh); std::array const requiredGasProperties = {MaterialPropertyLib::viscosity}; - std::array const requiredSolidProperties = {MaterialPropertyLib::porosity}; + std::array const requiredSolidProperties = { + MaterialPropertyLib::porosity, MaterialPropertyLib::biot_coefficient, + MaterialPropertyLib::density}; for (auto const& m : media) { m.second->phase("Gas").checkRequiredProperties(requiredGasProperties); @@ -220,8 +207,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( materialIDs(mesh), std::move(media_map), std::move(solid_constitutive_relations), initial_stress, intrinsic_permeability, - fluid_density, biot_coefficient, - solid_density, specific_body_force, + fluid_density, specific_body_force, fluid_compressibility, reference_temperature, specific_gas_constant, fluid_type}; diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h index d0527129ee60a9958b3f76aef49d7d45c06a989d..dbee0bf33b50cc0a6813c24170348277a8b563b5 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h @@ -220,9 +220,14 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, double const K_over_mu = _process_data.intrinsic_permeability(t, x_position)[0] / mu; - auto const alpha = _process_data.biot_coefficient(t, x_position)[0]; + auto const alpha = + solid_phase + .property(MaterialPropertyLib::PropertyType::biot_coefficient) + .template value<double>(vars, x_position, t); auto const K_S = solid_material.getBulkModulus(t, x_position); - auto const rho_sr = _process_data.solid_density(t, x_position)[0]; + auto const rho_sr = + solid_phase.property(MaterialPropertyLib::PropertyType::density) + .template value<double>(vars, x_position, t); // TODO (FZill) get fluid properties from GPML double const p_fr = (_process_data.fluid_type == FluidType::Fluid_Type::IDEAL_GAS) @@ -438,7 +443,10 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, double const K_over_mu = _process_data.intrinsic_permeability(t, x_position)[0] / mu; - auto const alpha_b = _process_data.biot_coefficient(t, x_position)[0]; + auto const alpha_b = + solid_phase + .property(MaterialPropertyLib::PropertyType::biot_coefficient) + .template value<double>(vars, x_position, t); // TODO (FZill) get fluid properties from GPML double const p_fr = (_process_data.fluid_type == FluidType::Fluid_Type::IDEAL_GAS) @@ -542,8 +550,13 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, auto& eps = _ip_data[ip].eps; auto const& sigma_eff = _ip_data[ip].sigma_eff; - auto const alpha = _process_data.biot_coefficient(t, x_position)[0]; - auto const rho_sr = _process_data.solid_density(t, x_position)[0]; + auto const alpha = + solid_phase + .property(MaterialPropertyLib::PropertyType::biot_coefficient) + .template value<double>(vars, x_position, t); + auto const rho_sr = + solid_phase.property(MaterialPropertyLib::PropertyType::density) + .template value<double>(vars, x_position, t); auto const rho_fr = _process_data.fluid_density(t, x_position)[0]; auto const porosity = solid_phase.property(MaterialPropertyLib::PropertyType::porosity) diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h b/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h index 7f1d59f54f908f78e5eaa470cccdbc37d320bbf9..74b694ec7c15eafdbd8a5b01b13a34ee8acca9d3 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h @@ -56,10 +56,6 @@ struct HydroMechanicsProcessData ParameterLib::Parameter<double> const& intrinsic_permeability; /// Fluid's density. A scalar quantity, ParameterLib::Parameter<double>. ParameterLib::Parameter<double> const& fluid_density; - /// Biot coefficient. A scalar quantity, ParameterLib::Parameter<double>. - ParameterLib::Parameter<double> const& biot_coefficient; - /// Solid's density. A scalar quantity, ParameterLib::Parameter<double>. - ParameterLib::Parameter<double> const& solid_density; /// Specific body forces applied to solid and fluid. /// It is usually used to apply gravitational forces. /// A vector of displacement dimension's length.