114 const unsigned num_node;
115 const unsigned num_dof;
116 const unsigned num_size = num_dof * num_node;
118 const bool initialized =
false;
119 const bool symmetric =
false;
120 const bool use_group =
false;
121 const unsigned use_other = 0;
126 const std::vector<DOF> dof_identifier;
128 std::vector<MappingDOF> dof_mapping;
135 void update_strain_energy()
override;
136 void update_kinetic_energy()
override;
137 void update_viscous_energy()
override;
138 void update_nonviscous_energy()
override;
139 void update_complementary_energy()
override;
140 void update_momentum()
override;
151 [[nodiscard]] std::vector<shared_ptr<Material>>
get_material(
const shared_ptr<DomainBase>&)
const override;
152 [[nodiscard]] std::vector<shared_ptr<Section>>
get_section(
const shared_ptr<DomainBase>&)
const override;
206 [[nodiscard]]
bool is_nlgeom()
const override;
219 [[nodiscard]]
const std::vector<MappingDOF>&
get_dof_mapping()
const override;
229 [[nodiscard]]
const std::vector<weak_ptr<Node>>&
get_node_ptr()
const override;
301std::vector<vec>&
append_to(std::vector<vec>&, std::vector<vec>&&);
OutputType
Definition OutputType.h:23
A ElementBase class.
Definition ElementBase.h:42
friend mat get_coordinate(const ElementBase *, unsigned)
Definition Element.cpp:639
A Element class.
Definition Element.h:113
const mat & get_initial_damping() const override
Definition Element.cpp:498
friend void ConstantGeometry(DataElement *)
Definition Element.cpp:633
std::vector< shared_ptr< Section > > get_section(const shared_ptr< DomainBase > &) const override
Definition Element.cpp:250
const vec & get_current_resistance() const override
Definition Element.cpp:444
Element(const Element &)=delete
void update_dof_encoding() override
Definition Element.cpp:396
std::vector< shared_ptr< Material > > get_material(const shared_ptr< DomainBase > &) const override
Definition Element.cpp:244
unsigned get_dof_number() const override
Definition Element.cpp:432
const mat & get_initial_mass() const override
Definition Element.cpp:496
unsigned get_node_number() const override
Definition Element.cpp:434
const uvec & get_node_encoding() const override
Definition Element.cpp:424
const vec & get_current_traction() const override
Definition Element.cpp:470
const std::vector< weak_ptr< Node > > & get_node_ptr() const override
Definition Element.cpp:440
const uvec & get_dof_encoding() const override
Definition Element.cpp:422
const vec & get_current_inertial_force() override
Definition Element.cpp:459
void clear_node_ptr() override
Definition Element.cpp:438
~Element() override=default
const vec & get_trial_body_force() const override
Definition Element.cpp:464
vec get_node_current_resistance() const override
Definition Element.cpp:231
const mat & get_trial_stiffness() const override
Definition Element.cpp:478
const vec & get_current_damping_force() const override
Definition Element.cpp:448
friend void ConstantDamping(DataElement *)
Definition Element.cpp:621
vec get_current_velocity() const override
Definition Element.cpp:179
vec get_trial_velocity() const override
Definition Element.cpp:140
bool if_update_damping() const override
Definition Element.cpp:414
const mat & get_stiffness_container() const override
Definition Element.cpp:510
vec get_current_acceleration() const override
Definition Element.cpp:192
const mat & get_initial_stiffness() const override
Definition Element.cpp:502
const vec & get_current_body_force() const override
Definition Element.cpp:466
double get_characteristic_length() const override
Definition Element.cpp:606
const vec & get_trial_inertial_force() override
Definition Element.cpp:454
double get_momentum_component(DOF) const override
Definition Element.cpp:595
const cx_mat & get_trial_nonviscous_force() const override
Definition Element.cpp:450
const mat & get_current_damping() const override
Definition Element.cpp:486
vec get_incre_acceleration() const override
Definition Element.cpp:114
bool is_symmetric() const override
Definition Element.cpp:392
bool if_update_stiffness() const override
Definition Element.cpp:418
int initialize_base(const shared_ptr< DomainBase > &) final
Definition Element.cpp:297
const std::vector< MappingDOF > & get_dof_mapping() const override
Definition Element.cpp:426
const vec & get_momentum() const override
Definition Element.cpp:593
const vec & get_trial_damping_force() const override
Definition Element.cpp:446
vec get_current_displacement() const override
Definition Element.cpp:166
friend void ConstantMass(DataElement *)
Definition Element.cpp:615
std::vector< weak_ptr< Node > > node_ptr
Definition Element.h:143
const mat & get_initial_secant() const override
Definition Element.cpp:506
double get_nonviscous_energy() const override
Definition Element.cpp:591
const mat & get_current_geometry() const override
Definition Element.cpp:492
bool is_nlgeom() const override
Definition Element.cpp:394
const mat & get_current_mass() const override
Definition Element.cpp:484
vec get_trial_acceleration() const override
Definition Element.cpp:153
unsigned get_total_number() const override
Definition Element.cpp:436
const mat & get_trial_geometry() const override
Definition Element.cpp:480
int reset_status() override=0
Definition Element.cpp:563
Element & operator=(Element &&)=delete
Element(Element &&)=delete
const mat & get_trial_nonviscous() const override
Definition Element.cpp:476
vec get_trial_displacement() const override
Definition Element.cpp:127
double get_viscous_energy() const override
Definition Element.cpp:589
friend void ConstantStiffness(DataElement *)
Definition Element.cpp:627
Element & operator=(const Element &)=delete
const mat & get_trial_secant() const override
Definition Element.cpp:482
vec get_incre_velocity() const override
Definition Element.cpp:101
const vec & update_body_force(const vec &) override
Definition Element.cpp:577
int clear_status() override=0
Definition Element.cpp:512
double get_strain_energy() const override
Definition Element.cpp:583
const mat & get_initial_nonviscous() const override
Definition Element.cpp:500
bool if_update_mass() const override
Definition Element.cpp:412
void set_initialized(bool) const override
Definition Element.cpp:386
const vec & get_trial_resistance() const override
Definition Element.cpp:442
vec get_node_trial_resistance() const override
Definition Element.cpp:218
bool is_initialized() const override
Definition Element.cpp:390
const mat & get_trial_mass() const override
Definition Element.cpp:472
const cx_mat & get_current_nonviscous_force() const override
Definition Element.cpp:452
const uvec & get_material_tag() const override
Definition Element.cpp:428
vec get_incre_displacement() const override
Definition Element.cpp:88
const mat & get_trial_damping() const override
Definition Element.cpp:474
double get_complementary_energy() const override
Definition Element.cpp:585
vec get_node_incre_resistance() const override
Definition Element.cpp:205
const mat & get_current_nonviscous() const override
Definition Element.cpp:488
const vec & get_trial_traction() const override
Definition Element.cpp:468
const mat & get_initial_geometry() const override
Definition Element.cpp:504
const mat & get_current_stiffness() const override
Definition Element.cpp:490
int commit_status() override=0
Definition Element.cpp:543
const mat & get_current_secant() const override
Definition Element.cpp:494
mat compute_shape_function(const mat &, unsigned) const override
Definition Element.cpp:608
std::vector< vec > record(OutputType) override
Definition Element.cpp:581
double get_kinetic_energy() const override
Definition Element.cpp:587
bool if_update_nonviscous() const override
Definition Element.cpp:416
bool if_update_geometry() const override
Definition Element.cpp:420
const mat & get_mass_container() const override
Definition Element.cpp:508
const uvec & get_section_tag() const override
Definition Element.cpp:430
void set_symmetric(bool) const override
Definition Element.cpp:388
const vec & update_traction(const vec &) override
Definition Element.cpp:579
std::vector< vec > & append_to(std::vector< vec > &, std::vector< vec > &&)
Definition Element.cpp:610
MaterialType
Definition Material.h:34
SectionType
Definition Section.h:33
cx_mat trial_nonviscous_force
Definition Element.h:87
vec trial_traction
Definition Element.h:94
vec current_damping_force
Definition Element.h:86
uvec dof_encoding
Definition Element.h:63
bool update_stiffness
Definition Element.h:60
mat traction
Definition Element.h:98
mat trial_stiffness
Definition Element.h:74
bool update_geometry
Definition Element.h:61
double nonviscous_energy
Definition Element.h:106
vec trial_damping_force
Definition Element.h:85
vec current_body_force
Definition Element.h:93
mat trial_damping
Definition Element.h:72
const uvec section_tag
Definition Element.h:53
mat trial_mass
Definition Element.h:71
mat initial_damping
Definition Element.h:66
bool update_mass
Definition Element.h:57
double complementary_energy
Definition Element.h:107
cx_mat current_nonviscous_force
Definition Element.h:88
double viscous_energy
Definition Element.h:105
vec current_resistance
Definition Element.h:84
bool update_damping
Definition Element.h:58
mat initial_nonviscous
Definition Element.h:67
mat stiffness_container
Definition Element.h:100
vec momentum
Definition Element.h:108
vec trial_body_force
Definition Element.h:92
mat initial_stiffness
Definition Element.h:68
const double characteristic_length
Definition Element.h:110
const bool nlgeom
Definition Element.h:55
vec current_inertial_force
Definition Element.h:90
mat mass_container
Definition Element.h:101
mat current_damping
Definition Element.h:78
const uvec node_encoding
Definition Element.h:51
double strain_energy
Definition Element.h:103
bool update_nonviscous
Definition Element.h:59
mat body_force
Definition Element.h:97
const uvec material_tag
Definition Element.h:52
mat current_nonviscous
Definition Element.h:79
mat initial_geometry
Definition Element.h:69
vec trial_inertial_force
Definition Element.h:89
mat trial_geometry
Definition Element.h:75
mat current_mass
Definition Element.h:77
mat current_geometry
Definition Element.h:81
mat current_stiffness
Definition Element.h:80
vec trial_resistance
Definition Element.h:83
mat trial_nonviscous
Definition Element.h:73
vec current_traction
Definition Element.h:95
mat initial_mass
Definition Element.h:65
double kinetic_energy
Definition Element.h:104