# Dynamic , Explicit

I would appreciate if someone could help me a little clarifying whether I should have done failure in the data sets or Dynamic, Explicit has a dimension problem.

Attached 2 geometric identical data sets defining a simple Pendulum. One with the dimension in mm, gram, second and the other one with the dimension in m, kilogram, second.
In Implicit mode both data sets return with the correct result, compares to explicit mode where it’s only the data set in mm, gram, second which returns with the correct result.

``````**  Pendul dimension mm, gram, second
*Node
1,   151.421356,   -151.421356,    -2.5
2,   151.421356,   -141.421356,    -2.5
3,   151.421356,   -131.421356,    -2.5
4,   141.421356,   -131.421356,    -2.5
5,   131.421356,   -131.421356,    -2.5
6,   131.421356,   -141.421356,    -2.5
7,   131.421356,   -151.421356,    -2.5
8,   141.421356,   -151.421356,    -2.5
9,   141.421356,   -141.421356,    -2.5
**
10,   141.421356,   -141.421356,    0.0
**
11,   151.421356,   -151.421356,     2.5
12,   151.421356,   -141.421356,     2.5
13,   151.421356,   -131.421356,     2.5
14,   141.421356,   -131.421356,     2.5
15,   131.421356,   -131.421356,     2.5
16,   131.421356,   -141.421356,     2.5
17,   131.421356,   -151.421356,     2.5
18,   141.421356,   -151.421356,     2.5
19,   141.421356,   -141.421356,     2.5
**
20,  0.0, 0.0, 0.0
**
*Element, Type=C3D8, Elset=Pendul
1, 1, 2, 9, 8, 11, 12, 19, 18
2, 8, 9, 6, 7, 18, 19, 16, 17
3, 2, 3, 4, 9, 12, 13, 14, 19
4, 9, 4, 5, 6, 19, 14, 15, 16
**
*Nset, Nset=PendulBack
1,  2,  3,  4,  6,  7,  8,  9
*Nset, Nset=Origon
20
**
*Material, Name=Steel
*Density
7800E-06
*Elastic
210000, 0.3
**
*Solid section, Elset=Pendul, Material=Steel
**
**   ---  Using a stiff spring as connecting rod
*Element, Type=springa, Elset=Espring
200, 10, 20

*Spring, Elset=Espring

10.E+06
**   ---   Lock the Penduls mass moment of initia
**   ---   + movement in Z-plane
**node,dir,fact,node,dir,fact ......... = 0
*Equation
2
5,2,1.,3,2,-1.
2
5,3,1.,3,3,-1.
** Lock the pendul arm at the center of pendul
3
10,1,1.,9,1,-0.5,19,1,-0.5
3
10,2,1.,9,2,-0.5,19,2,-0.5
3
10,3,1.,9,3,-0.5,19,3,-0.5
**
*Step, Nlgeom, Inc=11000
*Dynamic, Explicit
0.01, 0.5, 1E-04, 0.005
**
*Boundary, op=New
Origon, 1, 3, 0.
PendulBack, 3, 3, 0.
**
*Dload, op=New
Pendul, Grav, 9820, 0, -1, 0
**
*Node file
RF, U, V
*El file
S, E, ENER
*End step
``````
``````**  Pendul dimension m, kilogram, second
*Node
1,  0.151421356,  -0.151421356,   -0.0025
2,  0.151421356,  -0.141421356,   -0.0025
3,  0.151421356,  -0.131421356,   -0.0025
4,  0.141421356,  -0.131421356,   -0.0025
5,  0.131421356,  -0.131421356,   -0.0025
6,  0.131421356,  -0.141421356,   -0.0025
7,  0.131421356,  -0.151421356,   -0.0025
8,  0.141421356,  -0.151421356,   -0.0025
9,  0.141421356,  -0.141421356,   -0.0025
**
10,  0.141421356,  -0.141421356,    0.0
**
11,  0.151421356,  -0.151421356,    0.0025
12,  0.151421356,  -0.141421356,    0.0025
13,  0.151421356,  -0.131421356,    0.0025
14,  0.141421356,  -0.131421356,    0.0025
15,  0.131421356,  -0.131421356,    0.0025
16,  0.131421356,  -0.141421356,    0.0025
17,  0.131421356,  -0.151421356,    0.0025
18,  0.141421356,  -0.151421356,    0.0025
19,  0.141421356,  -0.141421356,    0.0025
**
20,  0.0, 0.0, 0.0
**
*Element, Type=C3D8, Elset=Pendul
1, 1, 2, 9, 8, 11, 12, 19, 18
2, 8, 9, 6, 7, 18, 19, 16, 17
3, 2, 3, 4, 9, 12, 13, 14, 19
4, 9, 4, 5, 6, 19, 14, 15, 16
**
*Nset, Nset=PendulBack
1,  2,  3,  4,  6,  7,  8,  9
*Nset, Nset=Origon
20
**
*Material, Name=Steel
*Density
7800
*Elastic
210E+09, 0.3
**
*Solid section, Elset=Pendul, Material=Steel
**
**   ---  Using a stiff spring as connecting rod
*Element, Type=springa, Elset=Espring
200, 10, 20

