dynLattice
Loading...
Searching...
No Matches
ElastoPlasticRodMaterial.h
Go to the documentation of this file.
1
7#pragma once
9#include <jem/numeric/algebra/utilities.h>
10#include <jive/util/FuncUtils.h>
11
12// Forward declarations
13class MaterialFactory;
14
15using jem::idx_t;
16using jem::numeric::Function;
17using jive::Ref;
18using jive::String;
19using jive::util::FuncUtils;
20
24{
25public:
28 static const char *TYPE_NAME;
29 static const char *YIELD_PROP;
30 static const char *YIELD_DERIV_PROP;
31 static const char *ISO_HARD_PROP;
32 static const char *KIN_HARD_PROP;
34
36
38 ElastoPlasticRodMaterial(const String &name,
39 const Properties &conf,
40 const Properties &props,
41 const Properties &globdat);
42
44 static Ref<Material> makeNew(const String &name, const Properties &conf,
45 const Properties &props, const Properties &globdat);
46
48 static void declare();
49
57 virtual void configure(const Properties &props, const Properties &globdat) override;
58
59 virtual void getConfig(const Properties &conf, const Properties &globdat) const override;
60
62 virtual void getHardVals(const Vector &hardVals, const Vector &hardParams) const;
63
66 virtual void getStress(const Vector &stress, const Vector &strain) override;
67
76 virtual void getStress(const Vector &stress, const Vector &strain, const idx_t &ielem, const idx_t &ip, const bool inelastic = true) override;
77
78 virtual void applyDeform() override;
79
80 virtual void rejectDeform() override;
81
82 virtual void getTable(const String &name, XTable &strain_table, const IdxVector &items, const Vector &weights) const override;
83
84 virtual double getDissipatedEnergy(const idx_t &ielem, const idx_t &ip) const override;
85
86 virtual double getHardeningPotential(const idx_t &ielem, const idx_t &ip) const override;
87
88 virtual double getPotentialEnergy(const idx_t &ielem, const idx_t &ip) const override;
89
90protected:
92
93protected:
96 Ref<Function> yieldCond_;
97 FuncUtils::FuncArray yieldDeriv_;
98 idx_t maxIter_;
99 double precision_;
101
104 idx_t dofCount_;
105 idx_t argCount_;
107
110 Matrix materialH_;
111
114
117
119 Matrix energyDiss_;
122};
Linear elastic rod material implementation with cross-sectional properties.
Linear elastic rod material with configurable cross-sectional properties.
Definition ElasticRodMaterial.h:20
Elasto-plastic rod material implementing yield conditions with isotropic and kinematic hardening.
Definition ElastoPlasticRodMaterial.h:24
Cubix oldHardParams_
Hardening parameters from last converged step.
Definition ElastoPlasticRodMaterial.h:112
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:381
virtual void getStress(const Vector &stress, const Vector &strain) override
Elastic stress computation based on elastic rod material model.
Definition ElastoPlasticRodMaterial.cpp:190
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:369
idx_t dofCount_
Degrees of freedom in stress/strain vectors.
Definition ElastoPlasticRodMaterial.h:104
Matrix currDeltaFlow_
Current plastic flow increment.
Definition ElastoPlasticRodMaterial.h:118
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:185
virtual void getConfig(const Properties &conf, const Properties &globdat) const override
Retrieve current material configuration.
Definition ElastoPlasticRodMaterial.cpp:149
virtual void applyDeform() override
Apply computed deformation to the material state.
Definition ElastoPlasticRodMaterial.cpp:271
Matrix energyHardPot_
Hardening potential energy storage.
Definition ElastoPlasticRodMaterial.h:120
idx_t argCount_
Total arguments to yield condition.
Definition ElastoPlasticRodMaterial.h:105
Ref< Function > yieldCond_
Yield condition function.
Definition ElastoPlasticRodMaterial.h:96
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 ElastoPlasticRodMaterial.cpp:318
double precision_
Convergence tolerance for stress update.
Definition ElastoPlasticRodMaterial.h:99
static const char * KIN_HARD_PROP
Kinematic hardening parameters.
Definition ElastoPlasticRodMaterial.h:32
static const char * ISO_HARD_PROP
Isotropic hardening parameters.
Definition ElastoPlasticRodMaterial.h:31
Cubix currPlastStrains_
Current plastic strains.
Definition ElastoPlasticRodMaterial.h:116
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:374
idx_t maxIter_
Max iterations for stress update.
Definition ElastoPlasticRodMaterial.h:98
Cubix oldPlastStrains_
Plastic strains from last converged step.
Definition ElastoPlasticRodMaterial.h:115
virtual void rejectDeform() override
Reject the current deformation and revert to previous state.
Definition ElastoPlasticRodMaterial.cpp:309
Matrix materialH_
Hardening matrix.
Definition ElastoPlasticRodMaterial.h:110
Cubix currHardParams_
Current hardening parameters.
Definition ElastoPlasticRodMaterial.h:113
static const char * YIELD_DERIV_PROP
Yield condition derivatives.
Definition ElastoPlasticRodMaterial.h:30
static const char * TYPE_NAME
Definition ElastoPlasticRodMaterial.h:28
Matrix energyDiss_
Dissipated energy storage.
Definition ElastoPlasticRodMaterial.h:119
virtual void configure(const Properties &props, const Properties &globdat) override
Configure plasticity parameters and yield conditions.
Definition ElastoPlasticRodMaterial.cpp:55
~ElastoPlasticRodMaterial()
Definition ElastoPlasticRodMaterial.cpp:51
FuncUtils::FuncArray yieldDeriv_
Derivatives of yield condition.
Definition ElastoPlasticRodMaterial.h:97
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:364
static void declare()
Register plastic material type with factory.
Definition ElastoPlasticRodMaterial.cpp:388
Factory for dynamic material creation and registration.
Definition MaterialFactory.h:35