OGS 6.2.1-76-gbb689931b
ProcessLib::ProcessVariable Class Reference

Detailed Description

A named process variable. Its properties includes the mesh, and the initial and boundary conditions as well as the source terms.

Definition at line 45 of file ProcessVariable.h.

#include <ProcessVariable.h>

Collaboration diagram for ProcessLib::ProcessVariable:

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 &parameters)
 
 ProcessVariable (ProcessVariable &&)
 
std::string const & getName () const
 
MeshLib::Mesh const & getMesh () const
 Returns a mesh on which the process variable is defined. More...
 
std::vector< std::unique_ptr< DeactivatedSubdomain const > > const & getDeactivatedSubdomains () const
 
void updateDeactivatedSubdomains (double const time)
 
std::vector< std::size_t > & getActiveElementIDs () const
 
int getNumberOfComponents () const
 Returns the number of components of the process variable. More...
 
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 &parameters, Process const &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 &parameters)
 
ParameterLib::Parameter< double > const & getInitialCondition () const
 
unsigned getShapeFunctionOrder () const
 

Private Member Functions

void createBoundaryConditionsForDeactivatedSubDomains (const NumLib::LocalToGlobalIndexMap &dof_table, const int variable_id, std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters, 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< std::unique_ptr< DeactivatedSubdomain const > > _deactivated_subdomains
 
std::vector< std::size_t > _ids_of_active_elements
 
ParameterLib::Parameter< double > const & _initial_condition
 
std::vector< BoundaryConditionConfig_bc_configs
 
std::vector< SourceTermConfig_source_term_configs
 

Constructor & Destructor Documentation

◆ ProcessVariable() [1/2]

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 
)
Input File Parameter:
prj__process_variables__process_variable__boundary_conditions
Input File Parameter:
prj__process_variables__process_variable__boundary_conditions__boundary_condition
Input File Parameter:
prj__process_variables__process_variable__boundary_conditions__boundary_condition__component
Input File Parameter:
prj__process_variables__process_variable__source_terms
Input File Parameter:
prj__process_variables__process_variable__source_terms__source_term
Input File Parameter:
prj__process_variables__process_variable__source_terms__source_term__component

Definition at line 91 of file ProcessVariable.cpp.

References _bc_configs, _n_components, _name, _shapefunction_order, _source_term_configs, anonymous_namespace{ProcessVariable.cpp}::findMeshInConfig(), BaseLib::ConfigTree::getConfigSubtreeOptional(), and OGS_FATAL.

96  :
97  _name(config.getConfigParameter<std::string>("name")),
98  _mesh(mesh),
100  _n_components(config.getConfigParameter<int>("components")),
102  _shapefunction_order(config.getConfigParameter<unsigned>("order")),
104  _initial_condition(ParameterLib::findParameter<double>(
106  config.getConfigParameter<std::string>("initial_condition"),
107  parameters, _n_components, &mesh))
108 {
109  DBUG("Constructing process variable %s", _name.c_str());
110 
112  {
113  OGS_FATAL("The given shape function order %d is not supported",
115  }
116 
117  // Boundary conditions
118  if (auto bcs_config =
120  config.getConfigSubtreeOptional("boundary_conditions"))
121  {
122  for (
123  auto bc_config :
125  bcs_config->getConfigSubtreeList("boundary_condition"))
126  {
127  auto const& mesh = findMeshInConfig(bc_config, meshes);
128  auto component_id =
130  bc_config.getConfigParameterOptional<int>("component");
131 
132  if (!component_id && _n_components == 1)
133  {
134  // default value for single component vars.
135  component_id = 0;
136  }
137 
138  _bc_configs.emplace_back(std::move(bc_config), mesh, component_id);
139  }
140  }
141  else
142  {
143  INFO("No boundary conditions for process variable '%s' found.",
144  _name.c_str());
145  }
146 
147  // Source terms
149  if (auto sts_config = config.getConfigSubtreeOptional("source_terms"))
150  {
151  for (
152  auto st_config :
154  sts_config->getConfigSubtreeList("source_term"))
155  {
156  MeshLib::Mesh const& mesh = findMeshInConfig(st_config, meshes);
157  auto component_id =
159  st_config.getConfigParameterOptional<int>("component");
160 
161  if (!component_id && _n_components == 1)
162  {
163  // default value for single component vars.
164  component_id = 0;
165  }
166 
167  _source_term_configs.emplace_back(std::move(st_config), mesh,
168  component_id);
169  }
170  }
171  else
172  {
173  INFO("No source terms for process variable '%s' found.", _name.c_str());
174  }
175 }
std::vector< std::unique_ptr< DeactivatedSubdomain const > > _deactivated_subdomains
std::vector< SourceTermConfig > _source_term_configs
ParameterLib::Parameter< double > const & _initial_condition
std::vector< BoundaryConditionConfig > _bc_configs
#define OGS_FATAL(fmt,...)
Definition: Error.h:63
std::vector< std::unique_ptr< DeactivatedSubdomain const > > createDeactivatedSubdomains(BaseLib::ConfigTree const &config, MeshLib::Mesh const &mesh)
MeshLib::Mesh const & findMeshInConfig(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh >> const &meshes)

◆ ProcessVariable() [2/2]

ProcessLib::ProcessVariable::ProcessVariable ( ProcessVariable &&  other)

Definition at line 177 of file ProcessVariable.cpp.

178  : _name(std::move(other._name)),
179  _mesh(other._mesh),
180  _n_components(other._n_components),
181  _shapefunction_order(other._shapefunction_order),
182  _deactivated_subdomains(std::move(other._deactivated_subdomains)),
183  _initial_condition(std::move(other._initial_condition)),
184  _bc_configs(std::move(other._bc_configs)),
185  _source_term_configs(std::move(other._source_term_configs))
186 {
187 }
std::vector< std::unique_ptr< DeactivatedSubdomain const > > _deactivated_subdomains
std::vector< SourceTermConfig > _source_term_configs
ParameterLib::Parameter< double > const & _initial_condition
std::vector< BoundaryConditionConfig > _bc_configs

Member Function Documentation

◆ createBoundaryConditions()

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 
)

