Xfem
The Xfem Plugin
Loading...
Searching...
No Matches
xfemCohesiveExponentialSoftening.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_XFEM_MATERIAL_COHESIVE_EXPONENTIALSOFTENING_H_
25#define _GEMA_XFEM_MATERIAL_COHESIVE_EXPONENTIALSOFTENING_H_
26
27
28#include "xfemMaterial.h"
29#include "gmpFemPhysics.h"
30#include "gmMathUtils.h"
31
33{
34protected:
46 // Check the damage initiation criteria
47 virtual double damageInitiationcriteria(const GmElement* e, GmVector strain, const GmVector* coord, int ip, int nc) const;
48
49 // returns the scalar damage value "Sdvg"
50 virtual double scalarDamageVariable(const GmElement* e, const GmVector* coord, int ip, double de, double di, double df) const;
51
52 // returns the gradient of the damage variable in relation to the equivalente displacement
53 // Hd = d(Sdvg)/d(del_e)
54 virtual double deriveDamage(const GmElement* e, const GmVector* coord, int ip, double de, double di, double df) const;
55
56public:
58 XfemCohesiveExponentialSoftening(int typeIndex, QString typeName, const GmLogCategory& logger)
59 :XfemMaterial(typeIndex, typeName, logger){}
60
63
65 static GmpFemPhysicsCommonMaterial* instance(int typeIndex, QString typeName, const GmLogCategory& logger)
66 {
67 return new XfemCohesiveExponentialSoftening(typeIndex, typeName, logger);
68 }
69
70 // Returns a map with material associated properties.
71 virtual const QVariantMap* materialMetaDataMap();
72
73 // Returns the constitutive tangent matrix
74 virtual void tangentModulus(const GmElement* e, GmMatrix& Dep, const GmpMechanicPoint* mp, const GmVector* coord, unsigned nc) const;
75
76 // Returns the stresses according to the material behavior adopted
77 virtual void returnMapping(const GmElement* e, GmMatrix& Dep, const GmpMechanicPoint* mp, const GmVector* coord, unsigned nc) const;
78
80 virtual double normalStrength(const GmElement* e, const GmVector* coord, int ip) const
81 {
82 return propertyAc(Sni_ID)->scalarValueAt(e, coord, ip);
83 }
84
86 virtual double shearStrength(const GmElement* e, const GmVector* coord, int ip) const
87 {
88 return propertyAc(Tsi_ID)->scalarValueAt(e, coord, ip);
89 }
90
92 virtual double shearStrengthTwo(const GmElement* e, const GmVector* coord, int ip) const
93 {
94 return propertyAc(Tti_ID)->scalarValueAt(e, coord, ip);
95 }
96
98 virtual double equivalentSeparation(const GmElement* e, const GmVector* coord, int ip) const
99 {
100 return propertyAc(Ed_ID)->scalarValueAt(e, coord, ip);
101 }
102
103};
104#endif
Definition xfemCohesiveExponentialSoftening.h:33
virtual double shearStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear strength at direction 1 of the interface element.
Definition xfemCohesiveExponentialSoftening.h:86
CohesiveExpPropertyIds
IDs for elastic interface material properties.
Definition xfemCohesiveExponentialSoftening.h:37
@ Tsi_ID
Id for retrieving the shear strength.
Definition xfemCohesiveExponentialSoftening.h:40
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition xfemCohesiveExponentialSoftening.h:44
@ Ed_ID
Id for retrieving the equivalent separation where the softening takes place.
Definition xfemCohesiveExponentialSoftening.h:38
@ Sni_ID
Id for retrieving the normal strength.
Definition xfemCohesiveExponentialSoftening.h:39
@ Tti_ID
Id for retrieving the tangential strength.
Definition xfemCohesiveExponentialSoftening.h:41
virtual double equivalentSeparation(const GmElement *e, const GmVector *coord, int ip) const
Returns the normal elastic stiffness of the interface element.
Definition xfemCohesiveExponentialSoftening.h:98
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition xfemCohesiveExponentialSoftening.cpp:35
virtual ~XfemCohesiveExponentialSoftening()
Virtual destructor.
Definition xfemCohesiveExponentialSoftening.h:62
static GmpFemPhysicsCommonMaterial * instance(int typeIndex, QString typeName, const GmLogCategory &logger)
A "factory" function used to register the material with the physics material factory.
Definition xfemCohesiveExponentialSoftening.h:65
virtual double shearStrengthTwo(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear strength at direction 2 of the interface element.
Definition xfemCohesiveExponentialSoftening.h:92
virtual double normalStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the normal strength of the interface element.
Definition xfemCohesiveExponentialSoftening.h:80
XfemCohesiveExponentialSoftening(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition xfemCohesiveExponentialSoftening.h:58
Basic class for the elastic xfem material plugin object.
Definition xfemMaterial.h:35
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition xfemMaterial.h:183
arma::mat GmMatrix
arma::vec GmVector
Declaration of the xfemMaterial classes.