HydroFemPhysics
The GeMA Hydraulic FEM Physics Plugin
Loading...
Searching...
No Matches
gmpMaterialSaturated.h
Go to the documentation of this file.
1/************************************************************************
2**
3** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4** All rights reserved.
5**
6** This file is part of the "GeMA" software. It's use should respect
7** the terms in the license agreement that can be found together
8** with this source code.
9** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11** A PARTICULAR PURPOSE.
12**
13************************************************************************/
14
24#ifndef _GEMA_PLUGIN_HYDRAULIC_MATERIAL_SATURATED_H_
25#define _GEMA_PLUGIN_HYDRAULIC_MATERIAL_SATURATED_H_
26
28
29class GMP_HYDRAULIC_PHYSICS_API_EXPORT GmpHydraulicMaterialSaturated : public GmpHydraulicMaterial
30{
31protected:
34 {
37
38 // --- NO ADDING BELOW THIS LINE
40 };
41
42public:
43
45 GmpHydraulicMaterialSaturated(int typeIndex, QString typeName, const GmLogCategory& logger)
46 : GmpHydraulicMaterial(typeIndex, typeName, logger) {}
47
49 static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
50 {
51 Q_UNUSED(simulation);
52 return new GmpHydraulicMaterialSaturated(typeIndex, typeName, logger);
53 }
54
56 virtual double porosity(const GmElement* e, const GmVector* coord, int ip) const
57 {
58 return propertyAc(PHT_ID)->scalarValueAt(e, coord, ip);
59 }
60
62 virtual double poreCompressibility(const GmElement* e, const GmVector* coord, int ip) const
63 {
64 if (propertyAc(BP_ID) == NULL)
65 {
66 return 0.0;
67 }
68 return propertyAc(BP_ID)->scalarValueAt(e, coord, ip);
69 }
70
71 virtual double referencePorePressure(const GmElement* e, const GmVector* coord, int ip) const
72 {
73 Q_UNUSED(e); Q_UNUSED(coord); Q_UNUSED(ip);
74 return 1.0;
75 }
76
77 virtual double relativePermeability(const GmElement* e, const GmVector* coord, int ip) const
78 {
79 Q_UNUSED(e); Q_UNUSED(coord); Q_UNUSED(ip);
80 return 1.0;
81 }
82
83 virtual void hydraulicConstitutiveModel(const GmElement* e, const GmVector* coord, int ip, const GmpHydraulic::HMaterialPointAccessors& mp, GmMatrix& K) const;
84
85 virtual const QVariantMap* materialMetaDataMap();
86};
87
88#endif
Basic class providing the interface for a hydraulic material.
Definition gmpHydraulicMaterial.h:36
virtual void hydraulicConstitutiveModel(const GmElement *e, const GmVector *coord, int ip, const GmpHydraulic::HMaterialPointAccessors &mp, GmMatrix &K) const =0
Brief Returns the hydraulic constitutive model (permeability tensor)
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition gmpHydraulicMaterial.cpp:37
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpHydraulicMaterial.h:50
Definition gmpMaterialSaturated.h:30
virtual double porosity(const GmElement *e, const GmVector *coord, int ip) const
Returns the material porosity.
Definition gmpMaterialSaturated.h:56
virtual double poreCompressibility(const GmElement *e, const GmVector *coord, int ip) const
Returns the material pore compressibility.
Definition gmpMaterialSaturated.h:62
static GmpFemPhysicsCommonMaterial * instance(GmSimulationData *simulation, int typeIndex, QString typeName, const GmLogCategory &logger)
A "factory" function used to register the material with the physics material factory.
Definition gmpMaterialSaturated.h:49
virtual double relativePermeability(const GmElement *e, const GmVector *coord, int ip) const
Brief Returns the relative permeability.
Definition gmpMaterialSaturated.h:77
GmpHydraulicMaterialSaturated(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialSaturated.h:45
SaturatedElementPropertyIds
IDs for saturated material element properties.
Definition gmpMaterialSaturated.h:34
@ BP_ID
Id for retrieving the pore compressibility.
Definition gmpMaterialSaturated.h:36
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialSaturated.h:39
arma::mat GmMatrix
arma::vec GmVector
Declaration of the GmpHydraulicMaterial classes.
Definition gmpHydraulic.h:47