![]() |
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 54 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::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media) |
| std::vector< std::unique_ptr< SourceTermBase > > | 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, const MeshLib::Mesh &bulk_mesh) |
| 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 105 of file ProcessVariable.cpp.
References _bc_configs, _compensate_non_equilibrium_initial_residuum, _deactivated_subdomains, _initial_condition, _is_active, _mesh, _n_components, _name, _shapefunction_order, _source_term_configs, MeshLib::Cell, ProcessLib::createDeactivatedSubdomains(), DBUG(), BaseLib::ConfigTree::getConfigSubtreeOptional(), INFO(), and OGS_FATAL.
Referenced by ProcessVariable().
|
default |
References ProcessVariable().
|
default |
|
inline |
Definition at line 115 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, | ||
| std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const & | media ) |
Definition at line 238 of file ProcessVariable.cpp.
References _bc_configs, _mesh, _shapefunction_order, ProcessLib::createBoundaryCondition(), and createBoundaryConditionsForDeactivatedSubDomains().
Referenced by ProcessLib::BoundaryConditionCollection::addBCsForProcessVariables().
|
private |
Definition at line 278 of file ProcessVariable.cpp.
References _deactivated_subdomains, _is_active, ParameterLib::findParameter(), NumLib::LocalToGlobalIndexMap::getNumberOfVariableComponents(), and ProcessLib::DeactivatedSubdomain::zero_parameter_name.
Referenced by createBoundaryConditions().
| std::vector< std::unique_ptr< SourceTermBase > > 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, | ||
| const MeshLib::Mesh & | bulk_mesh ) |
Definition at line 374 of file ProcessVariable.cpp.
References _shapefunction_order, _source_term_configs, and ProcessLib::createSourceTerm().
Referenced by ProcessLib::SourceTermCollection::addSourceTermsForProcessVariables().
|
inline |
Definition at line 80 of file ProcessVariable.h.
References _ids_of_active_elements.
|
inline |
Definition at line 73 of file ProcessVariable.h.
References _deactivated_subdomains.
|
inline |
Definition at line 108 of file ProcessVariable.h.
References _initial_condition.
Referenced by ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::HydroMechanicsProcess().
| MeshLib::Mesh const & ProcessLib::ProcessVariable::getMesh | ( | ) | const |
Returns a mesh on which the process variable is defined.
Definition at line 232 of file ProcessVariable.cpp.
References _mesh.
|
inline |
Definition at line 68 of file ProcessVariable.h.
References _name.
Referenced by ProcessLib::ThermoRichardsFlow::checkProcessVariableComponents(), ProcessLib::ThermoRichardsMechanics::checkProcessVariableComponents(), ProcessLib::HMPhaseField::createHMPhaseFieldProcess(), ProcessLib::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::PhaseField::createPhaseFieldProcess(), ProcessLib::RichardsMechanics::createRichardsMechanicsProcess(), ProcessLib::TH2M::createTH2MProcess(), ProcessLib::ThermoHydroMechanics::createThermoHydroMechanicsProcess(), ProcessLib::ThermoMechanics::createThermoMechanicsProcess(), and ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess().
|
inline |
Returns the number of components of the process variable.
Definition at line 86 of file ProcessVariable.h.
References _n_components.
Referenced by ProcessLib::ThermoRichardsFlow::checkProcessVariableComponents(), ProcessLib::ThermoRichardsMechanics::checkProcessVariableComponents(), ProcessLib::Process::constructMonolithicProcessDofTable(), ProcessLib::HMPhaseField::createHMPhaseFieldProcess(), ProcessLib::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::PhaseField::createPhaseFieldProcess(), ProcessLib::RichardsMechanics::createRichardsMechanicsProcess(), ProcessLib::TH2M::createTH2MProcess(), ProcessLib::ThermoHydroMechanics::createThermoHydroMechanicsProcess(), ProcessLib::ThermoMechanics::createThermoMechanicsProcess(), and ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess().
|
inline |
Definition at line 113 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 318 of file ProcessVariable.cpp.
References _deactivated_subdomains, _ids_of_active_elements, _is_active, and _mesh.
|
private |
Definition at line 156 of file ProcessVariable.h.
Referenced by ProcessVariable(), and createBoundaryConditions().
|
private |
Definition at line 159 of file ProcessVariable.h.
Referenced by ProcessVariable(), and compensateNonEquilibriumInitialResiduum().
|
private |
Definition at line 141 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 145 of file ProcessVariable.h.
Referenced by getActiveElementIDs(), and updateDeactivatedSubdomains().
|
private |
Definition at line 154 of file ProcessVariable.h.
Referenced by ProcessVariable(), and getInitialCondition().
|
private |
Definition at line 146 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditionsForDeactivatedSubDomains(), and updateDeactivatedSubdomains().
|
private |
Definition at line 124 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditions(), getMesh(), and updateDeactivatedSubdomains().
|
private |
Definition at line 125 of file ProcessVariable.h.
Referenced by ProcessVariable(), and getNumberOfGlobalComponents().
|
private |
Definition at line 123 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 139 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditions(), createSourceTerms(), and getShapeFunctionOrder().
|
private |
Definition at line 157 of file ProcessVariable.h.
Referenced by ProcessVariable(), and createSourceTerms().