OGS 6.2.1-76-gbb689931b
ProcessLib::Process Class Referenceabstract

Detailed Description

Definition at line 39 of file Process.h.

#include <Process.h>

Inheritance diagram for ProcessLib::Process:
Collaboration diagram for ProcessLib::Process:

Public Types

using NonlinearSolver = NumLib::NonlinearSolverBase
 
using TimeDiscretization = NumLib::TimeDiscretization
 

Public Member Functions

 Process (std::string name_, MeshLib::Mesh &mesh, std::unique_ptr< AbstractJacobianAssembler > &&jacobian_assembler, std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters, unsigned const integration_order, std::vector< std::vector< std::reference_wrapper< ProcessVariable >>> &&process_variables, SecondaryVariableCollection &&secondary_variables, NumLib::NamedFunctionCaller &&named_function_caller, const bool use_monolithic_scheme=true)
 
void preTimestep (GlobalVector const &x, const double t, const double delta_t, const int process_id)
 Preprocessing before starting assembly for new timestep. More...
 
void postTimestep (GlobalVector const &x, const double t, const double delta_t, int const process_id)
 Postprocessing after a complete timestep. More...
 
void postNonLinearSolver (GlobalVector const &x, const double t, int const process_id)
 
void preIteration (const unsigned iter, GlobalVector const &x) final
 
void computeSecondaryVariable (const double t, GlobalVector const &x, int const process_id)
 compute secondary variables for the coupled equations or for output. More...
 
NumLib::IterationResult postIteration (GlobalVector const &x) final
 
void initialize ()
 
void setInitialConditions (const int process_id, const double t, GlobalVector &x)
 
MathLib::MatrixSpecifications getMatrixSpecifications (const int process_id) const override
 
void setCoupledSolutionsForStaggeredScheme (CoupledSolutionsForStaggeredScheme *const coupled_solutions)
 
void updateDeactivatedSubdomains (double const time, const int process_id)
 
bool isMonolithicSchemeUsed () const
 
virtual void setCoupledTermForTheStaggeredSchemeToLocalAssemblers ()
 
void preAssemble (const double t, GlobalVector const &x) final
 
void assemble (const double t, GlobalVector const &x, GlobalMatrix &M, GlobalMatrix &K, GlobalVector &b) final
 
void assembleWithJacobian (const double t, GlobalVector const &x, GlobalVector const &xdot, const double dxdot_dx, const double dx_dx, GlobalMatrix &M, GlobalMatrix &K, GlobalVector &b, GlobalMatrix &Jac) final
 
std::vector< NumLib::IndexValueVector< GlobalIndexType > > const * getKnownSolutions (double const t, GlobalVector const &x) const final
 
virtual NumLib::LocalToGlobalIndexMap const & getDOFTable (const int) const
 
MeshLib::MeshgetMesh () const
 
std::vector< std::reference_wrapper< ProcessVariable > > const & getProcessVariables (const int process_id) const
 
SecondaryVariableCollection const & getSecondaryVariables () const
 
std::vector< std::unique_ptr< IntegrationPointWriter > > const & getIntegrationPointWriter () const
 
virtual Eigen::Vector3d getFlux (std::size_t, MathLib::Point3d const &, double const, GlobalVector const &) const
 

Public Attributes

std::string const name
 

Protected Member Functions

NumLib::ExtrapolatorgetExtrapolator () const
 
NumLib::LocalToGlobalIndexMap const & getSingleComponentDOFTable () const
 
void initializeProcessBoundaryConditionsAndSourceTerms (const NumLib::LocalToGlobalIndexMap &dof_table, const int process_id)
 
virtual void constructDofTable ()
 
void constructMonolithicProcessDofTable ()
 
void constructDofTableOfSpecifiedProsessStaggerdScheme (const int specified_prosess_id)
 
virtual std::tuple< NumLib::LocalToGlobalIndexMap *, bool > getDOFTableForExtrapolatorData () const
 

Protected Attributes

MeshLib::Mesh_mesh
 
std::unique_ptr< MeshLib::MeshSubset const > _mesh_subset_all_nodes
 
std::unique_ptr< NumLib::LocalToGlobalIndexMap_local_to_global_index_map
 
SecondaryVariableCollection _secondary_variables
 
NumLib::NamedFunctionCaller _named_function_caller
 
std::vector< std::unique_ptr< CachedSecondaryVariable > > _cached_secondary_variables
 
SecondaryVariableContext _secondary_variable_context
 
VectorMatrixAssembler _global_assembler
 
const bool _use_monolithic_scheme
 
CoupledSolutionsForStaggeredScheme_coupled_solutions
 
unsigned const _integration_order
 
std::vector< std::unique_ptr< IntegrationPointWriter > > _integration_point_writer
 
GlobalSparsityPattern _sparsity_pattern
 
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
 
std::vector< BoundaryConditionCollection_boundary_conditions
 

Private Member Functions

virtual void initializeConcreteProcess (NumLib::LocalToGlobalIndexMap const &dof_table, MeshLib::Mesh const &mesh, unsigned const integration_order)=0
 Process specific initialization called by initialize(). More...
 
virtual void initializeBoundaryConditions ()
 
virtual void setInitialConditionsConcreteProcess (GlobalVector const &, double const)
 
virtual void preAssembleConcreteProcess (const double, GlobalVector const &)
 
virtual void assembleConcreteProcess (const double t, GlobalVector const &x, GlobalMatrix &M, GlobalMatrix &K, GlobalVector &b)=0
 
virtual void assembleWithJacobianConcreteProcess (const double t, GlobalVector const &x, GlobalVector const &xdot, const double dxdot_dx, const double dx_dx, GlobalMatrix &M, GlobalMatrix &K, GlobalVector &b, GlobalMatrix &Jac)=0
 
virtual void preTimestepConcreteProcess (GlobalVector const &, const double, const double, const int)
 
virtual void postTimestepConcreteProcess (GlobalVector const &, const double, const double, int const)
 
virtual void postNonLinearSolverConcreteProcess (GlobalVector const &, const double, int const)
 
virtual void preIterationConcreteProcess (const unsigned, GlobalVector const &)
 
virtual void computeSecondaryVariableConcrete (const double, GlobalVector const &, int const)
 
virtual NumLib::IterationResult postIterationConcreteProcess (GlobalVector const &)
 
void initializeExtrapolator ()
 
void finishNamedFunctionsInitialization ()
 
