OGS
HydroMechanics/HydroMechanicsProcessData.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <Eigen/Core>
7#include <memory>
8#include <utility>
9#include <variant>
10
15
16namespace MaterialLib
17{
18namespace Solids
19{
20template <int DisplacementDim>
21struct MechanicsBase;
22}
23} // namespace MaterialLib
24namespace ProcessLib
25{
26namespace HydroMechanics
27{
28
30{
31};
32
51
52using CouplingScheme = std::variant<Monolithic, Staggered>;
53
54template <int DisplacementDim>
56{
58
60
62 std::map<int, std::shared_ptr<
65
67
71 Eigen::Matrix<double, DisplacementDim, 1> const specific_body_force;
72
74 bool const mass_lumping = false;
75
77
79 int const hydraulic_process_id = 0;
80
83
84 const bool use_taylor_hood_elements = false;
85
87
89 std::array<MeshLib::PropertyVector<double>*, 3> principal_stress_vector = {
90 nullptr, nullptr, nullptr};
92
96
98 {
99 return std::holds_alternative<Monolithic>(coupling_scheme);
100 }
101
103};
104
105} // namespace HydroMechanics
106} // namespace ProcessLib
std::variant< Monolithic, Staggered > CouplingScheme
Eigen::Matrix< double, DisplacementDim, 1 > const specific_body_force
std::array< MeshLib::PropertyVector< double > *, 3 > principal_stress_vector
bool const mass_lumping
If set mass lumping will be applied to the pressure equation.
std::map< int, std::shared_ptr< MaterialLib::Solids::MechanicsBase< DisplacementDim > > > solid_materials
The constitutive relation for the mechanical part.
int const mechanics_related_process_id
ID of the processes that contains mechanical process.