55 static constexpr double two_third = 2. / 3.;
56 static const double root_two_third;
57 static constexpr unsigned max_iteration = 20u;
58 static constexpr uword sa{0};
59 static const span sb, sc;
60 static const mat unit_dev_tensor;
62 const unsigned hardening_tag;
66 mat66 dev_ini_stiffness;
69 [[nodiscard]] std::pair<double, double> compute_hardening(
const double pe)
const {
70 if(
const auto k = hardening_expression->evaluate(pe).at(0); k >= 0.)
return {k, hardening_expression->gradient(pe).at(0)};
75 using yield_t = std::tuple<const double, const vec6, mat66>;
77 [[nodiscard]] yield_t compute_yield_surface(
const vec3&,
const mat33&,
const vec3&,
const mat33&)
const;
80 int without_kinematic();
96 int initialize(
const shared_ptr<DomainBase>&)
override;
98 unique_ptr<Material>
get_copy()
override;
106 void print()
override;
The Material3D class.
Definition Material3D.h:35
Definition ResourceHolder.h:32
The YLD0418P class.
Definition YLD0418P.h:54
int initialize(const shared_ptr< DomainBase > &) override
Definition YLD0418P.cpp:109
void print() override
Definition YLD0418P.cpp:318
int reset_status() override
Definition YLD0418P.cpp:310
int commit_status() override
Definition YLD0418P.cpp:302
unique_ptr< Material > get_copy() override
Definition YLD0418P.cpp:131
int update_trial_status(const vec &) override
Definition YLD0418P.cpp:133
int clear_status() override
Definition YLD0418P.cpp:294
const double bound
Definition YLD0418P.h:42
const double rate
Definition YLD0418P.h:42
const bool active
Definition YLD0418P.h:44
Saturation(const double R, const double B)
Definition YLD0418P.h:38
const vec modulus
Definition YLD0418P.h:47
const double exponent
Definition YLD0418P.h:48
const vec parameter
Definition YLD0418P.h:47
const Saturation kin
Definition YLD0418P.h:51
const vec ratio
Definition YLD0418P.h:47
const double ref_stress
Definition YLD0418P.h:49