|
| | Newmark (unsigned=0, double=.25, double=.5) |
| |
| void | assemble_resistance () override |
| |
| void | assemble_matrix () override |
| |
| int | update_trial_status (bool) override |
| |
| vec | from_incre_velocity (const vec &, const uvec &) override |
| |
| vec | from_incre_acceleration (const vec &, const uvec &) override |
| |
| void | print () override |
| |
| constexpr IntegratorType | type () const override |
| |
| | Integrator (unsigned=0) |
| |
| | Integrator (unsigned=0) |
| |
| void | set_domain (const std::weak_ptr< DomainBase > &) |
| |
| shared_ptr< DomainBase > | get_domain () const |
| |
| virtual int | initialize () |
| |
| void | set_time_step_switch (bool) |
| |
| bool | allow_to_change_time_step () const |
| |
| void | set_matrix_assembled_switch (bool) |
| |
| bool | matrix_is_assembled () const |
| |
| virtual bool | time_independent_matrix () const |
| |
| int | process_load () |
| |
| virtual int | process_constraint () |
| |
| int | process_criterion () const |
| |
| int | process_modifier () const |
| |
| int | process_load_resistance () |
| |
| virtual int | process_constraint_resistance () |
| |
| void | record () const |
| |
| virtual vec | get_force_residual () |
| |
| virtual vec | get_displacement_residual () |
| |
| vec | get_auxiliary_residual () const |
| |
| virtual sp_mat | get_reference_load () |
| |
| virtual const vec & | get_trial_displacement () const |
| |
| void | update_load () const |
| |
| void | update_constraint () const |
| |
| void | update_trial_load_factor (double) const |
| |
| void | update_trial_load_factor (const vec &) const |
| |
| virtual void | update_from_ninja () |
| |
| void | update_trial_time (double) |
| |
| virtual void | update_incre_time (double) |
| |
| int | sync_status (bool) |
| |
| 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 &&) |
| |
| void | erase_machine_error (vec &) const |
| |
| void | stage_and_commit_status () |
| |
| void | stage_status () const |
| |
| virtual void | commit_status () |
| |
| virtual void | clear_status () |
| |
| virtual void | reset_status () |
| |
| virtual vec | from_total_velocity (const vec &, const uvec &) |
| |
| virtual 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 &) |
| |
| | 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 |
| |
| | 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 |
| |
A Newmark class defines a solver using Newmark algorithm.
Newmark algorithm is unconditionally stable if
\begin{gather}\alpha\geq\dfrac{1}{4}\left(\dfrac{1}{2}+\beta\right)^2,\qquad\beta\geq\dfrac{1}{2}\end{gather}
.
There are several choices for solver parameters.
Constant Acceleration:
\begin{gather}\alpha=\dfrac{1}{4},\qquad\beta=\dfrac{1}{2}\end{gather}
.
Linear Acceleration:
\begin{gather}\alpha=\dfrac{1}{6},\qquad\beta=\dfrac{1}{2}\end{gather}
.
- Author
- tlc
- Date
- 25/08/2017
- Version
- 0.1.1
| void Newmark::assemble_matrix |
( |
| ) |
|
|
overridevirtual |
Assemble the global effective matrix A in AX=B. For FEM applications, it is often a linear combination of stiffness, mass, damping and geometry matrices.
Reimplemented from Integrator.
Reimplemented in NonviscousNewmark, and WilsonPenzienNewmark.
| vec Newmark::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 TOTAL displacement.
Reimplemented from Integrator.
| vec Newmark::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 TOTAL displacement.
Reimplemented from Integrator.