|
suanPan
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
|
A MultiplierBC class. More...
#include <BC.h>
Public Member Functions | |
| int | process (const shared_ptr< DomainBase > &) override |
| Apply the BC to the system using Lagrangian multiplier method. It directly modifies the global stiffness matrix thus requires a mutex. Other global matrices shall also be modified to ensure the solution is trivial on target DoFs. | |
| PenaltyBC (unsigned, uvec &&, std::vector< Node::DOF > &&) | |
Public Member Functions inherited from PenaltyBC | |
| PenaltyBC (unsigned, uvec &&, std::vector< Node::DOF > &&) | |
| int | initialize (const shared_ptr< DomainBase > &) override |
| int | process (const shared_ptr< DomainBase > &) override |
| Apply the BC to the system using penalty method. It effectively adds a diagonal matrix to the global stiffness matrix. | |
| int | process_resistance (const shared_ptr< DomainBase > &) final |
| 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 () |
Additional Inherited Members | |
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 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 MultiplierBC class.
|
overridevirtual |
Apply the BC to the system using Lagrangian multiplier method. It directly modifies the global stiffness matrix thus requires a mutex. Other global matrices shall also be modified to ensure the solution is trivial on target DoFs.
Implements ConditionalModifier.