The NewmarkBeta class creates an implicit second order integrator that is used in a DynamicAnalysis. This integrator assumes that velocity and acceleration can be approximated as,
\[ V_{n+1} = \frac{2}{\Delta t} \left( U_{n+1} - U_n \right) - V_n \\ A_{n+1} = \frac{4}{\Delta t^2} \left( U_{n+1} - U_n \right) - \frac{4}{\Delta t} V_n - A_n \]
thus, the effective stiffness matrix and force vector are computed as,
\[ \textbf{K}_{\textrm{eff}} = \textbf{K}^{(i-1)}_{n+1} + \frac{4}{\Delta t^2} \textbf{M} + \frac{2}{\Delta t} \textbf{C} \\ \textrm{F}_{\textrm{eff}} = \textrm{R}_{n+1}^{(i)} - \textrm{F}_{n+1}^{(i-1)} + \textbf{M} \left(\frac{4}{\Delta t}V_n + A_n - \frac{4}{\Delta t^2} \Delta U \right) + \textbf{C} \left(V_n - \frac{2}{\Delta t} \Delta U\right) \]
where \(\textbf{K}_{\textrm{eff}}\) and \(\textrm{F}_{\textrm{eff}}\) are used to compute \(\delta U^{(i)} = \textbf{K}_{\textrm{eff}}^{-1} \textrm{F}_{\textrm{eff}}\) and \(\Delta U = \displaystyle{\sum_i \delta U^{(i)}}\) used in the Algorithm.
REFERENCE:
The python Pre-Analysis in the 01-Pre_Process/Method/Attach.py file provides with an interface to create a ExtendedNewmarkBeta integrator. We use the addIntegrator() as follows:
addIntegrator(tag, attributes):
Example
A NEWMARK integrator can be defined using the python interface as follows:
SVL.addIntegrator(tag=1, attributes={'name': 'Newmark', 'dt': 0.00100})
Application
Please refer to F03-DY_Lin_2DPointLoad_J2PStrain_Quad4.py file located at 03-Validations/01-Debugging/ to see an example on how to define a NEWMARK integrator using the addAlgorithm function.
On the contrary, the 01-Pre_Process/Method/Remove.py file provides with an interface to depopulate the Entities
dictionary. For example, to remove an already define Integrator, use:
The C++ Run-Analysis in the 02-Run_Process/10-Integrators/03-Newmark/ExtendedNewmarkBeta.cpp file provides the class implementation. A ExtendedNewmarkBeta is created using the built-in json parse-structure provided in the Driver.hpp and is defined inside the "Simulations" json field indicating its "Tag" as follows,
{ "Simulations": { "Tag": { "combo": int, "attributes": { "integrator": { "name": "NEWMARK", "ktol": double, "mtol": double, "ftol": double, "dt": double, } } } } }
Variable | Description |
---|---|
combo | The combination to which this Integrator will be defined. |
mTol | The specified tolerance for setting \(M_{ij} \sim 0.0\). |
kTol | The specified tolerance for setting \(K_{ij} \sim 0.0\). |
fTol | The specified tolerance for setting \(F_{j} \sim 0.0\). |
dt | The time step for the analysis. |