25#ifndef _GEMA_PLUGIN_MECHANICALMATERIAL_DMCREEP_H_
26#define _GEMA_PLUGIN_MECHANICALMATERIAL_DMCREEP_H_
29#include <gmpFemPhysics.h>
32#include <gmpMaterialCreep.h>
80 GmpFemPhysicsCommon::ValueList matDMProp = m[
"properties"].value<GmpFemPhysicsCommon::ValueList>();
81 matDMProp.append(GmpFemPhysicsCommon::ScalarValue(QT_ID,
"QT",
QObject::tr(
"Thermal activation energy"),
"J/mol",
true));
82 matDMProp.append(GmpFemPhysicsCommon::ScalarValue(R_ID,
"R",
QObject::tr(
"Universal gas constant"),
"J/(mol*K)",
true));
83 matDMProp.append(GmpFemPhysicsCommon::ScalarValue(DEDT_ID,
"DEDT",
QObject::tr(
"Threshold creep rate"),
"1/s",
true));
84 matDMProp.append(GmpFemPhysicsCommon::ScalarValue(So_ID,
"So",
QObject::tr(
"Threshold deviatoric stress"),
"kPa",
true));
85 matDMProp.append(GmpFemPhysicsCommon::ScalarValue(To_ID,
"To",
QObject::tr(
"Threshold temperature"),
"K",
true));
86 matDMProp.append(GmpFemPhysicsCommon::ScalarValue(AN1_ID,
"AN1",
QObject::tr(
"Dislocation creep"),
"",
true));
87 matDMProp.append(GmpFemPhysicsCommon::ScalarValue(AN2_ID,
"AN2",
QObject::tr(
"Steady state cracking"),
"",
true));
88 m[
"properties"] = matDMProp;
97 assert(e); Q_UNUSED(Time);
99 double eCreepRate, NP, So, Eo, QT, Rg, To, TEMP;
101 unsigned pointIndex = mp->_index.
localData();
104 So = thresholdDevStress(e, coord, pointIndex);
105 Eo = thresholdCreepRate(e, coord, pointIndex);
106 QT = thermalActEnergy(e, coord, pointIndex);
107 Rg = universalGasConstant(e, coord, pointIndex);
108 To = thresholdTemperature(e, coord, pointIndex);
111 if (nodeAttrAc(T_NA_ID)!= NULL)
123 NP = disCreep(e, coord, pointIndex);
127 NP = steadyStateCracking(e, coord, pointIndex);
131 eCreepRate = Eo*exp(QT / (Rg*To))*exp((-1.0)*QT / (Rg*TEMP))* pow(MISES / So, NP);
139 return propertyAc(QT_ID)->scalarValueAt(e, coord, ip);
145 return propertyAc(R_ID)->scalarValueAt(e, coord, ip);
151 return propertyAc(DEDT_ID)->scalarValueAt(e, coord, ip);
157 return propertyAc(So_ID)->scalarValueAt(e, coord, ip);
163 return propertyAc(To_ID)->scalarValueAt(e, coord, ip);
169 return propertyAc(AN1_ID)->scalarValueAt(e, coord, ip);
175 return propertyAc(AN2_ID)->scalarValueAt(e, coord, ip);
Definition gmpMaterialCreep.h:36
virtual double fillTemperatureFromNodalAttr(const GmElement *e, const GmVector *coord) const
Return temperature at integration point using the nodal Temperature field.
Definition gmpMaterialCreep.cpp:401
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialCreep.h:47
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition gmpMaterialCreep.cpp:38
virtual double temperatureProperty(const GmElement *e, const GmVector *coord, int ip) const
Returns the Temperature from property table.
Definition gmpMaterialCreep.h:124
Definition gmpMaterialDMCreep.h:36
virtual ~GmpMaterialDMCreep()
Virtual destructor.
Definition gmpMaterialDMCreep.h:60
double thermalActEnergy(const GmElement *e, const GmVector *coord, int ip) const
Returns the Thermal activation energy QT.
Definition gmpMaterialDMCreep.h:137
double thresholdCreepRate(const GmElement *e, const GmVector *coord, int ip) const
Returns the Threshold creep rate.
Definition gmpMaterialDMCreep.h:149
double disCreep(const GmElement *e, const GmVector *coord, int ip) const
Returns the Dislocation creep.
Definition gmpMaterialDMCreep.h:167
GmpMaterialDMCreep(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialDMCreep.h:56
double thresholdTemperature(const GmElement *e, const GmVector *coord, int ip) const
Returns the test temperature To.
Definition gmpMaterialDMCreep.h:161
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition gmpMaterialDMCreep.h:70
double thresholdDevStress(const GmElement *e, const GmVector *coord, int ip) const
Returns the Threshold deviatoric stress.
Definition gmpMaterialDMCreep.h:155
double steadyStateCracking(const GmElement *e, const GmVector *coord, int ip) const
Returns the Steady state cracking.
Definition gmpMaterialDMCreep.h:173
double universalGasConstant(const GmElement *e, const GmVector *coord, int ip) const
Returns the Universal gas constant R.
Definition gmpMaterialDMCreep.h:143
virtual double fillCreepStrainRate(const GmElement *e, const GmpMechanicPoint *mp, const GmVector *coord, const GmVector &Time, double MISES) const
Computes the creep deformation rate.
Definition gmpMaterialDMCreep.h:94
ElementPropertyIds
IDs for material element properties.
Definition gmpMaterialDMCreep.h:40
@ R_ID
Id for retrieving the Universal gas constant accessor.
Definition gmpMaterialDMCreep.h:42
@ To_ID
Id for retrieving the Temperature accessor.
Definition gmpMaterialDMCreep.h:45
@ So_ID
Id for retrieving the Threshold deviatoric stress accessor.
Definition gmpMaterialDMCreep.h:44
@ AN1_ID
Id for retrieving the Dislocation creep accessor.
Definition gmpMaterialDMCreep.h:46
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialDMCreep.h:50
@ DEDT_ID
Id for retrieving the Threshold creep rate accessor.
Definition gmpMaterialDMCreep.h:43
@ AN2_ID
Id for retrieving the Steady state cracking accessor.
Definition gmpMaterialDMCreep.h:47
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 gmpMaterialDMCreep.h:63
Definition gmpMechanicPoint.h:33
Declaration of the GmpMechanicPoint class.
Declaration of useful configuration definitions for the plugin library.
QString tr(const char *sourceText, const char *disambiguation, int n)