24 #ifndef _GEMA_XFEM_HYDROMECHANICALMATERIAL_H_ 25 #define _GEMA_XFEM_HYDROMECHANICALMATERIAL_H_ 28 #include <gmpHydraulicMaterial.h> 29 #include <gmpMechanicalMaterial.h> 68 virtual void tangentModulus(
const GmElement* e,
GmMatrix& Dep,
const GmpMechanicPoint* mp,
const GmVector* coord,
unsigned nc,
unsigned ips)
const;
71 virtual void returnMapping(
const GmElement* e,
GmMatrix& Dep,
const GmpMechanicPoint* mp,
const GmVector* coord,
unsigned nc,
unsigned ips)
const;
85 if (propertyAc(
KSS_ID) == NULL)
89 double Kss = propertyAc(
KSS_ID)->scalarValueAt(e, coord, ip);
90 if (Kss <= 0.0) { Kss = 1.0e25; }
98 if (propertyAc(
Knw_ID) == NULL)
102 double Kss = propertyAc(
Knw_ID)->scalarValueAt(e, coord, ip);
103 if (Kss <= 0.0) { Kss = 1.0e25; }
113 return propertyAc(
UFw_ID)->scalarValueAt(e, coord, ip);
121 if (propertyAc(
MFw_ID) == NULL)
125 return propertyAc(
MFw_ID)->scalarValueAt(e, coord, ip);
133 if (propertyAc(
LKT_ID) == NULL)
137 return propertyAc(
LKT_ID)->scalarValueAt(e, coord, ip);
145 if (propertyAc(
LKB_ID) == NULL)
149 return propertyAc(
LKB_ID)->scalarValueAt(e, coord, ip);
152 virtual double initialWaterSaturation(
const GmElement* e,
const GmVector* coord,
int ip)
const 156 if (propertyAc(
SIW_ID) == NULL)
160 return propertyAc(
SIW_ID)->scalarValueAt(e, coord, ip);
163 virtual double residualWaterSaturation(
const GmElement* e,
const GmVector* coord,
int ip)
const 167 if (propertyAc(
SRW_ID) == NULL)
171 return propertyAc(
SRW_ID)->scalarValueAt(e, coord, ip);
174 virtual double bubblingPressure(
const GmElement* e,
const GmVector* coord,
int ip)
const 178 if (propertyAc(
PBB_ID) == NULL)
182 return propertyAc(
PBB_ID)->scalarValueAt(e, coord, ip);
185 virtual double nWFluidViscosity(
const GmElement* e,
const GmVector* coord,
int ip)
const 189 if (propertyAc(
UFnw_ID) == NULL)
193 return propertyAc(
UFnw_ID)->scalarValueAt(e, coord, ip);
196 virtual double intrinsicPermeability(
const GmElement* e,
const GmVector* coord,
int ip)
const 200 if (propertyAc(
Kim_ID) == NULL)
204 return propertyAc(
Kim_ID)->scalarValueAt(e, coord, ip);
207 virtual double wettingFluidDensity(
const GmElement* e,
const GmVector* coord,
int ip)
const 211 if (propertyAc(
rhow_ID) == NULL)
215 return propertyAc(
rhow_ID)->scalarValueAt(e, coord, ip);
218 virtual double nonWettingFluidDensity(
const GmElement* e,
const GmVector* coord,
int ip)
const 226 return propertyAc(
rhonw_ID)->scalarValueAt(e, coord, ip);
229 virtual double solidDensity(
const GmElement* e,
const GmVector* coord,
int ip)
const 233 if (propertyAc(
rhos_ID) == NULL)
237 return propertyAc(
rhos_ID)->scalarValueAt(e, coord, ip);
240 virtual double gammaNonWettingFluid(
const GmElement* e,
const GmVector* coord,
int ip)
const 244 if (propertyAc(
Gnw_ID) == NULL)
248 return propertyAc(
Gnw_ID)->scalarValueAt(e, coord, ip);
251 virtual double specificHeatWettingFluid(
const GmElement* e,
const GmVector* coord,
int ip)
const 255 if (propertyAc(
CTw_ID) == NULL)
259 return propertyAc(
CTw_ID)->scalarValueAt(e, coord, ip);
262 virtual double specificHeatNonWettingFluid(
const GmElement* e,
const GmVector* coord,
int ip)
const 266 if (propertyAc(
CTnw_ID) == NULL)
270 return propertyAc(
CTnw_ID)->scalarValueAt(e, coord, ip);
273 virtual double specificHeatSolid(
const GmElement* e,
const GmVector* coord,
int ip)
const 277 if (propertyAc(
CTs_ID) == NULL)
281 return propertyAc(
CTs_ID)->scalarValueAt(e, coord, ip);
284 virtual double thermalConductivityWettingFluid(
const GmElement* e,
const GmVector* coord,
int ip)
const 288 if (propertyAc(
KTw_ID) == NULL)
292 return propertyAc(
KTw_ID)->scalarValueAt(e, coord, ip);
295 virtual double thermalConductivityNonWettingFluid(
const GmElement* e,
const GmVector* coord,
int ip)
const 299 if (propertyAc(
KTnw_ID) == NULL)
303 return propertyAc(
KTnw_ID)->scalarValueAt(e, coord, ip);
306 virtual double thermalConductivitySolid(
const GmElement* e,
const GmVector* coord,
int ip)
const 310 if (propertyAc(
KTs_ID) == NULL)
314 return propertyAc(
KTs_ID)->scalarValueAt(e, coord, ip);
317 virtual double thermalExpansionWettingFluid(
const GmElement* e,
const GmVector* coord,
int ip)
const 321 if (propertyAc(
BTw_ID) == NULL)
325 return propertyAc(
BTw_ID)->scalarValueAt(e, coord, ip);
328 virtual double thermalExpansionNonWettingFluid(
const GmElement* e,
const GmVector* coord,
int ip)
const 332 if (propertyAc(
BTnw_ID) == NULL)
336 return propertyAc(
BTnw_ID)->scalarValueAt(e, coord, ip);
339 virtual double thermalExpansionSolid(
const GmElement* e,
const GmVector* coord,
int ip)
const 343 if (propertyAc(
BTs_ID) == NULL)
347 return propertyAc(
BTs_ID)->scalarValueAt(e, coord, ip);
virtual double interfaceBiotModulus(const GmElement *e, const GmVector *coord, int ip) const
Returns the discontinuity Biot's Modulus.
Definition: xfemHydroMechanicalMaterial.h:117
Id for retrieving the bubbling pressure.
Definition: xfemHydroMechanicalMaterial.h:366
Id for retrieving the solid density accessor.
Definition: xfemHydroMechanicalMaterial.h:372
Id for retrieving the thermal expansion coefficient of the wetting fluid accessor.
Definition: xfemHydroMechanicalMaterial.h:380
Id for retrieving the intrinsic permeability accessor.
Definition: xfemHydroMechanicalMaterial.h:369
ElemHMXfemPropertyIds
IDs for material element properties.
Definition: xfemHydroMechanicalMaterial.h:357
Id for retrieving the discontinuity Biot's Modulus.
Definition: xfemHydroMechanicalMaterial.h:361
Id for retrieving the non-wetting fluid density accessor.
Definition: xfemHydroMechanicalMaterial.h:371
virtual double solidBulkModulus(const GmElement *e, const GmVector *coord, int ip) const
Sets the initial conditions.
Definition: xfemHydroMechanicalMaterial.h:83
Id for retrieving the residual water saturation.
Definition: xfemHydroMechanicalMaterial.h:365
Id for retrieving the wetting fluid density accessor.
Definition: xfemHydroMechanicalMaterial.h:370
Basic class for the elastic xfem material plugin object.
Definition: xfemHydroMechanicalMaterial.h:36
Declaration of the xfemMaterial classes.
The number of property ids above.
Definition: xfemHydroMechanicalMaterial.h:384
Id for retrieving the Specific heat capacity of the solid accessor.
Definition: xfemHydroMechanicalMaterial.h:376
Id for retrieving the thermal conductivity of the solid accessor.
Definition: xfemHydroMechanicalMaterial.h:379
Id for retrieving the thermal expansion coefficient of the non-wetting fluid accessor.
Definition: xfemHydroMechanicalMaterial.h:381
Id for retrieving the dynamic fluid viscosity.
Definition: xfemHydroMechanicalMaterial.h:360
Id for retrieving the dynamic non-wetting fluid bulk's Modulus accessor.
Definition: xfemHydroMechanicalMaterial.h:368
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition: xfemHydroMechanicalMaterial.cpp:40
Id for retrieving the leakoff coefficient at the top.
Definition: xfemHydroMechanicalMaterial.h:362
XfemHydroMechanicalMaterial(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition: xfemHydroMechanicalMaterial.h:47
Basic class for the elastic xfem material plugin object.
Definition: xfemMaterial.h:34
Id for retrieving the initial water saturation.
Definition: xfemHydroMechanicalMaterial.h:364
Id for retrieving the thermal conductivity of the non-wetting fluid accessor.
Definition: xfemHydroMechanicalMaterial.h:378
The number of property ids above.
Definition: xfemMaterial.h:183
virtual double nonWettingBulkModulus(const GmElement *e, const GmVector *coord, int ip) const
Returns the solid bulk mudulus.
Definition: xfemHydroMechanicalMaterial.h:96
virtual double leakoffTop(const GmElement *e, const GmVector *coord, int ip) const
Returns the leakoff coefficient at the top.
Definition: xfemHydroMechanicalMaterial.h:129
Id for retrieving the thermal conductivity of the wetting fluid accessor.
Definition: xfemHydroMechanicalMaterial.h:377
virtual double cubicLaw(const GmElement *e, const GmVector *coord, int ip, double wn, bool cubiclaw) const
Returns the hydraulic conductivity according to the cubic Law.
Definition: xfemHydroMechanicalMaterial.cpp:136
GmpFemPhysicsCommonMaterial * _hydroMaterial
Hydraulic material.
Definition: xfemHydroMechanicalMaterial.h:389
virtual double fluidViscosity(const GmElement *e, const GmVector *coord, int ip) const
Returns the dynamic fluid viscosity.
Definition: xfemHydroMechanicalMaterial.h:109
GmpFemPhysicsCommonMaterial * _mechanoMaterial
Mechanical material. Ps: The mechanical plugin does not have a base class common to all materials.
Definition: xfemHydroMechanicalMaterial.h:390
Id for retrieving the Specific heat capacity of the wetting fluid accessor.
Definition: xfemHydroMechanicalMaterial.h:374
virtual double cubicLawMP(const GmElement *e, const GmVector *coord, int ip, double wn, bool cubiclaw) const
Returns the hydraulic conductivity according to the cubic Law.
Definition: xfemHydroMechanicalMaterial.cpp:167
Id for retrieving the thermal expansion coefficient of the solid accessor.
Definition: xfemHydroMechanicalMaterial.h:382
Id for retrieving the Specific weight of the non-wetting fluid accessor.
Definition: xfemHydroMechanicalMaterial.h:373
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: xfemHydroMechanicalMaterial.h:58
Id for retrieving the solid bulk's Modulus accessor.
Definition: xfemHydroMechanicalMaterial.h:359
Id for retrieving the dynamic non-wetting fluid viscosity.
Definition: xfemHydroMechanicalMaterial.h:367
Id for retrieving the leakoff coefficient at the bottom.
Definition: xfemHydroMechanicalMaterial.h:363
virtual double leakoffBottom(const GmElement *e, const GmVector *coord, int ip) const
Returns the leakoff coefficient at the Bottom.
Definition: xfemHydroMechanicalMaterial.h:141
Id for retrieving the Specific heat capacity of the non-wetting fluid accessor.
Definition: xfemHydroMechanicalMaterial.h:375