OGS
VermaPruessModel.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
4
#include "
VermaPruessModel.h
"
5
6
#include <algorithm>
7
#include <cmath>
8
#include <functional>
9
10
namespace
MaterialPropertyLib
11
{
12
PropertyDataType
VermaPruessModel::value
(
13
MaterialPropertyLib::VariableArray
const
& variable_array,
14
ParameterLib::SpatialPosition
const
& pos,
double
const
t,
15
double
const
/*dt*/
)
const
16
{
17
double
const
phi = variable_array.
porosity
;
18
19
// ratio of permeability to initial permeability
20
auto
const
var_k = std::pow(std::max(0., phi -
_phi_c
(t, pos)[0]) /
21
(
_phi0
(t, pos)[0] -
_phi_c
(t, pos)[0]),
22
_n
(t, pos)[0]);
23
24
auto
const
& k0 =
_k0
(t, pos);
25
std::vector<double> k;
26
k.reserve(k0.size());
27
std::transform(
28
k0.cbegin(), k0.cend(), std::back_inserter(k),
29
std::bind(std::multiplies<double>(), std::placeholders::_1, var_k));
30
31
return
fromVector
(k);
32
}
33
34
}
// namespace MaterialPropertyLib
VermaPruessModel.h
MaterialPropertyLib::Property::value
virtual PropertyDataType value() const
Definition
MaterialLib/MPL/Property.cpp:67
MaterialPropertyLib::VariableArray
Definition
VariableType.h:94
MaterialPropertyLib::VariableArray::porosity
double porosity
Definition
VariableType.h:184
MaterialPropertyLib::VermaPruessModel::_n
ParameterLib::Parameter< double > const & _n
Exponent.
Definition
VermaPruessModel.h:48
MaterialPropertyLib::VermaPruessModel::_phi0
ParameterLib::Parameter< double > const & _phi0
Initial porosity.
Definition
VermaPruessModel.h:44
MaterialPropertyLib::VermaPruessModel::_phi_c
ParameterLib::Parameter< double > const & _phi_c
Critical porosity.
Definition
VermaPruessModel.h:46
MaterialPropertyLib::VermaPruessModel::_k0
ParameterLib::Parameter< double > const & _k0
Initial medium permeability.
Definition
VermaPruessModel.h:42
ParameterLib::SpatialPosition
Definition
SpatialPosition.h:21
MaterialPropertyLib
Definition
ChemicalSolverInterface.h:98
MaterialPropertyLib::fromVector
PropertyDataType fromVector(std::vector< double > const &values)
Definition
MaterialLib/MPL/Property.cpp:14
MaterialPropertyLib::PropertyDataType
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
Definition
MaterialLib/MPL/Property.h:24
MaterialLib
MPL
Properties
VermaPruessModel.cpp
Generated by
1.14.0