MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
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
33#include "gmpMechanicPoint.h"
34
35
36class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialCohesivePotentialSoftening : public GmpInterfaceMaterial
37{
38public:
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
60protected:
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
Definition gmpInterfaceMaterial.h:35
Definition gmpMaterialCohesivePotentialSoftening.h:37
virtual double normalSlope(const GmElement *e, const GmVector *coord, int ip) const
Returns the normal slope parameter.
Definition gmpMaterialCohesivePotentialSoftening.h:132
CohesiveLinearPropertyIds
IDs for cohesive potential material properties.
Definition gmpMaterialCohesivePotentialSoftening.h:63
@ Sni_ID
Id for retrieving the normal strength.
Definition gmpMaterialCohesivePotentialSoftening.h:66
@ ALPHA_ID
Id for retrieving the normal shape.
Definition gmpMaterialCohesivePotentialSoftening.h:69
@ BETA_ID
Id for retrieving the shear shape.
Definition gmpMaterialCohesivePotentialSoftening.h:70
@ Ln_ID
Id for retrieving the normal slope.
Definition gmpMaterialCohesivePotentialSoftening.h:71
@ GN_ID
Id for retrieving the normal energy.
Definition gmpMaterialCohesivePotentialSoftening.h:64
@ GS_ID
Id for retrieving the shear strength.
Definition gmpMaterialCohesivePotentialSoftening.h:65
@ Ls_ID
Id for retrieving the shear slope.
Definition gmpMaterialCohesivePotentialSoftening.h:72
@ Tsi_ID
Id for retrieving the shear strength.
Definition gmpMaterialCohesivePotentialSoftening.h:67
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialCohesivePotentialSoftening.h:75
@ Tti_ID
Id for retrieving the tangential strength.
Definition gmpMaterialCohesivePotentialSoftening.h:68
virtual double shearShape(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear shape parameter.
Definition gmpMaterialCohesivePotentialSoftening.h:126
virtual double normalStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the normal strength of the interface element.
Definition gmpMaterialCohesivePotentialSoftening.h:102
virtual ~GmpMaterialCohesivePotentialSoftening()
Virtual destructor.
Definition gmpMaterialCohesivePotentialSoftening.h:44
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
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
virtual double shearStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear strength of the interface element.
Definition gmpMaterialCohesivePotentialSoftening.h:108
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
virtual double normalShape(const GmElement *e, const GmVector *coord, int ip) const
Returns the normal shape parameter.
Definition gmpMaterialCohesivePotentialSoftening.h:120
cohesiveGaussAttributeIds
IDs for Gauss attributes of cohesive potential softening material.
Definition gmpMaterialCohesivePotentialSoftening.h:80
@ NUM_GA_IDS
The number of gauss attributes.
Definition gmpMaterialCohesivePotentialSoftening.h:86
@ DELMAX_GA_ID
Base Id for Gauss attribute(s) used to store the maximum aperture at the current state.
Definition gmpMaterialCohesivePotentialSoftening.h:81
@ DELMAXOLD_GA_ID
Id for retrieving the maximum aperture accessor at the previous state.
Definition gmpMaterialCohesivePotentialSoftening.h:82
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
virtual double shearSlope(const GmElement *e, const GmVector *coord, int ip) const
Returns the shear slope parameter.
Definition gmpMaterialCohesivePotentialSoftening.h:138
GmpMaterialCohesivePotentialSoftening(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialCohesivePotentialSoftening.h:40
Definition gmpMechanicPoint.h:33
arma::mat GmMatrix
arma::vec GmVector
Declaration of the GmpInterfaceMaterial classes.
Declaration of the GmpMechanicPoint class.