OGS 6.2.0-244-g47b8a9a9d
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 (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
 

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 ()
 
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 ( 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.

34  : _mesh(mesh),
35  _secondary_variables(std::move(secondary_variables)),
36  _named_function_caller(std::move(named_function_caller)),
37  _global_assembler(std::move(jacobian_assembler)),
38  _use_monolithic_scheme(use_monolithic_scheme),
39  _coupled_solutions(nullptr),
40  _integration_order(integration_order),
41  _process_variables(std::move(process_variables)),
42  _boundary_conditions([&](const std::size_t number_of_process_variables)
43  -> std::vector<BoundaryConditionCollection> {
44  std::vector<BoundaryConditionCollection> pcs_BCs;
45  pcs_BCs.reserve(number_of_process_variables);
46  for (std::size_t i = 0; i < number_of_process_variables; i++)
47  {
48  pcs_BCs.emplace_back(BoundaryConditionCollection(parameters));
49  }
50  return pcs_BCs;
51  }(_process_variables.size())),
52  _source_term_collections([&](const std::size_t number_of_processes)
53  -> std::vector<SourceTermCollection> {
54  std::vector<SourceTermCollection> pcs_sts;
55  pcs_sts.reserve(number_of_processes);
56  for (std::size_t i = 0; i < number_of_processes; i++)
57  {
58  pcs_sts.emplace_back(SourceTermCollection(parameters));
59  }
60  return pcs_sts;
61  }(_process_variables.size()))
62 {
63 }
MeshLib::Mesh & _mesh
Definition: Process.h:262
std::vector< SourceTermCollection > _source_term_collections
Definition: Process.h:312
NumLib::NamedFunctionCaller _named_function_caller
Definition: Process.h:269
unsigned const _integration_order
Definition: Process.h:285
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
Definition: Process.h:301
std::vector< BoundaryConditionCollection > _boundary_conditions
Definition: Process.h:306
SecondaryVariableCollection _secondary_variables
Definition: Process.h:267
CoupledSolutionsForStaggeredScheme * _coupled_solutions
Definition: Process.h:280
const bool _use_monolithic_scheme
Definition: Process.h:276
VectorMatrixAssembler _global_assembler
Definition: Process.h:274

Member Function Documentation

◆ assemble()

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

Definition at line 194 of file Process.cpp.

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

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

◆ 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 210 of file Process.cpp.

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

215 {
216  MathLib::LinAlg::setLocalAccessibleVector(x);
217  MathLib::LinAlg::setLocalAccessibleVector(xdot);
218 
219  assembleWithJacobianConcreteProcess(t, x, xdot, dxdot_dx, dx_dx, M, K, b,
220  Jac);
221 
222  // TODO: apply BCs to Jacobian.
223  const auto pcs_id =
225  _boundary_conditions[pcs_id].applyNaturalBC(t, x, K, b, &Jac);
226 
227  // the last argument is for the jacobian, nullptr is for a unused jacobian
228  _source_term_collections[pcs_id].integrate(t, x, b, &Jac);
229 }
std::vector< SourceTermCollection > _source_term_collections
Definition: Process.h:312
std::vector< BoundaryConditionCollection > _boundary_conditions
Definition: Process.h:306
CoupledSolutionsForStaggeredScheme * _coupled_solutions
Definition: Process.h:280
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 375 of file Process.cpp.

References computeSecondaryVariableConcrete().

377 {
378  MathLib::LinAlg::setLocalAccessibleVector(x);
379 
380  computeSecondaryVariableConcrete(t, x, process_id);
381 }
virtual void computeSecondaryVariableConcrete(const double, GlobalVector const &, int const)
Definition: Process.h:224

◆ computeSecondaryVariableConcrete()

◆ computeSparsityPattern()

void ProcessLib::Process::computeSparsityPattern ( )
private

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

Definition at line 341 of file Process.cpp.

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

Referenced by initialize().

342 {
345 }
MeshLib::Mesh & _mesh
Definition: Process.h:262
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:265
GlobalSparsityPattern computeSparsityPattern(LocalToGlobalIndexMap const &dof_table, MeshLib::Mesh const &mesh)
Computes a sparsity pattern for the given inputs.
GlobalSparsityPattern _sparsity_pattern
Definition: Process.h:293

◆ constructDofTable()

void ProcessLib::Process::constructDofTable ( )
protectedvirtual

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

Definition at line 231 of file Process.cpp.

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

Referenced by initialize().

232 {
233  // Create single component dof in every of the mesh's nodes.
235  std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
236 
237  // Vector of mesh subsets.
238  std::vector<MeshLib::MeshSubset> all_mesh_subsets;
239 
240  // Vector of the number of variable components
241  std::vector<int> vec_var_n_components;
243  {
244  // Collect the mesh subsets in a vector for each variables' components.
245  for (ProcessVariable const& pv : _process_variables[0])
246  {
247  std::generate_n(std::back_inserter(all_mesh_subsets),
248  pv.getNumberOfComponents(),
249  [&]() { return *_mesh_subset_all_nodes; });
250  }
251 
252  // Create a vector of the number of variable components
253  for (ProcessVariable const& pv : _process_variables[0])
254  {
255  vec_var_n_components.push_back(pv.getNumberOfComponents());
256  }
257  }
258  else // for staggered scheme
259  {
260  // Assuming that all equations of the coupled process use the same
261  // element order. Other cases can be considered by overloading this
262  // member function in the derived class.
263 
264  // Collect the mesh subsets in a vector for each variables' components.
265  std::generate_n(std::back_inserter(all_mesh_subsets),
266  _process_variables[0][0].get().getNumberOfComponents(),
267  [&]() { return *_mesh_subset_all_nodes; });
268 
269  // Create a vector of the number of variable components.
270  vec_var_n_components.push_back(
271  _process_variables[0][0].get().getNumberOfComponents());
272  }
274  std::make_unique<NumLib::LocalToGlobalIndexMap>(
275  std::move(all_mesh_subsets), vec_var_n_components,
277 }
MeshLib::Mesh & _mesh
Definition: Process.h:262
std::unique_ptr< MeshLib::MeshSubset const > _mesh_subset_all_nodes
Definition: Process.h:263
std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > _process_variables
Definition: Process.h:301
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:265
Ordering data by spatial location.
const bool _use_monolithic_scheme
Definition: Process.h:276

◆ 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 321 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 MaterialPropertyLib::name.

Referenced by initialize().

322 {
324 
325  for (auto const& named_function :
327  {
328  auto const& name = named_function.getName();
330  name,
331  {1, BaseLib::easyBind(
333  GlobalVectorFromNamedFunction(
337  nullptr});
338  }
339 }
MeshLib::Mesh & _mesh
Definition: Process.h:262
NumLib::NamedFunctionCaller _named_function_caller
Definition: Process.h:269
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:267
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:272
void addSecondaryVariable(std::string const &internal_name, SecondaryVariableFunctions &&fcts)
NumLib::LocalToGlobalIndexMap const & getSingleComponentDOFTable() const
Definition: Process.h:156
std::vector< NamedFunction > const & getNamedFunctions() const
Returns all named functions associated with the caller instance.
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 280 of file Process.cpp.

References _local_to_global_index_map, _mesh_subset_all_nodes, and NumLib::BY_LOCATION.

Referenced by initializeExtrapolator().

281 {
282  if (_local_to_global_index_map->getNumberOfComponents() == 1)
283  {
284  // For single-variable-single-component processes reuse the existing DOF
285  // table.
286  const bool manage_storage = false;
287  return std::make_tuple(_local_to_global_index_map.get(),
288  manage_storage);
289  }
290 
291  // Otherwise construct a new DOF table.
292  std::vector<MeshLib::MeshSubset> all_mesh_subsets_single_component;
293  all_mesh_subsets_single_component.emplace_back(*_mesh_subset_all_nodes);
294 
295  const bool manage_storage = true;
296 
297  return std::make_tuple(new NumLib::LocalToGlobalIndexMap(
298  std::move(all_mesh_subsets_single_component),
299  // by location order is needed for output
301  manage_storage);
302 }
std::unique_ptr< MeshLib::MeshSubset const > _mesh_subset_all_nodes
Definition: Process.h:263
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:265
Ordering data by spatial location.

◆ getExtrapolator()

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

Definition at line 151 of file Process.h.

Referenced by ProcessLib::HeatConduction::HeatConductionProcess::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::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< 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().

152  {
154  }
ExtrapolatorData _extrapolator_data
Definition: Process.h:314
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 135 of file Process.h.

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

136  {
138  }
std::vector< std::unique_ptr< IntegrationPointWriter > > _integration_point_writer
Definition: Process.h:291

◆ getKnownSolutions()

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

Definition at line 109 of file Process.h.

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

◆ getMatrixSpecifications()

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

Definition at line 171 of file Process.cpp.

References _local_to_global_index_map, and _sparsity_pattern.

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

◆ getMesh()

◆ getProcessVariables()

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

Definition at line 124 of file Process.h.

Referenced by ProcessLib::HeatConduction::HeatConductionProcess::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::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleConcreteProcess(), ProcessLib::HT::HTProcess::assembleConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::assembleConcreteProcess(), 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::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::HT::HTProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::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::PhaseField::PhaseFieldProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< 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::HT::HTProcess::postTimestepConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::postTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::preAssembleConcreteProcess(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::preTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::preTimestepConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::preTimestepConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::HT::HTProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers(), ProcessLib::ComponentTransport::ComponentTransportProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers(), and updateDeactivatedSubdomains().

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

◆ getSecondaryVariables()

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

Definition at line 129 of file Process.h.

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

130  {
131  return _secondary_variables;
132  }
SecondaryVariableCollection _secondary_variables
Definition: Process.h:267

◆ getSingleComponentDOFTable()

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

◆ initialize()

void ProcessLib::Process::initialize ( )

Definition at line 92 of file Process.cpp.

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

93 {
94  DBUG("Initialize process.");
95 
96  DBUG("Construct dof mappings.");
98 
99  DBUG("Compute sparsity pattern");
101 
102  DBUG("Initialize the extrapolator");
104 
107 
109 
110  DBUG("Initialize boundary conditions.");
112 }
MeshLib::Mesh & _mesh
Definition: Process.h:262
unsigned const _integration_order
Definition: Process.h:285
void finishNamedFunctionsInitialization()
Definition: Process.cpp:321
void initializeExtrapolator()
Definition: Process.cpp:304
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:265
virtual void initializeBoundaryConditions()
Definition: Process.cpp:79
virtual void constructDofTable()
Definition: Process.cpp:231
void computeSparsityPattern()
Definition: Process.cpp:341
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::HydroMechanics::HydroMechanicsProcess< DisplacementDim >, and ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >.

Definition at line 79 of file Process.cpp.

References _local_to_global_index_map, _process_variables, and initializeProcessBoundaryConditionsAndSourceTerms().

Referenced by initialize().

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

◆ 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::LiquidFlow::LiquidFlowProcess, ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >, ProcessLib::HT::HTProcess, ProcessLib::GroundwaterFlow::GroundwaterFlowProcess, ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >, ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >, ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >, ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >, ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >, ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >, ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >, 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, and ProcessLib::HeatConduction::HeatConductionProcess.

Referenced by initialize().

◆ initializeExtrapolator()

void ProcessLib::Process::initializeExtrapolator ( )
private

Definition at line 304 of file Process.cpp.

References _extrapolator_data, and getDOFTableForExtrapolatorData().

Referenced by initialize().

305 {
306  NumLib::LocalToGlobalIndexMap* dof_table_single_component;
307  bool manage_storage;
308 
309  std::tie(dof_table_single_component, manage_storage) =
311 
312  std::unique_ptr<NumLib::Extrapolator> extrapolator(
314  *dof_table_single_component));
315 
316  // TODO: Later on the DOF table can change during the simulation!
317  _extrapolator_data = ExtrapolatorData(
318  std::move(extrapolator), dof_table_single_component, manage_storage);
319 }
ExtrapolatorData _extrapolator_data
Definition: Process.h:314
virtual std::tuple< NumLib::LocalToGlobalIndexMap *, bool > getDOFTableForExtrapolatorData() const
Definition: Process.cpp:280

◆ 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 65 of file Process.cpp.

References _boundary_conditions, _integration_order, _process_variables, and _source_term_collections.

Referenced by 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().

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

◆ isMonolithicSchemeUsed()

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

◆ postIteration()

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

Definition at line 395 of file Process.cpp.

References postIterationConcreteProcess().

396 {
397  MathLib::LinAlg::setLocalAccessibleVector(x);
399 }
virtual NumLib::IterationResult postIterationConcreteProcess(GlobalVector const &)
Definition: Process.h:230

◆ 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 368 of file Process.cpp.

References postNonLinearSolverConcreteProcess().

370 {
371  MathLib::LinAlg::setLocalAccessibleVector(x);
372  postNonLinearSolverConcreteProcess(x, t, process_id);
373 }
virtual void postNonLinearSolverConcreteProcess(GlobalVector const &, const double, int const)
Definition: Process.h:213

◆ 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 361 of file Process.cpp.

References postTimestepConcreteProcess().

363 {
364  MathLib::LinAlg::setLocalAccessibleVector(x);
365  postTimestepConcreteProcess(x, t, delta_t, process_id);
366 }
virtual void postTimestepConcreteProcess(GlobalVector const &, const double, const double, int const)
Definition: Process.h:206

◆ postTimestepConcreteProcess()

◆ preAssemble()

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

Definition at line 189 of file Process.cpp.

References preAssembleConcreteProcess().

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

◆ preAssembleConcreteProcess()

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

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

Definition at line 185 of file Process.h.

Referenced by preAssemble().

187  {
188  }

◆ preIteration()

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

Definition at line 383 of file Process.cpp.

References _cached_secondary_variables, _local_to_global_index_map, and preIterationConcreteProcess().

384 {
385  // In every new iteration cached values of secondary variables are expired.
386  for (auto& cached_var : _cached_secondary_variables)
387  {
388  cached_var->updateCurrentSolution(x, *_local_to_global_index_map);
389  }
390 
391  MathLib::LinAlg::setLocalAccessibleVector(x);
393 }
std::vector< std::unique_ptr< CachedSecondaryVariable > > _cached_secondary_variables
Definition: Process.h:271
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _local_to_global_index_map
Definition: Process.h:265
virtual void preIterationConcreteProcess(const unsigned, GlobalVector const &)
Definition: Process.h:219

◆ preIterationConcreteProcess()

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

Reimplemented in ProcessLib::TES::TESProcess.

Definition at line 219 of file Process.h.

Referenced by preIteration().

221  {
222  }

◆ 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 347 of file Process.cpp.

References _boundary_conditions, _cached_secondary_variables, and preTimestepConcreteProcess().

349 {
350  for (auto& cached_var : _cached_secondary_variables)
351  {
352  cached_var->setTime(t);
353  }
354 
355  MathLib::LinAlg::setLocalAccessibleVector(x);
356  preTimestepConcreteProcess(x, t, delta_t, process_id);
357 
358  _boundary_conditions[process_id].preTimestep(t, x);
359 }
std::vector< std::unique_ptr< CachedSecondaryVariable > > _cached_secondary_variables
Definition: Process.h:271
std::vector< BoundaryConditionCollection > _boundary_conditions
Definition: Process.h:306
virtual void preTimestepConcreteProcess(GlobalVector const &, const double, const double, const int)
Definition: Process.h:199

◆ preTimestepConcreteProcess()

◆ setCoupledSolutionsForStaggeredScheme()

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

Definition at line 88 of file Process.h.

90  {
91  _coupled_solutions = coupled_solutions;
92  }
CoupledSolutionsForStaggeredScheme * _coupled_solutions
Definition: Process.h:280

◆ setCoupledTermForTheStaggeredSchemeToLocalAssemblers()

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

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

Definition at line 97 of file Process.h.

97 {}

◆ setInitialConditions()

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

Definition at line 114 of file Process.cpp.

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

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

◆ setInitialConditionsConcreteProcess()

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

Definition at line 180 of file Process.h.

Referenced by setInitialConditions().

182  {
183  }

◆ updateDeactivatedSubdomains()

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

Definition at line 179 of file Process.cpp.

References getProcessVariables().

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

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 306 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 280 of file Process.h.

Referenced by assemble(), ProcessLib::HeatConduction::HeatConductionProcess::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::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleConcreteProcess(), ProcessLib::HT::HTProcess::assembleConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::assembleConcreteProcess(), assembleWithJacobian(), 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::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::HT::HTProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::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::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 314 of file Process.h.

Referenced by initializeExtrapolator().

◆ _global_assembler

VectorMatrixAssembler ProcessLib::Process::_global_assembler
protected

Definition at line 274 of file Process.h.

Referenced by ProcessLib::HeatConduction::HeatConductionProcess::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::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleConcreteProcess(), ProcessLib::HT::HTProcess::assembleConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleConcreteProcess(), ProcessLib::ComponentTransport::ComponentTransportProcess::assembleConcreteProcess(), 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::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< 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(), 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 265 of file Process.h.

Referenced by ProcessLib::HeatConduction::HeatConductionProcess::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::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< 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(), 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::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::assembleWithJacobianConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::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(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::constructDofTable(), constructDofTable(), ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::createBHEBoundaryConditionTopBottom(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::getDOFTable(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< 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::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::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeBoundaryConditions(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::initializeBoundaryConditions(), initializeBoundaryConditions(), ProcessLib::TES::TESProcess::postIterationConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::postIterationConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::postTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::preAssembleConcreteProcess(), preIteration(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoProcess::preTimestepConcreteProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPProcess::preTimestepConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::preTimestepConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::preTimestepConcreteProcess(), and ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::preTimestepConcreteProcess().

◆ _mesh

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

Definition at line 262 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::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::constructDofTable(), constructDofTable(), 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

◆ _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 301 of file Process.h.

Referenced by ProcessLib::ComponentTransport::ComponentTransportProcess::assembleConcreteProcess(), constructDofTable(), 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 267 of file Process.h.

Referenced by finishNamedFunctionsInitialization(), ProcessLib::HeatConduction::HeatConductionProcess::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::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::GroundwaterFlow::GroundwaterFlowProcess::initializeConcreteProcess(), ProcessLib::HT::HTProcess::initializeConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::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 312 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 276 of file Process.h.

Referenced by ProcessLib::TES::TESProcess::assembleConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< 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::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::HT::HTProcess::assembleWithJacobianConcreteProcess(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldProcess< DisplacementDim >::assembleWithJacobianConcreteProcess(), ProcessLib::RichardsComponentTransport::RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess(), 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::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::getMatrixSpecifications(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::hasMechanicalProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::hasMechanicalProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::hasMechanicalProcess(), 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().


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