CoupledTHFemPhysics
The GeMA Coupled Thermo-Hydraulic FEM Physics Plugin
Loading...
Searching...
No Matches
gmpCoupledTHMaterial.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_COUPLED_TH_MATERIAL_H_
25#define _GEMA_PLUGIN_COUPLED_TH_MATERIAL_H_
26
27#include "gmpCoupledTHConfig.h"
28
29#include <gmpFemPhysicsCommonMaterial.h>
30#include <gmpHydraulicMaterial.h>
31
35class GMP_COUPLED_TH_PHYSICS_API_EXPORT GmpCoupledTHMaterial : public GmpFemPhysicsCommonMaterial
36{
37public:
39 GmpCoupledTHMaterial(int typeIndex, QString typeName, const GmLogCategory& logger)
40 : GmpFemPhysicsCommonMaterial(typeIndex, typeName, logger)
41 {
42 _thermoMaterial = NULL;
43 _hydroMaterial = NULL;
44 }
45
48
50 static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
51 {
52 Q_UNUSED(simulation);
53 return new GmpCoupledTHMaterial(typeIndex, typeName, logger);
54 }
55
56 virtual const QVariantMap* materialMetaDataMap();
57
59 void setPhysicsMaterials(GmpFemPhysicsCommonMaterial* thermo,
60 GmpFemPhysicsCommonMaterial* hydro)
61 {
62 _thermoMaterial = thermo;
63 _hydroMaterial = hydro;
64 }
65
67 //GmpThermalMaterial* thermal() const { return dynamic_cast<GmpThermalMaterial*>(_thermoMaterial); }
68
70 GmpHydraulicMaterial* hydro() const { return dynamic_cast<GmpHydraulicMaterial*>(_hydroMaterial); }
71
72 // Returns the stresses according to the material behavior adopted
73 virtual bool thermoHydraulicConstitutiveModel(const GmElement* e, GmMatrix& Ded, const GmVector* coord, const GmVector& Time, double Tg, unsigned nc, bool ips) const ;
74
75 // Sets the initial conditions required by isotropic damage material
76 virtual bool setInitialConditions(const GmElement* e, const GmVector* coord, int ip) const;
77
79 virtual double solidBulkModulus(const GmElement* e, const GmVector* coord, int ip) const;
80
82 virtual double fluidDensity(const GmElement* e, const GmVector* coord, int ip) const;
83
85 virtual double fluidHeatCapacity(const GmElement* e, const GmVector* coord, int ip) const;
86
87protected:
90 {
94
95 // --- NO ADDING BELOW THIS LINE
97 };
98private:
99 GmpFemPhysicsCommonMaterial* _thermoMaterial;
100 GmpFemPhysicsCommonMaterial* _hydroMaterial;
101};
102
103#endif
104
Basic class for a coupled thermo-hydro-mechanical material object, storing references for a mechanica...
Definition gmpCoupledTHMaterial.h:36
GmpFemPhysicsCommonMaterial * _thermoMaterial
Thermal material.
Definition gmpCoupledTHMaterial.h:99
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 gmpCoupledTHMaterial.h:50
void setPhysicsMaterials(GmpFemPhysicsCommonMaterial *thermo, GmpFemPhysicsCommonMaterial *hydro)
Sets the thermal, hydraulic and mechanical materials for this coupled material. Materials CAN be NULL...
Definition gmpCoupledTHMaterial.h:59
GmpFemPhysicsCommonMaterial * _hydroMaterial
hydraulic material.
Definition gmpCoupledTHMaterial.h:100
virtual ~GmpCoupledTHMaterial()
Destructor.
Definition gmpCoupledTHMaterial.h:47
ElementPropertyIds
IDs for material element properties.
Definition gmpCoupledTHMaterial.h:90
@ KSS_ID
Id for retrieving the solid graind bulk Modulus accessor.
Definition gmpCoupledTHMaterial.h:91
@ CPF_ID
Id for retrieving the fluid specific heat capacity.
Definition gmpCoupledTHMaterial.h:93
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpCoupledTHMaterial.h:96
@ RHOF_ID
Id for retrieving the fluid density accessor.
Definition gmpCoupledTHMaterial.h:92
GmpCoupledTHMaterial(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpCoupledTHMaterial.h:39
GmpHydraulicMaterial * hydro() const
Returns the thermal material or NULL if none was configured.
Definition gmpCoupledTHMaterial.h:70
arma::mat GmMatrix
arma::vec GmVector
Declaration of useful configuration definitions for the plugin library.