OGS 6.1.0-1699-ge946d4c5f
Permeability.h
Go to the documentation of this file.
1 
12 #pragma once
13 
14 #include <Eigen/Dense>
15 
16 #include "BaseLib/Error.h"
18 
19 namespace MaterialLib
20 {
21 namespace PorousMedium
22 {
27 {
28 public:
29  explicit Permeability(
30  ProcessLib::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(
56  const double t,
57  ProcessLib::SpatialPosition const& pos,
58  const double variable,
59  const double temperature) const
60  {
61  (void)variable;
62  (void)temperature;
63 
65  Eigen::Map<Eigen::Matrix<double,
66  Eigen::Dynamic,
67  Eigen::Dynamic,
68  Eigen::RowMajor> const>(
70 
72  }
73 
74 private:
76  int const _dimension;
77  mutable Eigen::MatrixXd _intrinsic_permeability_tensor;
78 };
79 
80 } // end of namespace
81 } // end of namespace
Eigen::MatrixXd const & getValue(const double t, ProcessLib::SpatialPosition const &pos, const double variable, const double temperature) const
Definition: Permeability.h:55
ProcessLib::Parameter< double > const & _permeability_parameter
Definition: Permeability.h:75
virtual int getNumberOfComponents() const =0
#define OGS_FATAL(fmt,...)
Definition: Error.h:71
Permeability(ProcessLib::Parameter< double > const &permeability_parameter, int const dimension)
Definition: Permeability.h:29