MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
gmpMaterialWDCreep.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_MECHANICALMATERIAL_WDCREEP_H_
25#define _GEMA_PLUGIN_MECHANICALMATERIAL_WDCREEP_H_
26
27#include "gmpMechanicalConfig.h"
28#include <gmpFemPhysics.h>
29#include <gmMathUtils.h>
30
31#include <gmpMaterialElastic.h>
32#include "gmpMechanicPoint.h"
33
34class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialWDCreep : public GmpMechanicalMaterialElastic
35{
36protected:
51
87
88public:
89
91 GmpMaterialWDCreep(int typeIndex, QString typeName, const GmLogCategory& logger)
92 : GmpMechanicalMaterialElastic(typeIndex, typeName, logger) {}
93
96
98 static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
99 {
100 Q_UNUSED(simulation);
101 return new GmpMaterialWDCreep(typeIndex, typeName, logger);
102 }
103
104 // Returns a map with material associated properties.
105 virtual const QVariantMap* materialMetaDataMap();
106
107 // Returns the stresses according to the material behavior adopted
108 virtual bool mechanicalConstitutiveModel(const GmElement* e, GmMatrix& Dep, const GmpMechanicPoint* mp, const GmVector* coord, const GmVector& Time, unsigned nc, bool ips) const;
109
111 virtual bool isIsotropic() const { return true; }
112
114 virtual double firstprimarycreepConstant(const GmElement* e, const GmVector* coord, int ip) const
115 {
116 return propertyAc(A_ID)->scalarValueAt(e, coord, ip);
117 }
118
120 virtual double secondprimarycreepConstant(const GmElement* e, const GmVector* coord, int ip) const
121 {
122 return propertyAc(B_ID)->scalarValueAt(e, coord, ip);
123 }
124
126 virtual double secondarycreepConstant(const GmElement* e, const GmVector* coord, int ip) const
127 {
128 return propertyAc(C1_ID)->scalarValueAt(e, coord, ip);
129 }
130
132 virtual double tertiarycreepConstant(const GmElement* e, const GmVector* coord, int ip) const
133 {
134 return propertyAc(C2_ID)->scalarValueAt(e, coord, ip);
135 }
136
138 virtual double stressExponential(const GmElement* e, const GmVector* coord, int ip) const
139 {
140 return propertyAc(N_ID)->scalarValueAt(e, coord, ip);
141 }
142
144 virtual double firstdamageConstant(const GmElement* e, const GmVector* coord, int ip) const
145 {
146 return propertyAc(F_ID)->scalarValueAt(e, coord, ip);
147 }
148
150 virtual double seconddamageConstant(const GmElement* e, const GmVector* coord, int ip) const
151 {
152 return propertyAc(R_ID)->scalarValueAt(e, coord, ip);
153 }
154
155 // Computes the elastic stiffness using lame and G
156 void elasticStiffness(const GmElement*, unsigned, GmMatrix&, const GmVector*, unsigned, int) const;
157
158};
159
160#endif
Definition gmpMaterialWDCreep.h:35
virtual double secondarycreepConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the secondary creep parameter.
Definition gmpMaterialWDCreep.h:126
virtual double firstdamageConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the first damage constant.
Definition gmpMaterialWDCreep.h:144
virtual bool isIsotropic() const
Returns true if the material is isotropic, false otherwise.
Definition gmpMaterialWDCreep.h:111
virtual double tertiarycreepConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the tertiary creep parameter.
Definition gmpMaterialWDCreep.h:132
virtual double seconddamageConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the second damage constant.
Definition gmpMaterialWDCreep.h:150
ElementPropertyIds
IDs for material element properties.
Definition gmpMaterialWDCreep.h:39
@ R_ID
Id for retrieving the second damage parameter.
Definition gmpMaterialWDCreep.h:46
@ C1_ID
Id for retrieving the secondary creep parameter.
Definition gmpMaterialWDCreep.h:42
@ N_ID
Id for retrieving the stress exponential.
Definition gmpMaterialWDCreep.h:44
@ C2_ID
Id for retrieving the tertiary creep parameter.
Definition gmpMaterialWDCreep.h:43
@ B_ID
Id for retrieving the second parameter of primary creep equation.
Definition gmpMaterialWDCreep.h:41
@ F_ID
Id for retrieving the first damage parameter.
Definition gmpMaterialWDCreep.h:45
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialWDCreep.h:49
virtual ~GmpMaterialWDCreep()
Virtual destructor.
Definition gmpMaterialWDCreep.h:95
virtual double secondprimarycreepConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the second parameter of primary creep.
Definition gmpMaterialWDCreep.h:120
GmpMaterialWDCreep(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialWDCreep.h:91
GaussAttributeIds
IDs for material Gauss attributes.
Definition gmpMaterialWDCreep.h:54
@ SDV_GA_ID
Base Id for Gauss attribute(s) used to store the damage variable at the current state.
Definition gmpMaterialWDCreep.h:57
@ SDV13_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:70
@ SDV14_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:71
@ SDV23_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:80
@ SDV6_GA_ID
Id for retrieving the C2 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:63
@ EC_GA_ID
Base Id for Gauss attribute(s) used to store the calculated creep strain at the current state.
Definition gmpMaterialWDCreep.h:55
@ SDV19_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:76
@ SDV5_GA_ID
Id for retrieving the N variable accessor at the current state.
Definition gmpMaterialWDCreep.h:62
@ SDV4_GA_ID
Id for retrieving the R variable accessor at the current state.
Definition gmpMaterialWDCreep.h:61
@ NUM_GA_IDS
The number of Gauss attribute ids above.
Definition gmpMaterialWDCreep.h:85
@ SDV21_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:78
@ SDV7_GA_ID
Id for retrieving the C1 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:64
@ SDV11_GA_ID
Id for retrieving the MEAN variable accessor at the current state.
Definition gmpMaterialWDCreep.h:68
@ SDV18_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:75
@ SDV17_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:74
@ SDV2_GA_ID
Id for retrieving the MISES variable accessor at the current state.
Definition gmpMaterialWDCreep.h:59
@ SDV15_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:72
@ SDV10_GA_ID
Id for retrieving the DELTAD variable accessor at the current state.
Definition gmpMaterialWDCreep.h:67
@ SDV3_GA_ID
Id for retrieving the F variable accessor at the current state.
Definition gmpMaterialWDCreep.h:60
@ SDVOLD_GA_ID
Id for retrieving the damage variable accessor at the previous state.
Definition gmpMaterialWDCreep.h:58
@ SDV9_GA_ID
Id for retrieving the D variable accessor at the current state.
Definition gmpMaterialWDCreep.h:66
@ ECOLD_GA_ID
Id for retrieving the creep strain accessor at the previous state (old creep strain)
Definition gmpMaterialWDCreep.h:56
@ SDV12_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:69
@ SDV24_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:81
@ SDV22_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:79
@ SDV20_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:77
@ SDV8_GA_ID
Id for retrieving the SIGMAEQ variable accessor at the current state.
Definition gmpMaterialWDCreep.h:65
@ SDV16_GA_ID
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition gmpMaterialWDCreep.h:73
virtual double firstprimarycreepConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the first parameter of primary creep.
Definition gmpMaterialWDCreep.h:114
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 gmpMaterialWDCreep.h:98
virtual double stressExponential(const GmElement *e, const GmVector *coord, int ip) const
Returns the stress exponential.
Definition gmpMaterialWDCreep.h:138
Definition gmpMechanicPoint.h:33
Definition gmpMaterialElastic.h:35
virtual bool mechanicalConstitutiveModel(const GmElement *e, GmMatrix &Dep, const GmpMechanicPoint *mp, const GmVector *coord, const GmVector &Time, unsigned nc, bool ips) const
Evaluates stress and tangent matrix according to the material behavior adopted.
Definition gmpMaterialElastic.cpp:83
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition gmpMaterialElastic.cpp:40
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialElastic.h:46
arma::mat GmMatrix
arma::vec GmVector
Declaration of the GmpMechanicalMaterialElastic class.
Declaration of the GmpMechanicPoint class.
Declaration of useful configuration definitions for the plugin library.