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 61 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< 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 90 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 121 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 222 of file ProcessVariable.cpp.
References _bc_configs, _mesh, _shapefunction_order, ProcessLib::createBoundaryCondition(), and createBoundaryConditionsForDeactivatedSubDomains().
Referenced by ProcessLib::BoundaryConditionCollection::addBCsForProcessVariables().
|
private |
Definition at line 256 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 352 of file ProcessVariable.cpp.
References _shapefunction_order, _source_term_configs, and ProcessLib::createSourceTerm().
Referenced by ProcessLib::SourceTermCollection::addSourceTermsForProcessVariables().
|
inline |
Definition at line 87 of file ProcessVariable.h.
References _ids_of_active_elements.
|
inline |
Definition at line 80 of file ProcessVariable.h.
References _deactivated_subdomains.
|
inline |
Definition at line 114 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 216 of file ProcessVariable.cpp.
References _mesh.
std::string const & ProcessLib::ProcessVariable::getName | ( | ) | const |
Definition at line 211 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 93 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 119 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 296 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 162 of file ProcessVariable.h.
Referenced by ProcessVariable(), and createBoundaryConditions().
|
private |
Definition at line 165 of file ProcessVariable.h.
Referenced by compensateNonEquilibriumInitialResiduum().
|
private |
Definition at line 147 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 151 of file ProcessVariable.h.
Referenced by getActiveElementIDs(), and updateDeactivatedSubdomains().
|
private |
Definition at line 160 of file ProcessVariable.h.
Referenced by getInitialCondition().
|
private |
Definition at line 152 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditionsForDeactivatedSubDomains(), and updateDeactivatedSubdomains().
|
private |
Definition at line 130 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditions(), getMesh(), and updateDeactivatedSubdomains().
|
private |
Definition at line 131 of file ProcessVariable.h.
Referenced by ProcessVariable(), and getNumberOfGlobalComponents().
|
private |
Definition at line 129 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 145 of file ProcessVariable.h.
Referenced by ProcessVariable(), createBoundaryConditions(), createSourceTerms(), and getShapeFunctionOrder().
|
private |
Definition at line 163 of file ProcessVariable.h.
Referenced by ProcessVariable(), and createSourceTerms().