|
dynLattice
|
Linear elastic rod material with configurable cross-sectional properties.
#include "ElasticRodMaterial.h"


Public Member Functions | |
| ElasticRodMaterial (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) | |
| Constructor with configuration and global data. | |
| virtual void | configure (const Properties &props, const Properties &globdat) override |
| Configure material properties including cross-sectional geometry. | |
| virtual void | getConfig (const Properties &conf, const Properties &globdat) const override |
| Retrieve current material configuration. | |
| 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. | |
| virtual void | getStress (const Vector &stress, const Vector &strain) override |
| Compute stress vector from strain vector. | |
| virtual void | getStress (const Vector &stress, const Vector &strain, const idx_t &ielem, const idx_t &ip, const bool inelastic=false) override |
| Compute stress with element and integration point context. | |
| 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 void | applyDeform () override |
| Apply computed deformation to the material state. | |
| virtual void | rejectDeform () override |
| Reject the current deformation and revert to previous state. | |
| virtual double | getDissipatedEnergy (const idx_t &ielem, const idx_t &ip) const override |
| Get the dissipated 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. | |
| virtual double | getHardeningPotential (const idx_t &ielem, const idx_t &ip) const override |
| Get the hardening potential energy at a specific integration point. | |
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 material creation. | |
| static void | declare () |
| Register material type with factory. | |
Static Public Attributes | |
Material type and property identifiers | |
| 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. | |
Element and edge properties | |
| 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 | |
| ~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 | |
Material properties | |
| 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. | |
Computed matrices and state | |
| 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. | |
| ElasticRodMaterial::ElasticRodMaterial | ( | 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.
Implements Material.
Reimplemented in ElastoPlasticRodMaterial.
|
protected |
|
protected |
|
overridevirtual |
| props | Properties containing configuration parameters |
| globdat | Global data container with simulation context |
| jem::IllegalInputException | if negative material properties are provided |
Reimplemented from Material.
Reimplemented in ElastoPlasticRodMaterial.
|
static |
|
overridevirtual |
| conf | Properties object to store configuration in |
| globdat | Global data container with simulation context |
Reimplemented from Material.
Reimplemented in ElastoPlasticRodMaterial.
|
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 |
Implements Material.
Reimplemented in ElastoPlasticRodMaterial.
|
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 |
Implements Material.
Reimplemented in ElastoPlasticRodMaterial.
|
overridevirtual |
Computes a lumped (diagonal) mass matrix for the given element length.
| l | Element length |
Reimplemented from Material.
|
overridevirtual |
Default element-specific lumped mass.
Element-specific version of lumped mass computation.
| l | Element length |
| ielem | Element index for potential customization |
Reimplemented from Material.
|
overridevirtual |
Computes the material mass density matrix used in dynamic analysis. The translational part of the mass matrix is typically diagonal with density values.
Implements Material.
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Default element-specific stiffness matrix.
Enhanced version that allows state-dependent stiffness computation.
| ielem | Element index for state tracking |
| ip | Integration point index within the element |
Reimplemented from Material.
|
overridevirtual |
Computes the stored elastic energy at the specified element and integration point location.
| ielem | Element index |
| ip | Integration point index within the element |
Implements Material.
Reimplemented in ElastoPlasticRodMaterial.
|
overridevirtual |
Fundamental constitutive relationship defining material response to deformation. All derived material classes must implement this method.
| [out] | stress | Computed stress vector at current state |
| [in] | strain | Input strain vector for stress computation |
Implements Material.
Reimplemented in ElastoPlasticRodMaterial.
|
overridevirtual |
Default element-specific stress computation.
| [out] | stress | Computed stress vector |
| [in] | strain | Input strain vector |
| [in] | ielem | Element index for state tracking |
| [in] | ip | Integration point index |
| [in] | inelastic | Enable inelastic behavior (default: true) |
Reimplemented from Material.
Reimplemented in ElastoPlasticRodMaterial.
|
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 |
Implements Material.
Reimplemented in ElastoPlasticRodMaterial.
|
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.
Implements Material.
Reimplemented in ElastoPlasticRodMaterial.
|
static |
|
protected |
|
static |
|
protected |
|
static |
|
protected |
|
protected |
|
static |
|
protected |
|
static |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
|
protected |
|
protected |
|
static |
|
static |
|
protected |
|
static |
|
protected |
|
protected |
|
static |
|
static |
|
protected |
|
protected |
|
static |
|
protected |
|
static |
|
static |
|
protected |
|
static |