OGS
SaturationWeightedThermalConductivity.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 "BaseLib/Error.h"
8
9namespace ParameterLib
10{
11struct CoordinateSystem;
12template <typename T>
13struct Parameter;
14} // namespace ParameterLib
15
16namespace MaterialPropertyLib
17{
18class Medium;
19
26
45template <MeanType MeantType, int GlobalDimension>
47{
48public:
50 std::string name,
51 ParameterLib::Parameter<double> const& dry_thermal_conductivity,
52 ParameterLib::Parameter<double> const& wet_thermal_conductivity);
53
54 void checkScale() const override
55 {
56 if (!std::holds_alternative<Medium*>(scale_))
57 {
59 "The property 'SaturationWeightedThermalConductivity' is "
60 "implemented on the 'media' scale only.");
61 }
62 }
63
64 PropertyDataType value(VariableArray const& variable_array,
66 double const t,
67 double const dt) const override;
68
69 PropertyDataType dValue(VariableArray const& variable_array,
70 Variable const variable,
72 double const t,
73 double const dt) const override;
74
75private:
80};
81
82extern template class SaturationWeightedThermalConductivity<
84 1>;
85extern template class SaturationWeightedThermalConductivity<
87 1>;
89 1>;
90extern template class SaturationWeightedThermalConductivity<
92 2>;
93extern template class SaturationWeightedThermalConductivity<
95 2>;
97 2>;
98extern template class SaturationWeightedThermalConductivity<
100 3>;
101extern template class SaturationWeightedThermalConductivity<
103 3>;
105 3>;
106
107} // namespace MaterialPropertyLib
#define OGS_FATAL(...)
Definition Error.h:19
virtual PropertyDataType value() const
std::variant< Medium *, Phase *, Component * > scale_
Saturation dependent thermal conductivity model for soil.
SaturationWeightedThermalConductivity(std::string name, ParameterLib::Parameter< double > const &dry_thermal_conductivity, ParameterLib::Parameter< double > const &wet_thermal_conductivity)
ParameterLib::Parameter< double > const & wet_thermal_conductivity_
Thermal conductivity of soil at the fully water saturated state.
ParameterLib::Parameter< double > const & dry_thermal_conductivity_
Thermal conductivity of soil at the dry state.
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
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.