31 #ifndef NONLINEARDRUCKERPRAGER_H 32 #define NONLINEARDRUCKERPRAGER_H 46 static constexpr
unsigned max_iteration = 20;
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;
74 int initialize(
const shared_ptr<DomainBase>&)
override;
76 [[nodiscard]]
double get_parameter(
ParameterType)
const override;
78 int update_trial_status(
const vec&)
override;
80 int clear_status()
override;
81 int commit_status()
override;
82 int reset_status()
override;
84 void print()
override;
const double poissons_ratio
Definition: NonlinearDruckerPrager.h:39
std::enable_if_t<!std::numeric_limits< T >::is_integer, bool > approx_equal(T x, T y, int ulp=2)
Definition: utility.h:46
The Material3D class.
Definition: Material3D.h:37
const double eta_yield
Definition: NonlinearDruckerPrager.h:40
The NonlinearDruckerPrager class.
Definition: NonlinearDruckerPrager.h:45
Definition: NonlinearDruckerPrager.h:37
const double eta_flow
Definition: NonlinearDruckerPrager.h:41
const double elastic_modulus
Definition: NonlinearDruckerPrager.h:38
const double xi
Definition: NonlinearDruckerPrager.h:42
ParameterType
Definition: ParameterType.h:21