void computeSparsityPattern ()
 

Private Attributes

std::vector< SourceTermCollection_source_term_collections
 
ExtrapolatorData _extrapolator_data
 

Member Typedef Documentation

◆ NonlinearSolver

◆ TimeDiscretization

Constructor & Destructor Documentation

◆ Process()

ProcessLib::Process::Process ( std::string  name_,
MeshLib::Mesh mesh,
std::unique_ptr< AbstractJacobianAssembler > &&  jacobian_assembler,
std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &  parameters,
unsigned const  integration_order,
std::vector< std::vector< std::reference_wrapper< ProcessVariable >>> &&  process_variables,
SecondaryVariableCollection &&  secondary_variables,
NumLib::NamedFunctionCaller &&  named_function_caller,
const bool  use_monolithic_scheme = true 
)

Definition at line 24 of file Process.cpp.

References _process_variables, and _source_term_collections.

35  : name(std::move(name_)),
36  _mesh(mesh),
37  _secondary_variables(std::move(secondary_variables)),
38  _named_function_caller(std::move(named_function_caller)),
39  _global_assembler(std::move(jacobian_assembler)),
40  _use_monolithic_scheme(use_monolithic_scheme),
41  _coupled_solutions(nullptr),
42  _integration_order(integration_order),
43  _process_variables(std::move(process_variables)),
44  _boundary_conditions([&](const std::size_t number_of_process_variables)
45  -> std::vector<BoundaryConditionCollection> {
46  std::vector<BoundaryConditionCollection> pcs_BCs;
47  pcs_BCs.reserve(number_of_process_variables);
48  for (std::size_t i = 0; i < number_of_process_variables; i++)
49  {
50  pcs_BCs.emplace_back(BoundaryConditionCollection(parameters));
51  }
52  return pcs_BCs;
53  }(_process_variables.size())),
54  _source_term_collections([&](const std::size_t number_of_processes)
55  -> std::vector<SourceTermCollection> {
56  std::vector<SourceTermCollection> pcs_sts;
57  pcs_sts.reserve(number_of_processes);
58  for (std::size_t i = 0; i < number_of_processes; i++)
59  {
60  pcs_sts.emplace_back(SourceTermCollection(parameters));
61  }
62  return pcs_sts;
63  }(_process_variables.size()))
64 {
65 }
MeshLib::Mesh & _mesh
Definition: Process.h:287
std::vector< SourceTermCollection > _source_term_collections
Definition: Process.h:337
NumLib::NamedFunctionCaller _named_function_caller
Definition: Process.h:294
unsigned const _integration_order
Definition: Process.h:310
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
Definition: Process.h:326
std::vector< BoundaryConditionCollection > _boundary_conditions
Definition: Process.h:331
SecondaryVariableCollection _secondary_variables
Definition: Process.h:292
CoupledSolutionsForStaggeredScheme * _coupled_solutions
Definition: Process.h:305
const bool _use_monolithic_scheme
Definition: Process.h:301
VectorMatrixAssembler _global_assembler
Definition: Process.h:299
std::string const name
Definition: Process.h:284

Member Function Documentation

◆ assemble()

void ProcessLib::Process::assemble ( const double  t,
GlobalVector const &  x,
GlobalMatrix &  M,
GlobalMatrix &  K,
GlobalVector &  b 
)
final

Definition at line 196 of file Process.cpp.

References _boundary_conditions, _coupled_solutions, _source_term_collections, assembleConcreteProcess(), and ProcessLib::CoupledSolutionsForStaggeredScheme::process_id.

198 {
199  MathLib::LinAlg::setLocalAccessibleVector(x);
200 
201  assembleConcreteProcess(t, x, M, K, b);
202 
203  const auto pcs_id =
205  // the last argument is for the jacobian, nullptr is for a unused jacobian
206  _boundary_conditions[pcs_id].applyNaturalBC(t, x, K, b, nullptr);
207 
208  // the last argument is for the jacobian, nullptr is for a unused jacobian
209  _source_term_collections[pcs_id].integrate(t, x, b, nullptr);
210 }
std::vector< SourceTermCollection > _source_term_collections
Definition: Process.h:337
std::vector< BoundaryConditionCollection > _boundary_conditions
Definition: Process.h:331
virtual void assembleConcreteProcess(const double t, GlobalVector const &x, GlobalMatrix &M, GlobalMatrix &K, GlobalVector &b)=0
CoupledSolutionsForStaggeredScheme * _coupled_solutions
Definition: Process.h:305

◆ assembleConcreteProcess()

virtual void ProcessLib::Process::assembleConcreteProcess ( const double  t,
GlobalVector const &  x,
GlobalMatrix &  M,
GlobalMatrix &  K,
GlobalVector &  b 
)
privatepure virtual

◆ assembleWithJacobian()

void ProcessLib::Process::assembleWithJacobian ( const double  t,
GlobalVector const &  x,
GlobalVector const &  xdot,
const double  dxdot_dx,
const double  dx_dx,
GlobalMatrix &  M,
GlobalMatrix &  K,
GlobalVector &  b,
GlobalMatrix &  Jac 
)
final

Definition at line 212 of file Process.cpp.

References _boundary_conditions, _coupled_solutions, _source_term_collections, assembleWithJacobianConcreteProcess(), and ProcessLib::CoupledSolutionsForStaggeredScheme::process_id.

217 {
218  MathLib::LinAlg::setLocalAccessibleVector(x);
219  MathLib::LinAlg::setLocalAccessibleVector(xdot);
220 
221  assembleWithJacobianConcreteProcess(t, x, xdot, dxdot_dx, dx_dx, M, K, b,
222  Jac);
223 
224  // TODO: apply BCs to Jacobian.
225  const auto pcs_id =
227  _boundary_conditions[pcs_id].applyNaturalBC(t, x, K, b, &Jac);
228 
229  // the last argument is for the jacobian, nullptr is for a unused jacobian
230  _source_term_collections[pcs_id].integrate(t, x, b, &Jac);
231 }
std::vector< SourceTermCollection > _source_term_collections
Definition: Process.h:337
std::vector< BoundaryConditionCollection > _boundary_conditions
Definition: Process.h:331
CoupledSolutionsForStaggeredScheme * _coupled_solutions
Definition: Process.h:305
virtual void assembleWithJacobianConcreteProcess(const double t, GlobalVector const &x, GlobalVector const &xdot, const double dxdot_dx, const double dx_dx, GlobalMatrix &M, GlobalMatrix &K, GlobalVector &b, GlobalMatrix &Jac)=0

