|
suanPan
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
|
A MolecularDynamics class. More...
#include <MolecularDynamics.h>
Public Member Functions | |
| MolecularDynamics (const unsigned T, uvec &&IT) | |
| int | initialize (const shared_ptr< DomainBase > &D) override |
| int | process (const shared_ptr< DomainBase > &D) override |
| Process and update both stiffness and resistance. | |
| int | process_resistance (const shared_ptr< DomainBase > &D) override |
| Process and update resistance. | |
Public Member Functions inherited from Constraint | |
| Constraint (unsigned, unsigned, std::vector< Node::DOF > &&, std::vector< Node::DOF > &&, unsigned) | |
| const sp_vec & | get_resistance () const |
| const sp_mat & | get_stiffness () const |
| const vec & | get_auxiliary_resistance () const |
| const vec & | get_auxiliary_load () const |
| const sp_mat & | get_auxiliary_stiffness () const |
| void | set_multiplier_size (unsigned) |
| unsigned | get_multiplier_size () const |
Public Member Functions inherited from ConditionalModifier | |
| ConditionalModifier (unsigned, unsigned, std::vector< Node::DOF > &&, std::vector< Node::DOF > &&) | |
| virtual void | stage (const shared_ptr< DomainBase > &) |
| Some algorithms need to manually modify some variables after solving. | |
| std::set< uword > | get_involving_nodes (const shared_ptr< DomainBase > &) const |
| Return a set of all nodes involved. | |
| const uvec & | get_node_dof () const |
| void | deinitialize () |
| bool | is_initialized () const |
| void | set_start_step (unsigned) |
| unsigned | get_start_step () const |
| void | set_end_step (unsigned) |
| unsigned | get_end_step () const |
| virtual bool | is_connected () const |
| Indicate if this modifier can be deemed as an element that needs to account for connectivity. | |
| bool | validate_step (const shared_ptr< DomainBase > &) const |
| Validate itself against the current active step to see if itself needs to be applied. | |
| virtual void | update_status (const vec &) |
| virtual void | clear_status () |
| virtual void | commit_status () |
| virtual void | reset_status () |
Public Member Functions inherited from UniqueTag | |
| UniqueTag (const UniqueTag &)=delete | |
| UniqueTag (UniqueTag &&)=delete | |
| UniqueTag & | operator= (const UniqueTag &)=delete |
| UniqueTag & | operator= (UniqueTag &&)=delete |
| ~UniqueTag () override=default | |
| Tag (unsigned=0) | |
| Tag (const Tag &)=default | |
| Tag (Tag &&) noexcept=default | |
Public Member Functions inherited from Tag | |
| Tag (unsigned=0) | |
| Tag (const Tag &)=default | |
| Tag (Tag &&) noexcept=default | |
| Tag & | operator= (const Tag &)=delete |
| Tag & | operator= (Tag &&)=delete |
| virtual | ~Tag ()=default |
| void | set_tag (unsigned) const |
| unsigned | get_tag () const |
| void | enable () |
| void | disable () |
| void | guard () |
| void | unguard () |
| bool | is_active () const |
| bool | is_guarded () const |
| virtual void | print () |
Protected Member Functions | |
| void | apply_interaction (const bool full, const shared_ptr< Element > &element) const |
| void | apply_interaction (const bool full, const shared_ptr< InteractionPair > &pair) const |
| virtual int | process_impl (const shared_ptr< DomainBase > &, bool)=0 |
| int | process_entrypoint (const shared_ptr< DomainBase > &D, const bool full) |
Protected Member Functions inherited from ConditionalModifier | |
| double | get_amplitude (const shared_ptr< DomainBase > &) const |
| const std::vector< Node::DOF > & | get_dof_component () const |
| Return the DoF components, falls back to the DoF order. | |
| bool | validate_node (const shared_ptr< DomainBase > &) const |
| bool | validate_element (const shared_ptr< DomainBase > &) const |
| uvec | collect_node_dof (const shared_ptr< DomainBase > &) const |
Protected Attributes | |
| std::vector< shared_ptr< Element > > | elements |
| double | space = 0. |
Protected Attributes inherited from Constraint | |
| unsigned | lagrangian_size |
| vec | trial_lambda {lagrangian_size, fill::zeros} |
| vec | current_lambda {lagrangian_size, fill::zeros} |
| sp_vec | resistance |
| sp_mat | stiffness |
| vec | auxiliary_resistance |
| vec | auxiliary_load |
| sp_mat | auxiliary_stiffness |
Protected Attributes inherited from ConditionalModifier | |
| unsigned | start_step {1u} |
| unsigned | end_step {static_cast<unsigned>(-1)} |
| const std::vector< Node::DOF > | dof_order |
| uvec | target_node |
| uvec | target_element |
| uvec | target_dof |
A MolecularDynamics class.
|
inline |
|
inlineprotected |
|
inlineprotected |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Process and update both stiffness and resistance.
This method provides all necessary pieces of typical constraints/loads required, including additional blocks in original global stiffness, border matrix resistance of multiplier, external loads.
Implements ConditionalModifier.
|
inlineprotected |
|
protectedpure virtual |
|
inlineoverridevirtual |
Process and update resistance.
For some algorithms, the global stiffness is formed only once in each substep. After calling solver, the storage may contain factorization. It is not correct to modify it in those algorithms. This method should provide updated constraint/load resistance but must not touch global stiffness.
Reimplemented from ConditionalModifier.
|
protected |
|
protected |