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
NonlinearDruckerPrager(unsigned, double, double, double, double, double, double=0.)
Definition: NonlinearDruckerPrager.cpp:24
std::enable_if_t<!std::numeric_limits< T >::is_integer, 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