◆ assembleWithJacobianConcreteProcess()

virtual void ProcessLib::Process::assembleWithJacobianConcreteProcess ( const double  t,
GlobalVector const &  x,
GlobalVector const &  xdot,
const double  dxdot_dx,
const double  dx_dx,
GlobalMatrix &  M,
GlobalMatrix &  K,
GlobalVector &  b,
GlobalMatrix &  Jac 
)
privatepure virtual

◆ computeSecondaryVariable()

void ProcessLib::Process::computeSecondaryVariable ( const double  t,
GlobalVector const &  x,
int const  process_id 
)

compute secondary variables for the coupled equations or for output.

Definition at line 408 of file Process.cpp.

References computeSecondaryVariableConcrete().

410 {
411  MathLib::LinAlg::setLocalAccessibleVector(x);
412 
413  computeSecondaryVariableConcrete(t, x, process_id);
414 }
virtual void computeSecondaryVariableConcrete(const double, GlobalVector const &, int const)
Definition: Process.h:225

◆ computeSecondaryVariableConcrete()

◆ computeSparsityPattern()

void ProcessLib::Process::computeSparsityPattern ( )
private

Computes and stores global matrix' sparsity pattern from given DOF-table.

Definition at line 374 of file Process.cpp.

References _local_to_global_index_map, _mesh, _sparsity_pattern, and NumLib::computeSparsityPattern().

Referenced by initialize().

375 {
378 }
MeshLib::Mesh & _mesh
Definition: Process.h:287
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:290
GlobalSparsityPattern computeSparsityPattern(LocalToGlobalIndexMap const &dof_table, MeshLib::Mesh const &mesh)
Computes a sparsity pattern for the given inputs.
GlobalSparsityPattern _sparsity_pattern
Definition: Process.h:318

◆ constructDofTable()

void ProcessLib::Process::constructDofTable ( )
protectedvirtual

This function is for general cases, in which all equations of the coupled processes have the same number of unknowns. For the general cases with the staggered scheme, all equations of the coupled processes share one DOF table hold by _local_to_global_index_map. Other cases can be considered by overloading this member function in the derived class.

Reimplemented in ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >, ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >, ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >, ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >, ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >, ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >, ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >, ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >, and ProcessLib::HeatTransportBHE::HeatTransportBHEProcess.

Definition at line 233 of file Process.cpp.

References _use_monolithic_scheme, constructDofTableOfSpecifiedProsessStaggerdScheme(), and constructMonolithicProcessDofTable().

Referenced by initialize().

234 {
236  {
238 
239  return;
240  }
241 
242  // For staggered scheme:
243  const int specified_prosess_id = 0;
245 }
void constructMonolithicProcessDofTable()
Definition: Process.cpp:247
void constructDofTableOfSpecifiedProsessStaggerdScheme(const int specified_prosess_id)
Definition: Process.cpp:281
const bool _use_monolithic_scheme
Definition: Process.h:301

◆ constructDofTableOfSpecifiedProsessStaggerdScheme()

void ProcessLib::Process::constructDofTableOfSpecifiedProsessStaggerdScheme ( const int  specified_prosess_id)
protected

Construct the DOF table for a specified process in the staggered scheme, which is stored in the member of this class, _local_to_global_index_map.

Definition at line 281 of file Process.cpp.

References _local_to_global_index_map, _mesh, _mesh_subset_all_nodes, _process_variables, NumLib::BY_LOCATION, and MeshLib::Mesh::getNodes().

Referenced by ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::constructDofTable(), and constructDofTable().

