24#ifndef _GEMA_PLUGIN_COUPLED_HM_MATERIAL_H_
25#define _GEMA_PLUGIN_COUPLED_HM_MATERIAL_H_
29#include <gmpFemPhysicsCommonMaterial.h>
30#include <gmpMechanicalMaterial.h>
31#include <gmpInterfaceMaterial.h>
32#include <gmpHydraulicMaterial.h>
33#include <gmpMaterialInterfaceFlow.h>
34#include <gmpHydraulicMaterialTwoPhase.h>
35#include <gmpMaterialInterfaceMultiPhaseFlow.h>
46 : GmpFemPhysicsCommonMaterial(typeIndex, typeName, logger)
48 _hydroMaterial = NULL;
49 _mechanoMaterial = NULL;
61 virtual const QVariantMap* materialMetaDataMap();
66 _hydroMaterial = hydro;
67 _mechanoMaterial = mechano;
71 GmpHydraulicMaterial*
hydro()
const {
return dynamic_cast<GmpHydraulicMaterial*
>(_hydroMaterial); }
74 GmpHydraulicMaterialTwoPhase*
twoPhaseHydro()
const {
return dynamic_cast<GmpHydraulicMaterialTwoPhase*
>(_hydroMaterial); }
77 GmpMaterialInterfaceMultiPhaseFlow*
twoPhaseInterfaceFlow()
const {
return dynamic_cast<GmpMaterialInterfaceMultiPhaseFlow*
>(_hydroMaterial); }
80 GmpMaterialInterfaceFlow*
interfaceFlow()
const {
return dynamic_cast<GmpMaterialInterfaceFlow*
>(_hydroMaterial); }
83 GmpMechanicalMaterial*
mechanical()
const {
return dynamic_cast<GmpMechanicalMaterial*
>(_mechanoMaterial); }
86 GmpInterfaceMaterial*
interface()
const {
return dynamic_cast<GmpInterfaceMaterial*
>(_mechanoMaterial); }
95 QString flowMaterialTypeName()
const;
104 virtual void updatePermeabilityEquivalentContinuum(
const GmElement* e,
const GmVector* coord,
int ip,
GmMatrix& Kper)
const;
Basic class for a coupled hydro-mechanical material object, storing references for a mechanical and a...
Definition gmpCoupledHMMaterial.h:41
GmpFemPhysicsCommonMaterial * _mechanoMaterial
Mechanical material. Ps: The mechanical plugin does not have a base class common to all materials.
Definition gmpCoupledHMMaterial.h:108
virtual ~GmpCoupledHMMaterial()
Destructor.
Definition gmpCoupledHMMaterial.h:53
GmpMechanicalMaterial * mechanical() const
Returns the mechancial material or NULL if none was configured or if the material is an interface mat...
Definition gmpCoupledHMMaterial.h:83
GmpMaterialInterfaceMultiPhaseFlow * twoPhaseInterfaceFlow() const
Returns the Two-Phase hydraulic material or NULL if none was configured.
Definition gmpCoupledHMMaterial.h:77
GmpMaterialInterfaceFlow * interfaceFlow() const
Returns the hydraulic interface material or NULL if none was configured.
Definition gmpCoupledHMMaterial.h:80
GmpFemPhysicsCommonMaterial * _hydroMaterial
Hydraulic material.
Definition gmpCoupledHMMaterial.h:107
GmpHydraulicMaterialTwoPhase * twoPhaseHydro() const
Returns the Two-Phase hydraulic material or NULL if none was configured.
Definition gmpCoupledHMMaterial.h:74
GmpHydraulicMaterial * hydro() const
Returns the hydraulic material or NULL if none was configured.
Definition gmpCoupledHMMaterial.h:71
GmpInterfaceMaterial * interface() const
Returns the mechancial interface material or NULL if none was configured or if the material is not an...
Definition gmpCoupledHMMaterial.h:86
GmpCoupledHMMaterial(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpCoupledHMMaterial.h:45
void setPhysicsMaterials(GmpFemPhysicsCommonMaterial *hydro, GmpFemPhysicsCommonMaterial *mechano)
Sets the hydraulic and mechanical materials for this material. Materials CAN be NULL for a physics.
Definition gmpCoupledHMMaterial.h:64
static GmpFemPhysicsCommonMaterial * instance(int typeIndex, QString typeName, const GmLogCategory &logger)
A "factory" function used to register the material with the physics material factory.
Definition gmpCoupledHMMaterial.h:56
Declaration of useful configuration definitions for the plugin library.