41 const bool nlgeom =
false;
43 bool update_mass =
true;
44 bool update_damping =
true;
45 bool update_stiffness =
true;
46 bool update_geometry =
true;
51 mat initial_damping{};
52 mat initial_stiffness{};
53 mat initial_geometry{};
57 mat trial_stiffness{};
61 mat current_damping{};
62 mat current_stiffness{};
63 mat current_geometry{};
65 vec trial_resistance{};
66 vec current_resistance{};
67 vec trial_damping_force{};
68 vec current_damping_force{};
69 vec trial_inertial_force{};
70 vec current_inertial_force{};
72 vec trial_body_force{};
73 vec current_body_force{};
75 vec current_traction{};
80 mat stiffness_container{};
83 double strain_energy = 0.;
84 double kinetic_energy = 0.;
85 double viscous_energy = 0.;
86 double complementary_energy = 0.;
89 const double characteristic_length = 1.;
93 const unsigned num_node;
94 const unsigned num_dof;
95 const unsigned num_size = num_dof * num_node;
97 const bool initialized =
false;
98 const bool symmetric =
false;
99 const bool use_group =
false;
100 const unsigned use_other = 0;
105 std::vector<DOF> dof_identifier;
112 void update_strain_energy()
override;
113 void update_kinetic_energy()
override;
114 void update_viscous_energy()
override;
115 void update_complementary_energy()
override;
116 void update_momentum()
override;
137 [[nodiscard]] std::vector<shared_ptr<Material>>
get_material(
const shared_ptr<DomainBase>&)
const override;
138 [[nodiscard]] std::vector<shared_ptr<Section>>
get_section(
const shared_ptr<DomainBase>&)
const override;
187 [[nodiscard]]
bool is_nlgeom()
const override;
207 [[nodiscard]]
const std::vector<weak_ptr<Node>>&
get_node_ptr()
const override;
OutputType
Definition: OutputType.h:21
A ElementBase class.
Definition: ElementBase.h:41
A Element class.
Definition: Element.h:92
const mat & get_initial_damping() const override
Definition: Element.cpp:474
friend void ConstantGeometry(DataElement *)
Definition: Element.cpp:592
std::vector< shared_ptr< Section > > get_section(const shared_ptr< DomainBase > &) const override
Definition: Element.cpp:244
const vec & get_current_resistance() const override
Definition: Element.cpp:428
Element(const Element &)=delete
mat get_coordinate(unsigned) const override
generate a matrix that contains coordinates of connected nodes
Definition: Element.cpp:71
void update_dof_encoding() override
Definition: Element.cpp:390
std::vector< shared_ptr< Material > > get_material(const shared_ptr< DomainBase > &) const override
Definition: Element.cpp:238
unsigned get_dof_number() const override
Definition: Element.cpp:416
const mat & get_initial_mass() const override
Definition: Element.cpp:472
unsigned get_node_number() const override
Definition: Element.cpp:418
const uvec & get_node_encoding() const override
Definition: Element.cpp:410
const vec & get_current_traction() const override
Definition: Element.cpp:450
Element(unsigned, unsigned, unsigned, uvec &&, std::vector< DOF > &&)
Definition: Element.cpp:250
const std::vector< weak_ptr< Node > > & get_node_ptr() const override
Definition: Element.cpp:424
const uvec & get_dof_encoding() const override
Definition: Element.cpp:408
const vec & get_current_inertial_force() override
Definition: Element.cpp:439
void clear_node_ptr() override
Definition: Element.cpp:422
~Element() override=default
const vec & get_trial_body_force() const override
Definition: Element.cpp:444
vec get_node_current_resistance() const override
Definition: Element.cpp:225
const mat & get_trial_stiffness() const override
Definition: Element.cpp:456
const vec & get_current_damping_force() const override
Definition: Element.cpp:432
friend void ConstantDamping(DataElement *)
Definition: Element.cpp:580
vec get_current_velocity() const override
Definition: Element.cpp:173
vec get_trial_velocity() const override
Definition: Element.cpp:134
bool if_update_damping() const override
Definition: Element.cpp:402
const mat & get_stiffness_container() const override
Definition: Element.cpp:484
Element & operator=(Element &&)=delete
vec get_current_acceleration() const override
Definition: Element.cpp:186
const mat & get_initial_stiffness() const override
Definition: Element.cpp:476
const vec & get_current_body_force() const override
Definition: Element.cpp:446
double get_characteristic_length() const override
Definition: Element.cpp:570
const vec & get_trial_inertial_force() override
Definition: Element.cpp:434
Element & operator=(const Element &)=delete
double get_momentum_component(DOF) const override
Definition: Element.cpp:559
const mat & get_current_damping() const override
Definition: Element.cpp:464
vec get_incre_acceleration() const override
Definition: Element.cpp:108
bool is_symmetric() const override
Definition: Element.cpp:386
bool if_update_stiffness() const override
Definition: Element.cpp:404
int initialize_base(const shared_ptr< DomainBase > &) final
Definition: Element.cpp:291
const vec & get_momentum() const override
Definition: Element.cpp:557
const vec & get_trial_damping_force() const override
Definition: Element.cpp:430
vec get_current_displacement() const override
Definition: Element.cpp:160
friend void ConstantMass(DataElement *)
Definition: Element.cpp:574
std::vector< weak_ptr< Node > > node_ptr
Definition: Element.h:119
const mat & get_initial_secant() const override
Definition: Element.cpp:480
const mat & get_current_geometry() const override
Definition: Element.cpp:468
bool is_nlgeom() const override
Definition: Element.cpp:388
const mat & get_current_mass() const override
Definition: Element.cpp:462
vec get_trial_acceleration() const override
Definition: Element.cpp:147
unsigned get_total_number() const override
Definition: Element.cpp:420
const mat & get_trial_geometry() const override
Definition: Element.cpp:458
int reset_status() override=0
Definition: Element.cpp:531
Element(Element &&)=delete
vec get_trial_displacement() const override
Definition: Element.cpp:121
double get_viscous_energy() const override
Definition: Element.cpp:555
friend void ConstantStiffness(DataElement *)
Definition: Element.cpp:586
const mat & get_trial_secant() const override
Definition: Element.cpp:460
vec get_incre_velocity() const override
Definition: Element.cpp:95
const vec & update_body_force(const vec &) override
Definition: Element.cpp:543
int clear_status() override=0
Definition: Element.cpp:486
double get_strain_energy() const override
Definition: Element.cpp:549
bool if_update_mass() const override
Definition: Element.cpp:400
void set_initialized(bool) const override
Definition: Element.cpp:380
const vec & get_trial_resistance() const override
Definition: Element.cpp:426
vec get_node_trial_resistance() const override
Definition: Element.cpp:212
bool is_initialized() const override
Definition: Element.cpp:384
const mat & get_trial_mass() const override
Definition: Element.cpp:452
const uvec & get_material_tag() const override
Definition: Element.cpp:412
vec get_incre_displacement() const override
Definition: Element.cpp:82
const mat & get_trial_damping() const override
Definition: Element.cpp:454
double get_complementary_energy() const override
Definition: Element.cpp:551
vec get_node_incre_resistance() const override
Definition: Element.cpp:199
const vec & get_trial_traction() const override
Definition: Element.cpp:448
const mat & get_initial_geometry() const override
Definition: Element.cpp:478
const mat & get_current_stiffness() const override
Definition: Element.cpp:466
int commit_status() override=0
Definition: Element.cpp:513
const mat & get_current_secant() const override
Definition: Element.cpp:470
mat compute_shape_function(const mat &, unsigned) const override
Definition: Element.cpp:572
std::vector< vec > record(OutputType) override
Definition: Element.cpp:547
double get_kinetic_energy() const override
Definition: Element.cpp:553
bool if_update_geometry() const override
Definition: Element.cpp:406
const mat & get_mass_container() const override
Definition: Element.cpp:482
const uvec & get_section_tag() const override
Definition: Element.cpp:414
void set_symmetric(bool) const override
Definition: Element.cpp:382
const vec & update_traction(const vec &) override
Definition: Element.cpp:545
MaterialType
Definition: Material.h:34
SectionType
Definition: Section.h:34
uvec dof_encoding
Definition: Element.h:48
const uvec section_tag
Definition: Element.h:39
const uvec node_encoding
Definition: Element.h:37
const uvec material_tag
Definition: Element.h:38