Definition at line 200 of file ProcessVariable.cpp.

References _bc_configs, _deactivated_subdomains, _mesh, _shapefunction_order, ProcessLib::createBoundaryCondition(), and createBoundaryConditionsForDeactivatedSubDomains().

Referenced by ProcessLib::BoundaryConditionCollection::addBCsForProcessVariables().

206 {
207  std::vector<std::unique_ptr<BoundaryCondition>> bcs;
208  bcs.reserve(_bc_configs.size());
209 
210  for (auto& config : _bc_configs)
211  {
212  auto bc = createBoundaryCondition(
213  config, dof_table, _mesh, variable_id, integration_order,
214  _shapefunction_order, parameters, process);
215 #ifdef USE_PETSC
216  if (bc == nullptr)
217  {
218  continue;
219  }
220 #endif // USE_PETSC
221  bcs.push_back(std::move(bc));
222  }
223 
224  if (_deactivated_subdomains.empty())
225  {
226  return bcs;
227  }
228 
230  parameters, bcs);
231  return bcs;
232 }
std::vector< std::unique_ptr< DeactivatedSubdomain const > > _deactivated_subdomains
std::unique_ptr< BoundaryCondition > createBoundaryCondition(const BoundaryConditionConfig &config, const NumLib::LocalToGlobalIndexMap &dof_table, const MeshLib::Mesh &bulk_mesh, const int variable_id, const unsigned integration_order, const unsigned shapefunction_order, const std::vector< std::unique_ptr< ParameterLib::ParameterBase >> &parameters, const Process &process)
std::vector< BoundaryConditionConfig > _bc_configs
void createBoundaryConditionsForDeactivatedSubDomains(const NumLib::LocalToGlobalIndexMap &dof_table, const int variable_id, std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters, std::vector< std::unique_ptr< BoundaryCondition >> &bcs)

◆ createBoundaryConditionsForDeactivatedSubDomains()

void ProcessLib::ProcessVariable::createBoundaryConditionsForDeactivatedSubDomains ( const NumLib::LocalToGlobalIndexMap dof_table,
const int  variable_id,
std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &  parameters,
std::vector< std::unique_ptr< BoundaryCondition >> &  bcs 
)
private

Definition at line 234 of file ProcessVariable.cpp.

References _deactivated_subdomains, NumLib::LocalToGlobalIndexMap::getNumberOfComponents(), and ProcessLib::DeactivatedSubdomain::zero_parameter_name.

Referenced by createBoundaryConditions().

