MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
gmpMaterialCohesivePotentialSoftening.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 
26 #ifndef _GEMA_PLUGIN_MECHANICALMATERIAL_COHESIVEPOTENTIALSOFTENING_H_
27 #define _GEMA_PLUGIN_MECHANICALMATERIAL_COHESIVEPOTENTIALSOFTENING_H_
28 
29 #include <gmpFemPhysics.h>
30 #include <gmTrace.h>
31 
32 #include "gmpInterfaceMaterial.h"
33 #include "gmpMechanicPoint.h"
34 
35 
36 class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialCohesivePotentialSoftening : public GmpInterfaceMaterial
37 {
38 public:
40  GmpMaterialCohesivePotentialSoftening(int typeIndex, QString typeName, const GmLogCategory& logger)
41  :GmpInterfaceMaterial(typeIndex, typeName, logger) {}
42 
45 
47  static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
48  {
49  Q_UNUSED(simulation);
50  return new GmpMaterialCohesivePotentialSoftening(typeIndex, typeName, logger);
51  }
52 
53  // Returns a map with material associated properties.
54  virtual const QVariantMap* materialMetaDataMap();
55 
58  virtual bool mechanicalConstitutiveModel(const GmElement* e, GmMatrix& Dep, const GmpMechanicPoint* mp, const GmVector* coord, unsigned nc) const;
59 
60 protected:
63  {
73 
74  // --- NO ADDING BELOW THIS LINE
76  };
77 
80  {
83 
84 
85  // ------ NO ADDING BELOW THIS LINE
87  };
88 
90  virtual double normalEnergy(const GmElement* e, const GmVector* coord, int ip) const
91  {
92  return propertyAc(GN_ID)->scalarValueAt(e, coord, ip);
93  }
94 
96  virtual double shearEnergy(const GmElement* e, const GmVector* coord, int ip) const
97  {
98  return propertyAc(GS_ID)->scalarValueAt(e, coord, ip);
99  }
100 
102  virtual double normalStrength(const GmElement* e, const GmVector* coord, int ip) const
103  {
104  return propertyAc(Sni_ID)->scalarValueAt(e, coord, ip);
105  }
106 
108  virtual double shearStrength(const GmElement* e, const GmVector* coord, int ip) const
109  {
110  return propertyAc(Tsi_ID)->scalarValueAt(e, coord, ip);
111  }
112 
114  virtual double shearStrengthTwo(const GmElement* e, const GmVector* coord, int ip) const
115  {
116  return propertyAc(Tti_ID)->scalarValueAt(e, coord, ip);
117  }
118 
120  virtual double normalShape(const GmElement* e, const GmVector* coord, int ip) const
121  {
122  return propertyAc(ALPHA_ID)->scalarValueAt(e, coord, ip);
123  }
124 
126  virtual double shearShape(const GmElement* e, const GmVector* coord, int ip) const
127  {
128  return propertyAc(BETA_ID)->scalarValueAt(e, coord, ip);
129  }
130 
132  virtual double normalSlope(const GmElement* e, const GmVector* coord, int ip) const
133  {
134  return propertyAc(Ln_ID)->scalarValueAt(e, coord, ip);
135  }
136 
138  virtual double shearSlope(const GmElement* e, const GmVector* coord, int ip) const
139  {
140  return propertyAc(Ls_ID)->scalarValueAt(e, coord, ip);
141  }
142 };
143 
144 #endif
Id for retrieving the tangential strength.
Definition: gmpMaterialCohesivePotentialSoftening.h:68
virtual double normalEnergy(const GmElement *e, const GmVector *coord, int ip) const
Returns the normal fracture energy of the interface element.
Definition: gmpMaterialCohesivePotentialSoftening.h:90
GmpMaterialCohesivePotentialSoftening(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition: gmpMaterialCohesivePotentialSoftening.h:40
Id for retrieving the normal slope.
Definition: gmpMaterialCohesivePotentialSoftening.h:71
CohesiveLinearPropertyIds
IDs for cohesive potential material properties.
Definition: gmpMaterialCohesivePotentialSoftening.h:62
Definition: gmpMaterialCohesivePotentialSoftening.h:36
Declaration of the GmpInterfaceMaterial classes.
cohesiveGaussAttributeIds
IDs for Gauss attributes of cohesive potential softening material.
Definition: gmpMaterialCohesivePotentialSoftening.h:79
The number of gauss attributes.
Definition: gmpMaterialCohesivePotentialSoftening.h:86
virtual double shearSlope(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear slope parameter.
Definition: gmpMaterialCohesivePotentialSoftening.h:138
Id for retrieving the maximum aperture accessor at the previous state.
Definition: gmpMaterialCohesivePotentialSoftening.h:82
virtual double shearShape(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear shape parameter.
Definition: gmpMaterialCohesivePotentialSoftening.h:126
Definition: gmpMechanicPoint.h:32
virtual double shearStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear strength of the interface element.
Definition: gmpMaterialCohesivePotentialSoftening.h:108
Id for retrieving the normal energy.
Definition: gmpMaterialCohesivePotentialSoftening.h:64
Id for retrieving the shear strength.
Definition: gmpMaterialCohesivePotentialSoftening.h:67
Id for retrieving the shear strength.
Definition: gmpMaterialCohesivePotentialSoftening.h:65
virtual double shearEnergy(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear fracture energy of the interface element.
Definition: gmpMaterialCohesivePotentialSoftening.h:96
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: gmpMaterialCohesivePotentialSoftening.h:47
Id for retrieving the normal strength.
Definition: gmpMaterialCohesivePotentialSoftening.h:66
virtual double normalStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the normal strength of the interface element.
Definition: gmpMaterialCohesivePotentialSoftening.h:102
Declaration of the GmpMechanicPoint class.
Definition: gmpInterfaceMaterial.h:34
Id for retrieving the shear shape.
Definition: gmpMaterialCohesivePotentialSoftening.h:70
virtual double shearStrengthTwo(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear strength at direction 2 of the interface element.
Definition: gmpMaterialCohesivePotentialSoftening.h:114
The number of property ids above.
Definition: gmpMaterialCohesivePotentialSoftening.h:75
Id for retrieving the normal shape.
Definition: gmpMaterialCohesivePotentialSoftening.h:69
virtual ~GmpMaterialCohesivePotentialSoftening()
Virtual destructor.
Definition: gmpMaterialCohesivePotentialSoftening.h:44
Base Id for Gauss attribute(s) used to store the maximum aperture at the current state.
Definition: gmpMaterialCohesivePotentialSoftening.h:81
virtual double normalShape(const GmElement *e, const GmVector *coord, int ip) const
Returns the normal shape parameter.
Definition: gmpMaterialCohesivePotentialSoftening.h:120
virtual double normalSlope(const GmElement *e, const GmVector *coord, int ip) const
Returns the normal slope parameter.
Definition: gmpMaterialCohesivePotentialSoftening.h:132
arma::vec GmVector
arma::mat GmMatrix
Id for retrieving the shear slope.
Definition: gmpMaterialCohesivePotentialSoftening.h:72