OGS 6.2.0-97-g4a610c866
Permeability.h
Go to the documentation of this file.
1 
12 #pragma once
13 
14 #include <Eigen/Dense>
15 
16 #include "BaseLib/Error.h"
17 #include "ParameterLib/Parameter.h"
18 
19 namespace MaterialLib
20 {
21 namespace PorousMedium
22 {
27 {
28 public:
29  explicit Permeability(
30  ParameterLib::Parameter<double> const& permeability_parameter,
31  int const dimension)
32  : _permeability_parameter(permeability_parameter), _dimension(dimension)
33  {
34  if (permeability_parameter.getNumberOfComponents() !=
36  {
37  OGS_FATAL(
38  "The given parameter has %d components, but the permeability "
39  "tensor is defined for a %d dimensional problem.",
40  permeability_parameter.getNumberOfComponents(), _dimension);
41  }
43  Eigen::MatrixXd(_dimension, _dimension);
44  }
45 
46  ~Permeability() = default;
47 
55  Eigen::MatrixXd const& getValue(const double t,
57  const double variable,
58  const double temperature) const
59  {
60  (void)variable;
61  (void)temperature;
62 
64  Eigen::Map<Eigen::Matrix<double,
65  Eigen::Dynamic,
66  Eigen::Dynamic,
67  Eigen::RowMajor> const>(
69 
71  }
72 
73 private:
75  int const _dimension;
76  mutable Eigen::MatrixXd _intrinsic_permeability_tensor;
77 };
78 
79 } // namespace PorousMedium
80 } // namespace MaterialLib
Eigen::MatrixXd const & getValue(const double t, ParameterLib::SpatialPosition const &pos, const double variable, const double temperature) const
Definition: Permeability.h:55
Permeability(ParameterLib::Parameter< double > const &permeability_parameter, int const dimension)
Definition: Permeability.h:29
#define OGS_FATAL(fmt,...)
Definition: Error.h:63
ParameterLib::Parameter< double > const & _permeability_parameter
Definition: Permeability.h:74
virtual int getNumberOfComponents() const =0