|
dynLattice
|
Elasto-plastic rod material implementing yield conditions with isotropic and kinematic hardening. More...
#include "ElastoPlasticRodMaterial.h"


Public Member Functions | |
| ElastoPlasticRodMaterial (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) | |
| Constructor with plasticity configuration. | |
| virtual void | configure (const Properties &props, const Properties &globdat) override |
| Configure plasticity parameters and yield conditions. | |
| virtual void | getConfig (const Properties &conf, const Properties &globdat) const override |
| Retrieve current material configuration. | |
| virtual void | getHardVals (const Vector &hardVals, const Vector &hardParams) const |
| Get hardening values from hardening parameters. | |
| virtual void | getStress (const Vector &stress, const Vector &strain) override |
| Elastic stress computation based on elastic rod material model. | |
| virtual void | getStress (const Vector &stress, const Vector &strain, const idx_t &ielem, const idx_t &ip, const bool inelastic=true) override |
| Plastic stress computation using convex cutting plane algorithm. | |
| virtual void | applyDeform () override |
| Apply computed deformation to the material state. | |
| virtual void | rejectDeform () override |
| Reject the current deformation and revert to previous state. | |
| virtual void | getTable (const String &name, XTable &strain_table, const IdxVector &items, const Vector &weights) const override |
| Populate strain table with material-specific data. | |
| virtual double | getDissipatedEnergy (const idx_t &ielem, const idx_t &ip) const override |
| Get the dissipated energy at a specific integration point. | |
| virtual double | getHardeningPotential (const idx_t &ielem, const idx_t &ip) const override |
| Get the hardening potential energy at a specific integration point. | |
| virtual double | getPotentialEnergy (const idx_t &ielem, const idx_t &ip) const override |
| Get the potential energy at a specific integration point. | |
Public Member Functions inherited from ElasticRodMaterial | |
| ElasticRodMaterial (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) | |
| Constructor with configuration and global data. | |
| virtual Matrix | getMaterialStiff () const override |
| Get the material stiffness matrix. | |
| virtual Matrix | getMaterialStiff (const idx_t &ielem, const idx_t &ip) const override |
| Get the material stiffness matrix for specific element and integration point. | |
| virtual Matrix | getMaterialMass () const override |
| Get the material mass matrix per unit length. | |
| virtual Matrix | getMaterialMass (const idx_t &ielem, const idx_t &ip) const override |
| Get the material mass matrix for specific element and integration point. | |
| virtual Matrix | getLumpedMass (const double l) const override |
| Get the lumped mass matrix for a given element length. | |
| virtual Matrix | getLumpedMass (const double l, const idx_t &ielem) const override |
| Get the lumped mass matrix for specific element and length. | |
Public Member Functions inherited from Material | |
| Material (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) | |
| Constructs a new Material object. | |
| virtual String | getContext () const override |
| Get the context string for error reporting and debugging. | |
Static Public Member Functions | |
| static Ref< Material > | makeNew (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) |
| Factory method for plastic material creation. | |
| static void | declare () |
| Register plastic material type with factory. | |
Static Public Member Functions inherited from ElasticRodMaterial | |
| static Ref< Material > | makeNew (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) |
| Factory method for material creation. | |
| static void | declare () |
| Register material type with factory. | |
Static Public Attributes | |
Plasticity property identifiers | |
| static const char * | TYPE_NAME = "ElastoPlasticRod" |
| static const char * | YIELD_PROP = "yieldCond" |
| Yield condition function. | |
| static const char * | YIELD_DERIV_PROP = "yieldDeriv" |
| Yield condition derivatives. | |
| static const char * | ISO_HARD_PROP = "isotropicCoefficient" |
| Isotropic hardening parameters. | |
| static const char * | KIN_HARD_PROP = "kinematicTensor" |
| Kinematic hardening parameters. | |
Static Public Attributes inherited from ElasticRodMaterial | |
| static const char * | TYPE_NAME = "ElasticRod" |
| static const char * | STIFF_PREFIX = "C_" |
| Prefix for direct stiffness-matrix input. | |
| static const char * | YOUNGS_MODULUS = "young" |
| Young's modulus property key. | |
| static const char * | SHEAR_MODULUS = "shear_modulus" |
| Shear modulus property key. | |
| static const char * | POISSON_RATIO = "poisson_ratio" |
| Poisson's ratio property key. | |
| static const char * | AREA = "area" |
| Cross-sectional area property key. | |
| static const char * | DENSITY = "density" |
| Material density property key. | |
| static const char * | AREA_MOMENT = "area_moment" |
| Area moment of inertia property key. | |
| static const char * | SHEAR_FACTOR = "shear_correction" |
| Shear correction factor property key. | |
| static const char * | POLAR_MOMENT = "polar_moment" |
| Polar moment of inertia property key. | |
| static const char * | CROSS_SECTION = "cross_section" |
| Cross-section type property key (e.g., "square", "circle" "rectangle") | |
| static const char * | RADIUS = "radius" |
| Radius for circular sections property key. | |
| static const char * | SIDE_LENGTH = "side_length" |
| Side lengths for rectangular sections property key. | |
| static const char * | N_ELEM = "elemCount" |
| Number of elements property key. | |
| static const char * | EDGE_FACTOR = "edge_factor" |
| Edge factor for lattice materials property key. | |
| static const char * | EDGE_ELEMS = "edge_elements" |
| Number of edge elements property key. | |
Static Public Attributes inherited from Material | |
| static const char * | VERBOSITY_PROP = "verbosity" |
| Property name for verbosity level control. | |
Protected Member Functions | |
| ~ElastoPlasticRodMaterial () | |
Protected Member Functions inherited from ElasticRodMaterial | |
| ~ElasticRodMaterial () | |
| void | calcMaterialStiff_ () |
| Calculate material stiffness matrix. | |
| void | calcMaterialMass_ () |
| Calculate material mass matrix. | |
Protected Member Functions inherited from Material | |
| virtual | ~Material () |
| Destroy the Material object. | |
Protected Attributes | |
Plasticity algorithm components | |
| Ref< Function > | yieldCond_ |
| Yield condition function. | |
| FuncUtils::FuncArray | yieldDeriv_ |
| Derivatives of yield condition. | |
| idx_t | maxIter_ |
| Max iterations for stress update. | |
| double | precision_ |
| Convergence tolerance for stress update. | |
Function argument organization | |
| idx_t | dofCount_ |
| Degrees of freedom in stress/strain vectors. | |
| idx_t | argCount_ |
| Total arguments to yield condition. | |
Hardening and plastic state | |
| Matrix | materialH_ |
| Hardening matrix. | |
| Cubix | oldHardParams_ |
| Hardening parameters from last converged step. | |
| Cubix | currHardParams_ |
| Current hardening parameters. | |
| Cubix | oldPlastStrains_ |
| Plastic strains from last converged step. | |
| Cubix | currPlastStrains_ |
| Current plastic strains. | |
| Matrix | currDeltaFlow_ |
| Current plastic flow increment. | |
| Matrix | energyDiss_ |
| Dissipated energy storage. | |
| Matrix | energyHardPot_ |
| Hardening potential energy storage. | |
Protected Attributes inherited from ElasticRodMaterial | |
| double | young_ |
| Young's modulus. | |
| double | shearMod_ |
| Shear modulus. | |
| double | shearParam_ |
| Shear parameter. | |
| double | edgeFact_ |
| Edge factor for lattice materials. | |
| idx_t | edgeElems_ |
| Number of edge elements. | |
| idx_t | nElem_ |
| Total number of elements. | |
| double | area_ |
| Cross-sectional area. | |
| Vector | areaMoment_ |
| Area moments of inertia. | |
| double | polarMoment_ |
| Polar moment of inertia. | |
| String | crossSection_ |
| Cross-section type identifier. | |
| double | radius_ |
| Radius for circular sections. | |
| Vector | sideLength_ |
| Side lengths for rectangular sections. | |
| double | density_ |
| Material density. | |
| Matrix | materialK_ |
| Material stiffness matrix. | |
| Matrix | materialM_ |
| Material mass matrix. | |
| Cubix | oldStrains_ |
| Strains from last converged step. | |
| Cubix | currStrains_ |
| Strains from current iteration. | |
| Matrix | energyPot_ |
| Potential energy storage. | |
| String | rodName_ |
| Material instance name. | |
Protected Attributes inherited from Material | |
| idx_t | verbosity_ |
| Verbosity level for material output and debugging. | |
| ElastoPlasticRodMaterial::ElastoPlasticRodMaterial | ( | const String & | name, |
| const Properties & | conf, | ||
| const Properties & | props, | ||
| const Properties & | globdat | ||
| ) |
|
protected |
|
overridevirtual |
This method commits the current deformation state to the material's internal variables. It's typically called at the end of a successful load step to update the material's permanent state.
Reimplemented from ElasticRodMaterial.
|
overridevirtual |
| props | Properties containing configuration parameters |
| globdat | Global data container with simulation context |
| jem::util::PropertyException | if yield function is not provided |
Reimplemented from ElasticRodMaterial.
|
static |
|
overridevirtual |
| conf | Properties object to store configuration in |
| globdat | Global data container with simulation context |
Reimplemented from ElasticRodMaterial.
|
overridevirtual |
Computes the energy dissipated through inelastic processes at the specified element and integration point location.
| ielem | Element index |
| ip | Integration point index within the element |
Reimplemented from ElasticRodMaterial.
|
overridevirtual |
Computes the energy stored in hardening variables for plasticity models. This represents the energy associated with the evolution of the yield surface.
| ielem | Element index |
| ip | Integration point index within the element |
Reimplemented from ElasticRodMaterial.
|
virtual |
|
overridevirtual |
Computes the stored elastic energy at the specified element and integration point location.
| ielem | Element index |
| ip | Integration point index within the element |
Reimplemented from ElasticRodMaterial.
|
overridevirtual |
| jem::Exception | as this method should not be called directly for elasto-plastic materials |
Reimplemented from ElasticRodMaterial.
|
overridevirtual |
Implements iterative return mapping with yield condition evaluation
| stress | Calculated stress vector (output) |
| strain | Input strain vector |
| ielem | Element index |
| ip | Integration point index |
| inelastic | Whether to compute the inelastic stress update |
Reimplemented from ElasticRodMaterial.
|
overridevirtual |
This method fills an XTable with strain-related data for output or post-processing purposes. The specific data depends on the material type.
| name | Name identifier for the table data |
| strain_table | Output table to populate with strain data |
| items | Index vector specifying which items to include |
| weights | Weight vector for data averaging or integration |
Reimplemented from ElasticRodMaterial.
|
static |
|
overridevirtual |
This method reverts the material to its state before the current load step. It's called when a load step fails to converge or needs to be repeated.
Reimplemented from ElasticRodMaterial.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
|
static |
|
static |
|
protected |
|
protected |