283 {
284  // Create single component dof in every of the mesh nodes.
286  std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
287 
288  // Vector of mesh subsets.
289  std::vector<MeshLib::MeshSubset> all_mesh_subsets;
290 
291  // Vector of the number of variable components
292  std::vector<int> vec_var_n_components;
293  // Collect the mesh subsets in a vector for each variables' components.
294  std::generate_n(std::back_inserter(all_mesh_subsets),
295  _process_variables[specified_prosess_id][0]
296  .get()
297  .getNumberOfComponents(),
298  [&]() { return *_mesh_subset_all_nodes; });
299 
300  // Create a vector of the number of variable components.
301  vec_var_n_components.push_back(_process_variables[specified_prosess_id][0]
302  .get()
303  .getNumberOfComponents());
305  std::make_unique<NumLib::LocalToGlobalIndexMap>(
306  std::move(all_mesh_subsets), vec_var_n_components,
308 
310 }
MeshLib::Mesh & _mesh
Definition: Process.h:287
std::unique_ptr< MeshLib::MeshSubset const > _mesh_subset_all_nodes
Definition: Process.h:288
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
Definition: Process.h:326
std::vector< Node * > const & getNodes() const
Get the nodes-vector for the mesh.
Definition: Mesh.h:105
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:290
Ordering data by spatial location.

◆ constructMonolithicProcessDofTable()

void ProcessLib::Process::constructMonolithicProcessDofTable ( )
protected

Construct the DOF table for the monolithic scheme, which is stored in the member of this class, _local_to_global_index_map.

Definition at line 247 of file Process.cpp.

References _local_to_global_index_map, _mesh, _mesh_subset_all_nodes, _process_variables, NumLib::BY_LOCATION, and MeshLib::Mesh::getNodes().

Referenced by ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::constructDofTable(), and constructDofTable().

248 {
249  // Create single component dof in every of the mesh nodes.
251  std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
252 
253  // Vector of mesh subsets.
254  std::vector<MeshLib::MeshSubset> all_mesh_subsets;
255 
256  // Vector of the number of variable components
257  std::vector<int> vec_var_n_components;
258  // Collect the mesh subsets in a vector for the components of each
259  // variables.
260  for (ProcessVariable const& pv : _process_variables[0])
261  {
262  std::generate_n(std::back_inserter(all_mesh_subsets),
263  pv.getNumberOfComponents(),
264  [&]() { return *_mesh_subset_all_nodes; });
265  }
266 
267  // Create a vector of the number of variable components
268  for (ProcessVariable const& pv : _process_variables[0])
269  {
270  vec_var_n_components.push_back(pv.getNumberOfComponents());
271  }
272 
274  std::make_unique<NumLib::LocalToGlobalIndexMap>(
275  std::move(all_mesh_subsets), vec_var_n_components,
277 
279 }
MeshLib::Mesh & _mesh
Definition: Process.h:287
std::unique_ptr< MeshLib::MeshSubset const > _mesh_subset_all_nodes
Definition: Process.h:288
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
Definition: Process.h:326
std::vector< Node * > const & getNodes() const
Get the nodes-vector for the mesh.
Definition: Mesh.h:105
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:290
Ordering data by spatial location.

◆ finishNamedFunctionsInitialization()

void ProcessLib::Process::finishNamedFunctionsInitialization ( )
private

Finishes the _named_function_caller and adds a secondary variable for each of the named functions.

Definition at line 354 of file Process.cpp.

References _mesh, _named_function_caller, _secondary_variable_context, _secondary_variables, ProcessLib::SecondaryVariableCollection::addSecondaryVariable(), NumLib::NamedFunctionCaller::applyPlugs(), ProcessLib::GlobalVectorFromNamedFunction::call(), BaseLib::easyBind(), NumLib::NamedFunctionCaller::getNamedFunctions(), getSingleComponentDOFTable(), NumLib::NamedFunctionCaller::getSpecificFunctionCaller(), and name.

Referenced by initialize().

355 {
357 
358  for (auto const& named_function :
360  {
361  auto const& name = named_function.getName();
363  name,
364  {1, BaseLib::easyBind(
366  GlobalVectorFromNamedFunction(
370  nullptr});
371  }
372 }
MeshLib::Mesh & _mesh
Definition: Process.h:287
NumLib::NamedFunctionCaller _named_function_caller
Definition: Process.h:294
GlobalVector const & call(const double t, GlobalVector const &x, NumLib::LocalToGlobalIndexMap const &dof_table, std::unique_ptr< GlobalVector > &result)
SecondaryVariableCollection _secondary_variables
Definition: Process.h:292
std::enable_if< std::is_same< MethodClass, typename std::remove_cv< typename std::remove_pointer< typename std::decay< Object >::type >::type >::type >::value, std::function< ReturnType(Args...)> >::type easyBind(ReturnType(MethodClass::*method)(Args...), Object &&obj)
Definition: Functional.h:180
SecondaryVariableContext _secondary_variable_context
Definition: Process.h:297
void addSecondaryVariable(std::string const &internal_name, SecondaryVariableFunctions &&fcts)
NumLib::LocalToGlobalIndexMap const & getSingleComponentDOFTable() const
Definition: Process.h:157
std::vector< NamedFunction > const & getNamedFunctions() const
Returns all named functions associated with the caller instance.
std::string const name
Definition: Process.h:284
SpecificFunctionCaller getSpecificFunctionCaller(std::string const &function_name)

◆ getDOFTable()

◆ getDOFTableForExtrapolatorData()

std::tuple< NumLib::LocalToGlobalIndexMap *, bool > ProcessLib::Process::getDOFTableForExtrapolatorData ( ) const
protectedvirtual

Get the address of a LocalToGlobalIndexMap, and the status of its memory. If the LocalToGlobalIndexMap is created as new in this function, the function also returns a true boolean value to let Extrapolator manage the memory by the address returned by this function.

Returns
Address of a LocalToGlobalIndexMap and its memory status.

Reimplemented in ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >, ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >, ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >, and ProcessLib::HT::HTProcess.

Definition at line 313 of file Process.cpp.

References _local_to_global_index_map, _mesh_subset_all_nodes, and NumLib::BY_LOCATION.

Referenced by initializeExtrapolator().

314 {
315  if (_local_to_global_index_map->getNumberOfComponents() == 1)
316  {
317  // For single-variable-single-component processes reuse the existing DOF
318  // table.
319  const bool manage_storage = false;
320  return std::make_tuple(_local_to_global_index_map.get(),
321  manage_storage);
322  }
323 
324  // Otherwise construct a new DOF table.
325  std::vector<MeshLib::MeshSubset> all_mesh_subsets_single_component;
326  all_mesh_subsets_single_component.emplace_back(*_mesh_subset_all_nodes);
327 
328  const bool manage_storage = true;
329 
330  return std::make_tuple(new NumLib::LocalToGlobalIndexMap(
331  std::move(all_mesh_subsets_single_component),
332  // by location order is needed for output
334  manage_storage);
335 }
std::unique_ptr< MeshLib::MeshSubset const > _mesh_subset_all_nodes
Definition: Process.h:288
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:290
Ordering data by spatial location.

◆ getExtrapolator()

NumLib::Extrapolator& ProcessLib::Process::getExtrapolator ( ) const
inlineprotected

Definition at line 152 of file Process.h.

Referenced by ProcessLib::HeatConduction::HeatConductionProcess::initializeConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsFlow::RichardsFlowProcess::initializeConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::initializeConcreteProcess(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess::initializeConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::initializeConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::initializeConcreteProcess(), ProcessLib::HT::HTProcess::initializeConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::initializeConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::initializeConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::initializeConcreteProcess(), and ProcessLib::TES::TESProcess::initializeSecondaryVariables().

153  {
155  }
ExtrapolatorData _extrapolator_data
Definition: Process.h:339
NumLib::Extrapolator & getExtrapolator() const

◆ getFlux()

virtual Eigen::Vector3d ProcessLib::Process::getFlux ( std::size_t  ,
MathLib::Point3d const &  ,
double  const,
GlobalVector const &   
) const
inlinevirtual

◆ getIntegrationPointWriter()

std::vector<std::unique_ptr<IntegrationPointWriter> > const& ProcessLib::Process::getIntegrationPointWriter ( ) const
inline

Definition at line 136 of file Process.h.

Referenced by ProcessLib::Output::doOutputAlways(), and ProcessLib::Output::doOutputNonlinearIteration().

137  {
139  }
std::vector< std::unique_ptr< IntegrationPointWriter > > _integration_point_writer
Definition: Process.h:316

◆ getKnownSolutions()

std::vector<NumLib::IndexValueVector<GlobalIndexType> > const* ProcessLib::Process::getKnownSolutions ( double const  t,
GlobalVector const &  x 
) const
inlinefinal

Definition at line 110 of file Process.h.

111  {
112  const auto pcs_id =
114  return _boundary_conditions[pcs_id].getKnownSolutions(t, x);
115  }
std::vector< BoundaryConditionCollection > _boundary_conditions
Definition: Process.h:331
CoupledSolutionsForStaggeredScheme * _coupled_solutions
Definition: Process.h:305

◆ getMatrixSpecifications()

MathLib::MatrixSpecifications ProcessLib::Process::getMatrixSpecifications ( const int  process_id) const
override

Definition at line 173 of file Process.cpp.

References _local_to_global_index_map, and _sparsity_pattern.

175 {
176  auto const& l = *_local_to_global_index_map;
177  return {l.dofSizeWithoutGhosts(), l.dofSizeWithoutGhosts(),
178  &l.getGhostIndices(), &_sparsity_pattern};
179 }
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:290
GlobalSparsityPattern _sparsity_pattern
Definition: Process.h:318

◆ getMesh()

◆ getProcessVariables()

std::vector<std::reference_wrapper<ProcessVariable> > const& ProcessLib::Process::getProcessVariables ( const int  process_id) const
inline

Definition at line 125 of file Process.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::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HeatConduction::HeatConductionProcess::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsFlow::RichardsFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::TES::TESProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::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::GroundwaterFlow::GroundwaterFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::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::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::createConstraintDirichletBoundaryCondition(), ProcessLib::Output::doOutputAlways(), ProcessLib::Output::doOutputNonlinearIteration(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::HydroMechanicsProcess(), ProcessLib::HeatConduction::HeatConductionProcess::initializeConcreteProcess(), ProcessLib::RichardsFlow::RichardsFlowProcess::initializeConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::initializeConcreteProcess(), ProcessLib::TES::TESProcess::initializeConcreteProcess(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess::initializeConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::initializeConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::initializeConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::initializeConcreteProcess(), ProcessLib::HT::HTProcess::initializeConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::initializeConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::initializeConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::initializeConcreteProcess(), ProcessLib::SurfaceFluxData::integrate(), 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::HT::HTProcess::postTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::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(), ProcessLib::ComponentTransport::ComponentTransportProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers(), and updateDeactivatedSubdomains().

126  {
127  return _process_variables[process_id];
128  }
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
Definition: Process.h:326

◆ getSecondaryVariables()

SecondaryVariableCollection const& ProcessLib::Process::getSecondaryVariables ( ) const
inline

Definition at line 130 of file Process.h.

Referenced by ProcessLib::Output::doOutputAlways(), and ProcessLib::Output::doOutputNonlinearIteration().

131  {
132  return _secondary_variables;
133  }
SecondaryVariableCollection _secondary_variables
Definition: Process.h:292

◆ getSingleComponentDOFTable()

NumLib::LocalToGlobalIndexMap const& ProcessLib::Process::getSingleComponentDOFTable ( ) const
inlineprotected

◆ initialize()

void ProcessLib::Process::initialize ( )

Definition at line 94 of file Process.cpp.

References _integration_order, _local_to_global_index_map, _mesh, computeSparsityPattern(), constructDofTable(), finishNamedFunctionsInitialization(), initializeBoundaryConditions(), initializeConcreteProcess(), and initializeExtrapolator().

95 {
96  DBUG("Initialize process.");
97 
98  DBUG("Construct dof mappings.");
100 
101  DBUG("Compute sparsity pattern");
103 
104  DBUG("Initialize the extrapolator");
106 
109 
111 
112  DBUG("Initialize boundary conditions.");
114 }
MeshLib::Mesh & _mesh
Definition: Process.h:287
unsigned const _integration_order
Definition: Process.h:310
void finishNamedFunctionsInitialization()
Definition: Process.cpp:354
void initializeExtrapolator()
Definition: Process.cpp:337
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:290
virtual void initializeBoundaryConditions()
Definition: Process.cpp:81
virtual void constructDofTable()
Definition: Process.cpp:233
void computeSparsityPattern()
Definition: Process.cpp:374
virtual void initializeConcreteProcess(NumLib::LocalToGlobalIndexMap const &dof_table, MeshLib::Mesh const &mesh, unsigned const integration_order)=0
Process specific initialization called by initialize().

◆ initializeBoundaryConditions()

void ProcessLib::Process::initializeBoundaryConditions ( )
privatevirtual

Member function to initialize the boundary conditions for all coupled processes. It is called by initialize().

Reimplemented in ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >, ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >, ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >, ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >, ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >, and ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >.

Definition at line 81 of file Process.cpp.

References _local_to_global_index_map, _process_variables, and initializeProcessBoundaryConditionsAndSourceTerms().

Referenced by initialize().

82 {
83  // The number of processes is identical to the size of _process_variables,
84  // the vector contains variables for different processes. See the
85  // documentation of _process_variables.
86  const std::size_t number_of_processes = _process_variables.size();
87  for (std::size_t pcs_id = 0; pcs_id < number_of_processes; pcs_id++)
88  {
91  }
92 }
void initializeProcessBoundaryConditionsAndSourceTerms(const NumLib::LocalToGlobalIndexMap &dof_table, const int process_id)
Definition: Process.cpp:67
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
Definition: Process.h:326
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:290

◆ initializeConcreteProcess()

virtual void ProcessLib::Process::initializeConcreteProcess ( NumLib::LocalToGlobalIndexMap const &  dof_table,
MeshLib::Mesh const &  mesh,
unsigned const  integration_order 
)
privatepure virtual

Process specific initialization called by initialize().

Implemented in ProcessLib::ComponentTransport::ComponentTransportProcess, ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess, ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >, ProcessLib::HT::HTProcess, ProcessLib::LiquidFlow::LiquidFlowProcess, ProcessLib::GroundwaterFlow::GroundwaterFlowProcess, ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >, ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >, ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >, ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >, ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >, ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >, ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess, ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >, ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess, ProcessLib::TES::TESProcess, ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess, ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >, ProcessLib::HeatTransportBHE::HeatTransportBHEProcess, ProcessLib::RichardsFlow::RichardsFlowProcess, ProcessLib::HeatConduction::HeatConductionProcess, and ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >.

Referenced by initialize().

◆ initializeExtrapolator()

void ProcessLib::Process::initializeExtrapolator ( )
private

Definition at line 337 of file Process.cpp.

References _extrapolator_data, and getDOFTableForExtrapolatorData().

Referenced by initialize().

338 {
339  NumLib::LocalToGlobalIndexMap* dof_table_single_component;
340  bool manage_storage;
341 
342  std::tie(dof_table_single_component, manage_storage) =
344 
345  std::unique_ptr<NumLib::Extrapolator> extrapolator(
347  *dof_table_single_component));
348 
349  // TODO: Later on the DOF table can change during the simulation!
350  _extrapolator_data = ExtrapolatorData(
351  std::move(extrapolator), dof_table_single_component, manage_storage);
352 }
ExtrapolatorData _extrapolator_data
Definition: Process.h:339
virtual std::tuple< NumLib::LocalToGlobalIndexMap *, bool > getDOFTableForExtrapolatorData() const
Definition: Process.cpp:313

◆ initializeProcessBoundaryConditionsAndSourceTerms()

void ProcessLib::Process::initializeProcessBoundaryConditionsAndSourceTerms ( const NumLib::LocalToGlobalIndexMap dof_table,
const int  process_id 
)
protected

Initialize the boundary conditions for a single process or coupled processes modelled by the monolithic scheme. It is called by initializeBoundaryConditions().

Definition at line 67 of file Process.cpp.

References _boundary_conditions, _integration_order, _process_variables, and _source_term_collections.

Referenced by ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::initializeBoundaryConditions(), and initializeBoundaryConditions().

69 {
70  auto const& per_process_variables = _process_variables[process_id];
71  auto& per_process_BCs = _boundary_conditions[process_id];
72 
73  per_process_BCs.addBCsForProcessVariables(per_process_variables, dof_table,
74  _integration_order, *this);
75 
76  auto& per_process_sts = _source_term_collections[process_id];
77  per_process_sts.addSourceTermsForProcessVariables(
78  per_process_variables, dof_table, _integration_order);
79 }
std::vector< SourceTermCollection > _source_term_collections
Definition: Process.h:337
unsigned const _integration_order
Definition: Process.h:310
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
Definition: Process.h:326
std::vector< BoundaryConditionCollection > _boundary_conditions
Definition: Process.h:331

◆ isMonolithicSchemeUsed()

bool ProcessLib::Process::isMonolithicSchemeUsed ( ) const
inline

◆ postIteration()

NumLib::IterationResult ProcessLib::Process::postIteration ( GlobalVector const &  x)
final

Definition at line 428 of file Process.cpp.

References postIterationConcreteProcess().

429 {
430  MathLib::LinAlg::setLocalAccessibleVector(x);
432 }
virtual NumLib::IterationResult postIterationConcreteProcess(GlobalVector const &)
Definition: Process.h:231

◆ postIterationConcreteProcess()

virtual NumLib::IterationResult ProcessLib::Process::postIterationConcreteProcess ( GlobalVector const &  )
inlineprivatevirtual

◆ postNonLinearSolver()

void ProcessLib::Process::postNonLinearSolver ( GlobalVector const &  x,
const double  t,
int const  process_id 
)

Calculates secondary variables, e.g. stress and strain for deformation analysis, only after nonlinear solver being successfully conducted.

Definition at line 401 of file Process.cpp.

References postNonLinearSolverConcreteProcess().

403 {
404  MathLib::LinAlg::setLocalAccessibleVector(x);
405  postNonLinearSolverConcreteProcess(x, t, process_id);
406 }
virtual void postNonLinearSolverConcreteProcess(GlobalVector const &, const double, int const)
Definition: Process.h:214

◆ postNonLinearSolverConcreteProcess()

◆ postTimestep()

void ProcessLib::Process::postTimestep ( GlobalVector const &  x,
const double  t,
const double  delta_t,
int const  process_id 
)

Postprocessing after a complete timestep.

Definition at line 394 of file Process.cpp.

References postTimestepConcreteProcess().

396 {
397  MathLib::LinAlg::setLocalAccessibleVector(x);
398  postTimestepConcreteProcess(x, t, delta_t, process_id);
399 }
virtual void postTimestepConcreteProcess(GlobalVector const &, const double, const double, int const)
Definition: Process.h:207

◆ postTimestepConcreteProcess()

◆ preAssemble()

void ProcessLib::Process::preAssemble ( const double  t,
GlobalVector const &  x 
)
final

Definition at line 191 of file Process.cpp.

References preAssembleConcreteProcess().

192 {
194 }
virtual void preAssembleConcreteProcess(const double, GlobalVector const &)
Definition: Process.h:186

◆ preAssembleConcreteProcess()

virtual void ProcessLib::Process::preAssembleConcreteProcess ( const double  ,
GlobalVector const &   
)
inlineprivatevirtual

Reimplemented in ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >.

Definition at line 186 of file Process.h.

Referenced by preAssemble().

188  {
189  }

◆ preIteration()

void ProcessLib::Process::preIteration ( const unsigned  iter,
GlobalVector const &  x 
)
final

Definition at line 416 of file Process.cpp.

References _cached_secondary_variables, _local_to_global_index_map, and preIterationConcreteProcess().

417 {
418  // In every new iteration cached values of secondary variables are expired.
419  for (auto& cached_var : _cached_secondary_variables)
420  {
421  cached_var->updateCurrentSolution(x, *_local_to_global_index_map);
422  }
423 
424  MathLib::LinAlg::setLocalAccessibleVector(x);
426 }
std::vector< std::unique_ptr< CachedSecondaryVariable > > _cached_secondary_variables
Definition: Process.h:296
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:290
virtual void preIterationConcreteProcess(const unsigned, GlobalVector const &)
Definition: Process.h:220

◆ preIterationConcreteProcess()

virtual void ProcessLib::Process::preIterationConcreteProcess ( const unsigned  ,
GlobalVector const &   
)
inlineprivatevirtual

Reimplemented in ProcessLib::TES::TESProcess.

Definition at line 220 of file Process.h.

Referenced by preIteration().

222  {
223  }

◆ preTimestep()

void ProcessLib::Process::preTimestep ( GlobalVector const &  x,
const double  t,
const double  delta_t,
const int  process_id 
)

Preprocessing before starting assembly for new timestep.

Definition at line 380 of file Process.cpp.

References _boundary_conditions, _cached_secondary_variables, and preTimestepConcreteProcess().

382 {
383  for (auto& cached_var : _cached_secondary_variables)
384  {
385  cached_var->setTime(t);
386  }
387 
388  MathLib::LinAlg::setLocalAccessibleVector(x);
389  preTimestepConcreteProcess(x, t, delta_t, process_id);
390 
391  _boundary_conditions[process_id].preTimestep(t, x);
392 }
std::vector< std::unique_ptr< CachedSecondaryVariable > > _cached_secondary_variables
Definition: Process.h:296
std::vector< BoundaryConditionCollection > _boundary_conditions
Definition: Process.h:331
virtual void preTimestepConcreteProcess(GlobalVector const &, const double, const double, const int)
Definition: Process.h:200

◆ preTimestepConcreteProcess()

◆ setCoupledSolutionsForStaggeredScheme()

void ProcessLib::Process::setCoupledSolutionsForStaggeredScheme ( CoupledSolutionsForStaggeredScheme *const  coupled_solutions)
inline

Definition at line 89 of file Process.h.

91  {
92  _coupled_solutions = coupled_solutions;
93  }
CoupledSolutionsForStaggeredScheme * _coupled_solutions
Definition: Process.h:305

◆ setCoupledTermForTheStaggeredSchemeToLocalAssemblers()

virtual void ProcessLib::Process::setCoupledTermForTheStaggeredSchemeToLocalAssemblers ( )
inlinevirtual

Reimplemented in ProcessLib::ComponentTransport::ComponentTransportProcess, and ProcessLib::HT::HTProcess.

Definition at line 98 of file Process.h.

98 {}

◆ setInitialConditions()

void ProcessLib::Process::setInitialConditions ( const int  process_id,
const double  t,
GlobalVector &  x 
)

Definition at line 116 of file Process.cpp.

References _process_variables, getDOFTable(), MeshLib::Node, setInitialConditionsConcreteProcess(), and ParameterLib::SpatialPosition::setNodeID().

118 {
119  // getDOFTableOfProcess can be overloaded by the specific process.
120  auto const& dof_table_of_process = getDOFTable(process_id);
121 
122  auto const& per_process_variables = _process_variables[process_id];
123  for (std::size_t variable_id = 0;
124  variable_id < per_process_variables.size();
125  variable_id++)
126  {
127  MathLib::LinAlg::setLocalAccessibleVector(x);
129 
130  auto const& pv = per_process_variables[variable_id];
131  DBUG("Set the initial condition of variable %s of process %d.",
132  pv.get().getName().data(), process_id);
133 
134  auto const& ic = pv.get().getInitialCondition();
135 
136  auto const num_comp = pv.get().getNumberOfComponents();
137 
138  for (int component_id = 0; component_id < num_comp; ++component_id)
139  {
140  auto const& mesh_subset =
141  dof_table_of_process.getMeshSubset(variable_id, component_id);
142  auto const mesh_id = mesh_subset.getMeshID();
143  for (auto const* node : mesh_subset.getNodes())
144  {
146  node->getID());
147 
148  pos.setNodeID(node->getID());
149  auto const& ic_value = ic(t, pos);
150 
151  auto global_index =
152  std::abs(dof_table_of_process.getGlobalIndex(l, variable_id,
153  component_id));
154 #ifdef USE_PETSC
155  // The global indices of the ghost entries of the global
156  // matrix or the global vectors need to be set as negative
157  // values for equation assembly, however the global indices
158  // start from zero. Therefore, any ghost entry with zero
159  // index is assigned an negative value of the vector size
160  // or the matrix dimension. To assign the initial value for
161  // the ghost entries, the negative indices of the ghost
162  // entries are restored to zero.
163  if (global_index == x.size())
164  global_index = 0;
165 #endif
166  x.set(global_index, ic_value[component_id]);
167  }
168  }
169  }
171 }
virtual NumLib::LocalToGlobalIndexMap const & getDOFTable(const int) const
Definition: Process.h:117
void setNodeID(std::size_t node_id)
virtual void setInitialConditionsConcreteProcess(GlobalVector const &, double const)
Definition: Process.h:181
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
Definition: Process.h:326

◆ setInitialConditionsConcreteProcess()

virtual void ProcessLib::Process::setInitialConditionsConcreteProcess ( GlobalVector const &  ,
double  const 
)
inlineprivatevirtual

Definition at line 181 of file Process.h.

Referenced by setInitialConditions().

183  {
184  }

◆ updateDeactivatedSubdomains()

void ProcessLib::Process::updateDeactivatedSubdomains ( double const  time,
const int  process_id 
)

Definition at line 181 of file Process.cpp.

References getProcessVariables().

183 {
184  auto const& variables_per_process = getProcessVariables(process_id);
185  for (auto const& variable : variables_per_process)
186  {
187  variable.get().updateDeactivatedSubdomains(time);
188  }
189 }
std::vector< std::reference_wrapper< ProcessVariable > > const & getProcessVariables(const int process_id) const
Definition: Process.h:125

Member Data Documentation

◆ _boundary_conditions

std::vector<BoundaryConditionCollection> ProcessLib::Process::_boundary_conditions
protected

Vector for boundary conditions. For the monolithic scheme or a single process, the size of the vector is one. For the staggered scheme, the size of vector is the number of the coupled processes.

Definition at line 331 of file Process.h.

Referenced by assemble(), assembleWithJacobian(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::createBHEBoundaryConditionTopBottom(), initializeProcessBoundaryConditionsAndSourceTerms(), and preTimestep().

◆ _cached_secondary_variables

std::vector<std::unique_ptr<CachedSecondaryVariable> > ProcessLib::Process::_cached_secondary_variables
protected

◆ _coupled_solutions

CoupledSolutionsForStaggeredScheme* ProcessLib::Process::_coupled_solutions
protected

Pointer to CoupledSolutionsForStaggeredScheme, which contains the references to the solutions of the coupled processes.

Definition at line 305 of file Process.h.

Referenced by assemble(), 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::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleConcreteProcess(), ProcessLib::HT::HTProcess::assembleConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::assembleConcreteProcess(), assembleWithJacobian(), 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::TES::TESProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::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::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::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::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::ComponentTransport::ComponentTransportProcess::getFlux(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::setCoupledSolutionsOfPreviousTimeStep(), ProcessLib::HT::HTProcess::setCoupledSolutionsOfPreviousTimeStep(), ProcessLib::ComponentTransport::ComponentTransportProcess::setCoupledSolutionsOfPreviousTimeStep(), ProcessLib::HT::HTProcess::setCoupledSolutionsOfPreviousTimeStepPerProcess(), ProcessLib::HT::HTProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers(), and ProcessLib::ComponentTransport::ComponentTransportProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers().

◆ _extrapolator_data

ExtrapolatorData ProcessLib::Process::_extrapolator_data
private

Definition at line 339 of file Process.h.

Referenced by initializeExtrapolator().

◆ _global_assembler

VectorMatrixAssembler ProcessLib::Process::_global_assembler
protected

Definition at line 299 of file Process.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::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< 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::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HeatConduction::HeatConductionProcess::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsFlow::RichardsFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::TES::TESProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< 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(), and ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::preAssembleConcreteProcess().

◆ _integration_order

unsigned const ProcessLib::Process::_integration_order
protected

◆ _integration_point_writer

◆ _local_to_global_index_map

std::unique_ptr<NumLib::LocalToGlobalIndexMap> ProcessLib::Process::_local_to_global_index_map
protected

Definition at line 290 of file Process.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::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< 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::TES::TESProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::HT::HTProcess::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::assembleWithJacobianConcreteProcess(), ProcessLib::TES::TESProcess::computeEquilibriumLoading(), ProcessLib::TES::TESProcess::computeRelativeHumidity(), computeSparsityPattern(), ProcessLib::TES::TESProcess::computeVapourPartialPressure(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::constructDofTable(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::constructDofTable(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::constructDofTable(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::constructDofTable(), constructDofTableOfSpecifiedProsessStaggerdScheme(), constructMonolithicProcessDofTable(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::createBHEBoundaryConditionTopBottom(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::getDOFTable(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::getDOFTable(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::getDOFTable(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::getDOFTable(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::getDOFTable(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::getDOFTable(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::getDOFTableByProcessID(), ProcessLib::HT::HTProcess::getDOFTableForExtrapolatorData(), getDOFTableForExtrapolatorData(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::getFlux(), ProcessLib::HT::HTProcess::getFlux(), ProcessLib::ComponentTransport::ComponentTransportProcess::getFlux(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::getMatrixSpecifications(), getMatrixSpecifications(), initialize(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::initializeBoundaryConditions(), initializeBoundaryConditions(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::TES::TESProcess::postIterationConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::postIterationConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::preAssembleConcreteProcess(), preIteration(), 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(), and ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess().

◆ _mesh

MeshLib::Mesh& ProcessLib::Process::_mesh
protected

Definition at line 287 of file Process.h.

Referenced by ProcessLib::TES::TESProcess::computeEquilibriumLoading(), ProcessLib::TES::TESProcess::computeRelativeHumidity(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::computeSecondaryVariableConcrete(), computeSparsityPattern(), ProcessLib::TES::TESProcess::computeVapourPartialPressure(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::constructDofTable(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::constructDofTable(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::constructDofTable(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::constructDofTable(), constructDofTableOfSpecifiedProsessStaggerdScheme(), constructMonolithicProcessDofTable(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::createBHEBoundaryConditionTopBottom(), finishNamedFunctionsInitialization(), initialize(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::initializeConcreteProcess(), ProcessLib::TES::TESProcess::initializeSecondaryVariables(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::postTimestepConcreteProcess(), ProcessLib::HT::HTProcess::postTimestepConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::postTimestepConcreteProcess(), and ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::SmallDeformationProcess().

◆ _mesh_subset_all_nodes

std::unique_ptr<MeshLib::MeshSubset const> ProcessLib::Process::_mesh_subset_all_nodes
protected

◆ _named_function_caller

NumLib::NamedFunctionCaller ProcessLib::Process::_named_function_caller
protected

◆ _process_variables

std::vector<std::vector<std::reference_wrapper<ProcessVariable> > > ProcessLib::Process::_process_variables
protected

Variables used by this process. For the monolithic scheme or a single process, the size of the outer vector is one. For the staggered scheme, the size of the outer vector is the number of the coupled processes.

Definition at line 326 of file Process.h.

Referenced by ProcessLib::ComponentTransport::ComponentTransportProcess::assembleConcreteProcess(), constructDofTableOfSpecifiedProsessStaggerdScheme(), constructMonolithicProcessDofTable(), initializeBoundaryConditions(), ProcessLib::ComponentTransport::ComponentTransportProcess::initializeConcreteProcess(), initializeProcessBoundaryConditionsAndSourceTerms(), Process(), and setInitialConditions().

◆ _secondary_variable_context

SecondaryVariableContext ProcessLib::Process::_secondary_variable_context
protected

◆ _secondary_variables

SecondaryVariableCollection ProcessLib::Process::_secondary_variables
protected

Definition at line 292 of file Process.h.

Referenced by finishNamedFunctionsInitialization(), ProcessLib::HeatConduction::HeatConductionProcess::initializeConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsFlow::RichardsFlowProcess::initializeConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::initializeConcreteProcess(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPProcess::initializeConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::initializeConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::initializeConcreteProcess(), ProcessLib::HT::HTProcess::initializeConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::initializeConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::initializeConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::initializeConcreteProcess(), and ProcessLib::TES::TESProcess::initializeSecondaryVariables().

◆ _source_term_collections

std::vector<SourceTermCollection> ProcessLib::Process::_source_term_collections
private

Vector for nodal source term collections. For the monolithic scheme or a single process, the size of the vector is one. For the staggered scheme, the size of vector is the number of the coupled processes.

Definition at line 337 of file Process.h.

Referenced by assemble(), assembleWithJacobian(), initializeProcessBoundaryConditionsAndSourceTerms(), and Process().

◆ _sparsity_pattern

◆ _use_monolithic_scheme

const bool ProcessLib::Process::_use_monolithic_scheme
protected

Definition at line 301 of file Process.h.

Referenced by ProcessLib::TES::TESProcess::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::HT::HTProcess::assembleConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::assembleConcreteProcess(), ProcessLib::TES::TESProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HT::HTProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::constructDofTable(), constructDofTable(), ProcessLib::HT::HTProcess::getDOFTableForExtrapolatorData(), ProcessLib::ComponentTransport::ComponentTransportProcess::getFlux(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::hasMechanicalProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::hasMechanicalProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::hasMechanicalProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::HT::HTProcess::initializeConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::initializeConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::HT::HTProcess::postTimestepConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::postTimestepConcreteProcess(), ProcessLib::HT::HTProcess::preTimestepConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::preTimestepConcreteProcess(), ProcessLib::HT::HTProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers(), and ProcessLib::ComponentTransport::ComponentTransportProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers().

◆ name


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