*Spring, Elset=Espring

10.E+03
**   ---   Lock the Penduls mass moment of initia
**   ---   + movement in Z-plane
**node,dir,fact,node,dir,fact ......... = 0
*Equation
2
5,2,1.,3,2,-1.
2
5,3,1.,3,3,-1.
** Lock the pendul arm at the center of pendul
3
10,1,1.,9,1,-0.5,19,1,-0.5
3
10,2,1.,9,2,-0.5,19,2,-0.5
3
10,3,1.,9,3,-0.5,19,3,-0.5
**
*Step, Nlgeom, Inc=11000
*Dynamic, Explicit
0.01, 0.5, 1E-04, 0.005
**
*Boundary, op=New
Origon, 1, 3, 0.
PendulBack, 3, 3, 0.
**
*Dload, op=New
Pendul, Grav, 9.820, 0, -1, 0
**
*Node file
RF, U, V
*El file
S, E, ENER
*End step

``````
1 Like

I think the problem are the units of the spring’s stiffness. (Force/Lenght)

10.E+06 [g / s2]
10.E+03 [Kg/s2]

2 Likes

@Disla , thanks for the quick reply, and of course You’re right that the spring stiffness aren’t scaled correctly, but a little strange also that the stiffness of a massless spring element has influence whether a selective mass scaling is active or not.

1 Like

Yep. I comment about that detail on my last post about explicit. I had to change the stiffness if not my result was completely wrong, or the model fly away.

By other hand, which version of ccx are you using?

EDITED: Elogation Fixed.

@Disla , I normally use my own compiled version of CCX_2.21, windows or linux, but I always check with the official version when I have doubt.
Well solving this problem just led me on to the next one. Impact of 3 pendulums. I know the abnormal distorted deformations are due to a low number of element but when first basic are in place adding more elements is the least problem.
From a first shot the dynamic graphics looks realistic, expect of it’s funny the passive pendulums are start moving before impact from the active pendulum.

until impact the total energy looks exactly as expected a quarter of a sine period but at after impact some crazy things happens. In my mindset the level of total energy can never exceed level of energy just before impact but look at output of total energy from CCX.

maybe You could come up with any sensible explanation.By the way the energy data are extracted from the official version of CCX_2-21

1 Like

I solved this same problem in June 2022 but just with the implicit solver. At that time, I remember sweating a lot to find the parameters.
Never managed to solve it with the explicit. Now I think I know where my problem was. Let my try and I will come back.

This is my heuristic approach that solves the problem.

Explicit dynamics requires a very small-time step right. Thanks to mass scaling you can increase that time step. But………in an explicit dynamic process, a larger time step means that when too bodies impact, the error in the contact displacement can be very large (Delta_x=v x delta_t). In a static process you get wrong stresses in the contact area (smaller than they should) but in a dynamic process that means the next step thinks your system has store a huge amount of strain energy (penetration) that needs to be released back. I think that explains why some youtube vids of explicit dynamic shows hyperexcited balls that jump every time higher and higher.

Solution. Reduce the contact stiffness. That’s what I have done. In fact, you don’t really need as much stiffness to make the contact work as the bodies are unconstrained.
I’m using the new Mecway tool to compute the overall energy along the whole process.
Image shows Overall Potential energy, Kinetic and Strain Energy which balance and transfer from one each other quite accurately. (Some days ago, I found an small Energy leak in a squash ball but it is small. Probably due to Alpha).

1 Like

Hi,

The abrupt drop in kinetic energy observed during each impact should be transferred into the cubes in the form of a sudden peak in the Strain Energy.
That sudden peak should later mostly recover as kinetic energy again with a small part remaining/invested as Strain Energy into some excited vibration mode of the cube.
The selected time step is still large to clearly capture those fast oscillations of the Strain Energy. I have reduced the minimum time step a bit to see if it improves and it does but there are still small differences that should be adjusted depending on what is the aim of the analysis. Keep an eye on the contact clearance value.

