Issues with initial velocity

Hi,

there are some bugs and limitations regarding the initial velocity condition, maybe they could be fixed for the next version:

  1. After selecting the part in the Part name mode, confirming and going back to the initial condition, it shows the following error message:

error

Part is set to Missing and needs to be reselected.

  1. There’s no option to select the node set for the initial velocity (even though there is such an option for the initial temperature). It would be useful in general but also for the workaround that has to be used in the case of 2D analyses - initial velocity doesn’t work there unless a dummy node-type surface is defined based on the node set used for the initial velocity condition: Can't get simple explicit dynamics impact analysis to work - #5 by Calc_em - CalculiX (official versions are on www.calculix.de, the official GitHub repository is at https://github.com/Dhondtguido/CalculiX).

  2. There’s no option to assign velocity to a reference point. This should also include rotational velocity: Simulation of rolling - #2 by FEAnalyst

I have fixed this bug.

  1. Looking at the code, I found out that I decided to make the InitialVelocity an element-based entry while the initial temperature is a node-based entry. Why did I decide like this? At the time, I think I could relate more to velocity being defined based on elements in order not to deform elements if different velocities are used for each node. I see this was probably a wrong decision since the keyword is node-based. So the problem is, if I change this definition, we will lose the compatibility to open older files containing Initial velocity items in the FE model tree. I am ready to make this sacrifice since not many users are using it.

  2. Adding support for a reference point will definitely require switching from element to node-based definition. Will adding additional fields in the initial velocity entry suffice, or should we have an additional entry called Initial angular velocity? The same was done for concentrated force and moment loads. This option makes more sense in the case of rotational velocity and a reference point since probably a rotation node of the reference point should have a rotational velocity assigned.

Great, thank you for resolving this issue. Initial velocity should indeed be a node-based entry.

Both would be fine, it’s hard to say which is better. You are right - rotational velocity has to be applied to the ROT node. One disadvantage of a separate initial rotational velocity feature would be if you wanted to assign translational and rotational velocity to a ref point at the same time - then you would have to use two separate features. But it’s not a common use case. Another benefit of the approach with additional fields is that it follows the displacement boundary condition style. However, there can be more advantages of the approach with an additional feature when it comes to the internals - implementation and CalculiX handling (e.g. situations when any initial rotational velocity is assigned to something else than a ref point).

Here’s what it looks like in Abaqus:

initial rotational vel

Rotational would be awsome to set up Impact test pendulums !

I changed the category to Feature Requests because the bug is fixed and only the two FRs are left:

  • selecting node sets for initial velocity (useful in general but also for a particular workaround needed in 2D)
  • selecting reference points for initial velocity and defining rotational velocity (from what I’ve seen on the forum, quite a few users would appreciate that, me too, of course)

I am adding angular velocity support, and I wonder if I should use the built-in support for the *Initial conditions DOFs 4, 5, and 6 or let the user select the axis location and then recompute the angular velocities to translational velocities only (DOFs 1, 2, and 3).

The first approach should work with points on the rotation axis only (reference points), and the second approach will not work for the points on the rotation axis but will work for applying the rotation to a body (node-set).

Some of my tests with DOFS 4, 5, and 6 on a reference point gave strange results. Do we have any working test models?

After reading my post, I will do the following: If the nodes are away from the rotational axis, I will compute their translational velocity and if the nodes are on the axis I will apply the DOFs 4 to 6.

The attached file is a cube centered at the origin.
I have imposed an angular velocity of one rotation per second.
Overall computation time is 3 seconds (three revolutions are expected).
Angular velocity points in direction w=(1,1,1)
Expected results:
-One rotations is completed at the end of each second. (Constant Speed)
-Cube do not offset. (My cross product is working).
-The displacements of the two corner nodes at (0.5, 0.5, 0.5) and (-0.5,- 0.5, -0.5) remain zero as they are aligned with the rotation axis.
-Velocity magnitude field should remain constant.

I also have it for the simplest case where angular velocity is aligned with main axis.

