|
| Newmark (unsigned=0, double=.25, double=.5) |
|
void | assemble_resistance () override |
|
void | assemble_matrix () override |
|
int | update_trial_status () override |
|
void | update_parameter (double) 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 |
|
bool | time_independent_matrix () const override |
|
| Integrator (unsigned=0) |
|
| Integrator (const Integrator &)=delete |
|
| Integrator (Integrator &&)=delete |
|
| Integrator (unsigned=0) |
|
| Integrator (const Integrator &)=delete |
|
| Integrator (Integrator &&)=delete |
|
Integrator & | operator= (const Integrator &)=delete |
|
Integrator & | operator= (Integrator &&)=delete |
|
| ~Integrator () override=default |
|
void | set_domain (const weak_ptr< DomainBase > &) |
|
shared_ptr< DomainBase > | get_domain () const |
|
virtual int | initialize () |
|
virtual constexpr IntegratorType | type () const |
|
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 | has_corrector () const |
|
virtual bool | time_independent_matrix () const |
|
virtual int | process_load () |
|
virtual int | process_constraint () |
|
virtual int | process_criterion () |
|
virtual int | process_modifier () |
|
virtual int | process_load_resistance () |
|
virtual int | process_constraint_resistance () |
|
void | record () const |
|
virtual void | assemble_resistance () |
|
virtual void | assemble_matrix () |
|
virtual vec | get_force_residual () |
|
virtual vec | get_displacement_residual () |
|
virtual vec | get_auxiliary_residual () |
|
virtual sp_mat | get_reference_load () |
|
virtual const vec & | get_trial_displacement () const |
|
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_from_ninja () |
|
virtual void | update_trial_time (double) |
|
virtual void | update_incre_time (double) |
|
virtual int | update_trial_status () |
|
virtual int | correct_trial_status () |
|
virtual 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 &&) |
|
virtual void | erase_machine_error (vec &) const |
|
void | stage_and_commit_status () |
|
virtual void | stage_status () |
|
virtual void | commit_status () |
|
virtual void | clear_status () |
|
virtual void | reset_status () |
|
virtual void | update_parameter (double) |
|
virtual vec | from_incre_velocity (const vec &, const uvec &) |
|
virtual vec | from_incre_acceleration (const vec &, const uvec &) |
|
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 &) |
|
| 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 |
|
virtual void | print () |
|
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.