MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
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 
34 class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialWDCreep : public GmpMechanicalMaterialElastic
35 {
36 protected:
39  {
41  B_ID,
44  N_ID,
45  F_ID,
46  R_ID,
47 
48  // --- NO ADDING BELOW THIS LINE
50  };
51 
54  {
73 
74 
75  // ------ NO ADDING BELOW THIS LINE
77  };
78 
79 public:
80 
82  GmpMaterialWDCreep(int typeIndex, QString typeName, const GmLogCategory& logger)
83  : GmpMechanicalMaterialElastic(typeIndex, typeName, logger) {}
84 
86  virtual ~GmpMaterialWDCreep() {}
87 
89  static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
90  {
91  Q_UNUSED(simulation);
92  return new GmpMaterialWDCreep(typeIndex, typeName, logger);
93  }
94 
95  // Returns a map with material associated properties.
96  virtual const QVariantMap* materialMetaDataMap();
97 
98  // Returns the stresses according to the material behavior adopted
99  virtual bool mechanicalConstitutiveModel(const GmElement* e, GmMatrix& Dep, const GmpMechanicPoint* mp, const GmVector* coord, const GmVector& Time, unsigned nc, bool ips) const;
100 
102  virtual bool isIsotropic() const { return true; }
103 
105  virtual double firstprimarycreepConstant(const GmElement* e, const GmVector* coord, int ip) const
106  {
107  return propertyAc(A_ID)->scalarValueAt(e, coord, ip);
108  }
109 
111  virtual double secondprimarycreepConstant(const GmElement* e, const GmVector* coord, int ip) const
112  {
113  return propertyAc(B_ID)->scalarValueAt(e, coord, ip);
114  }
115 
117  virtual double secondarycreepConstant(const GmElement* e, const GmVector* coord, int ip) const
118  {
119  return propertyAc(C1_ID)->scalarValueAt(e, coord, ip);
120  }
121 
123  virtual double tertiarycreepConstant(const GmElement* e, const GmVector* coord, int ip) const
124  {
125  return propertyAc(C2_ID)->scalarValueAt(e, coord, ip);
126  }
127 
129  virtual double stressExponential(const GmElement* e, const GmVector* coord, int ip) const
130  {
131  return propertyAc(N_ID)->scalarValueAt(e, coord, ip);
132  }
133 
135  virtual double firstdamageConstant(const GmElement* e, const GmVector* coord, int ip) const
136  {
137  return propertyAc(F_ID)->scalarValueAt(e, coord, ip);
138  }
139 
141  virtual double seconddamageConstant(const GmElement* e, const GmVector* coord, int ip) const
142  {
143  return propertyAc(R_ID)->scalarValueAt(e, coord, ip);
144  }
145 
146  // Computes the elastic stiffness using lame and G
147  void elasticStiffness(const GmElement*, unsigned, GmMatrix&, const GmVector*, unsigned, int) const;
148 
149 };
150 
151 #endif
The number of property ids above.
Definition: gmpMaterialElastic.h:46
virtual double seconddamageConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the second damage constant.
Definition: gmpMaterialWDCreep.h:141
The number of Gauss attribute ids above.
Definition: gmpMaterialWDCreep.h:76
Id for retrieving the first damage parameter.
Definition: gmpMaterialWDCreep.h:45
virtual ~GmpMaterialWDCreep()
Virtual destructor.
Definition: gmpMaterialWDCreep.h:86
The number of property ids above.
Definition: gmpMaterialWDCreep.h:49
Id for retrieving the second parameter of primary creep equation.
Definition: gmpMaterialWDCreep.h:41
ElementPropertyIds
IDs for material element properties.
Definition: gmpMaterialElastic.h:38
Id for retrieving the tertiary creep parameter.
Definition: gmpMaterialWDCreep.h:43
Definition: gmpMaterialElastic.h:34
Id for retrieving the damage variable accessor at the previous state.
Definition: gmpMaterialWDCreep.h:58
Id for retrieving the stress exponential.
Definition: gmpMaterialWDCreep.h:44
Id for retrieving the second damage parameter.
Definition: gmpMaterialWDCreep.h:46
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:71
Id for retrieving the DELTAD variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:67
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:89
Base Id for Gauss attribute(s) used to store the damage variable at the current state.
Definition: gmpMaterialWDCreep.h:57
Definition: gmpMechanicPoint.h:32
Id for retrieving the F variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:60
virtual double firstdamageConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the first damage constant.
Definition: gmpMaterialWDCreep.h:135
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:72
GaussAttributeIds
IDs for material Gauss attributes.
Definition: gmpMaterialWDCreep.h:53
Id for retrieving the SIGMAEQ variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:65
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 double secondprimarycreepConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the second parameter of primary creep.
Definition: gmpMaterialWDCreep.h:111
virtual double tertiarycreepConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the tertiary creep parameter.
Definition: gmpMaterialWDCreep.h:123
Id for retrieving the MEAN variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:68
virtual double stressExponential(const GmElement *e, const GmVector *coord, int ip) const
Returns the stress exponential.
Definition: gmpMaterialWDCreep.h:129
Id for retrieving the MISES variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:59
Id for retrieving the N variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:62
Declaration of the GmpMechanicPoint class.
Base Id for Gauss attribute(s) used to store the calculated creep strain at the current state.
Definition: gmpMaterialWDCreep.h:55
Id for retrieving the C1 variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:64
Definition: gmpMaterialWDCreep.h:34
Id for retrieving the D variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:66
Declaration of the GmpMechanicalMaterialElastic class.
Declaration of usefull configuration definitions for the plugin library.
virtual bool isIsotropic() const
Returns true if the material is isotropic, false otherwise.
Definition: gmpMaterialWDCreep.h:102
Id for retrieving the R variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:61
Id for retrieving the creep strain accessor at the previous state (old creep strain)
Definition: gmpMaterialWDCreep.h:56
virtual double secondarycreepConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the secondary creep parameter.
Definition: gmpMaterialWDCreep.h:117
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:70
virtual double firstprimarycreepConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the first parameter of primary creep.
Definition: gmpMaterialWDCreep.h:105
arma::vec GmVector
void elasticStiffness(GmMatrix &De, double E, double nu, unsigned sc, unsigned ips)
Computes the elastic stiffness matrix using E and Nu.
Definition: gmpMechanicalMaterial.cpp:874
GmpMaterialWDCreep(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition: gmpMaterialWDCreep.h:82
arma::mat GmMatrix
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
Id for retrieving the secondary creep parameter.
Definition: gmpMaterialWDCreep.h:42
Id for retrieving the EXP_AUX5 variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:69
Id for retrieving the C2 variable accessor at the current state.
Definition: gmpMaterialWDCreep.h:63