MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Public Member Functions | Static Public Member Functions | Protected Types | List of all members
GmpMaterialCapModel Class Reference
Inheritance diagram for GmpMaterialCapModel:
Inheritance graph
[legend]
Collaboration diagram for GmpMaterialCapModel:
Collaboration graph
[legend]

Public Member Functions

 GmpMaterialCapModel (int typeIndex, QString typeName, const GmLogCategory &logger)
 Constructor. Gets as parameters the material index and its name.
 
virtual ~GmpMaterialCapModel ()
 Virtual destructor.
 
virtual const QVariantMap * materialMetaDataMap ()
 Returns a pointer to the material attribute map, built when the function is called for the first time. More...
 
virtual bool mechanicalConstitutiveModel (const GmElement *c, GmMatrix &Dep, const GmpMechanicPoint *mp, const GmVector *coord, const GmVector &Time, unsigned sc, bool ips) const
 Returns the updated stresses after the return mapping process.
 
virtual bool implicitReturnAlgorithm (const GmElement *c, GmMatrix &Dep, const GmpMechanicPoint *mp, const GmVector *coord, unsigned sc, bool ips) const
 Returns the updated stresses using closet point return algorithm.
 
virtual bool cFunctionsReturnAlgorithm (const GmElement *c, GmMatrix &Dep, const GmpMechanicPoint *mp, const GmVector *coord, unsigned sc, bool ips) const
 Returns the updated stresses using a Newton-Raphson implicit state-update algorithm based on complementary functions.
 
virtual bool newtonKrylovReturnAlgorithm (const GmElement *c, GmMatrix &Dep, const GmpMechanicPoint *mp, const GmVector *coord, unsigned sc, bool ips) const
 Returns the updated stresses using a Newton-Krylov implicit state-update algorithm based on complementary functions.
 
virtual bool setInitialConditions (const GmElement *e, GmpMechanicPoint *mp, const GmVector *coord, unsigned sc) const
 Set the initial conditions required by Cap model material.
 
virtual double yieldStrengthRatio (const GmElement *e, const GmVector &S, const GmVector *coord, int ip, unsigned sc) const
 Returns the Yield Strength Ratio (Ysr) More...
 
virtual bool isIsotropic () const
 Returns true if the material is isotropic, false otherwise.
 
virtual double alphaParameter (const GmElement *e, const GmVector *coord, int ip) const
 Returns the material constant alpha.
 
virtual double betaParameter (const GmElement *e, const GmVector *coord, int ip) const
 Returns the material constant beta.
 
virtual double lambdaParameter (const GmElement *e, const GmVector *coord, int ip) const
 Returns the material constant lambda.
 
virtual double thetaParameter (const GmElement *e, const GmVector *coord, int ip) const
 Returns the material constant theta.
 
virtual double initialCenterEllipse (const GmElement *e, const GmVector *coord, int ip) const
 Returns the center of the ellipse.
 
virtual double ratioSemiaxes (const GmElement *e, const GmVector *coord, int ip) const
 Returns the ratio between the semiaxes.
 
virtual double tensionCutOff (const GmElement *e, const GmVector *coord, int ip) const
 Returns the tension cut-off.
 
virtual double maxVolumetricStrain (const GmElement *e, const GmVector *coord, int ip) const
 Returns the ultimate compressive volumetric strain.
 
virtual double volumetricStrainRate (const GmElement *e, const GmVector *coord, int ip) const
 Returns the volumetric strain rate with respect to the compressive hydrostatic strain.
 
virtual double yieldCriterion (const GmElement *, const GmVector &, const GmVector *, int, unsigned) const
 
virtual bool yieldStressGradient (const GmElement *, GmVector &, const GmVector &, const GmVector *, int, unsigned, bool) const
 
virtual bool yieldGradient_Hardening (const GmElement *, GmVector &, const GmVector &, const GmVector *, int, unsigned) const
 
