Functions
Marmot::TimeIntegration Namespace Reference

Functions

template<int nDim>
void newmarkBetaIntegration (const double *du, double *v, double *a, double dT, double newmarkBeta, double newmarkGamma, double *da_ddu)
 Newmark-Beta time integration. More...
 

Function Documentation

◆ newmarkBetaIntegration()

template<int nDim>
void Marmot::TimeIntegration::newmarkBetaIntegration ( const double *  du,
double *  v,
double *  a,
double  dT,
double  newmarkBeta,
double  newmarkGamma,
double *  da_ddu 
)

Newmark-Beta time integration.

This function implements the Newmark-Beta time integration method for linear dynamic problems. It updates the velocity and acceleration vectors based on the displacement increment and the time step.

Parameters
nDimNumber of dimensions (2D or 3D)
duDisplacement increment vector
vVelocity vector
aAcceleration vector
dTTime step
newmarkBetaNewmark-Beta parameter (0.25 for linear problems)
newmarkGammaNewmark-Gamma parameter (0.5 for linear problems)
da_dduDerivative of acceleration with respect to displacement
Returns
void
Note
The function assumes that the input vectors are of size nDim.
The function also assumes that the time step is positive and that the Newmark-Beta parameter is not zero.
The function uses a small value (1e-16) to avoid division by zero