OGS
PorousMediaProperties.h
Go to the documentation of this file.
1
11#pragma once
12
13#include <Eigen/Core>
14#include <memory>
15#include <vector>
16
19#include "Porosity/Porosity.h"
20#include "Storage/Storage.h"
21
22namespace MaterialLib
23{
24namespace PorousMedium
25{
26
28{
29public:
31 std::vector<std::unique_ptr<MaterialLib::PorousMedium::Porosity>>&&
32 porosity_models,
33 std::vector<std::unique_ptr<MaterialLib::PorousMedium::Permeability>>&&
34 intrinsic_permeability_models,
35 std::vector<std::unique_ptr<MaterialLib::PorousMedium::Storage>>&&
36 specific_storage_models,
37 MeshLib::PropertyVector<int> const* const material_ids)
38 : _porosity_models(std::move(porosity_models)),
40 std::move(intrinsic_permeability_models)),
41 _specific_storage_models(std::move(specific_storage_models)),
42 _material_ids(material_ids)
43 {
44 }
45
47
48 MaterialLib::PorousMedium::Porosity const& getPorosity(
49 double t, ParameterLib::SpatialPosition const& pos) const;
50
52 double t, ParameterLib::SpatialPosition const& pos) const;
53
54 MaterialLib::PorousMedium::Storage const& getSpecificStorage(
55 double t, ParameterLib::SpatialPosition const& pos) const;
56
57private:
58 int getMaterialID(ParameterLib::SpatialPosition const& pos) const;
59
60private:
61 std::vector<std::unique_ptr<MaterialLib::PorousMedium::Porosity>>
63 std::vector<std::unique_ptr<MaterialLib::PorousMedium::Permeability>>
65 std::vector<std::unique_ptr<MaterialLib::PorousMedium::Storage>>
68};
69
70} // namespace PorousMedium
71} // namespace MaterialLib
std::vector< std::unique_ptr< MaterialLib::PorousMedium::Permeability > > _intrinsic_permeability_models
MeshLib::PropertyVector< int > const *const _material_ids
MaterialLib::PorousMedium::Permeability const & getIntrinsicPermeability(double t, ParameterLib::SpatialPosition const &pos) const
std::vector< std::unique_ptr< MaterialLib::PorousMedium::Storage > > _specific_storage_models
int getMaterialID(ParameterLib::SpatialPosition const &pos) const
MaterialLib::PorousMedium::Porosity const & getPorosity(double t, ParameterLib::SpatialPosition const &pos) const
PorousMediaProperties(PorousMediaProperties &&other)=default
PorousMediaProperties(std::vector< std::unique_ptr< MaterialLib::PorousMedium::Porosity > > &&porosity_models, std::vector< std::unique_ptr< MaterialLib::PorousMedium::Permeability > > &&intrinsic_permeability_models, std::vector< std::unique_ptr< MaterialLib::PorousMedium::Storage > > &&specific_storage_models, MeshLib::PropertyVector< int > const *const material_ids)
MaterialLib::PorousMedium::Storage const & getSpecificStorage(double t, ParameterLib::SpatialPosition const &pos) const
std::vector< std::unique_ptr< MaterialLib::PorousMedium::Porosity > > _porosity_models