HydroFemPhysics
The GeMA Hydraulic FEM Physics Plugin
Loading...
Searching...
No Matches
gmpMaterialKhoei.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_KHOEI_H_
25#define _GEMA_PLUGIN_HYDRAULIC_MATERIAL_KHOEI_H_
26
28
29class GMP_HYDRAULIC_PHYSICS_API_EXPORT GmpHydraulicMaterialKhoei : public GmpHydraulicMaterialMultiPhase
30{
31protected:
34 {
36
37 // --- NO ADDING BELOW THIS LINE
39 };
40
41public:
42
44 GmpHydraulicMaterialKhoei(int typeIndex, QString typeName, const GmLogCategory& logger)
45 : GmpHydraulicMaterialMultiPhase(typeIndex, typeName, logger) {}
46
48 static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
49 {
50 Q_UNUSED(simulation);
51 return new GmpHydraulicMaterialKhoei(typeIndex, typeName, logger);
52 }
53
54 // Sets multiPhase material map
55 virtual const QVariantMap* materialMetaDataMap();
56
58 virtual double waterSaturation(const GmElement* e, const GmVector* coord, int ip, double pc) const;
59
61 virtual double derivativeWaterSaturation(const GmElement* e, const GmVector* coord, int ip, double pc) const;
62
64 virtual double waterRelativePermeability(const GmElement* e, const GmVector* coord, int ip, double Sw) const;
65
67 virtual double gasRelativePermeability(const GmElement* e, const GmVector* coord, int ip, double Sw) const;
68
69 virtual double linearInterpolate(const GmVector& x, const GmVector& y, double xi) const;
70
72 virtual double BcParameterKhoei(const GmElement* e, const GmVector* coord, int ip) const
73 {
74 if (propertyAc(Bc_ID) == NULL)
75 {
76 return 0.0;
77 }
78 return propertyAc(Bc_ID)->scalarValueAt(e, coord, ip);
79 }
80
81};
82
83#endif
Definition gmpMaterialKhoei.h:30
virtual double BcParameterKhoei(const GmElement *e, const GmVector *coord, int ip) const
Returns the value of the pressure associated with the gas-entry value.
Definition gmpMaterialKhoei.h:72
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 gmpMaterialKhoei.h:48
GmpHydraulicMaterialKhoei(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialKhoei.h:44
KhoeiPropIds
IDs for saturated material element properties.
Definition gmpMaterialKhoei.h:34
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialKhoei.h:38
Definition gmpHydraulicMaterialMultiPhase.h:30
virtual double gasRelativePermeability(const GmElement *e, const GmVector *coord, int ip, double Sw) const =0
Returns the gas relative permeability.
virtual double waterRelativePermeability(const GmElement *e, const GmVector *coord, int ip, double Sw) const =0
Returns the water relative permeability.
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpHydraulicMaterialMultiPhase.h:53
virtual double derivativeWaterSaturation(const GmElement *e, const GmVector *coord, int ip, double pc) const =0
Returns the dSw/dPc.
virtual double waterSaturation(const GmElement *e, const GmVector *coord, int ip, double pc) const =0
Returns the water saturation.
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition gmpHydraulicMaterialMultiPhase.cpp:21
arma::vec GmVector
Declaration of the GmpHydraulicMaterialMultiPhase class.