![]() |
OGS
|
A named process variable. Its properties includes the mesh, and the initial and boundary conditions as well as the source terms.
Definition at line 60 of file ProcessVariable.h.
#include <ProcessVariable.h>
Public Member Functions | |
ProcessVariable (BaseLib::ConfigTree const &config, MeshLib::Mesh &mesh, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves) | |
ProcessVariable (ProcessVariable &&) | |
std::string const & | getName () const |
MeshLib::Mesh const & | getMesh () const |
Returns a mesh on which the process variable is defined. | |
std::vector< DeactivatedSubdomain > const & | getDeactivatedSubdomains () const |
void | updateDeactivatedSubdomains (double const time) |
std::vector< std::size_t > const & | getActiveElementIDs () const |
int | getNumberOfGlobalComponents () const |
Returns the number of components of the process variable. | |
std::vector< std::unique_ptr< BoundaryCondition > > | createBoundaryConditions (const NumLib::LocalToGlobalIndexMap &dof_table, const int variable_id, unsigned const integration_order, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, Process const &process, std::vector< std::reference_wrapper< ProcessVariable > > const &all_process_variables_for_this_process) |
std::vector< std::unique_ptr< SourceTerm > > | createSourceTerms (const NumLib::LocalToGlobalIndexMap &dof_table, const int variable_id, unsigned const integration_order, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::vector< std::reference_wrapper< ProcessVariable > > const &all_process_variables_for_this_process) |
ParameterLib::Parameter< double > const & | getInitialCondition () const |
unsigned | getShapeFunctionOrder () const |
bool | compensateNonEquilibriumInitialResiduum () const |
~ProcessVariable () | |
Private Member Functions | |
void | createBoundaryConditionsForDeactivatedSubDomains (const NumLib::LocalToGlobalIndexMap &dof_table, const int variable_id, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::vector< std::unique_ptr< BoundaryCondition > > &bcs) |
Private Attributes | |
std::string const | _name |
MeshLib::Mesh & | _mesh |
const int | _n_components |
unsigned | _shapefunction_order |
std::vector< DeactivatedSubdomain > | _deactivated_subdomains |
std::vector< std::size_t > | _ids_of_active_elements |
MeshLib::PropertyVector< unsigned char > * | _is_active = nullptr |
ParameterLib::Parameter< double > const & | _initial_condition |
std::vector< BoundaryConditionConfig > | _bc_configs |
std::vector< SourceTermConfig > | _source_term_configs |
const bool | _compensate_non_equilibrium_initial_residuum |
ProcessLib::ProcessVariable::ProcessVariable | ( | BaseLib::ConfigTree const & | config, |
MeshLib::Mesh & | mesh, | ||
std::vector< std::unique_ptr< MeshLib::Mesh > > const & | meshes, | ||
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & | parameters, | ||
std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const & | curves | ||
) |
Definition at line 108 of file ProcessVariable.cpp.
References _bc_configs, _deactivated_subdomains, _is_active, _mesh, _n_components, _name, _shapefunction_order, _source_term_configs, MeshLib::Cell, DBUG(), BaseLib::ConfigTree::getConfigSubtreeOptional(), INFO(), and OGS_FATAL.
|
default |
|
default |
|
inline |
Definition at line 118 of file ProcessVariable.h.
References _compensate_non_equilibrium_initial_residuum.
std::vector< std::unique_ptr< BoundaryCondition > > ProcessLib::ProcessVariable::createBoundaryConditions | ( | const NumLib::LocalToGlobalIndexMap & | dof_table, |
const int | variable_id, | ||
unsigned const | integration_order, | ||
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & | parameters, | ||
Process const & | process, | ||
std::vector< std::reference_wrapper< ProcessVariable > > const & | all_process_variables_for_this_process | ||
) |
Definition at line 220 of file ProcessVariable.cpp.
References _bc_configs, _mesh, _shapefunction_order, ProcessLib::createBoundaryCondition(), and createBoundaryConditionsForDeactivatedSubDomains().
Referenced by ProcessLib::BoundaryConditionCollection::addBCsForProcessVariables().
|
private |
Definition at line 253 of file ProcessVariable.cpp.
References _deactivated_subdomains, _is_active, NumLib::LocalToGlobalIndexMap::getNumberOfVariableComponents(), and ProcessLib::DeactivatedSubdomain::zero_parameter_name.
Referenced by createBoundaryConditions().
std::vector< std::unique_ptr< SourceTerm > > ProcessLib::ProcessVariable::createSourceTerms | ( | const NumLib::LocalToGlobalIndexMap & | dof_table, |
const int | variable_id, | ||
unsigned const | integration_order, | ||
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & | parameters, | ||
std::vector< std::reference_wrapper< ProcessVariable > > const & | all_process_variables_for_this_process | ||
) |
Definition at line 349 of file ProcessVariable.cpp.
References _shapefunction_order, _source_term_configs, and ProcessLib::createSourceTerm().
Referenced by ProcessLib::SourceTermCollection::addSourceTermsForProcessVariables().
|
inline |
Definition at line 86 of file ProcessVariable.h.
References _ids_of_active_elements.
Referenced by ProcessLib::ComponentTransport::ComponentTransportProcess::assembleConcreteProcess(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::assembleConcreteProcess(), ProcessLib::HT::HTProcess::assembleConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleConcreteProcess(), ProcessLib::RichardsFlow::RichardsFlowProcess::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::SteadyStateDiffusion::SteadyStateDiffusion::assembleConcreteProcess(), ProcessLib::StokesFlow::StokesFlowProcess< GlobalDim >::assembleConcreteProcess(), ProcessLib::TES::TESProcess::assembleConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowProcess::assembleConcreteProcess(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess::assembleConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::assembleConcreteProcess(), ProcessLib::HeatConduction::HeatConductionProcess::assembleConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::AssemblyMixin< Process >::assembleGeneric(), ProcessLib::ComponentTransport::ComponentTransportProcess::assembleWithJacobianConcreteProcess(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::assembleWithJacobianConcreteProcess(), ProcessLib::HT::HTProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsFlow::RichardsFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::SteadyStateDiffusion::SteadyStateDiffusion::assembleWithJacobianConcreteProcess(), ProcessLib::TES::TESProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess(), ProcessLib::HeatConduction::HeatConductionProcess::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::TH2M::TH2MProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::HeatConduction::HeatConductionProcess::computeSecondaryVariableConcrete(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::computeSecondaryVariableConcrete(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::LiquidFlow::LiquidFlowProcess::computeSecondaryVariableConcrete(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowProcess::computeSecondaryVariableConcrete(), ProcessLib::ThermoRichardsMechanics::ThermoRichardsMechanicsProcess< DisplacementDim, ConstitutiveTraits >::computeSecondaryVariableConcrete(), ProcessLib::ComponentTransport::ComponentTransportProcess::computeSecondaryVariableConcrete(), ProcessLib::StokesFlow::StokesFlowProcess< GlobalDim >::computeSecondaryVariableConcrete(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::postIterationConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::HT::HTProcess::postTimestepConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::postTimestepConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::postTimestepConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::StokesFlow::StokesFlowProcess< GlobalDim >::postTimestepConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::TH2M::TH2MProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::SteadyStateDiffusion::SteadyStateDiffusion::postTimestepConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowProcess::postTimestepConcreteProcess(), ProcessLib::ThermoRichardsMechanics::ThermoRichardsMechanicsProcess< DisplacementDim, ConstitutiveTraits >::postTimestepConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::postTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::preAssembleConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::preTimestepConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::preTimestepConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::TH2M::TH2MProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::preTimestepConcreteProcess(), ProcessLib::HT::HTProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::setInitialConditionsConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::setInitialConditionsConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::solveReactionEquation(), ProcessLib::AssemblyMixinBase::updateActiveElements(), and ProcessLib::AssemblyMixinBase::updateActiveElementsImpl().
|
inline |
Definition at line 79 of file ProcessVariable.h.
References _deactivated_subdomains.
|
inline |
Definition at line 111 of file ProcessVariable.h.
References _initial_condition.
Referenced by ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::HydroMechanicsProcess().
MeshLib::Mesh const & ProcessLib::ProcessVariable::getMesh | ( | ) | const |
Returns a mesh on which the process variable is defined.
Definition at line 214 of file ProcessVariable.cpp.
References _mesh.
std::string const & ProcessLib::ProcessVariable::getName | ( | ) | const |
Definition at line 209 of file ProcessVariable.cpp.
References _name.
Referenced by ProcessLib::ThermoRichardsFlow::checkProcessVariableComponents(), ProcessLib::ThermoRichardsMechanics::checkProcessVariableComponents(), ProcessLib::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::PhaseField::createPhaseFieldProcess(), ProcessLib::RichardsMechanics::createRichardsMechanicsProcess(), ProcessLib::TH2M::createTH2MProcess(), ProcessLib::ThermoHydroMechanics::createThermoHydroMechanicsProcess(), ProcessLib::ThermoMechanicalPhaseField::createThermoMechanicalPhaseFieldProcess(), ProcessLib::ThermoMechanics::createThermoMechanicsProcess(), and ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::postTimestepConcreteProcess().
|
inline |
Returns the number of components of the process variable.
Definition at line 92 of file ProcessVariable.h.
References _n_components.
Referenced by ProcessLib::ThermoRichardsFlow::checkProcessVariableComponents(), ProcessLib::ThermoRichardsMechanics::checkProcessVariableComponents(), ProcessLib::Process::constructMonolithicProcessDofTable(), ProcessLib::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::PhaseField::createPhaseFieldProcess(), ProcessLib::RichardsMechanics::createRichardsMechanicsProcess(), ProcessLib::TH2M::createTH2MProcess(), ProcessLib::ThermoHydroMechanics::createThermoHydroMechanicsProcess(), ProcessLib::ThermoMechanicalPhaseField::createThermoMechanicalPhaseFieldProcess(), ProcessLib::ThermoMechanics::createThermoMechanicsProcess(), and ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::postTimestepConcreteProcess().
|
inline |
Definition at line 116 of file ProcessVariable.h.
References _shapefunction_order.
Referenced by ProcessLib::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::TH2M::createTH2MProcess(), ProcessLib::ThermoHydroMechanics::createThermoHydroMechanicsProcess(), and ProcessLib::ThermoRichardsMechanics::createThermoRichardsMechanicsProcessStage2().
void ProcessLib::ProcessVariable::updateDeactivatedSubdomains | ( | double const | time | ) |
Definition at line 293 of file ProcessVariable.cpp.
References _deactivated_subdomains, _ids_of_active_elements, _is_active, _mesh, MeshLib::Mesh::getElement(), and MeshLib::Mesh::getNumberOfElements().
|
private |
Definition at line 159 of file ProcessVariable.h.
Referenced by ProcessVariable(), and createBoundaryConditions().
|
private |
Definition at line 162 of file ProcessVariable.h.
Referenced by compensateNonEquilibriumInitialResiduum().
|
private |
Definition at line 144 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditionsForDeactivatedSubDomains(), getDeactivatedSubdomains(), and updateDeactivatedSubdomains().
|
mutableprivate |
IDs of the active elements. It is initialized only if there are deactivated subdomains.
Definition at line 148 of file ProcessVariable.h.
Referenced by getActiveElementIDs(), and updateDeactivatedSubdomains().
|
private |
Definition at line 157 of file ProcessVariable.h.
Referenced by getInitialCondition().
|
private |
Definition at line 149 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditionsForDeactivatedSubDomains(), and updateDeactivatedSubdomains().
|
private |
Definition at line 127 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditions(), getMesh(), and updateDeactivatedSubdomains().
|
private |
Definition at line 128 of file ProcessVariable.h.
Referenced by ProcessVariable(), and getNumberOfGlobalComponents().
|
private |
Definition at line 126 of file ProcessVariable.h.
Referenced by ProcessVariable(), and getName().
|
private |
The polynomial order of the process variable's shape functions.
Requires an appropriate mesh.
The order of the shape functions can not be higher than the maximum available order for the underlying geometric elements. For example the second order shape functions for a hexahedron are only possible if the geometric element is at least a 20-node hexahedron element (MeshLib::TemplateElement<MeshLib::HexRule20>), whereas linear shape functions are also available on the 8-node hexahedron (MeshLib::TemplateElement<MeshLib::HexRule8>).
Definition at line 142 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditions(), createSourceTerms(), and getShapeFunctionOrder().
|
private |
Definition at line 160 of file ProcessVariable.h.
Referenced by ProcessVariable(), and createSourceTerms().