OGS
FormEffectiveThermalConductivity.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
5
6#include "FormEigenTensor.h"
7
9{
10template <int GlobalDim>
11Eigen::Matrix<double, GlobalDim, GlobalDim> formEffectiveThermalConductivity(
12 MaterialPropertyLib::PropertyDataType const& solid_thermal_conductivity,
13 const double fluid_thermal_conductivity, const double porosity)
14{
15 return (1.0 - porosity) *
16 formEigenTensor<GlobalDim>(solid_thermal_conductivity) +
17 porosity * fluid_thermal_conductivity *
18 Eigen::Matrix<double, GlobalDim, GlobalDim>::Identity();
19}
20
21template Eigen::Matrix<double, 1, 1> formEffectiveThermalConductivity<1>(
22 MaterialPropertyLib::PropertyDataType const& solid_thermal_conductivity,
23 const double fluid_thermal_conductivity, const double porosity);
24template Eigen::Matrix<double, 2, 2> formEffectiveThermalConductivity<2>(
25 MaterialPropertyLib::PropertyDataType const& solid_thermal_conductivity,
26 const double fluid_thermal_conductivity, const double porosity);
27template Eigen::Matrix<double, 3, 3> formEffectiveThermalConductivity<3>(
28 MaterialPropertyLib::PropertyDataType const& solid_thermal_conductivity,
29 const double fluid_thermal_conductivity, const double porosity);
30
31} // namespace MaterialPropertyLib
Eigen::Matrix< double, GlobalDim, GlobalDim > formEffectiveThermalConductivity(MaterialPropertyLib::PropertyDataType const &solid_thermal_conductivity, const double fluid_thermal_conductivity, const double porosity)
constexpr Eigen::Matrix< double, GlobalDim, GlobalDim > formEigenTensor(MaterialPropertyLib::PropertyDataType const &values)
template Eigen::Matrix< double, 3, 3 > formEffectiveThermalConductivity< 3 >(MaterialPropertyLib::PropertyDataType const &solid_thermal_conductivity, const double fluid_thermal_conductivity, const double porosity)
template Eigen::Matrix< double, 2, 2 > formEffectiveThermalConductivity< 2 >(MaterialPropertyLib::PropertyDataType const &solid_thermal_conductivity, const double fluid_thermal_conductivity, const double porosity)
template Eigen::Matrix< double, 1, 1 > formEffectiveThermalConductivity< 1 >(MaterialPropertyLib::PropertyDataType const &solid_thermal_conductivity, const double fluid_thermal_conductivity, const double porosity)
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