31#ifndef NONLINEARDRUCKERPRAGER_H
32#define NONLINEARDRUCKERPRAGER_H
46 static constexpr unsigned max_iteration = 20u;
47 static const mat unit_dev_tensor;
48 static const mat unit_x_unit;
52 const double double_shear = 2. * shear;
56 const double factor_c = sqrt(2.) * shear * bulk;
61 [[nodiscard]]
virtual double compute_c(
double)
const = 0;
62 [[nodiscard]]
virtual double compute_dc(
double)
const = 0;
75 int initialize(
const shared_ptr<DomainBase>&)
override;
85 void print()
override;
ParameterType
Definition ParameterType.h:21
The Material3D class.
Definition Material3D.h:37
The NonlinearDruckerPrager class.
Definition NonlinearDruckerPrager.h:45
double get_parameter(ParameterType) const override
Definition NonlinearDruckerPrager.cpp:36
int commit_status() override
Definition NonlinearDruckerPrager.cpp:126
void print() override
Definition NonlinearDruckerPrager.cpp:142
int update_trial_status(const vec &) override
Definition NonlinearDruckerPrager.cpp:38
int reset_status() override
Definition NonlinearDruckerPrager.cpp:134
int initialize(const shared_ptr< DomainBase > &) override
Definition NonlinearDruckerPrager.cpp:28
int clear_status() override
Definition NonlinearDruckerPrager.cpp:118
bool approx_equal(T x, T y, int ulp=2)
Definition utility.h:60
Definition NonlinearDruckerPrager.h:37
const double eta_yield
Definition NonlinearDruckerPrager.h:40
const double elastic_modulus
Definition NonlinearDruckerPrager.h:38
const double poissons_ratio
Definition NonlinearDruckerPrager.h:39
const double xi
Definition NonlinearDruckerPrager.h:42
const double eta_flow
Definition NonlinearDruckerPrager.h:41