Angular acceleration problem

You could use *TRANSFORM on the selected nodes to transform them to a local (user-defined) coordinate system. Then all boundary conditions applied to these nodes will be in that local coordinate system. But such a coordinate system has to be defined manually each time. FreeCAD FEM supports it though: FEM ConstraintTransform - FreeCAD Documentation

Still, the three nodes must form a right-angle triangle. Correct?

It may not be that strict but it’s quite limited indeed. Another approach that can make more sense in your case is with so-called soft springs. SW Simulation also has them. It’s just about applying discrete spring elements of very low stiffness to all nodes in the model. It may still affect the solution so it should be used with care and as a last resort.

https://help.solidworks.com/2024/english/SolidWorks/cworks/c_Use_Soft_Spring_to_Stabilize_Model.htm

CalculiX has spring elements (spring to ground and 2-node springs) so it should be doable with some scripts.

I can only share plain text files sorry.
This is the inp. It needs to be run in the command line and open frd with prepomax.
Model doesn’t contain BC at all.
Just comment again that I found this SSD aproach kind or forced. I think it implies using Fourier analisys but you are interested only in the response to the constant value.

If inertia relief does not use angular accelerations, then Solidworks must still remove the rigid body dof’s using 3-2-1 method when doing static analysis of free body. The 3-2-1 method must be done automatically and quietly.

How do I remesh to get more elements? Not obvious. Thanks.

It doesn’t use the 3-2-1 method automatically, no software does it, from what I know. The only automatic methods are inertia relief and soft springs. However, they still recommend applying proper BCs instead of relying on the inertia relief or soft springs in SW Simulation: https://www.youtube.com/watch?v=HZwNUeYWvOE

That’s the tricky part - if you don’t have the geometry and only the mesh in the input file then you can’t remesh easily. There are ways to remesh existing finite element meshes but not all tools can do that and you would likely lose the associated information - sets and surfaces used to apply analysis features. CalculiX has the *REFINE MESH keyword that allows you to refine meshes consisting of linear and quadratic tetrahedrons based on the specified criteria so that the analysis is continued with a proper mesh.

I think the attach is what I want.
A 1.6kg beam pointing in X direction is accelerated by 100N at each end in Z direction.
The acceleration is 125m/s^2 in Z direction.
That problem is converted to a static problem using body forces which are simulated by GRAV (125m/s^2) in negative Z direction.
3-2-1 constraints remove the rigid body dof’s.
The results should be correct for the beam after transients die down.
How do I read the forces in the 3-2-1 constraints? They should be nearly zero.
Thanks.

History output → Node output → RF

Exactly the same setup (just with deleted results and cleaned mesh to reduce the size of the file) in FreeCAD FEM: Dropbox

FreeCAD writes the reaction forces for boundary conditions automatically and you can check them in the .dat file appearing in the tree.

Beam lying in X direction
No forces or torques.
Centrifugal force added.
Spin origin is 0.5, 0.01, 0. (center of beam)
Spin axis is 0, 0, 0.01
3-2-1 constraints.
Stresses should be high near spin axis and get less and less towards tip.
Thanks.

This requires Angular Acceleration.
Same beam. But forces at the ends are in opposite directions. Hence the angular acceleration exists. The body force should be gravity-like in Z directions but increasing from zero at the center to the ends. The body forces and moments should cancel the end forces and moments.
The yet to be implemented workaround is to define a GRAV for each element depending on the Angular Acceleration and element distance from spin axis. Any better suggestions? Thanks.

Hi, I’m taking a shot at this and I’m having some trouble. The baseline setup is here and I’m trying to run this without boundary conditions. This input file inherently shouldn’t have much angular acceleration, if any, but it is likely a good first step to applying inertial relief.

The overall method I’m using is:

  1. Calculate total forces and moments (about cg) in x,y,z
  2. Calculate mass moment of inertia about cg
  3. Calculate total linear and angular acceleration felt by the structure using F_total=m_total * a_linear and M_total=I_cg * a_angular
  4. For each element, calculate the linear contribution using F_element_linear=m_element * a_linear and then angular contribution using F_element_angular=m_element * a_angular x distance_to_cg
  5. Sum the linear and angular force terms and use a_element=(F_element_linear+F_element_angular)/m_element

a_element is then a vector which contains the x,y,z accelerations that I then apply per element using *DLOAD and grav in the appropriate dof. However, this doesn’t seem to stop rigid body motion, and I can’t figure out why. I tried applying soft springs as well, but that didn’t help. Does anyone have any suggestions?

you made it (force) balanced, however a Neumann problem does not have unique solution, since a combination of rigid body motions is still a solution. You additionally have to block the rigid motion in a single node (6dof) or better using the 1-2-3 approach (6 dof blocked in total) then it will work, if you did a good work balancing the loads, the reactions at those dofs will be almost zero.
Notice that your choice of blocking dofs will change the displacements of the solution, however all of them will provide the same stresses.

1 Like