MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
gmpMechanicalMaterial.cpp File Reference

Implementation of the GmpMechanicalMaterial class. More...

#include "gmpMechanicalMaterial.h"
#include "gmpFemPhysicsCommon.h"
#include "gmpMaterialElastic.h"
#include "gmMathUtils.h"
#include <gmTrace.h>
#include <assert.h>
#include <math.h>
Include dependency graph for gmpMechanicalMaterial.cpp:

Namespaces

namespace  GmpMechanicUtils
 Groups utilitary routines for working with stress.
 

Functions

void setValues (unsigned st, const GmVector &s, double *sxx, double *syy, double *szz, double *sxy, double *sxz, double *syz)
 
double GmpMechanicUtils::shearModulus (double E, double nu)
 Returns the shear modulus (G) from Young's modulus (E) and Poisson's Coefficient (nu)
 
double GmpMechanicUtils::bulkModulus (double E, double nu)
 Returns the bulk modulus (K) from Young's modulus (E) and Poisson's Coefficient (nu)
 
double GmpMechanicUtils::lameModulus (double E, double nu)
 Returns the lame modulus (lame) from Young's modulus (E) and Poisson's Coefficient (nu)
 
void GmpMechanicUtils::setStressStateVector (const double vc[6], GmVector &vp, unsigned st)
 
double GmpMechanicUtils::stressInvariantI1 (const GmVector &s, unsigned st)
 
double GmpMechanicUtils::stressInvariantI2 (const GmVector &s, unsigned st)
 
double GmpMechanicUtils::stressInvariantI3 (const GmVector &s, unsigned st)
 
GmVector GmpMechanicUtils::stressInvariants (const GmVector &s, unsigned st)
 
void GmpMechanicUtils::stressGradientI1 (const GmVector &, unsigned st, GmVector &dI1)
 
void GmpMechanicUtils::stressGradientI2 (const GmVector &s, unsigned st, GmVector &dI2)
 
void GmpMechanicUtils::stressGradientI3 (const GmVector &s, unsigned st, GmVector &dI3)
 
void GmpMechanicUtils::stressHessianI2 (const GmVector &, unsigned st, GmMatrix &d2I2)
 
void GmpMechanicUtils::stressHessianI3 (const GmVector &s, unsigned st, GmMatrix &d2I3)
 
GmVector GmpMechanicUtils::stressPrincipal (const GmVector &s, unsigned st)
 
double GmpMechanicUtils::hydrostaticStress (const GmVector &s, unsigned st)
 Returns the hydrostatic stress.
 
void GmpMechanicUtils::hydrostaticGradient (const GmVector &, unsigned st, GmVector &dsm)
 Returns the hydrostatic pressure gradient dP/ds.
 
GmVector GmpMechanicUtils::deviatoricTensor (const GmVector &s, unsigned st)
 
double GmpMechanicUtils::deviatoricInvariantJ2 (const GmVector &s, unsigned st)
 
double GmpMechanicUtils::deviatoricInvariantJ3 (const GmVector &s, unsigned st)
 
GmVector GmpMechanicUtils::deviatoricInvariants (const GmVector &s, unsigned st)
 
void GmpMechanicUtils::deviatoricGradientJ2 (const GmVector &s, unsigned st, GmVector &dJ2)
 
void GmpMechanicUtils::deviatoricGradientJ3 (const GmVector &s, unsigned st, GmVector &dJ3)
 
void GmpMechanicUtils::deviatoricHessianJ2 (const GmVector &, unsigned st, GmMatrix &d2J2)
 
void GmpMechanicUtils::deviatoricHessianJ3 (const GmVector &s, unsigned st, GmMatrix &d2J3)
 
GmVector GmpMechanicUtils::deviatoricPrincipal (const GmVector &s, unsigned st)
 
double GmpMechanicUtils::vonMisesStress (const GmVector &s, unsigned st)
 
void GmpMechanicUtils::vonMisesGradient (const GmVector &s, unsigned st, GmVector &dse)
 
void GmpMechanicUtils::vonMisesHessian (const GmVector &s, unsigned st, GmMatrix &d2se)
 
double GmpMechanicUtils::lodeAngle (const GmVector &s, unsigned st)
 
GmVector GmpMechanicUtils::lodeCoordinates (const GmVector &s, unsigned st)
 
double GmpMechanicUtils::lodeAngleMC (const GmVector &s, unsigned st)
 
GmMatrix GmpMechanicUtils::isotropicDamageMatrix (double d)
 Fills the isotropic damage matrix in the local references which is aligned.
 
GmMatrix GmpMechanicUtils::anisotropicDamageMatrix (GmVector Sdv)
 Fills the anisotropic damage matrix in the local references which is aligned.
 
void GmpMechanicUtils::vectorialToTensorial (GmVector &Vec, GmMatrix &Tensor, unsigned sc, QString type, bool mode)
 
void GmpMechanicUtils::fillTransformationMatrix (GmMatrix R, GmMatrix &Te, GmMatrix &Ts, int ns)
 
void GmpMechanicUtils::fillRotationMatrixFromDip (GmMatrix &R, double dip, double strike)
 
void GmpMechanicUtils::fillRotationMatrixFromEulerAngle (GmMatrix &R, double phi, double theta, double psi)
 
void GmpMechanicUtils::elasticStiffness (GmMatrix &De, double E, double nu, unsigned sc, unsigned ips)
 Computes the elastic stiffness matrix using E and Nu.
 
void GmpMechanicUtils::elasticStiffnessLameG (GmMatrix &De, double lame, double G, unsigned sc, unsigned ips)
 Computes the elastic stiffness matrix using lame and G.
 
void GmpMechanicUtils::elasticStiffnessKG (GmMatrix &De, double K, double G, unsigned sc, unsigned ips)
 Computes the elastic stiffness matrix using K and G.
 
void GmpMechanicUtils::elasticFlexibility (GmMatrix &Ce, double E, double nu, unsigned sc, unsigned ips)
 Computes the elastic flexibility matrix using E and Nu.
 
int GmpMechanicUtils::getNumStressComp (unsigned st)
 

Variables

constexpr unsigned stress1D = GmpMechanicPoint::stress::sxx
 
constexpr unsigned stress2D = stress1D | GmpMechanicPoint::stress::syy | GmpMechanicPoint::stress::szz | GmpMechanicPoint::stress::sxy
 
constexpr unsigned stress3D = stress2D | GmpMechanicPoint::stress::sxz | GmpMechanicPoint::stress::syz
 

Detailed Description

Implementation of the GmpMechanicalMaterial class.

Author
Murillo Vinícius Bento Santana
Date
September, 2015 \Update Nilthson Noreña V. and Cristian Mejia
August, 2017 \Update Francisco Corrêa Dias
July, 2019