238 {
239  auto& parameter = ParameterLib::findParameter<double>(
241 
242  for (auto const& deactivated_subdomain : _deactivated_subdomains)
243  {
244  auto const& deactivated_subdomain_meshes =
245  deactivated_subdomain->deactivated_subdomain_meshes;
246  for (auto const& deactivated_subdomain_mesh :
247  deactivated_subdomain_meshes)
248  {
249  for (int component_id = 0;
250  component_id < dof_table.getNumberOfComponents();
251  component_id++)
252  {
253  // Copy the time interval.
254  std::unique_ptr<BaseLib::TimeInterval> time_interval =
255  std::make_unique<BaseLib::TimeInterval>(
256  *deactivated_subdomain->time_interval);
257 
258  auto bc = std::make_unique<
259  DirichletBoundaryConditionWithinTimeInterval>(
260  std::move(time_interval), parameter,
261  *(deactivated_subdomain_mesh->mesh),
262  deactivated_subdomain_mesh->inactive_nodes, dof_table,
263  variable_id, component_id);
264 
265 #ifdef USE_PETSC
266  // TODO: make it work under PETSc too.
267  if (bc == nullptr)
268  {
269  continue;
270  }
271 #endif // USE_PETSC
272  bcs.push_back(std::move(bc));
273  }
274  }
275  }
276 }
std::vector< std::unique_ptr< DeactivatedSubdomain const > > _deactivated_subdomains
static const std::string zero_parameter_name

◆ createSourceTerms()

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 
)

Definition at line 323 of file ProcessVariable.cpp.

References _shapefunction_order, _source_term_configs, and ProcessLib::createSourceTerm().

Referenced by ProcessLib::SourceTermCollection::addSourceTermsForProcessVariables().

328 {
329  std::vector<std::unique_ptr<SourceTerm>> source_terms;
330 
331  for (auto& config : _source_term_configs)
332  {
333  source_terms.emplace_back(createSourceTerm(
334  config, dof_table, config.mesh, variable_id, integration_order,
335  _shapefunction_order, parameters));
336  }
337 
338  return source_terms;
339 }
std::vector< SourceTermConfig > _source_term_configs
std::unique_ptr< SourceTerm > createSourceTerm(const SourceTermConfig &config, const NumLib::LocalToGlobalIndexMap &dof_table_bulk, const MeshLib::Mesh &source_term_mesh, const int variable_id, const unsigned integration_order, const unsigned shapefunction_order, std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters)

◆ getActiveElementIDs()

std::vector<std::size_t>& ProcessLib::ProcessVariable::getActiveElementIDs ( ) const
inline

Definition at line 69 of file ProcessVariable.h.

