"Noise" in acceleration

Hi!

I’ve recently added a way to output the nodal accelerations into the .frd file. @Disla created an example case to verify the results. During the verification we observed a strange “noise” in the acceleration output shown in the following figure:

@Disla identified the problem.

I dug a bit in the source code and I possibly found how Calculix computes the acceleration (the following code is a simplified version, the actual can be found in iniparll.c):

beta = 0.275625;
gamma = 0.550000;

scal1 = beta * dtime * dtime;
scal2 = gamma * dtime;

/* nactdof ?? number of active degrees of freedom */
bnac = b[nactdof[i]-1];

/* scal1*bnac is the change in displacement */
v[i] += scal1 * bnac;

/* scal2*bnac is the change in velocity */
veold[i] += scal2 * bnac;

/* bnac is the change in acceleration */
accold[i] += bnac;

I think it is some version of the Newmark-beta method.

What do you think, can we do something about the initial “noise”? (I’m not familiar with this method)

CalculiX uses the HHT method for direct integration dynamics. From the manual:

In a direct integration dynamic analysis, activated by the *DYNAMIC keyword, the equation of motion is integrated in time using the α-method developed by Hilber, Hughes and Taylor [65] (unless the massless contact method is selected; this method is treated at the end of this section). The method is implemented exactly as described in [24]. The parameter α lies in the interval [-1/3,0] and controls the high frequency dissipation: α=0 corresponds to the classical Newmark method inducing no dissipation at all, while α=-1/3 corresponds to maximum dissipation (default is α=-0.05). The user can choose between an implicit and explicit version of the algorithm. The implicit version (default) is unconditionally stable.

More details can be found in Guido Dhondt’s book.

Abaqus also uses HHT which is an extension of the Newmark β-method (unless quasi-static dynamic implicit analysis is performed, then the backward Euler method is used.

What’s your alpha value ?

Thank you for the explanation!

I did not set it explicitly:

alpha = -0.050000

I won’t say I’m cheating, but it should be clear that I am processing a signal (displacements) that somehow appears clean. I don’t know how those high frequencies have been filtered out in the speed and displacements, but I have an advantage.

Did you extract the accelerations directly from the solution provided by the algorithm, or did you process it from the speed or displacement in some way?

I’ve skimmed through Newmark algorithm, and it uses at least in to points of its construction the mean value theorem (both forward as the algorithm). It is by its own a filter of high order frequencies of the acceleration response. That would explain why velocity and displacement history outputs are smoother than acceleration.

imagen

I also read there are higher order algorithms for dynamics.

Regarding my post proceses acceleration, it is not “better”, it’s smother.

I guess if there is a way to initialize accelerations in ccx?.

Kind of acceleration initial condition to reduce that effect of passing from acceleration zero to 39.478 m/s^2 in the first-time increment. It should help indeed to reduce oscillations in the same way it does considering Initial velocity.

Yes. The algorithm computes the displacements (v), velocities (veold), and accelerations (accold), and I’ve added an output for accold.