By other hand:

EDITED: 1-Strain Energy of the Springs ( 1/2K(delta_L)^2.) included as Internal Energy.

2-Not sure if it happens the same with the energy lost due to the Alpha damping.

Those values can be significative to see if the impacts are balanced. Maybe some developer could comment about this last two points?.

@Disla , Thanks for the hint about the contact stiffness, it would not have one of my first thoughts, but I have some problems reproducing your curves, so do you mind share your data set ?

@Disla , thanks for the data set. It always gives something looking someone over the shoulder

I didn’t know that you had changed the type of element from C3D8 to C3D20R. Will that be something MecWay more or less can do automatic, in that case its a smart feature.

To be honest I had not imagined that the C3D8 was so poor compared to the C3D20R, From the beginning my thought was, the contact loading is straight on without sliding how bad could that be and with the C3D8 it’s quite simple to manual do a quick small working data set, but jumping over the low fence is not always the shorter way to the goal.

Yep. You can switch from one to the other.

-Which value are you plotting? ’ total energy ? Directly from the ccx Monitor?
-¿Have you noticed that the final frd is almost 7 times heavier when you use mKs units? ¿Strange isn’t it?

I think it can also be interesting to comment that if one request the ENER output in Explicit Dynamic, the monitor starts showing information like actual total time and energy balance which can be representative of the analysis progress and time left.

Speaking about that, here’s my request from yesterday: Status file output in explicit dynamics · Issue #58 · Dhondtguido/CalculiX · GitHub

I’m plotting total energy from the consol window, just grab it by redirecting. ex ‘ccx_2.21 -i jobname | find “total energy” > energy.txt’ , and then afterward import to Excel. It requires 2 run, one for the energy and one for the “actual total time”

Yes , I have noticed that a few times. It’s a bug in CCX. By some random coincidence the xxx.frd file is opened for “append” instead of for “rewrite”. I discovered that issue because my change in the input didn’t make change in the graphical viewer, the only change that happens was that the xxx.frd file was growing for every run. I found it easier just manual to delete the xxx.frd file instead of searching for bug by debugging.

We should report right?.
That’s a nasty bug considering this kind of analysis usually generate huge files. By other hand I have found MKS triggers mass scaling while mmgs not with the corresponding differences in the Energy balance (appart form scale).

I need to admire, that my brain sometimes is located in another world . My earlier comment was related to another simulation where the output file just continued to grow in size for every run, but I fully agree that this one also is a bug since 2 different data set which are physical and dimensional identical also should undergo the same program run.

Maybe we can kill two birds with one stone

@Disla , My first comments with the file open issue had referenced from memory so that not even needs to be true. It was just what I shortly concluded back then.
Bug reporting need to be well documented and reproduceable and preferable with a small data set which make the bug traceable.
meter,Kilogram,second vs. mm,gram,second – ElementMassScaled vs. no MassScaling
I think we should stick to this one.

It would be great if someone else could confirm it. It’s mainly your files with the spring Stiffness correction. Fast to compute and small frd file.

MKgs

``````**  Pendul dimension m, kilogram, second
*Node
1,  0.151421356,  -0.151421356,   -0.0025
2,  0.151421356,  -0.141421356,   -0.0025
3,  0.151421356,  -0.131421356,   -0.0025
4,  0.141421356,  -0.131421356,   -0.0025
5,  0.131421356,  -0.131421356,   -0.0025
6,  0.131421356,  -0.141421356,   -0.0025
7,  0.131421356,  -0.151421356,   -0.0025
8,  0.141421356,  -0.151421356,   -0.0025
9,  0.141421356,  -0.141421356,   -0.0025
10,  0.141421356,  -0.141421356,    0.0
11,  0.151421356,  -0.151421356,    0.0025
12,  0.151421356,  -0.141421356,    0.0025
13,  0.151421356,  -0.131421356,    0.0025
14,  0.141421356,  -0.131421356,    0.0025
15,  0.131421356,  -0.131421356,    0.0025
16,  0.131421356,  -0.141421356,    0.0025
17,  0.131421356,  -0.151421356,    0.0025
18,  0.141421356,  -0.151421356,    0.0025
19,  0.141421356,  -0.141421356,    0.0025
20,  0.0, 0.0, 0.0
*Element, Type=C3D8, Elset=Pendul
1, 1, 2, 9, 8, 11, 12, 19, 18
2, 8, 9, 6, 7, 18, 19, 16, 17
3, 2, 3, 4, 9, 12, 13, 14, 19
4, 9, 4, 5, 6, 19, 14, 15, 16
*Nset, Nset=PendulBack
1,  2,  3,  4,  6,  7,  8,  9
*Nset, Nset=Origon
20
*Material, Name=Steel
*Density
7800
*Elastic
210E+09, 0.3
*Solid section, Elset=Pendul, Material=Steel
**   ---  Using a stiff spring as connecting rod
*Element, Type=springa, Elset=Espring
200, 10, 20
*Spring, Elset=Espring

10.E+03
**   ---   Lock the Penduls mass moment of initia
**   ---   + movement in Z-plane
**node,dir,fact,node,dir,fact ......... = 0
*Equation
2
5,2,1.,3,2,-1.
2
5,3,1.,3,3,-1.
** Lock the pendul arm at the center of pendul
3
10,1,1.,9,1,-0.5,19,1,-0.5
3
10,2,1.,9,2,-0.5,19,2,-0.5
3
10,3,1.,9,3,-0.5,19,3,-0.5
**
*Step, Nlgeom, Inc=11000
*Dynamic, Explicit
0.01, 0.5, 1E-04, 0.005
**
*Boundary, op=New
Origon, 1, 3, 0.
PendulBack, 3, 3, 0.
**
*Dload, op=New
Pendul, Grav, 9.820, 0, -1, 0
**
*Node file
RF, U, V
*El file
S, E, ENER
*End step

``````

And mmgs

``````**  Pendul dimension mm, gram, second
*Node
1,   151.421356,   -151.421356,    -2.5
2,   151.421356,   -141.421356,    -2.5
3,   151.421356,   -131.421356,    -2.5
4,   141.421356,   -131.421356,    -2.5
5,   131.421356,   -131.421356,    -2.5
6,   131.421356,   -141.421356,    -2.5
7,   131.421356,   -151.421356,    -2.5
8,   141.421356,   -151.421356,    -2.5
9,   141.421356,   -141.421356,    -2.5
10,   141.421356,   -141.421356,    0.0
11,   151.421356,   -151.421356,     2.5
12,   151.421356,   -141.421356,     2.5
13,   151.421356,   -131.421356,     2.5
14,   141.421356,   -131.421356,     2.5
15,   131.421356,   -131.421356,     2.5
16,   131.421356,   -141.421356,     2.5
17,   131.421356,   -151.421356,     2.5
18,   141.421356,   -151.421356,     2.5
19,   141.421356,   -141.421356,     2.5
20,  0.0, 0.0, 0.0
*Element, Type=C3D8, Elset=Pendul
1, 1, 2, 9, 8, 11, 12, 19, 18
2, 8, 9, 6, 7, 18, 19, 16, 17
3, 2, 3, 4, 9, 12, 13, 14, 19
4, 9, 4, 5, 6, 19, 14, 15, 16
*Nset, Nset=PendulBack
1,  2,  3,  4,  6,  7,  8,  9
*Nset, Nset=Origon
20
*Material, Name=Steel
*Density
7800.E-06
*Elastic
210000., 0.3
*Solid section, Elset=Pendul, Material=Steel
**   ---  Using a stiff spring as connecting rod
*Element, Type=springa, Elset=Espring
200, 10, 20
*Spring, Elset=Espring

10.E+06
**   ---   Lock the Penduls mass moment of initia
**   ---   + movement in Z-plane
**node,dir,fact,node,dir,fact ......... = 0
*Equation
2
5,2,1.,3,2,-1.
2
5,3,1.,3,3,-1.
** Lock the pendul arm at the center of pendul
3
10,1,1.,9,1,-0.5,19,1,-0.5
3
10,2,1.,9,2,-0.5,19,2,-0.5
3
10,3,1.,9,3,-0.5,19,3,-0.5
**
*Step, Nlgeom, Inc=11000
*Dynamic, Explicit
0.01, 0.5, 1.E-04, 0.005
**
*Boundary, op=New
Origon, 1, 3, 0.
PendulBack, 3, 3, 0.
**
*Dload, op=New
Pendul, Grav, 9820, 0, -1, 0
**
*Node file
RF, U, V
*El file
S, E, ENER
*End step
``````
1 Like

@Disla
In according to the CCX manual then:
Second line for SPRINGA type elements: enter a blank line
Example:
*SPRING,ELSET=Eall
blank line
10.
The blank line is missing in both your data set.

1 Like