29 #ifndef NONLINEARNM3D_H 30 #define NONLINEARNM3D_H 35 static constexpr
unsigned max_iteration = 20;
36 static const uvec sai, saj, sbi, sbj, sa, sb;
38 const bool has_kinematic;
40 const unsigned local_size = has_kinematic ? 12u : 7u;
42 const uvec si{local_size - 2llu}, sj{local_size - 1llu};
44 const span spa = span(0llu, local_size - 2llu);
46 mat plastic_weight, kin_weight;
48 [[nodiscard]]
virtual double compute_h(
double)
const = 0;
49 [[nodiscard]]
virtual double compute_dh(
double)
const = 0;
51 [[nodiscard]]
virtual double compute_f(
const vec&)
const = 0;
52 [[nodiscard]]
virtual vec compute_df(
const vec&)
const = 0;
53 [[nodiscard]]
virtual mat compute_ddf(
const vec&)
const = 0;
A SectionNM3D class.
Definition: SectionNM3D.h:40
A NonlinearNM3D class.
Definition: NonlinearNM3D.h:34
OutputType
Definition: OutputType.h:21
int update_trial_status(const vec &) override
Definition: NonlinearNM3D.cpp:39
vector< vec > record(OutputType) override
Definition: NonlinearNM3D.cpp:204
NonlinearNM3D(unsigned, double, double, double, double, double)
Definition: NonlinearNM3D.cpp:35
void initialize_weight(const vec &, double)
Definition: NonlinearNM3D.cpp:30