virtual bool yieldHessian (const GmElement *, GmMatrix &, const GmVector &, const GmVector *, int, unsigned, bool) const
 
virtual double capSurfaceCriterion (const GmElement *, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool capSurfaceGradient (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool capSurfaceGradient_Hardening (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool capSurfaceHessian (const GmElement *, GmMatrix &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual double tensionCutOffCriterion (const GmElement *, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool tensionCutOffGradient (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool tensionCutOffGradient_Hardening (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool tensionCutOffHessian (const GmElement *, GmMatrix &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual double plasticFPotential (const GmElement *, const GmVector &, const GmVector *, int, unsigned) const
 
virtual bool flowVector (const GmElement *, GmVector &, const GmVector &, const GmVector *, int, unsigned, bool) const
 
virtual bool flowVectorStressGradient (const GmElement *, GmMatrix &, const GmVector &, const GmVector *, int, unsigned, bool) const
 
virtual bool flowVectorDerivative_Hardening (const GmElement *, GmVector &, const GmVector &, const GmVector *, int, unsigned) const
 
virtual double capSurfacePlasticFPotential (const GmElement *, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool capSurfacePlasticFGradient (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool capSurfacePlasticFHessian (const GmElement *, GmMatrix &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool capSurfaceFlowVectorDerivative_Hardening (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual double tensionCutOffPlasticFPotential (const GmElement *, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool tensionCutOffPlasticFGradient (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool tensionCutOffPlasticFHessian (const GmElement *, GmMatrix &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool tensionCutOffFlowVectorDerivative_Hardening (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool hardeningEvolution (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool hardeningEvolutionDerivative_Stress (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool hardeningEvolutionDerivative_Hardening (const GmElement *, GmMatrix &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool capSurfaceHardeningEvolution (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool capSurfaceHardeningEvolutionDerivative_Stress (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool capSurfaceHardeningEvolutionDerivative_Hardening (const GmElement *, GmMatrix &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool tensionCutOffHardeningEvolution (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool tensionCutOffHardeningEvolutionDerivative_Stress (const GmElement *, GmVector &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool tensionCutOffHardeningEvolutionDerivative_Hardening (const GmElement *, GmMatrix &, const GmVector &, const double, const GmVector *, int, unsigned) const
 
virtual bool yieldSurfaces (const GmElement *, GmVector &, GmVector, const double, const GmVector *, int, unsigned) const
 
virtual bool flowVectors (const GmElement *, GmVector &, int, GmVector, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool hardeningLaws (const GmElement *, GmVector &, int, GmVector, const double, const GmVector *, int, unsigned) const
 
virtual bool gradientVectors_Stress (const GmElement *, GmVector &, int, GmVector, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool gradientVectors_Hardening (const GmElement *, GmVector &, int, GmVector, const double, const GmVector *, int, unsigned) const
 
virtual bool flowVectorDerivatives_Stress (const GmElement *, GmMatrix &, int, GmVector, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool flowVectorDerivatives_Hardening (const GmElement *, GmVector &, int, GmVector, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool hardeningLawDerivatives_Stress (const GmElement *, GmVector &, int, GmVector, const double, const GmVector *, int, unsigned, bool) const
 
virtual bool hardeningLawDerivatives_Hardening (const GmElement *, GmMatrix &, int, GmVector, const double q, const GmVector *, int, unsigned) const
 
void updateDLamb (GmVector &, GmVector, GmVector) const
 
virtual int numberActiveSurface (GmVector, const double) const
 
void indexActiveSurfaces (GmVector &, GmVector, int, const double) const
 
void deactivateSurfaces (GmVector &, GmVector, int) const
 
virtual double lineSearch (const GmElement *, GmMatrix, GmVector, GmVector, GmVector, GmVector, const double, const double, const double, GmVector, GmVector, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
 
virtual double goldenSectionMethod (const GmElement *, GmMatrix, GmVector, GmVector, GmVector, GmVector, const double, const double, const double, GmVector, GmVector, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
 
virtual double quadraticInterpolation (const GmElement *, GmMatrix, GmVector, GmVector, GmVector, GmVector, const double, const double, const double, GmVector, GmVector, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
 
virtual double cubicInterpolation (const GmElement *, GmMatrix, GmVector, GmVector, GmVector, GmVector, const double, const double, const double, GmVector, GmVector, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
 
virtual double residualFunction (const GmElement *, GmMatrix, const GmpMechanicPoint *, const GmVector *, GmVector, GmVector, GmVector, const double, const double, GmVector, unsigned, bool) const
 
virtual bool applyGivensRotation (const GmVector c, const GmVector s, GmVector &vrot, const int k) const
 
virtual bool vectorFunction (const GmElement *e, const GmpMechanicPoint *mp, const GmVector *coord, GmVector &r, const GmMatrix C, const GmVector de, const GmVector s, const GmVector s_old, const double q, const double q_old, const GmVector dg, const double cphi, const double cdg, const double delta, unsigned sc, bool ips) const
 
virtual bool generalizedMinimumResidual (const GmVector fi, const GmMatrix M_inv, double tol, const int max_iter, const GmElement *e, const GmpMechanicPoint *mp, const GmVector *coord, const GmMatrix C, const GmVector de, GmVector &d, double &res, int &counter, const GmVector s_current, const GmVector s_old, const double q_current, const double q_old, const GmVector dg_current, const double cphi, const double cdg, const double delta, unsigned sc, bool ips) const
 
virtual bool numericalJacobian (const GmElement *e, const GmpMechanicPoint *mp, const GmVector *coord, GmMatrix &J, const GmMatrix C, const GmVector de, const GmVector s, const GmVector s_old, const double q, const double q_old, const GmVector dg, const double cphi, const double cdg, const double delta, unsigned sc, bool ips) const
 
- Public Member Functions inherited from GmpMaterialElastoplasticMultiSurface
 GmpMaterialElastoplasticMultiSurface (int typeIndex, QString typeName, const GmLogCategory &logger)
 
virtual bool explicitReturnAlgorithm (const GmElement *, GmMatrix &, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
 Returns the updated stresses using explicit return algorithm.
 
virtual bool semiImplicitReturnAlgorithm (const GmElement *, GmMatrix &, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
 Returns the updated stresses using cutting plane return algorithm.
 
virtual double hardeningLaw (const GmElement *, const GmpMechanicPoint *, const GmVector *, int, unsigned) const
 
virtual double hardeningStressGradient (const GmElement *, const GmpMechanicPoint *, const GmVector *, int, unsigned) const
 
virtual double hardemningHessian (const GmElement *, const GmpMechanicPoint *, const GmVector *, int, unsigned) const
 
- Public Member Functions inherited from GmpMaterialElastoplastic
 GmpMaterialElastoplastic (int typeIndex, QString typeName, const GmLogCategory &logger)
 
virtual bool alternativeReturnAlgorithm (const GmElement *, GmMatrix &, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
 Returns the updated stresses using an alternative return mapping algorithm.
 
virtual double hardeningHessian (const GmElement *, const GmpMechanicPoint *, const GmVector *, int, unsigned) const
 
virtual double lineSearch (const GmElement *, GmMatrix &, GmVector &, GmVector &, const GmpMechanicPoint *, const GmVector *, double, double, unsigned, bool) const
 
virtual double goldenSectionMethod (const GmElement *, GmMatrix &, GmVector &, GmVector &, const GmpMechanicPoint *, const GmVector *, double, double, unsigned, bool) const
 
virtual double quadraticInterpolation (const GmElement *, GmMatrix &, GmVector &, GmVector &, const GmpMechanicPoint *, const GmVector *, double, double, unsigned, bool) const
 
virtual double cubicInterpolation (const GmElement *, GmMatrix &, GmVector &, GmVector &, const GmpMechanicPoint *, const GmVector *, double, double, unsigned, bool) const
 
virtual double residualFunction (const GmElement *, GmMatrix &, GmVector &, const GmpMechanicPoint *, const GmVector *, double, unsigned, bool) const
 
virtual double returnAlgorithm (const GmElement *e, const GmVector *coord, int ip) const
 Returns the type of return mapping algorithm.
 
virtual bool substepping (const GmElement *e, const GmVector *coord, int ip) const
 Returns the substepping algorithm.
 
virtual double lineSearchStrategy (const GmElement *e, const GmVector *coord, int ip) const
 Returns the line search strategy.
 
virtual double yieldTolerance (const GmElement *e, const GmVector *coord, int ip) const
 Returns the yield function tolerance.
 
virtual double stressTolerance (const GmElement *e, const GmVector *coord, int ip) const
 Returns the Stress tolerance.
 
virtual double hardeningTolerance (const GmElement *e, const GmVector *coord, int ip) const
 Returns the hardening variable tolerance.
 
- Public Member Functions inherited from GmpMechanicalMaterialElastic
 GmpMechanicalMaterialElastic (int typeIndex, QString typeName, const GmLogCategory &logger)
 Constructor. Gets as parameters the material index and its name.
 
virtual ~GmpMechanicalMaterialElastic ()
 Virtual destructor.
 
virtual bool checkLoadedData (const GmElement *e) const
 
virtual void tangentModulus (const GmElement *e, GmMatrix &Dep, const GmpMechanicPoint *mp, const GmVector *coord, unsigned nc, unsigned ips) const
 Returns the constitutive tangent matrix.
 
virtual double elasticModulus (const GmElement *e, const GmVector *coord, int ip) const
 Returns the material elastic modulus.
 
virtual double poissonRatio (const GmElement *e, const GmVector *coord, int ip) const
 Returns the material poisson ratio.
 
virtual void stiffness (const GmElement *, unsigned, GmMatrix &, const GmVector *, unsigned, int) const
 
virtual void flexibility (const GmElement *, unsigned, GmMatrix &, const GmVector *, unsigned, int) const
 
double bulkModulus (const GmElement *e, const GmVector *coord, int ip) const
 Returns the bulk modulus (K) from Young's modulus (E) and Poisson's Coefficient (nu)
 
double shearModulus (const GmElement *e, const GmVector *coord, int ip) const
 Returns the shear modulus (G) from Young's modulus (E) and Poisson's Coefficient (nu)
 
double lameModulus (const GmElement *e, const GmVector *coord, int ip) const
 Returns the lame modulus(lame) from Young's modulus (E) and Poisson's Coefficient(nu)
 
virtual void spatialc (const GmMatrix &C, const GmMatrix &F, GmMatrix &c, int d) const
 
- Public Member Functions inherited from GmpMechanicalMaterial
 GmpMechanicalMaterial (int typeIndex, QString typeName, const GmLogCategory &logger)
 Constructor. Gets as parameters the material index and its name.
 
virtual ~GmpMechanicalMaterial ()
 Virtual destructor.
 
virtual bool updateDeformationGradient (GmMatrix &F, const GmElement *e, const GmVector *coord, int ip, bool ips=false) const
 
virtual bool calcDerivedResults (const GmElement *e, GmpMechanicPoint *mp, const GmVector *coord, unsigned sc) const
 Calculates the derived results required by materials.
 

Static Public Member Functions

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.
 
- Static Public Member Functions inherited from GmpMechanicalMaterialElastic
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.
 

Protected Types

enum  ElementPropertyIds {
  ALPHA_ID = GmpMaterialElastoplasticMultiSurface::NUM_PROPERTY_IDS, BETA_ID, LAMBDA_ID, THETA_ID,
  INITIALCENTER_ID, RATIO_ID, CUTOFF_ID, MAXVSTRAIN_ID,
  VSTRAINRATE_ID, NUM_PROPERTY_IDS
}
 IDs for material element properties. More...
 
enum  GaussAttributeIds { MDLAMBD_GA_ID = GmpMaterialElastoplastic::NUM_GA_IDS, NUM_GA_IDS }
 IDs for material Gauss attributes. More...
 
- Protected Types inherited from GmpMechanicalMaterialElastic
enum  ElementPropertyIds {
  E_ID, NU_ID, DM_ID, K0_ID,
  NUM_PROPERTY_IDS
}
 IDs for material element properties. More...
 

Additional Inherited Members

- Public Types inherited from GmpMaterialElastoplastic
enum  returnMappingStrategy {
  Explicit, SemiImplicit, Implicit, NewtonKrylov,
  CFunctions, Alternative
}
 IDs for return mapping strategies. More...
 
enum  lineSearchStrategy { none, goldenSection, quadratic, cubic }
 IDs for line search strategies. More...
 
enum  ElementPropertyIds {
  RMA_ID = GmpMechanicalMaterialElastic::NUM_PROPERTY_IDS, SUBSTEP_ID, LINESEARCH_ID, FTOL_ID,
  STOL_ID, HTOL_ID, NUM_PROPERTY_IDS
}
 IDs for material element properties. More...
 
enum  elastoplasticGaussAttrIds {
  EP_GA_ID, EPOLD_GA_ID, HARD_GA_ID, HARDOLD_GA_ID,
  DLAMBD_GA_ID, NUM_GA_IDS
}
 IDs for Gauss attributes of elastoplastic material. More...
 

Member Enumeration Documentation

◆ ElementPropertyIds

IDs for material element properties.

Enumerator
ALPHA_ID 

Id for retrieving the material constant alpha accessor.

BETA_ID 

Id for retrieving the material constant beta accessor.

LAMBDA_ID 

Id for retrieving the material constant lambda accessor.

THETA_ID 

Id for retrieving the material constant theta accessor.

INITIALCENTER_ID 

Id for retrieving the initial center of the ellipse.

RATIO_ID 

Id for retrieving the ratio between the semiaxes.

CUTOFF_ID 

Id for retrieving the tension cut-off.

MAXVSTRAIN_ID 

Id for retrieving the ultimate compressive volumetric strain.

VSTRAINRATE_ID 

Id for retrieving the volumetric strain rate with respect to the compressive hydrostatic strain.

NUM_PROPERTY_IDS 

The number of property ids above.

◆ GaussAttributeIds

IDs for material Gauss attributes.

Enumerator
MDLAMBD_GA_ID 

Base Id for Gauss attribute(s) used to store the plastic multipliers at the plastic state.

NUM_GA_IDS 

The number of Gauss attribute ids above.

Member Function Documentation

◆ materialMetaDataMap()

const QVariantMap * GmpMaterialCapModel::materialMetaDataMap ( )
virtual

Returns a pointer to the material attribute map, built when the function is called for the first time.

This table includes the attributes treated by the base class, GmpMaterialElastoplastic, adding the material constant 'Alpha', the material constant 'Beta', the material constant 'Lambda', the material constant 'Theta', the initial center of the ellipse 'InitialCenter', the ratio between the semiaxes 'Ratio', the tension cut-off 'CutOff', the ultimate compressive volumetric strain "MaxVolStrain" and volumetric strain rate with respect to the compressive hydrostatic strain "VolStrainRate"

Reimplemented from GmpMaterialElastoplastic.

◆ yieldStrengthRatio()

double GmpMaterialCapModel::yieldStrengthRatio ( const GmElement e,
const GmVector S,
const GmVector coord,
int  ip,
unsigned  sc 
) const
virtual

Returns the Yield Strength Ratio (Ysr)

Returns the yield strength ratio for Cap model material.

Implements GmpMaterialElastoplastic.


The documentation for this class was generated from the following files: