|
dynLattice
|
Abstract base class for material models. More...
#include "Material.h"


Public Member Functions | |
| Material (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) | |
| Constructs a new Material object. | |
| virtual void | configure (const Properties &props, const Properties &globdat) |
| Configure the material with given properties. | |
| virtual void | getConfig (const Properties &conf, const Properties &globdat) const |
| Retrieve current material configuration. | |
| virtual void | getStress (const Vector &stress, const Vector &strain)=0 |
| 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=true) |
| Compute stress with element and integration point context. | |
| virtual Matrix | getMaterialStiff () const =0 |
| Get the material stiffness matrix. | |
| virtual Matrix | getMaterialStiff (const idx_t &ielem, const idx_t &ip) const |
| Get the material stiffness matrix for specific element and integration point. | |
| virtual Matrix | getMaterialMass () const =0 |
| Get the material mass matrix per unit length. | |
| virtual Matrix | getMaterialMass (const idx_t &ielem, const idx_t &ip) const |
| Get the material mass matrix for specific element and integration point. | |
| virtual Matrix | getLumpedMass (const double l) const |
| Get the lumped mass matrix for a given element length. | |
| virtual Matrix | getLumpedMass (const double l, const idx_t &ielem) const |
| Get the lumped mass matrix for specific element and length. | |
| virtual void | applyDeform ()=0 |
| Apply computed deformation to the material state. | |
| virtual void | rejectDeform ()=0 |
| 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 =0 |
| Populate strain table with material-specific data. | |
| virtual double | getDissipatedEnergy (const idx_t &ielem, const idx_t &ip) const =0 |
| Get the dissipated energy at a specific integration point. | |
| virtual double | getPotentialEnergy (const idx_t &ielem, const idx_t &ip) const =0 |
| Get the potential energy at a specific integration point. | |
| virtual double | getHardeningPotential (const idx_t &ielem, const idx_t &ip) const =0 |
| Get the hardening potential energy at a specific integration point. | |
| virtual String | getContext () const override |
| Get the context string for error reporting and debugging. | |
Static Public Attributes | |
| static const char * | VERBOSITY_PROP = "verbosity" |
| Property name for verbosity level control. | |
Protected Member Functions | |
| virtual | ~Material () |
| Destroy the Material object. | |
Protected Attributes | |
| idx_t | verbosity_ |
| Verbosity level for material output and debugging. | |
Defines interface for material behavior including stress-strain relationships, stiffness matrices, and energy calculations. Materials are created via MaterialFactory and support multiple integration points per element.
| Material::Material | ( | const String & | name, |
| const Properties & | conf, | ||
| const Properties & | props, | ||
| const Properties & | globdat | ||
| ) |
| name | Material instance name for identification |
| conf | Configuration properties container for output |
| props | Input properties for material parameters |
| globdat | Global data container for simulation state |
|
protectedvirtual |
Virtual destructor ensures proper cleanup of derived classes. Each material type can clean up its specific resources.
|
pure virtual |
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.
Implemented in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
virtual |
| props | Properties containing configuration parameters |
| globdat | Global data container with simulation context |
| Derived | classes may throw exceptions for invalid parameters |
Reimplemented in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
virtual |
| conf | Properties object to store configuration in |
| globdat | Global data container with simulation context |
Reimplemented in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
overridevirtual |
|
pure virtual |
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 |
Implemented in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
pure virtual |
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 |
Implemented in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
virtual |
Computes a lumped (diagonal) mass matrix for the given element length.
| l | Element length |
Reimplemented in ElasticRodMaterial.
|
inlinevirtual |
Default element-specific lumped mass.
Element-specific version of lumped mass computation.
| l | Element length |
| ielem | Element index for potential customization |
Reimplemented in ElasticRodMaterial.
|
pure virtual |
Computes the material mass density matrix used in dynamic analysis. The translational part of the mass matrix is typically diagonal with density values.
Implemented in ElasticRodMaterial.
|
inlinevirtual |
Default element-specific mass matrix.
Enhanced version for element-specific mass computation.
| ielem | Element index for potential state tracking |
| ip | Integration point index within the element |
Reimplemented in ElasticRodMaterial.
|
pure virtual |
Computes the material stiffness matrix relating stress to strain. This matrix represents the tangent modulus of the material at the current state.
Implemented in ElasticRodMaterial.
|
inlinevirtual |
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 in ElasticRodMaterial.
|
pure virtual |
Computes the stored elastic energy at the specified element and integration point location.
| ielem | Element index |
| ip | Integration point index within the element |
Implemented in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
pure virtual |
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 |
Implemented in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
inlinevirtual |
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 in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
pure virtual |
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 |
Implemented in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
pure virtual |
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.
Implemented in ElasticRodMaterial, and ElastoPlasticRodMaterial.
|
protected |
|
static |