Critical moment of the I-beam for the plate model

Sorry for any translation errors.

Comparison of StruSoft results with PrePoMax 2.2:

https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=http://download.strusoft.com/FEM-Design/inst170x/documents/verification_examples.pdf&ved=2ahUKEwiTqLSWl_SRAxVsJhAIHYalHqkQFnoECBcQAQ&usg=AOvVaw19YkNLvIxsoeCtGAZM5v8r

FEM-Design, Verification Examples, version 1.3, 2018

Punkt 3.3 strona 28 “ Lateral torsional buckling of an I section with shell modell “

Dwuteownik — kopia.inp (4.1 MB)

Where is the load applied when the plate is offset? Is this result correct?

Result error 1% or 5%?

Regarding offset:

An offset of 0.5 means that the user-defined shell reference surface is in reality the top surface of the expanded element.

Normally, shells are expanded to solids in such a way that the new solid element is extruded symmetrically on both sides of the meshed shell surface:

With an offset of 0.5 (or -0.5 depending on the normal direction), it looks like this:

And this is how it should be modeled to avoid spurious effects due to material overlap.

Of course, the highlighted red edges belong to the original surface geometry (and thus the shell mesh before expansion).

Also, the load you applied is Normal Shell Edge Load, whose syntax is:

*DLOAD
elset, EDNORx, magnitude

From the ccx manual:

Edge loading is only provided for shell elements. Its units are force per unit length. The label is EDNORx, where x can take a value between one and three for triangular shells and between one and four for quadrilateral shells. This type of loading is locally orthogonal to the edge. Internally, it is replaced by a pressure load, since shell elements in CalculiX are expanded into volumetric elements.

And finally, comparison with solid elements can be beneficial in such cases.

For the future, it’s better if you share the .pmx file instead of .inp because the .inp importer is currently outdated and imports the model only partially in most cases, leaving out some features not yet supported by it.

I know that offset moves the plate, so that’s why I did it this way. I applied the load to the two belts with the offset. Where is the load now?

PMX file is too large even without results:

obraz

It’s converted to a pressure load acting on the face of the expanded solid element. You could check it by applying such a pressure load to equivalent solid mesh (it’s even possible to export and use the expanded one directly).

In such cases, you can try making the mesh coarser or using some hosting websites (even WeTransfer) if that’s an option for you to share the file. Of course, .inp file is much better than no file :wink:

1 Like

I understand the effect of edge load, that’s why I used the unit kN/m.

For some reason, I can’t change the mesh size. It was supposed to be 25mm, but it’s 12.5mm.

Yeah, so this is where the load goes (you can see the original shell mesh highlighted in red again):

The mesher may sometimes not be able to respect those limits. For example, the web is 278.6 mm high so it can’t mesh it with only 25 mm square elements. For the webs, it could use 3 elements on each side though. You should also control the elements per edge/curvature settings since those may enforce some constraints too. I would relax the global constraints a bit, try with local refinement and other meshing algorithms. Unfortunately, there’s no way to explicitly specify the number of elements at the moment.

1 Like

The width of the belts is 2x75mm and should be 2x3x25mm. Why isn’t that the case?

There can be no refinement or mesh tricks. Nobody will have the time to perform so many trials every time. This is intended to be a quick alternative to rapid and inaccurate modeling with bars using a program that isn’t as accurate under complex boundary conditions.

After replacing GMSH with the Refinement option, the mesh is fine.

This means that the load is applied as the model looks in the internal calculations, and not as the input geometry.

Apparently, Netgen (mesher used by default if Gmsh is not selected) handles it better. That was the original mesher implemented in PrePoMax, while Gmsh was added much later and still needs some improvements (Gmsh itself has some bugs too, e.g. with the quasi-structured quad algorithm).

Yes, because the input surface geometry gets expanded into a solid mesh and all loads have to be transferred to their faces/nodes taking into account offset as well. There’s also a special handling for concentrated forces described in the CalculiX documentation.

1 Like

I’m trying to calculate half of the model. Unfortunately, I can’t figure out how to set the boundary conditions.

Symmetry is risky in buckling calculations because many modes are asymmetric. Here, I assume you want to cut the beam in half along its length. But simply supported conditions often have to be modeled with one roller support to get good results. Another problem is that symmetry BCs have to be applied carefully when using CalculiX’s shells - you shouldn’t fix the drilling DOF. That should lead to problems only for curved edges though: Inconsistent result with CalculiX on a shell model of a plate in bending · Issue #64 · Dhondtguido/CalculiX · GitHub

So it should be ok if you fix the displacement in the direction normal to the symmetry plane as well as rotations other than the one in the symmetry plane.

symm abq

I’m sorry, but I don’t understand your explanation.

I created a model, and the values ​​for one mode are similar, while the others diverge more and more. I think it’s a matter of symmetry 0,5*L

The deformations for 10 modes are quite strange.

Fixing these DOFs is correct, assuming that CalculiX’s drilling DOF limitation is not an issue here (it might be though - check the GitHub report linked above, it mentions some workarounds). Unfortunately, symmetry with shells is really risky in CalculiX as it may easily lead to overconstraint, artificial stress concentrations and non-convergence of nonlinear analyses.

Were subsequent modes symmetric or asymmetric initially ? Now you enforced their symmetry in that plane so further modes may differ.

You can also try reducing the buckling accuracy parameter in the step settings, otherwise CalculiX sometimes even skips initial eigenvalues.

1 Like

Also, to model this kind of setup:

you could use the approach shown here: https://www.youtube.com/watch?v=z5IQuXv8A2Q

And thus apply moments directly, making it easier to get the critical moment results. That approach includes asymmetric supports to model actual simply-supported conditions (with one roller support).

1 Like

I avoided applying a load to the RIGID BODY because I wanted to reduce the difficulty in understanding the program’s operation for slabs. I think I was right.

I did as you wrote. Applying a moment to a reference point, which is a support, and coupling the edges using RIGID BODY does not produce the correct result regardless of the load of 1 Nmm or 1 kNm. For both cases, I retain the value of 0.9 and 1.0.

I found this description:
"… In CalculiX, a concentrated moment applied to the RIGID BODY reference point:

  • does not generate the correct stress state in the slab element,
  • buckling analysis uses ONLY the geometric stiffness matrix, i.e., the initial stresses from the static analysis.

Result:

The solver “sees” the moment as a kinematic imposition on a rigid body, but does not “see” it as an actual load causing compression/tension of the slab. Buckling is calculated using “empty” stresses → incorrect values ​​and buckling modes.

In plate elements (S4, S8), the moment at a point ≠ the moment distributed along the edge, RIGID BODY transfers motions, does not distribute forces and moments according to plate theory, and CalculiX does not generate the correct σₓₓ / σᵧᵧ field.

In practice, the plate “rotates,” but the critical stress required for buckling does not develop…"

In summary:
In my opinion, it is impossible to achieve more precise symmetry in a simple way. My method only approximated one buckling mode because the central cross-section is too stiff. The entire cross-section cannot move in the Y direction (U2). This is not true for free support. A slight flexure occurs.