49 const Properties &conf,
50 const Properties &props,
51 const Properties &globdat);
54 static Ref<Material>
makeNew(
const String &name,
const Properties &conf,
55 const Properties &props,
const Properties &globdat);
67 virtual void configure(
const Properties &props,
const Properties &globdat)
override;
69 virtual void getConfig(
const Properties &conf,
const Properties &globdat)
const override;
73 virtual Matrix
getMaterialStiff(
const idx_t &ielem,
const idx_t &ip)
const override;
77 virtual Matrix
getMaterialMass(
const idx_t &ielem,
const idx_t &ip)
const override;
81 virtual Matrix
getLumpedMass(
const double l,
const idx_t &ielem)
const override;
83 virtual void getStress(
const Vector &stress,
const Vector &strain)
override;
85 virtual void getStress(
const Vector &stress,
const Vector &strain,
const idx_t &ielem,
const idx_t &ip,
const bool inelastic =
false)
override;
87 virtual void getTable(
const String &name, XTable &strain_table,
const IdxVector &items,
const Vector &weights)
const override;
Material class for representing different materials in the simulation.
Linear elastic rod material with configurable cross-sectional properties.
Definition ElasticRodMaterial.h:20
static const char * YOUNGS_MODULUS
Young's modulus property key.
Definition ElasticRodMaterial.h:26
void calcMaterialStiff_()
Calculate material stiffness matrix.
Definition ElasticRodMaterial.cpp:320
virtual void getConfig(const Properties &conf, const Properties &globdat) const override
Retrieve current material configuration.
Definition ElasticRodMaterial.cpp:269
double density_
Material density.
Definition ElasticRodMaterial.h:126
double edgeFact_
Edge factor for lattice materials.
Definition ElasticRodMaterial.h:114
Cubix currStrains_
Strains from current iteration.
Definition ElasticRodMaterial.h:135
static const char * SHEAR_FACTOR
Shear correction factor property key.
Definition ElasticRodMaterial.h:32
double young_
Young's modulus.
Definition ElasticRodMaterial.h:110
static const char * N_ELEM
Number of elements property key.
Definition ElasticRodMaterial.h:40
static Ref< Material > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Factory method for material creation.
Definition ElasticRodMaterial.cpp:464
Vector areaMoment_
Area moments of inertia.
Definition ElasticRodMaterial.h:119
idx_t edgeElems_
Number of edge elements.
Definition ElasticRodMaterial.h:115
virtual Matrix getLumpedMass(const double l) const override
Get the lumped mass matrix for a given element length.
Definition ElasticRodMaterial.cpp:340
virtual Matrix getMaterialMass() const override
Get the material mass matrix per unit length.
Definition ElasticRodMaterial.cpp:385
String rodName_
Material instance name.
Definition ElasticRodMaterial.h:138
double area_
Cross-sectional area.
Definition ElasticRodMaterial.h:118
virtual void getTable(const String &name, XTable &strain_table, const IdxVector &items, const Vector &weights) const override
Populate strain table with material-specific data.
Definition ElasticRodMaterial.cpp:420
double polarMoment_
Polar moment of inertia.
Definition ElasticRodMaterial.h:120
static const char * RADIUS
Radius for circular sections property key.
Definition ElasticRodMaterial.h:35
Matrix materialM_
Material mass matrix.
Definition ElasticRodMaterial.h:132
static const char * STIFF_PREFIX
Prefix for direct stiffness-matrix input.
Definition ElasticRodMaterial.h:25
virtual void configure(const Properties &props, const Properties &globdat) override
Configure material properties including cross-sectional geometry.
Definition ElasticRodMaterial.cpp:72
static const char * POISSON_RATIO
Poisson's ratio property key.
Definition ElasticRodMaterial.h:28
static const char * AREA
Cross-sectional area property key.
Definition ElasticRodMaterial.h:29
static const char * DENSITY
Material density property key.
Definition ElasticRodMaterial.h:30
static const char * SHEAR_MODULUS
Shear modulus property key.
Definition ElasticRodMaterial.h:27
static const char * POLAR_MOMENT
Polar moment of inertia property key.
Definition ElasticRodMaterial.h:33
double shearParam_
Shear parameter.
Definition ElasticRodMaterial.h:112
Matrix energyPot_
Potential energy storage.
Definition ElasticRodMaterial.h:136
virtual void rejectDeform() override
Reject the current deformation and revert to previous state.
Definition ElasticRodMaterial.cpp:442
Matrix materialK_
Material stiffness matrix.
Definition ElasticRodMaterial.h:131
Vector sideLength_
Side lengths for rectangular sections.
Definition ElasticRodMaterial.h:124
double radius_
Radius for circular sections.
Definition ElasticRodMaterial.h:123
String crossSection_
Cross-section type identifier.
Definition ElasticRodMaterial.h:122
virtual double getHardeningPotential(const idx_t &ielem, const idx_t &ip) const override
Get the hardening potential energy at a specific integration point.
Definition ElasticRodMaterial.cpp:457
static const char * CROSS_SECTION
Cross-section type property key (e.g., "square", "circle" "rectangle")
Definition ElasticRodMaterial.h:34
static const char * EDGE_ELEMS
Number of edge elements property key.
Definition ElasticRodMaterial.h:42
idx_t nElem_
Total number of elements.
Definition ElasticRodMaterial.h:116
virtual void getStress(const Vector &stress, const Vector &strain) override
Compute stress vector from strain vector.
Definition ElasticRodMaterial.cpp:409
double shearMod_
Shear modulus.
Definition ElasticRodMaterial.h:111
static const char * TYPE_NAME
Definition ElasticRodMaterial.h:24
Cubix oldStrains_
Strains from last converged step.
Definition ElasticRodMaterial.h:134
static const char * EDGE_FACTOR
Edge factor for lattice materials property key.
Definition ElasticRodMaterial.h:41
~ElasticRodMaterial()
Definition ElasticRodMaterial.cpp:68
virtual void applyDeform() override
Apply computed deformation to the material state.
Definition ElasticRodMaterial.cpp:428
virtual double getDissipatedEnergy(const idx_t &ielem, const idx_t &ip) const override
Get the dissipated energy at a specific integration point.
Definition ElasticRodMaterial.cpp:452
void calcMaterialMass_()
Calculate material mass matrix.
Definition ElasticRodMaterial.cpp:330
static const char * SIDE_LENGTH
Side lengths for rectangular sections property key.
Definition ElasticRodMaterial.h:36
virtual double getPotentialEnergy(const idx_t &ielem, const idx_t &ip) const override
Get the potential energy at a specific integration point.
Definition ElasticRodMaterial.cpp:447
virtual Matrix getMaterialStiff() const override
Get the material stiffness matrix.
Definition ElasticRodMaterial.cpp:361
static const char * AREA_MOMENT
Area moment of inertia property key.
Definition ElasticRodMaterial.h:31
static void declare()
Register material type with factory.
Definition ElasticRodMaterial.cpp:471
Factory for dynamic material creation and registration.
Definition MaterialFactory.h:35
Abstract base class for material models.
Definition Material.h:39