25#ifndef _GEMA_PLUGIN_MECHANICALMATERIAL_POWERLAWCREEP_H_
26#define _GEMA_PLUGIN_MECHANICALMATERIAL_POWERLAWCREEP_H_
29#include <gmpFemPhysics.h>
32#include <gmpMaterialCreep.h>
77 GmpFemPhysicsCommon::ValueList matPLProp = m[
"properties"].value<GmpFemPhysicsCommon::ValueList>();
78 matPLProp.append(GmpFemPhysicsCommon::ScalarValue(Af_ID,
"Af",
QObject::tr(
"Structure factor of PL"),
"",
true));
79 matPLProp.append(GmpFemPhysicsCommon::ScalarValue(An_ID,
"An",
QObject::tr(
"Stress power of PL"),
"",
true));
80 matPLProp.append(GmpFemPhysicsCommon::ScalarValue(Am_ID,
"Am",
QObject::tr(
"Time power of PL"),
"",
true));
81 matPLProp.append(GmpFemPhysicsCommon::ScalarValue(Ak_ID,
"Ak",
QObject::tr(
"Temperature power of PL"),
"",
true));
82 m[
"properties"] = matPLProp;
93 double creepRate = 0.0, A, k, n, m;
101 unsigned pointIndex = mp->_index.
localData();
103 A = structureFactorPL(e, coord, pointIndex);
104 n = stressPowerPL(e, coord, pointIndex);
105 m = timePowerPL(e, coord, pointIndex);
106 k = temperaturePowerPL(e, coord, pointIndex);
115 if (nodeAttrAc(T_NA_ID) != NULL)
127 creepRate = A * pow(TEMP, k) * pow(MISES, n) * pow(cTime, m);
133 eCreepRate = (A * pow(MISES, n) * pow(TEMP, k) / (m + 1)) * (pow(cTime, (m + 1)) - pow(pTime, (m + 1))) * (1 / dTime);
144 return propertyAc(Am_ID)->scalarValueAt(e, coord, ip);
150 return propertyAc(Af_ID)->scalarValueAt(e, coord, ip);
156 return propertyAc(Ak_ID)->scalarValueAt(e, coord, ip);
162 return propertyAc(An_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 gmpMaterialPowerLawCreep.h:36
virtual ~GmpMaterialPowerLawCreep()
Virtual destructor.
Definition gmpMaterialPowerLawCreep.h:57
GmpMaterialPowerLawCreep(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialPowerLawCreep.h:53
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 gmpMaterialPowerLawCreep.h:60
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition gmpMaterialPowerLawCreep.h:67
double structureFactorPL(const GmElement *e, const GmVector *coord, int ip) const
Returns the power law multiplier.
Definition gmpMaterialPowerLawCreep.h:148
ElementPropertyIds
IDs for material element properties.
Definition gmpMaterialPowerLawCreep.h:40
@ An_ID
Id for retrieving the stress power for DCL accessor.
Definition gmpMaterialPowerLawCreep.h:42
@ Ak_ID
Id for retrieving the structure factor for UMC accessor.
Definition gmpMaterialPowerLawCreep.h:44
@ Am_ID
Id for retrieving the thermal activation energy for DCL accessor
Definition gmpMaterialPowerLawCreep.h:43
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialPowerLawCreep.h:47
double stressPowerPL(const GmElement *e, const GmVector *coord, int ip) const
Returns the stress power for PL.
Definition gmpMaterialPowerLawCreep.h:160
virtual double fillCreepStrainRate(const GmElement *e, const GmpMechanicPoint *mp, const GmVector *coord, const GmVector &Time, double MISES) const
Computes the creep deformation rate.
Definition gmpMaterialPowerLawCreep.h:88
double temperaturePowerPL(const GmElement *e, const GmVector *coord, int ip) const
Returns the temperature power for PL.
Definition gmpMaterialPowerLawCreep.h:154
double timePowerPL(const GmElement *e, const GmVector *coord, int ip) const
Returns the time power for PL.
Definition gmpMaterialPowerLawCreep.h:142
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)