OGS
ComponentTransportProcessData.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
10#include "LookupTable.h"
17
18namespace MaterialPropertyLib
19{
20class Medium;
21}
22
23namespace MeshLib
24{
25template <typename PROP_VAL_TYPE>
26class PropertyVector;
27}
28
29namespace ProcessLib
30{
31namespace ComponentTransport
32{
34{
36 bool const has_gravity;
65 std::unique_ptr<LookupTable> lookup_table;
66
68
70 std::vector<Eigen::VectorXd> const projected_specific_body_force_vectors;
71
73
77 ParameterLib::ConstantParameter<double>("constant_one", 1.0);
78
79 bool const isothermal;
80
83
84 static const int hydraulic_process_id = 0;
85 // Thermal process is optional, indicated by -1. If present, it is positive.
86 const int thermal_process_id = isothermal ? -1 : 1;
87 // TODO (renchao-lu): This variable is used in the calculation of the
88 // fluid's density and flux, indicating the transport process id. For now it
89 // is assumed that these quantities depend on the first occurring transport
90 // process only. The density and flux calculations have to be extended to
91 // all processes.
93
96};
97
98} // namespace ComponentTransport
99} // namespace ProcessLib
Interface for coupling OpenGeoSys with an external geochemical solver.
std::variant< NoStabilization, IsotropicDiffusionStabilization, FullUpwind, FluxCorrectedTransport > NumericalStabilization
Single, constant value parameter.
std::vector< Eigen::VectorXd > const projected_specific_body_force_vectors
Projected specific body force vector: R * R^T * b.
MaterialPropertyLib::MaterialSpatialDistributionMap media_map
NumLib::ShapeMatrixCache shape_matrix_cache
caches for each mesh element type the shape matrix