9#include <jem/numeric/algebra/utilities.h>
10#include <jive/util/FuncUtils.h>
16using jem::numeric::Function;
19using jive::util::FuncUtils;
53 const Properties &conf,
54 const Properties &props,
55 const Properties &globdat);
63 static Ref<Material>
makeNew(
const String &name,
const Properties &conf,
64 const Properties &props,
const Properties &globdat);
74 virtual void configure(
const Properties &props,
const Properties &globdat)
override;
76 virtual void getConfig(
const Properties &conf,
const Properties &globdat)
const override;
81 virtual void getHardVals(
const Vector &hardVals,
const Vector &hardParams)
const;
85 virtual void getStress(
const Vector &stress,
const Vector &strain)
override;
95 virtual void getStress(
const Vector &stress,
const Vector &strain,
const idx_t &ielem,
const idx_t &ip,
const bool inelastic =
true)
override;
101 virtual void getTable(XTable &strain_table,
const Vector &weights,
const String &name,
const IdxVector &items)
const override;
107 virtual double getPotentialEnergy(
const idx_t &ielem,
const idx_t &ip)
const override;
115 double getYield_(
const Vector &args)
const;
120 void getYieldGrad_(
const Vector &grad,
const Vector &args)
const;
Linear elastic rod material implementation with cross-sectional properties.
Linear elastic rod material with configurable cross-sectional properties.
Definition ElasticRodMaterial.h:21
Elasto-plastic rod material implementing yield conditions with isotropic and kinematic hardening.
Definition ElastoPlasticRodMaterial.h:24
bool isoHard_
Isotropic hardening stress is a yield function argument.
Definition ElastoPlasticRodMaterial.h:138
Cubix oldHardParams_
Hardening parameters from last converged step.
Definition ElastoPlasticRodMaterial.h:154
static Ref< Material > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Factory method for plastic material creation.
Definition ElastoPlasticRodMaterial.cpp:515
virtual void getStress(const Vector &stress, const Vector &strain) override
Elastic stress computation based on elastic rod material model.
Definition ElastoPlasticRodMaterial.cpp:338
virtual double getPotentialEnergy(const idx_t &ielem, const idx_t &ip) const override
Get the potential energy at a specific integration point.
Definition ElastoPlasticRodMaterial.cpp:503
Vector hardStress_
Hardening stresses.
Definition ElastoPlasticRodMaterial.h:169
YieldType yieldType_
Selected yield condition implementation.
Definition ElastoPlasticRodMaterial.h:137
idx_t dofCount_
Degrees of freedom in stress/strain vectors.
Definition ElastoPlasticRodMaterial.h:146
Vector yieldStrength_
Strengths c_i of the super-ellipse yield condition.
Definition ElastoPlasticRodMaterial.h:140
Matrix currDeltaFlow_
Current plastic flow increment.
Definition ElastoPlasticRodMaterial.h:175
static const char * YIELD_PROP
Yield condition function.
Definition ElastoPlasticRodMaterial.h:29
virtual void getHardVals(const Vector &hardVals, const Vector &hardParams) const
Get hardening values from hardening parameters.
Definition ElastoPlasticRodMaterial.cpp:331
void getSuperEllipseGrad_(const Vector &grad, const Vector &args) const
Gradient of the super-ellipse yield condition (zero stress derivative for |s_i| < EPS)
Definition ElastoPlasticRodMaterial.cpp:311
Vector yieldArgs_
Arguments of the yield condition.
Definition ElastoPlasticRodMaterial.h:171
Vector hardParams_
Hardening parameter iterate.
Definition ElastoPlasticRodMaterial.h:168
virtual void getConfig(const Properties &conf, const Properties &globdat) const override
Retrieve current material configuration.
Definition ElastoPlasticRodMaterial.cpp:202
virtual void applyDeform() override
Apply computed deformation to the material state.
Definition ElastoPlasticRodMaterial.cpp:408
Matrix energyHardPot_
Hardening potential energy storage.
Definition ElastoPlasticRodMaterial.h:177
Vector elasticStrain_
Elastic strain.
Definition ElastoPlasticRodMaterial.h:170
idx_t argCount_
Total arguments to yield condition.
Definition ElastoPlasticRodMaterial.h:147
static const char * YIELD_EXPONENT_PROP
Exponents p_i of the super-ellipse yield condition.
Definition ElastoPlasticRodMaterial.h:33
Ref< Function > yieldCond_
Yield condition function.
Definition ElastoPlasticRodMaterial.h:133
double precision_
Convergence tolerance for stress update.
Definition ElastoPlasticRodMaterial.h:136
static const char * KIN_HARD_PROP
Kinematic hardening parameters.
Definition ElastoPlasticRodMaterial.h:35
Vector plastStrain_
Plastic strain iterate.
Definition ElastoPlasticRodMaterial.h:167
static const char * ISO_HARD_PROP
Isotropic hardening parameters.
Definition ElastoPlasticRodMaterial.h:34
Cubix currPlastStrains_
Current plastic strains.
Definition ElastoPlasticRodMaterial.h:158
virtual double getHardeningPotential(const idx_t &ielem, const idx_t &ip) const override
Get the hardening potential energy at a specific integration point.
Definition ElastoPlasticRodMaterial.cpp:508
idx_t maxIter_
Max iterations for stress update.
Definition ElastoPlasticRodMaterial.h:135
double getYield_(const Vector &args) const
Value of the yield condition.
Definition ElastoPlasticRodMaterial.cpp:250
Cubix oldPlastStrains_
Plastic strains from last converged step.
Definition ElastoPlasticRodMaterial.h:157
virtual void rejectDeform() override
Reject the current deformation and revert to previous state.
Definition ElastoPlasticRodMaterial.cpp:443
Matrix materialH_
Hardening matrix.
Definition ElastoPlasticRodMaterial.h:152
Cubix currHardParams_
Current hardening parameters.
Definition ElastoPlasticRodMaterial.h:155
static const char * YIELD_DERIV_PROP
Yield condition derivatives.
Definition ElastoPlasticRodMaterial.h:30
double getSuperEllipse_(const Vector &args) const
Super-ellipse yield condition f = sum_i |s_i/(c_i-h_i)|^p_i - (1+h_0)
Definition ElastoPlasticRodMaterial.cpp:291
static const char * TYPE_NAME
Definition ElastoPlasticRodMaterial.h:28
Matrix energyDiss_
Dissipated energy storage.
Definition ElastoPlasticRodMaterial.h:176
virtual void configure(const Properties &props, const Properties &globdat) override
Configure plasticity parameters and yield conditions.
Definition ElastoPlasticRodMaterial.cpp:59
Vector yieldExponent_
Exponents p_i of the super-ellipse yield condition.
Definition ElastoPlasticRodMaterial.h:141
Vector yieldGrad_
Gradient of the yield condition.
Definition ElastoPlasticRodMaterial.h:172
~ElastoPlasticRodMaterial()
Destroy the elasto-plastic rod material.
Definition ElastoPlasticRodMaterial.cpp:55
virtual void getTable(XTable &strain_table, const Vector &weights, const String &name, const IdxVector &items) const override
Populate strain table with material-specific data.
Definition ElastoPlasticRodMaterial.cpp:452
static const char * YIELD_TYPE_PROP
Yield condition type (see YieldType)
Definition ElastoPlasticRodMaterial.h:31
FuncUtils::FuncArray yieldDeriv_
Derivatives of yield condition.
Definition ElastoPlasticRodMaterial.h:134
virtual double getDissipatedEnergy(const idx_t &ielem, const idx_t &ip) const override
Get the dissipated energy at a specific integration point.
Definition ElastoPlasticRodMaterial.cpp:498
bool kinHard_
Kinematic hardening stresses are yield function arguments.
Definition ElastoPlasticRodMaterial.h:139
Cubix oldStresses_
Elastic stresses from last converged step (set in applyDeform)
Definition ElastoPlasticRodMaterial.h:160
static const char * YIELD_STRENGTH_PROP
Strengths c_i of the super-ellipse yield condition.
Definition ElastoPlasticRodMaterial.h:32
static void declare()
Register plastic material type with factory.
Definition ElastoPlasticRodMaterial.cpp:522
void getYieldGrad_(const Vector &grad, const Vector &args) const
Gradient of the yield condition with respect to args.
Definition ElastoPlasticRodMaterial.cpp:263
YieldType
Yield condition implementations, selected by the property yieldType
Definition ElastoPlasticRodMaterial.h:40
@ SUPER_ELLIPSE
"SuperEllipse": native Lamé curve, see getSuperEllipse_
Definition ElastoPlasticRodMaterial.h:42
@ EXPRESSION
"Expression": interpreted function yieldCond (default)
Definition ElastoPlasticRodMaterial.h:41
Factory for dynamic material creation and registration.
Definition MaterialFactory.h:33