OGS
PermeabilityOrthotropicPowerLaw.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
7
8namespace ParameterLib
9{
10struct CoordinateSystem;
11}
12
13namespace MaterialPropertyLib
14{
15class Medium;
16class Phase;
17class Component;
18
23template <int DisplacementDim>
25{
26private:
28 std::array<double, DisplacementDim> const k_;
30 std::array<double, DisplacementDim> const lambda_;
32
33public:
35 std::string name,
36 std::array<double, DisplacementDim>
37 intrinsic_permeabilities,
38 std::array<double, DisplacementDim>
39 exponents,
40 ParameterLib::CoordinateSystem const* const local_coordinate_system);
41
42 void checkScale() const override;
43
44 PropertyDataType value(VariableArray const& variable_array,
46 double const t, double const dt) const override;
47 PropertyDataType dValue(VariableArray const& variable_array,
48 Variable const variable,
50 double const t, double const dt) const override;
51};
52
53} // namespace MaterialPropertyLib
This class defines components (substances).
Definition Component.h:18
PermeabilityOrthotropicPowerLaw(std::string name, std::array< double, DisplacementDim > intrinsic_permeabilities, std::array< double, DisplacementDim > exponents, ParameterLib::CoordinateSystem const *const local_coordinate_system)
ParameterLib::CoordinateSystem const *const local_coordinate_system_
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
std::array< double, DisplacementDim > const lambda_
Exponents, one for each spatial dimension.
std::array< double, DisplacementDim > const k_
Intrinsic permeabilities, one for each spatial dimension.
virtual PropertyDataType value() const
std::variant< double, Eigen::Matrix< double, 2, 1 >, Eigen::Matrix< double, 3, 1 >, Eigen::Matrix< double, 2, 2 >, Eigen::Matrix< double, 3, 3 >, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 >, Eigen::MatrixXd > PropertyDataType
A local coordinate system used for tensor transformations.