119 const unsigned num_node;
120 const unsigned num_dof;
121 const unsigned num_size = num_dof * num_node;
123 const bool initialized =
false;
124 const bool symmetric =
false;
125 const bool use_group =
false;
126 const unsigned use_other = 0;
131 const std::vector<Node::DOF> dof_identifier;
133 std::vector<MappingDOF> dof_mapping;
140 void update_strain_energy()
override;
141 void update_kinetic_energy()
override;
142 void update_viscous_energy()
override;
143 void update_nonviscous_energy()
override;
144 void update_complementary_energy()
override;
145 void update_momentum()
override;
147 void validate()
const;
156 [[nodiscard]] std::vector<shared_ptr<Material>>
get_material(
const shared_ptr<DomainBase>&)
const override;
157 [[nodiscard]] std::vector<shared_ptr<Section>>
get_section(
const shared_ptr<DomainBase>&)
const override;
165 std::vector<Node::DOF>&&
175 std::vector<Node::DOF>&&
185 std::vector<Node::DOF>&&
191 std::vector<Node::DOF>&&
198 std::vector<Node::DOF>&&
207 [[nodiscard]]
bool is_nlgeom()
const override;
209 [[nodiscard]]
Type type()
const override;
227 [[nodiscard]]
const std::vector<MappingDOF>&
get_dof_mapping()
const override;
229 [[nodiscard]]
bool validate_dof(
const std::vector<Node::DOF>&)
const override;
230 [[nodiscard]]
uvec index_of(
const std::vector<Node::DOF>&)
const override;
240 [[nodiscard]]
const std::vector<std::weak_ptr<Node>>&
get_node_ptr()
const override;
OutputType
Definition OutputType.h:23
Definition Distributed.h:23
A ElementBase class.
Definition ElementBase.h:42
Parameter
Definition ElementBase.h:64
Type
Definition ElementBase.h:59
A Element class.
Definition Element.h:118
friend void ConstantGeometry(DataElement *)
Definition Element.cpp:44
std::vector< shared_ptr< Section > > get_section(const shared_ptr< DomainBase > &) const override
Definition Element.cpp:139
uvec index_of(const std::vector< Node::DOF > &) const override
Definition Element.cpp:337
const vec & get_current_resistance() const override
Definition Element.cpp:496
std::vector< vec > record(OutputType) const override
Definition Element.cpp:633
const std::vector< Node::DOF > & get_dof_identifier() const override
Definition Element.cpp:326
void update_dof_encoding() override
Definition Element.cpp:290
std::vector< shared_ptr< Material > > get_material(const shared_ptr< DomainBase > &) const override
Definition Element.cpp:133
unsigned get_dof_number() const override
Definition Element.cpp:349
const mat & get_initial_mass() const override
Definition Element.cpp:548
unsigned get_node_number() const override
Definition Element.cpp:351
const std::vector< std::weak_ptr< Node > > & get_node_ptr() const override
Definition Element.cpp:357
const mat & get_current_viscous() const override
Definition Element.cpp:538
bool allow_modify_nonviscous() const override
Definition Element.cpp:320
const uvec & get_node_encoding() const override
Definition Element.cpp:324
const vec & get_current_traction() const override
Definition Element.cpp:522
bool validate_dof(const std::vector< Node::DOF > &) const override
Definition Element.cpp:330
const uvec & get_dof_encoding() const override
Definition Element.cpp:322
const vec & get_current_inertial_force() override
Definition Element.cpp:511
void clear_node_ptr() override
Definition Element.cpp:355
const vec & get_trial_body_force() const override
Definition Element.cpp:516
vec get_node_current_resistance() const override
Definition Element.cpp:120
const mat & get_trial_stiffness() const override
Definition Element.cpp:530
const vec & get_current_damping_force() const override
Definition Element.cpp:500
friend void ConstantDamping(DataElement *)
Definition Element.cpp:32
double get(Parameter) const override
Definition Element.cpp:649
vec get_current_velocity() const override
Definition Element.cpp:468
vec get_trial_velocity() const override
Definition Element.cpp:429
const mat & get_stiffness_container() const override
Definition Element.cpp:562
vec get_current_acceleration() const override
Definition Element.cpp:481
const mat & get_initial_stiffness() const override
Definition Element.cpp:554
const vec & get_current_body_force() const override
Definition Element.cpp:518
double get_characteristic_length() const override
Definition Element.cpp:647
const vec & get_trial_inertial_force() override
Definition Element.cpp:506
bool if_update_viscous() const override
Definition Element.cpp:308
const cx_mat & get_trial_nonviscous_force() const override
Definition Element.cpp:502
vec get_incre_acceleration() const override
Definition Element.cpp:403
bool is_symmetric() const override
Definition Element.cpp:284
bool if_update_stiffness() const override
Definition Element.cpp:312
int initialize_base(const shared_ptr< DomainBase > &) final
Definition Element.cpp:192
const std::vector< MappingDOF > & get_dof_mapping() const override
Definition Element.cpp:328
const vec & get_momentum() const override
Definition Element.cpp:645
const vec & get_trial_damping_force() const override
Definition Element.cpp:498
vec get_current_displacement() const override
Definition Element.cpp:455
friend void ConstantMass(DataElement *)
Definition Element.cpp:26
Type type() const override
Definition Element.cpp:288
const mat & get_initial_secant() const override
Definition Element.cpp:558
double get_nonviscous_energy() const override
Definition Element.cpp:643
const mat & get_current_geometry() const override
Definition Element.cpp:544
const mat & get_initial_viscous() const override
Definition Element.cpp:550
bool is_nlgeom() const override
Definition Element.cpp:286
const mat & get_current_mass() const override
Definition Element.cpp:536
vec get_trial_acceleration() const override
Definition Element.cpp:442
unsigned get_total_number() const override
Definition Element.cpp:353
const mat & get_trial_geometry() const override
Definition Element.cpp:532
int reset_status() override=0
Definition Element.cpp:615
bool allow_modify_viscous() const override
Definition Element.cpp:318
const mat & get_trial_nonviscous() const override
Definition Element.cpp:528
vec get_trial_displacement() const override
Definition Element.cpp:416
double get_viscous_energy() const override
Definition Element.cpp:641
friend void ConstantStiffness(DataElement *)
Definition Element.cpp:38
const mat & get_trial_secant() const override
Definition Element.cpp:534
vec get_incre_velocity() const override
Definition Element.cpp:390
const vec & update_body_force(const vec &) override
Definition Element.cpp:629
int clear_status() override=0
Definition Element.cpp:564
double get_strain_energy() const override
Definition Element.cpp:635
const mat & get_initial_nonviscous() const override
Definition Element.cpp:552
bool if_update_mass() const override
Definition Element.cpp:306
void set_initialized(bool) const override
Definition Element.cpp:278
const vec & get_trial_resistance() const override
Definition Element.cpp:494
vec get_node_trial_resistance() const override
Definition Element.cpp:107
bool allow_modify_mass() const override
Definition Element.cpp:316
bool is_initialized() const override
Definition Element.cpp:282
const mat & get_trial_mass() const override
Definition Element.cpp:524
const cx_mat & get_current_nonviscous_force() const override
Definition Element.cpp:504
mat get_coordinate() const override
Definition Element.cpp:359
const uvec & get_material_tag() const override
Definition Element.cpp:345
vec get_incre_displacement() const override
Definition Element.cpp:377
double get_complementary_energy() const override
Definition Element.cpp:637
vec get_node_incre_resistance() const override
Definition Element.cpp:94
const mat & get_current_nonviscous() const override
Definition Element.cpp:540
const mat & get_trial_viscous() const override
Definition Element.cpp:526
const vec & get_trial_traction() const override
Definition Element.cpp:520
const mat & get_initial_geometry() const override
Definition Element.cpp:556
const mat & get_current_stiffness() const override
Definition Element.cpp:542
int commit_status() override=0
Definition Element.cpp:595
const mat & get_current_secant() const override
Definition Element.cpp:546
mat compute_shape_function(const mat &, unsigned) const override
Definition Element.cpp:651
double get_kinetic_energy() const override
Definition Element.cpp:639
bool if_update_nonviscous() const override
Definition Element.cpp:310
bool if_update_geometry() const override
Definition Element.cpp:314
std::vector< std::weak_ptr< Node > > node_ptr
Definition Element.h:150
const mat & get_mass_container() const override
Definition Element.cpp:560
const uvec & get_section_tag() const override
Definition Element.cpp:347
void set_symmetric(bool) const override
Definition Element.cpp:280
const vec & update_traction(const vec &) override
Definition Element.cpp:631
MaterialType
Definition Material.h:37
SectionType
Definition Section.h:33
bool modify_nonviscous
Definition Element.h:66
cx_mat trial_nonviscous_force
Definition Element.h:92
vec trial_traction
Definition Element.h:99
uvec dof_encoding
Definition Element.h:68
bool update_stiffness
Definition Element.h:61
mat traction
Definition Element.h:103
mat trial_stiffness
Definition Element.h:79
bool update_geometry
Definition Element.h:62
bool modify_viscous
Definition Element.h:65
double nonviscous_energy
Definition Element.h:111
vec current_body_force
Definition Element.h:98
const uvec section_tag
Definition Element.h:54
mat trial_mass
Definition Element.h:76
bool update_mass
Definition Element.h:58
double complementary_energy
Definition Element.h:112
mat initial_viscous
Definition Element.h:71
cx_mat current_nonviscous_force
Definition Element.h:93
mat current_viscous
Definition Element.h:83
double viscous_energy
Definition Element.h:110
vec current_resistance
Definition Element.h:89
mat initial_nonviscous
Definition Element.h:72
mat stiffness_container
Definition Element.h:105
vec momentum
Definition Element.h:113
vec trial_body_force
Definition Element.h:97
bool update_viscous
Definition Element.h:59
vec current_viscous_force
Definition Element.h:91
mat initial_stiffness
Definition Element.h:73
const double characteristic_length
Definition Element.h:115
const bool nlgeom
Definition Element.h:56
vec current_inertial_force
Definition Element.h:95
mat mass_container
Definition Element.h:106
vec trial_viscous_force
Definition Element.h:90
const uvec node_encoding
Definition Element.h:52
double strain_energy
Definition Element.h:108
bool update_nonviscous
Definition Element.h:60
mat trial_viscous
Definition Element.h:77
mat body_force
Definition Element.h:102
const uvec material_tag
Definition Element.h:53
mat current_nonviscous
Definition Element.h:84
mat initial_geometry
Definition Element.h:74
vec trial_inertial_force
Definition Element.h:94
mat trial_geometry
Definition Element.h:80
mat current_mass
Definition Element.h:82
mat current_geometry
Definition Element.h:86
mat current_stiffness
Definition Element.h:85
vec trial_resistance
Definition Element.h:88
mat trial_nonviscous
Definition Element.h:78
bool modify_mass
Definition Element.h:64
vec current_traction
Definition Element.h:100
mat initial_mass
Definition Element.h:70
double kinetic_energy
Definition Element.h:109