![]() |
OGS
|
|
Namespaces | |
| namespace | anonymous_namespace{HTFEM.cpp} |
Classes | |
| class | HTFEM |
| class | HTLocalAssemblerInterface |
| class | HTProcess |
| struct | HTProcessData |
| struct | IntegrationPointData |
| class | MonolithicHTFEM |
| class | StaggeredHTFEM |
Functions | |
| void | checkThermalExpansivitySetting (MaterialPropertyLib::MaterialSpatialDistributionMap const &media_map) |
| void | checkMPLProperties (MeshLib::Mesh const &mesh, MaterialPropertyLib::MaterialSpatialDistributionMap const &media_map) |
| std::unique_ptr< Process > | createHTProcess (std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media) |
| double | evalEffectiveThermalExpansivity (double const t, double const dt, ParameterLib::SpatialPosition const &pos, MaterialPropertyLib::VariableArray const &vars, MaterialPropertyLib::Medium const &medium, MaterialPropertyLib::Phase const &liquid_phase, MaterialPropertyLib::Phase const &solid_phase, bool const has_solid_thermal_expansivity, double const specific_storage) |
| void | checkBiotStorageRelation (double const t, double const dt, ParameterLib::SpatialPosition const &pos, MaterialPropertyLib::VariableArray const &vars, MaterialPropertyLib::Medium const &medium, MaterialPropertyLib::Phase const &solid_phase) |
Variables | |
| const unsigned | NUM_NODAL_DOF = 2 |
| void ProcessLib::HT::checkBiotStorageRelation | ( | double const | t, |
| double const | dt, | ||
| ParameterLib::SpatialPosition const & | pos, | ||
| MaterialPropertyLib::VariableArray const & | vars, | ||
| MaterialPropertyLib::Medium const & | medium, | ||
| MaterialPropertyLib::Phase const & | solid_phase ) |
Checks the requirement \(\alpha_B=1 \Rightarrow S_s=0\) on the evaluated Biot coefficient of medium and the evaluated specific storage of solid_phase at the position pos, and ends the run with OGS_FATAL if it is violated.
Both properties are evaluated with vars, t and dt, i.e. with the state the caller has set. At initialisation time the caller passes an empty vars and \(t=dt=0\) – the literal zero, not the initial time of the time loop, which may differ. Properties that depend on neither the primary variables nor the time are therefore fully checked there. Properties that do depend on the primary variables evaluate to NaN instead; a Biot coefficient of NaN compares unequal to one and a specific storage of NaN is excluded explicitly, so the check passes in both cases. A property depending on the time is checked at \(t=0\) only, which is a state the simulation need not pass through at all. Those cases are covered by the check on the evaluated values in evalEffectiveThermalExpansivity().
Definition at line 83 of file HTFEM.cpp.
References MaterialPropertyLib::biot_coefficient, MaterialPropertyLib::Medium::property(), MaterialPropertyLib::Phase::property(), and MaterialPropertyLib::storage.
Referenced by ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::initializeConcrete().
| void ProcessLib::HT::checkMPLProperties | ( | MeshLib::Mesh const & | mesh, |
| MaterialPropertyLib::MaterialSpatialDistributionMap const & | media_map ) |
Definition at line 58 of file CreateHTProcess.cpp.
References MaterialPropertyLib::checkMaterialSpatialDistributionMap(), checkThermalExpansivitySetting(), MaterialPropertyLib::density, MaterialPropertyLib::permeability, MaterialPropertyLib::porosity, MaterialPropertyLib::specific_heat_capacity, MaterialPropertyLib::storage, MaterialPropertyLib::thermal_conductivity, MaterialPropertyLib::thermal_longitudinal_dispersivity, MaterialPropertyLib::thermal_transversal_dispersivity, and MaterialPropertyLib::viscosity.
Referenced by createHTProcess().
| void ProcessLib::HT::checkThermalExpansivitySetting | ( | MaterialPropertyLib::MaterialSpatialDistributionMap const & | media_map | ) |
Definition at line 27 of file CreateHTProcess.cpp.
References MaterialPropertyLib::biot_coefficient, MaterialPropertyLib::MaterialSpatialDistributionMap::media(), OGS_FATAL, MaterialPropertyLib::Solid, and MaterialPropertyLib::thermal_expansivity.
Referenced by checkMPLProperties().
| std::unique_ptr< Process > ProcessLib::HT::createHTProcess | ( | std::string const & | name, |
| MeshLib::Mesh & | mesh, | ||
| std::unique_ptr< ProcessLib::AbstractJacobianAssembler > && | jacobian_assembler, | ||
| std::vector< ProcessVariable > const & | variables, | ||
| std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & | parameters, | ||
| unsigned const | integration_order, | ||
| BaseLib::ConfigTree const & | config, | ||
| std::vector< std::unique_ptr< MeshLib::Mesh > > const & | meshes, | ||
| std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const & | media ) |
Primary process variables as they appear in the global component vector:
Definition at line 92 of file CreateHTProcess.cpp.
References BaseLib::ConfigTree::checkConfigParameter(), checkMPLProperties(), ProcessLib::Common::HydraulicProcess::checkVolumeBalanceEquationSetting(), ProcessLib::Process::constant_one_parameter_name, MaterialPropertyLib::createMaterialSpatialDistributionMap(), NumLib::createNumericalStabilization(), ProcessLib::createSecondaryVariables(), ProcessLib::SurfaceFluxData::createSurfaceFluxData(), DBUG(), ParameterLib::findParameter(), ProcessLib::findProcessVariables(), BaseLib::ConfigTree::getConfigParameter(), BaseLib::ConfigTree::getConfigParameterOptional(), BaseLib::ConfigTree::getConfigSubtree(), BaseLib::ConfigTree::getConfigSubtreeOptional(), MeshLib::Mesh::getDimension(), MeshLib::getElementRotationMatrices(), MeshLib::Mesh::getElements(), MeshLib::Mesh::getNodes(), MeshLib::getSpaceDimension(), OGS_FATAL, and MathLib::toVector().
Referenced by ProjectData::parseProcesses().
| double ProcessLib::HT::evalEffectiveThermalExpansivity | ( | double const | t, |
| double const | dt, | ||
| ParameterLib::SpatialPosition const & | pos, | ||
| MaterialPropertyLib::VariableArray const & | vars, | ||
| MaterialPropertyLib::Medium const & | medium, | ||
| MaterialPropertyLib::Phase const & | liquid_phase, | ||
| MaterialPropertyLib::Phase const & | solid_phase, | ||
| bool const | has_solid_thermal_expansivity, | ||
| double const | specific_storage ) |
Computes the effective thermal expansivity \(3(\alpha_B-\phi)\alpha_T^s - \phi\frac{\partial \varrho_f}{\partial T}/\varrho_f\) used in the thermal expansion term of the pressure equation.
The fluid contribution \(-\phi\frac{\partial \varrho_f}{\partial T}/\varrho_f\) is always present. The solid contribution \(3(\alpha_B-\phi)\alpha_T^s\) is added only if has_solid_thermal_expansivity is true.
| t | Current time. |
| dt | Time increment. |
| pos | Spatial position of the current integration point. |
| vars | Variable array of the current integration point. Its density and porosity members must already be set, since they are read instead of being evaluated here. |
| medium | Medium, provides the Biot coefficient \(\alpha_B\). |
| liquid_phase | Liquid phase, provides \(\frac{\partial \varrho_f}{\partial T}\). |
| solid_phase | Solid phase, provides the linear solid thermal expansivity \(\alpha_T^s\). |
| has_solid_thermal_expansivity | Whether the solid phase defines thermal_expansivity. Passed in rather than queried here so that the callers can hoist the property lookup out of their integration point loop. |
| specific_storage | Specific storage \(S_s\) of the solid phase at the current integration point. Not used in the returned value; it is passed in only so that the requirement \(\alpha_B=1 \Rightarrow S_s=0\) can be checked against the evaluated values, which is the only place where it can be checked for properties that depend on the primary variables. The function is fatal if the requirement is violated. Passed in rather than evaluated here to avoid evaluating the storage property twice per integration point, since the callers already need its value. |
Definition at line 43 of file HTFEM.cpp.
References MaterialPropertyLib::biot_coefficient, MaterialPropertyLib::density, MaterialPropertyLib::VariableArray::density, MaterialPropertyLib::VariableArray::porosity, MaterialPropertyLib::Medium::property(), MaterialPropertyLib::Phase::property(), MaterialPropertyLib::temperature, and MaterialPropertyLib::thermal_expansivity.
Referenced by ProcessLib::HT::MonolithicHTFEM< ShapeFunction, GlobalDim >::assemble(), and ProcessLib::HT::StaggeredHTFEM< ShapeFunction, GlobalDim >::assembleHydraulicEquation().
| const unsigned ProcessLib::HT::NUM_NODAL_DOF = 2 |
Definition at line 27 of file MonolithicHTFEM.h.
Referenced by ProcessLib::HT::MonolithicHTFEM< ShapeFunction, GlobalDim >::MonolithicHTFEM(), and ProcessLib::HT::MonolithicHTFEM< ShapeFunction, GlobalDim >::assemble().