|
| | GSSSS (unsigned) |
| |
| void | assemble_resistance () override |
| |
| void | assemble_matrix () override |
| |
| int | process_load () override |
| |
| int | process_constraint () override |
| |
| int | process_load_resistance () override |
| |
| int | process_constraint_resistance () override |
| |
| int | update_trial_status () override |
| |
| void | stage_status () override |
| |
| void | update_parameter (double) override |
| |
| void | update_compatibility () const override |
| |
| vec | from_incre_velocity (const vec &, const uvec &) override |
| |
| vec | from_incre_acceleration (const vec &, const uvec &) override |
| |
| void | print () override |
| |
| | Integrator (unsigned=0) |
| |
| | Integrator (const Integrator &)=delete |
| |
| | Integrator (Integrator &&)=delete |
| |
| Integrator & | operator= (const Integrator &)=delete |
| |
| Integrator & | operator= (Integrator &&)=delete |
| |
| | ~Integrator () override |
| |
| void | set_domain (const weak_ptr< DomainBase > &) |
| |
| const weak_ptr< DomainBase > & | get_domain () const |
| |
| virtual int | initialize () |
| |
| void | set_time_step_switch (bool) |
| |
| bool | allow_to_change_time_step () const |
| |
| virtual int | process_criterion () |
| |
| virtual int | process_modifier () |
| |
| void | record () const |
| |
| virtual vec | get_force_residual () |
| |
| virtual vec | get_displacement_residual () |
| |
| virtual vec | get_auxiliary_residual () |
| |
| virtual sp_mat | get_reference_load () |
| |
| virtual sp_mat | get_auxiliary_stiffness () |
| |
| virtual void | update_load () |
| |
| virtual void | update_constraint () |
| |
| virtual void | update_trial_load_factor (double) |
| |
| virtual void | update_trial_load_factor (const vec &) |
| |
| virtual void | update_trial_displacement (const vec &) |
| |
| void | update_trial_time (double) |
| |
| void | update_incre_time (double) |
| |
| virtual int | update_incre_status () |
| |
| virtual int | update_internal (const mat &) |
| |
| mat | solve (const mat &) |
| |
| mat | solve (const sp_mat &) |
| |
| mat | solve (mat &&) |
| |
| mat | solve (sp_mat &&) |
| |
| virtual int | solve (mat &, const mat &) |
| |
| virtual int | solve (mat &, const sp_mat &) |
| |
| virtual int | solve (mat &, mat &&) |
| |
| virtual int | solve (mat &, sp_mat &&) |
| |
| virtual void | erase_machine_error () const |
| |
| virtual void | stage_and_commit_status () |
| |
| virtual void | commit_status () |
| |
| virtual void | clear_status () |
| |
| virtual void | reset_status () |
| |
| vec | from_total_velocity (const vec &, const uvec &) |
| |
| vec | from_total_acceleration (const vec &, const uvec &) |
| |
| vec | from_incre_velocity (double, const uvec &) |
| |
| vec | from_incre_acceleration (double, const uvec &) |
| |
| vec | from_total_velocity (double, const uvec &) |
| |
| vec | from_total_acceleration (double, const uvec &) |
| |
| | Tag (unsigned=0) |
| |
| | Tag (const Tag &)=default |
| |
| | Tag (Tag &&)=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 |
| |
A GSSSS class defines a solver using GSSSS algorithm.
Advances in Computational Dynamics of Particles, Materials and Structures
ISBN: 978-1-119-96692-0
- Author
- tlc
- Date
- 15/04/2022
- Version
- 0.1.0
| vec GSSSS::from_incre_acceleration |
( |
const vec & |
, |
|
|
const uvec & |
encoding |
|
) |
| |
|
overridevirtual |
When external loads are applied, they can be applied in forms of displacement/velocity/acceleration. The time integration methods, by default, form effective stiffness matrices in displacement domain. That is, in AX=B, A is the effective stiffness matrix and X is the displacement increment. Thus, loads in velocity/acceleration must be converted to displacement. This cannot be done arbitrarily due to compatibility issues. This method takes acceleration increment and converts it to displacement increment.
Reimplemented from Integrator.
| vec GSSSS::from_incre_velocity |
( |
const vec & |
, |
|
|
const uvec & |
encoding |
|
) |
| |
|
overridevirtual |
When external loads are applied, they can be applied in forms of displacement/velocity/acceleration. The time integration methods, by default, form effective stiffness matrices in displacement domain. That is, in AX=B, A is the effective stiffness matrix and X is the displacement increment. Thus, loads in velocity/acceleration must be converted to displacement. This cannot be done arbitrarily due to compatibility issues. This method takes velocity increment and converts it to displacement increment.
Reimplemented from Integrator.
| int GSSSS::process_constraint |
( |
| ) |
|
|
overridevirtual |
The main task of this method is to apply constraints (of various forms implemented in various methods). Combinations of different types need to be considered: 1) homogeneous, 2) inhomogeneous, 3) linear, 4) nonlinear. Combinations of different methods need to be considered: 1) penalty, 2) multiplier. On exit, the global stiffness matrix should be updated, the global residual vector should be updated.
Reimplemented from Integrator.
| void GSSSS::update_compatibility |
( |
| ) |
const |
|
overridevirtual |
Make sure that the trial displacement/velocity/acceleration are consistent with each other. When starting a new trial state, the trial displacement is identical to the current displacement. This essentially means that the displacement increment is zero. To have such a trial state with the given time step, the trial velocity and acceleration shall be updated to be compatible with the trial displacement.
On exit, trial velocity and acceleration should be computed from current/trial displacement.
Reimplemented from Integrator.