MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
gmpMaterialFiberStrainHardening.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_FIBER_STRAIN_HARDENING_H_
25#define _GEMA_PLUGIN_MECHANICALMATERIAL_FIBER_STRAIN_HARDENING_H_
26
27#include "gmpMaterialElastic.h"
28#include "gmpMechanicPoint.h"
29#include "gmpFemPhysics.h"
30#include "gmMathUtils.h"
31
32class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialFiberStrainHardening : public GmpMechanicalMaterialElastic
33{
34protected:
37 {
40
41
42 // --- NO ADDING BELOW THIS LINE
44 };
47 {
50
51 // ------ NO ADDING BELOW THIS LINE
53 };
54public:
55
57 GmpMaterialFiberStrainHardening(int typeIndex, QString typeName, const GmLogCategory& logger)
58 : GmpMechanicalMaterialElastic(typeIndex, typeName, logger) {}
59
62
64 static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
65 {
66 Q_UNUSED(simulation);
67 return new GmpMaterialFiberStrainHardening(typeIndex, typeName, logger);
68 }
69
70 // Returns a map with material associated properties.
71 virtual const QVariantMap* materialMetaDataMap();
72
74 virtual bool isIsotropic() const { return true; }
75
77 virtual double initialYieldStress(const GmElement* e, const GmVector* coord, int ip) const
78 {
79 return propertyAc(IYST_ID)->scalarValueAt(e, coord, ip);
80 }
81
83 virtual double elasticFiberStiffness(const GmElement* e, const GmVector* coord, int ip) const
84 {
85 return propertyAc(KFS_ID)->scalarValueAt(e, coord, ip);
86 }
87
88 // Returns the stresses according to the material behavior adopted
89 virtual bool mechanicalConstitutiveModel(const GmElement*, GmMatrix&, const GmpMechanicPoint*, const GmVector*, const GmVector&, unsigned, bool) const;
90
91 //Sets the initial conditions required by interface materials
92 virtual bool setInitialConditions(const GmElement* e, GmpMechanicPoint* mp, const GmVector* coord, unsigned nc) const;
93
94 };
95
96#endif
Definition gmpMaterialFiberStrainHardening.h:33
virtual bool isIsotropic() const
Returns true if the material is isotropic, false otherwise.
Definition gmpMaterialFiberStrainHardening.h:74
virtual double initialYieldStress(const GmElement *e, const GmVector *coord, int ip) const
Returns the material yield stress.
Definition gmpMaterialFiberStrainHardening.h:77
elemGaussAttrIds
IDs for Gauss attributes of elastoplastic material.
Definition gmpMaterialFiberStrainHardening.h:47
@ NUM_GA_IDS
The number of gauss attributes.
Definition gmpMaterialFiberStrainHardening.h:52
@ UC_GA_ID
Base Id for Gauss attribute(s) used to store the critical displacement at the current state.
Definition gmpMaterialFiberStrainHardening.h:48
@ UCOLD_GA_ID
Id for retrieving the plastic strain accessor at the previous state (old plastic strain)
Definition gmpMaterialFiberStrainHardening.h:49
virtual double elasticFiberStiffness(const GmElement *e, const GmVector *coord, int ip) const
Returns the material axial elastic stiffness.
Definition gmpMaterialFiberStrainHardening.h:83
virtual ~GmpMaterialFiberStrainHardening()
Virtual destructor.
Definition gmpMaterialFiberStrainHardening.h:61
GmpMaterialFiberStrainHardening(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialFiberStrainHardening.h:57
ElementPropertyIds
IDs for material element properties.
Definition gmpMaterialFiberStrainHardening.h:37
@ IYST_ID
Id for retrieving the yield stress accessor.
Definition gmpMaterialFiberStrainHardening.h:39
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialFiberStrainHardening.h:43
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 gmpMaterialFiberStrainHardening.h:64
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
virtual bool setInitialConditions(const GmElement *e, GmpMechanicPoint *mp, const GmVector *coord, unsigned sc) const
Sets the initial conditions required by Solid materials.
Definition gmpMechanicalMaterial.h:69
arma::mat GmMatrix
arma::vec GmVector
Declaration of the GmpMechanicalMaterialElastic class.
Declaration of the GmpMechanicPoint class.