*NODE
1,-0.5,0,0.5
2,-0.5,-0.5,-0.5
3,0.5,-0.5,-0.5
4,0.5,0.5,-0.5
5,-0.5,0.5,-0.5
6,-0.5,-0.5,0.5
7,0.5,-0.5,0.5
8,0.5,0.5,0.5
9,-0.5,0.5,0.5
10,0,-0.5,-0.5
11,0.5,0,-0.5
12,0,0.5,-0.5
13,-0.5,0,-0.5
14,-0.5,-0.5,0
15,0.5,-0.5,0
16,0.5,0.5,0
17,-0.5,0.5,0
18,0,-0.5,0.5
19,0.5,0,0.5
20,0,0.5,0.5
*ELEMENT,TYPE=C3D20
1,2,3,4,5,6,7,8,9,10,11,12,13,18,19,20,
1,14,15,16,17
*ELSET,ELSET=DEFAULT
1
*MATERIAL,NAME=MATERIAL
*ELASTIC,TYPE=ISOTROPIC
100000000000,0.3
*DENSITY
10000
*SOLID SECTION,ELSET=DEFAULT,MATERIAL=MATERIAL
*INITIAL CONDITIONS,TYPE=VELOCITY
1,1,1.81379936423422
1,2,-3.62759872846844
1,3,1.81379936423422
2,1,0
2,2,0
2,3,0
3,1,0
3,2,3.62759872846844
3,3,-3.62759872846844
4,1,-3.62759872846844
4,2,3.62759872846844
4,3,0
5,1,-3.62759872846844
5,2,0
5,3,3.62759872846844
6,1,3.62759872846844
6,2,-3.62759872846844
6,3,0
7,1,3.62759872846844
7,2,0
7,3,-3.62759872846844
8,1,0
8,2,0
8,3,0
9,1,0
9,2,-3.62759872846844
9,3,3.62759872846844
10,1,0
10,2,1.81379936423422
10,3,-1.81379936423422
11,1,-1.81379936423422
11,2,3.62759872846844
11,3,-1.81379936423422
12,1,-3.62759872846844
12,2,1.81379936423422
12,3,1.81379936423422
13,1,-1.81379936423422
13,2,0
13,3,1.81379936423422
14,1,1.81379936423422
14,2,-1.81379936423422
14,3,0
15,1,1.81379936423422
15,2,1.81379936423422
15,3,-3.62759872846844
16,1,-1.81379936423422
16,2,1.81379936423422
16,3,0
17,1,-1.81379936423422
17,2,-1.81379936423422
17,3,3.62759872846844
18,1,3.62759872846844
18,2,-1.81379936423422
18,3,-1.81379936423422
19,1,1.81379936423422
19,2,0
19,3,-1.81379936423422
20,1,0
20,2,-1.81379936423422
20,3,1.81379936423422
*STEP,NLGEOM=YES,INC=5000,AMPLITUDE=STEP
*DYNAMIC
0.001851852,3,0,0.001851852
*NODE FILE,GLOBAL=YES
U
*EL FILE
S,NOE,E,ENER
*CONTACT FILE
CDIS,CSTR
*END STEP
1 Like

Thank you for the sample. I was able to confirm your findings.

Nice!!!,

I have also try with the cube at an arbitrary position, and an axis of rotation passing through an arbitrary point. One just needs to substract that point to the r position of each node. I’m using the tensor form of the w angular velocity for the cross product.
In the attached sample w now points in direction (-1,1,1) and passes through point (5m,4m,3m). Cube is C3D20R and it is centered at (5m,4m,3m) too. This way I can check the model performance looking at the corner nodes again, this time nodes 9 and 3. I’m using an excel file as my programming is horrible.
Regarding the initial velcity in components 4,5 and 6 not clear to me what they mean as everything is expanded. I will take a look at shells and beams.

*NODE
1,4.5,4,3.5
2,4.5,3.5,2.5
3,5.5,3.5,2.5
4,5.5,4.5,2.5
5,4.5,4.5,2.5
6,4.5,3.5,3.5
7,5.5,3.5,3.5
8,5.5,4.5,3.5
9,4.5,4.5,3.5
10,5,3.5,2.5
11,5.5,4,2.5
12,5,4.5,2.5
13,4.5,4,2.5
14,4.5,3.5,3
15,5.5,3.5,3
16,5.5,4.5,3
17,4.5,4.5,3
18,5,3.5,3.5
19,5.5,4,3.5
20,5,4.5,3.5
*ELEMENT,TYPE=C3D20R
1,2,3,4,5,6,7,8,9,10,11,12,13,18,19,20,
1,14,15,16,17
*ELSET,ELSET=DEFAULT
1
*MATERIAL,NAME=MATERIAL
*ELASTIC,TYPE=ISOTROPIC
100000000000,0.3
*DENSITY
10000
*SOLID SECTION,ELSET=DEFAULT,MATERIAL=MATERIAL
*INITIAL CONDITIONS,TYPE=VELOCITY
1,1,1.81379936423422
1,2,0
1,3,1.81379936423422
2,1,0
2,2,-3.62759872846844
2,3,3.62759872846844
3,1,0
3,2,0
3,3,0
4,1,-3.62759872846844
4,2,0
4,3,-3.62759872846844
5,1,-3.62759872846844
5,2,-3.62759872846844
5,3,0
6,1,3.62759872846844
6,2,0
6,3,3.62759872846844
7,1,3.62759872846844
7,2,3.62759872846844
7,3,0
8,1,0
8,2,3.62759872846844
8,3,-3.62759872846844
9,1,0
9,2,0
9,3,0
10,1,0
10,2,-1.81379936423422
10,3,1.81379936423422
11,1,-1.81379936423422
11,2,0
11,3,-1.81379936423422
12,1,-3.62759872846844
12,2,-1.81379936423422
12,3,-1.81379936423422
13,1,-1.81379936423422
13,2,-3.62759872846844
13,3,1.81379936423422
14,1,1.81379936423422
14,2,-1.81379936423422
14,3,3.62759872846844
15,1,1.81379936423422
15,2,1.81379936423422
15,3,0
16,1,-1.81379936423422
16,2,1.81379936423422
16,3,-3.62759872846844
17,1,-1.81379936423422
17,2,-1.81379936423422
17,3,0
18,1,3.62759872846844
18,2,1.81379936423422
18,3,1.81379936423422
19,1,1.81379936423422
19,2,3.62759872846844
19,3,-1.81379936423422
20,1,0
20,2,1.81379936423422
20,3,-1.81379936423422
*STEP,NLGEOM=YES,INC=5000,AMPLITUDE=STEP
*DYNAMIC
0.001851852,3,0,0.001851852
*NODE FILE,GLOBAL=YES
U,V
*EL FILE
S,NOE,E,ENER
*CONTACT FILE
CDIS,CSTR
*END STEP

I got it to work for points on the axis and points away from the axis. I added symbols to initial conditions since they had none before and added support for equations to all values (and my day is sadly over :slight_smile:).

2 Likes