Non-axis-aligned beam moment and constraint bugs again #124

Hi Victor,

Hope you are well. I have been working on the last issue published on ccx_Github

https://github.com/Dhondtguido/CalculiX/issues/124

I think I make it to work.

I don’t have a full explanation, but this is what I think that could be happening, and I tried based on that. If the explanation is other, well, I hope it helps to bring some light and can be fixed.

Beams always create their own local coordinate system. CLOAD is affected when there is a transform on top of a node, so it gets puzzled.
We talk about that with tractions on top of symmetry contours on shells (there is a previous transform card). Prepomax now uses DLOAD to avoid that as it is not affected.

So, I have imposed a transform on top of the nodes for the inclined beam and I have expressed the load in the new coordinate system …. and voila!!.

It works in both ccx 2.21 and 2.22.
Note Von misses are wrongly extracted for the inclined although all the principal stresses and Strain energy perfectly match.
Note removing the Transform on the base make the beam to fail. I guess it looks like very much to when we constrained curved surfaces.

I ‘haven’t look at the rotations bug yet. This is for Moments.

Any comment we can use the attached file as reference.

Regards

Comments

  • edited August 2025
  • Wow, that might be the silver bullet! Incredible discovery!

    It looks like you might have tried other orientations of the transform. Did you find it has to be this specific one?

    von Mises isn't really wrong, it just looks that way because it's uniform and there's a tiny error on the rotated one, but you have to expect that with transformations.
  • edited August 2025
    Regarding the *transform definition I would say that the key point is to select a rectangular coordinate system that perfectly match the beam orientation.
    Beam orientation can’t be left to default. You can try and it fails.

    From all the references that help me to define the *Transform (nodes around the beam) I’m using the one that match the orientation.




    Regarding Von Misses. You are right. I didn’t notice the value is the same. Just different colors.
    B32 does it much better.



    And what about individual stress components? If I request GLOBAL=NO to express them locally, I would expect them to be the same. isn’t it?

  • HI Victor,

    Here another working example using the same criteria but diferent transform.
    I would say that as far as the new transform is coincident with the local coordinate system and loads are expresed acording to it is should work. Orientation is necessary and I would keep Y' aligned with V just in case. Now Transform direction uses X'=U, Y'=V, (X'x Y' Right hand sided) =Z'=W.
    I'm introducing the loads directly the GUI properly adjusted.Now X in the GUI should read as X'=U and Y=Y'=V
  • OK, that makes sense. I tried with slightly misaligned transform and it went wrong. This sounds like a solid solution for moments on the ends of beams but it's going to be more limited for constraints in case you really need the transform to be different for, say, a hinge or sliding support. It will also get complicated at nodes where two beams meet and aren't collinear. CCX has a complicated procedure for determining the common orientation that I guess would have to be reproduced to work out the correct transform.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!