Referenced by ProcessLib::HeatConduction::HeatConductionProcess::assembleConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsFlow::RichardsFlowProcess::assembleConcreteProcess(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::assembleConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::assembleConcreteProcess(), ProcessLib::TES::TESProcess::assembleConcreteProcess(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess::assembleConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleConcreteProcess(), ProcessLib::HT::HTProcess::assembleConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::assembleConcreteProcess(), ProcessLib::HeatConduction::HeatConductionProcess::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsFlow::RichardsFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::TES::TESProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::HT::HTProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::assembleWithJacobianConcreteProcess(), ProcessLib::HeatConduction::HeatConductionProcess::computeSecondaryVariableConcrete(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::computeSecondaryVariableConcrete(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::computeSecondaryVariableConcrete(), ProcessLib::LiquidFlow::LiquidFlowProcess::computeSecondaryVariableConcrete(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::postIterationConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::postTimestepConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::HT::HTProcess::postTimestepConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::postTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::preAssembleConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::preTimestepConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::preTimestepConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::preTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::HT::HTProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers(), and ProcessLib::ComponentTransport::ComponentTransportProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers().

70  {
72  }
std::vector< std::size_t > _ids_of_active_elements

◆ getDeactivatedSubdomains()

std::vector<std::unique_ptr<DeactivatedSubdomain const> > const& ProcessLib::ProcessVariable::getDeactivatedSubdomains ( ) const
inline

Definition at line 62 of file ProcessVariable.h.

63  {
65  }
std::vector< std::unique_ptr< DeactivatedSubdomain const > > _deactivated_subdomains

◆ getInitialCondition()

ParameterLib::Parameter<double> const& ProcessLib::ProcessVariable::getInitialCondition ( ) const
inline

Definition at line 89 of file ProcessVariable.h.

Referenced by ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::HydroMechanicsProcess().

90  {
91  return _initial_condition;
92  }
ParameterLib::Parameter< double > const & _initial_condition

◆ getMesh()

MeshLib::Mesh const & ProcessLib::ProcessVariable::getMesh ( ) const

Returns a mesh on which the process variable is defined.

Definition at line 194 of file ProcessVariable.cpp.

References _mesh.

195 {
196  return _mesh;
197 }

◆ getName()

◆ getNumberOfComponents()

◆ getShapeFunctionOrder()

◆ updateDeactivatedSubdomains()

void ProcessLib::ProcessVariable::updateDeactivatedSubdomains ( double const  time)

Definition at line 278 of file ProcessVariable.cpp.

References _deactivated_subdomains, _ids_of_active_elements, _mesh, MeshLib::Mesh::getElement(), MeshLib::Element::getID(), MeshLib::Mesh::getNumberOfElements(), and MeshLib::materialIDs().

279 {
280  if (_deactivated_subdomains.empty())
281  {
282  _ids_of_active_elements.clear();
283  return;
284  }
285 
286  auto found_a_set =
287  std::find_if(_deactivated_subdomains.begin(),
289  [&](auto& _deactivated_subdomain) {
290  return _deactivated_subdomain->includesTimeOf(time);
291  });
292 
293  if (found_a_set == _deactivated_subdomains.end())
294  {
295  _ids_of_active_elements.clear();
296  return;
297  }
298 
299  // Already initialized.
300  if (!_ids_of_active_elements.empty())
301  {
302  return;
303  }
304 
305  auto const& deactivated_materialIDs = (*found_a_set)->materialIDs;
306 
307  auto const* const material_ids = MeshLib::materialIDs(_mesh);
308  _ids_of_active_elements.clear();
309  auto const number_of_elements = _mesh.getNumberOfElements();
310 
311  for (std::size_t i = 0; i < number_of_elements; i++)
312  {
313  if (std::binary_search(deactivated_materialIDs.begin(),
314  deactivated_materialIDs.end(),
315  (*material_ids)[i]))
316  {
317  continue;
318  }
320  }
321 }
std::vector< std::unique_ptr< DeactivatedSubdomain const > > _deactivated_subdomains
const Element * getElement(std::size_t idx) const
Get the element with the given index.
Definition: Mesh.h:87
std::vector< std::size_t > _ids_of_active_elements
PropertyVector< int > const * materialIDs(Mesh const &mesh)
Definition: Mesh.cpp:403
virtual std::size_t getID() const final
Returns the ID of the element.
Definition: Element.h:90
std::size_t getNumberOfElements() const
Get the number of elements.
Definition: Mesh.h:96

Member Data Documentation

◆ _bc_configs

std::vector<BoundaryConditionConfig> ProcessLib::ProcessVariable::_bc_configs
private

Definition at line 129 of file ProcessVariable.h.

Referenced by createBoundaryConditions(), and ProcessVariable().

◆ _deactivated_subdomains

std::vector<std::unique_ptr<DeactivatedSubdomain const> > ProcessLib::ProcessVariable::_deactivated_subdomains
private

◆ _ids_of_active_elements

std::vector<std::size_t> ProcessLib::ProcessVariable::_ids_of_active_elements
mutableprivate

IDs of the active elements. It is initialized only if there are deactivated subdomains.

Definition at line 119 of file ProcessVariable.h.

Referenced by updateDeactivatedSubdomains().

◆ _initial_condition

ParameterLib::Parameter<double> const& ProcessLib::ProcessVariable::_initial_condition
private

Definition at line 127 of file ProcessVariable.h.

◆ _mesh

MeshLib::Mesh& ProcessLib::ProcessVariable::_mesh
private

◆ _n_components

const int ProcessLib::ProcessVariable::_n_components
private

Definition at line 98 of file ProcessVariable.h.

Referenced by ProcessVariable().

◆ _name

std::string const ProcessLib::ProcessVariable::_name
private

Definition at line 96 of file ProcessVariable.h.

Referenced by getName(), and ProcessVariable().

◆ _shapefunction_order

unsigned ProcessLib::ProcessVariable::_shapefunction_order
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>).

See also
MeshLib::CellRule MeshLib::FaceRule MeshLib::EdgeRule.

Definition at line 112 of file ProcessVariable.h.

Referenced by createBoundaryConditions(), createSourceTerms(), and ProcessVariable().

◆ _source_term_configs

std::vector<SourceTermConfig> ProcessLib::ProcessVariable::_source_term_configs
private

Definition at line 130 of file ProcessVariable.h.

Referenced by createSourceTerms(), and ProcessVariable().


The documentation for this class was generated from the following files: