OGS
FormEffectiveThermalConductivity.cpp
Go to the documentation of this file.
1 /*
2  * \file
3  * \copyright
4  * Copyright (c) 2012-2021, OpenGeoSys Community (http://www.opengeosys.org)
5  * Distributed under a Modified BSD License.
6  * See accompanying file LICENSE.txt or
7  * http://www.opengeosys.org/project/license
8  *
9  * Created on July 31, 2019, 12:10 PM
10  */
11 
13 
14 #include "FormEigenTensor.h"
15 
16 namespace MaterialPropertyLib
17 {
18 template <int GlobalDim>
19 Eigen::Matrix<double, GlobalDim, GlobalDim> formEffectiveThermalConductivity(
20  MaterialPropertyLib::PropertyDataType const& solid_thermal_conductivity,
21  const double fluid_thermal_conductivity, const double porosity)
22 {
23  return (1.0 - porosity) *
24  formEigenTensor<GlobalDim>(solid_thermal_conductivity) +
25  porosity * fluid_thermal_conductivity *
26  Eigen::Matrix<double, GlobalDim, GlobalDim>::Identity();
27 }
28 
29 template Eigen::Matrix<double, 1, 1> formEffectiveThermalConductivity<1>(
30  MaterialPropertyLib::PropertyDataType const& solid_thermal_conductivity,
31  const double fluid_thermal_conductivity, const double porosity);
32 template Eigen::Matrix<double, 2, 2> formEffectiveThermalConductivity<2>(
33  MaterialPropertyLib::PropertyDataType const& solid_thermal_conductivity,
34  const double fluid_thermal_conductivity, const double porosity);
35 template Eigen::Matrix<double, 3, 3> formEffectiveThermalConductivity<3>(
36  MaterialPropertyLib::PropertyDataType const& solid_thermal_conductivity,
37  const double fluid_thermal_conductivity, const double porosity);
38 
39 } // namespace MaterialPropertyLib
Eigen::Matrix< double, GlobalDim, GlobalDim > formEffectiveThermalConductivity(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 > > PropertyDataType
Definition: Property.h:35
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, 3, 3 > formEffectiveThermalConductivity< 3 >(MaterialPropertyLib::PropertyDataType const &solid_thermal_conductivity, const double fluid_thermal_conductivity, const double porosity)