One-step (and direct) method, either implicit or explicit. Scheme parameters determine stability and convergence. Default values are: (aka trapezoidal rule, 2nd order accurate) beta == 0.25 (beta deternubes stability), gamma == 0.5 (gamma determines accuracy)
More...
#include "b2newmark.H"
|
virtual void | SetAttribute (const Case &case__) override |
|
virtual void | InitializeTimeIntegrator (const b2linalg::Matrix< T, b2linalg::Mrectangle > &initial_dof, const double dt) override |
| Initialize the time integrator with the model to act on the initial condition, the initial point in time and the case definition for the current computation.
|
|
virtual void | InitializeFieldsForThisTimeStep (b2linalg::Matrix< T, b2linalg::Mrectangle > &dof, const b2linalg::Matrix< T, b2linalg::Mrectangle > &dU) override |
| Update velocities and (possibly) also accelerations after each time step. This method will also save the values from the previous time step ("current" t_n+1) as the new values for the following time step ("new" t_n). When this method is called the displacements dof[0] are already up to date, but velocities dof[1] and accelerations dof[2] are not.
|
|
virtual void | UpdateFields (b2linalg::Matrix< T, b2linalg::Mrectangle > &dof, const b2linalg::Matrix< T, b2linalg::Mrectangle > &dU) override |
| Update velocities and (possibly) also accelerations after each global iteration.
|
|
virtual TimeIntegrator< T >::EffectiveSymmetricSystem | GetEffectiveElementSystem (const b2linalg::Matrix< T, b2linalg::Mpacked > &k, const b2linalg::Matrix< T, b2linalg::Mpacked > &d, const b2linalg::Matrix< T, b2linalg::Mpacked > &m, const b2linalg::Matrix< T, b2linalg::Mrectangle_constref > &dof, const b2linalg::Index &index) const override |
| Calculates the element effective system based on the concrete time integrator.
|
|
virtual TimeIntegrator< T >::EffectiveUnsymmetricSystem | GetEffectiveElementSystem (const b2linalg::Matrix< T, b2linalg::Mrectangle > &k, const b2linalg::Matrix< T, b2linalg::Mrectangle > &d, const b2linalg::Matrix< T, b2linalg::Mrectangle > &m, const b2linalg::Matrix< T, b2linalg::Mrectangle_constref > &dof, const b2linalg::Index &index) const override |
| Calculates the element effective system based on the concrete time integrator.
|
|
virtual const std::string & | get_object_name () const |
|
virtual | ~Object () |
|
|
static ObjectType | type |
|
b2linalg::Matrix< T, b2linalg::Mrectangle > | V_ {} |
| Displacements.
|
|
b2linalg::Matrix< T, b2linalg::Mrectangle > | Z_ {} |
| Velocities.
|
|
b2linalg::Matrix< T, b2linalg::Mrectangle > | dot_Z_ {} |
| Accelerations.
|
|
int | current_stage_number_ {1} |
| For multi-stage methods such as Runge-Kutta methods ...
|
|
int | max_stage_number_ {1} |
| ... (do not confuse this with b2000 stages)
|
|
double | dt {1} |
| Step size.
|
|
template<typename T>
class b2000::solver::NewmarkIntegrator< T >
One-step (and direct) method, either implicit or explicit. Scheme parameters determine stability and convergence. Default values are: (aka trapezoidal rule, 2nd order accurate) beta == 0.25 (beta deternubes stability), gamma == 0.5 (gamma determines accuracy)
- Template Parameters
-
T | scalar template type parameter determines accuracy. |
◆ GetEffectiveElementSystem() [1/2]
template<typename T >
TimeIntegrator< T >::EffectiveSymmetricSystem b2000::solver::NewmarkIntegrator< T >::GetEffectiveElementSystem |
( |
const b2linalg::Matrix< T, b2linalg::Mpacked > & |
k, |
|
|
const b2linalg::Matrix< T, b2linalg::Mpacked > & |
d, |
|
|
const b2linalg::Matrix< T, b2linalg::Mpacked > & |
m, |
|
|
const b2linalg::Matrix< T, b2linalg::Mrectangle_constref > & |
dof, |
|
|
const b2linalg::Index & |
index |
|
) |
| const |
|
inlineoverridevirtual |
Calculates the element effective system based on the concrete time integrator.
- Parameters
-
[in] | k | The symmetric element stiffness matrix. |
[in] | d | The symmetric element damping matrix. |
[in] | m | The symmetric element mass matrix. |
[in] | dof | Current global displacements, velocities and accelerations. |
[in] | index | Local to global node mapping. |
- Returns
- The effective element system with the symmetric matrix.
Implements b2000::solver::TimeIntegrator< T >.
◆ GetEffectiveElementSystem() [2/2]
template<typename T >
TimeIntegrator< T >::EffectiveUnsymmetricSystem b2000::solver::NewmarkIntegrator< T >::GetEffectiveElementSystem |
( |
const b2linalg::Matrix< T, b2linalg::Mrectangle > & |
k, |
|
|
const b2linalg::Matrix< T, b2linalg::Mrectangle > & |
d, |
|
|
const b2linalg::Matrix< T, b2linalg::Mrectangle > & |
m, |
|
|
const b2linalg::Matrix< T, b2linalg::Mrectangle_constref > & |
dof, |
|
|
const b2linalg::Index & |
index |
|
) |
| const |
|
inlineoverridevirtual |
Calculates the element effective system based on the concrete time integrator.
- Parameters
-
[in] | k | The unsymmetric element stiffness matrix. |
[in] | d | The unsymmetric element damping matrix. |
[in] | m | The unsymmetric element mass matrix. |
[in] | dof | Current global displacements, velocities and accelerations. |
[in] | index | Local to global node mapping. |
- Returns
- The effective element system with the unsymmetric matrix.
Implements b2000::solver::TimeIntegrator< T >.
◆ InitializeFieldsForThisTimeStep()
template<typename T >
void b2000::solver::NewmarkIntegrator< T >::InitializeFieldsForThisTimeStep |
( |
b2linalg::Matrix< T, b2linalg::Mrectangle > & |
dof, |
|
|
const b2linalg::Matrix< T, b2linalg::Mrectangle > & |
dU |
|
) |
| |
|
inlineoverridevirtual |
Update velocities and (possibly) also accelerations after each time step. This method will also save the values from the previous time step ("current" t_n+1) as the new values for the following time step ("new" t_n). When this method is called the displacements dof[0] are already up to date, but velocities dof[1] and accelerations dof[2] are not.
- Parameters
-
[in,out] | dof | Fields containing displacements, velocities and accelerations. |
[in] | dU | Working array containing increments of current iteration. |
Implements b2000::solver::TimeIntegrator< T >.
◆ InitializeTimeIntegrator()
Initialize the time integrator with the model to act on the initial condition, the initial point in time and the case definition for the current computation.
- Parameters
-
[in,out] | initial_dof | The initial values of the DOF's. |
[in] | dt | The initial step size for the first time step. |
Implements b2000::solver::TimeIntegrator< T >.
◆ SetAttribute()
Set the attributes of the time stepping methods according to the parameters set in the given case definition.
- Parameters
-
[in] | b2case | The current case. |
Implements b2000::solver::TimeIntegrator< T >.
◆ UpdateFields()
template<typename T >
void b2000::solver::NewmarkIntegrator< T >::UpdateFields |
( |
b2linalg::Matrix< T, b2linalg::Mrectangle > & |
dof, |
|
|
const b2linalg::Matrix< T, b2linalg::Mrectangle > & |
dU |
|
) |
| |
|
inlineoverridevirtual |
Update velocities and (possibly) also accelerations after each global iteration.
- Parameters
-
[in,out] | dof | Fields containing displacements, velocities and accelerations. |
[in] | dU | Working array containing increments of current iteration. |
Implements b2000::solver::TimeIntegrator< T >.
The documentation for this class was generated from the following file: