26#ifndef _GEMA_PLUGIN_MECHANICAL_MATERIAL_H_
27#define _GEMA_PLUGIN_MECHANICAL_MATERIAL_H_
31#include <gmpFemPhysicsCommonMaterial.h>
32#include "gmpFemPhysicsCommon.h"
34#include "gmpFemPhysics.h"
39#define SQRT3 1.7320508075688772935274463415059
48 : GmpFemPhysicsCommonMaterial(typeIndex, typeName, logger)
62 Q_UNUSED(e); Q_UNUSED(Dep); Q_UNUSED(mp); Q_UNUSED(coord); Q_UNUSED(nc); Q_UNUSED(ips);
71 Q_UNUSED(e); Q_UNUSED(mp); Q_UNUSED(coord); Q_UNUSED(sc);
76 virtual bool updateDeformationGradient(
GmMatrix& F,
const GmElement* e,
const GmVector* coord,
int ip,
bool ips =
false)
const
79 Q_UNUSED(F); Q_UNUSED(ips); Q_UNUSED(e); Q_UNUSED(coord); Q_UNUSED(ip);
89 Q_UNUSED(e); Q_UNUSED(mp); Q_UNUSED(coord); Q_UNUSED(sc);
98 GMP_MECHANICAL_PHYSICS_API_EXPORT
int getNumStressComp(
unsigned st);
107 double stressInvariantI1(
const GmVector&,
unsigned);
108 double stressInvariantI2(
const GmVector&,
unsigned);
109 double stressInvariantI3(
const GmVector&,
unsigned);
132 double deviatoricInvariantJ2(
const GmVector&,
unsigned);
134 double deviatoricInvariantJ3(
const GmVector&,
unsigned);
150 double vonMisesStress(
const GmVector&,
unsigned);
157 double lodeAngle(
const GmVector&,
unsigned);
161 double lodeAngleMC(
const GmVector&,
unsigned);
175 void fillRotationMatrixFromDip(
GmMatrix& R,
double dip,
double strike);
178 void fillRotationMatrixFromEulerAngle(
GmMatrix& R,
double phi,
double theta,
double psi);
Definition gmpMechanicPoint.h:33
Basic class providing the interface for a mechanical material.
Definition gmpMechanicalMaterial.h:43
GmpMechanicalMaterial(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMechanicalMaterial.h:47
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
virtual ~GmpMechanicalMaterial()
Virtual destructor.
Definition gmpMechanicalMaterial.h:53
virtual bool isIsotropic() const =0
Returns true if the material is isotropic, false otherwise.
virtual bool mechanicalConstitutiveModel(const GmElement *e, GmMatrix &Dep, const GmpMechanicPoint *mp, const GmVector *coord, const GmVector &Time, unsigned nc, bool ips=false) const =0
Evaluates stress and tangent matrix according to the material behavior adopted.
virtual bool calcDerivedResults(const GmElement *e, GmpMechanicPoint *mp, const GmVector *coord, unsigned sc) const
Calculates the derived results required by materials.
Definition gmpMechanicalMaterial.h:87
virtual void tangentModulus(const GmElement *e, GmMatrix &Dep, const GmpMechanicPoint *mp, const GmVector *coord, unsigned nc, unsigned ips=false) const
Returns the constitutive tangent matrix.
Definition gmpMechanicalMaterial.h:59
Declaration of the GmpMechanicPoint class.
Declaration of useful configuration definitions for the plugin library.
Groups utilitary routines for working with stress.
Definition gmpMechanicalMaterial.cpp:65
void elasticFlexibility(GmMatrix &Ce, double E, double nu, unsigned sc, unsigned ips)
Computes the elastic flexibility matrix using E and Nu.
Definition gmpMechanicalMaterial.cpp:1078
void elasticStiffness(GmMatrix &De, double E, double nu, unsigned sc, unsigned ips)
Computes the elastic stiffness matrix using E and Nu.
Definition gmpMechanicalMaterial.cpp:934
double hydrostaticStress(const GmVector &s, unsigned st)
Returns the hydrostatic stress.
Definition gmpMechanicalMaterial.cpp:308
double bulkModulus(double E, double nu)
Returns the bulk modulus (K) from Young's modulus (E) and Poisson's Coefficient (nu)
Definition gmpMechanicalMaterial.cpp:75
double shearModulus(double E, double nu)
Returns the shear modulus (G) from Young's modulus (E) and Poisson's Coefficient (nu)
Definition gmpMechanicalMaterial.cpp:68
GmMatrix anisotropicDamageMatrix(GmVector Sdv)
Fills the anisotropic damage matrix in the local references which is aligned.
Definition gmpMechanicalMaterial.cpp:688
void elasticStiffnessKG(GmMatrix &De, double K, double G, unsigned sc, unsigned ips)
Computes the elastic stiffness matrix using K and G.
Definition gmpMechanicalMaterial.cpp:1041
GmMatrix isotropicDamageMatrix(double d)
Fills the isotropic damage matrix in the local references which is aligned.
Definition gmpMechanicalMaterial.cpp:662
double lameModulus(double E, double nu)
Returns the lame modulus (lame) from Young's modulus (E) and Poisson's Coefficient (nu)
Definition gmpMechanicalMaterial.cpp:82
void elasticStiffnessLameG(GmMatrix &De, double lame, double G, unsigned sc, unsigned ips)
Computes the elastic stiffness matrix using lame and G.
Definition gmpMechanicalMaterial.cpp:1004
void hydrostaticGradient(const GmVector &, unsigned st, GmVector &dsm)
Returns the hydrostatic pressure gradient dP/ds.
Definition gmpMechanicalMaterial.cpp:315