Check this model with 3 beams and kinematic couplings:
test_bolt_v7 mod.pmx (1.8 MB)
Again, I hope I got the nodes right. It’s getting quite confusing when there are more bolts and you have to define them with no visual feedback.
Check this model with 3 beams and kinematic couplings:
test_bolt_v7 mod.pmx (1.8 MB)
Again, I hope I got the nodes right. It’s getting quite confusing when there are more bolts and you have to define them with no visual feedback.
basically, is similar with your original example files by connecting beam element nodes with reference points of rigid body. I’m only added extra connection at mid-surface of plate parts as depth fixation to transmitted shear force and generate internal bolt bending.
attached example files, i used four linear beams (B31) instead of three element, rectangular section with equivalent width due to limitation. Mid length nodes of bolt shank or body is preparing for another possibility to extent in tension only and prestressed force.
plate2bolt_mod2.pmx (265.0 KB)
Just to make it absolutely clear for the OP, even though it was mentioned in this thread, such an approach won’t work with CalculiX 2.23 and needs coupling constraints instead.
*ERROR in gen3dmpc: nodes belonging to
beam elements must not be
subject to a RIGID MPC.
In my model shared above, I used one B32R beam in the middle and two B31 beams for the tips. The questions is if more elements than that are necessary.
Thank you very much for your involvement and for the time you are dedicating to help me. I will review all the solutions that have been proposed.
In parallel, I would also like to build a model with two bolts modeled as solid parts. My idea was to model the bolts explicitly and define contacts between the different components: between the two plates, between the bolt heads and part A, between the nuts and part B, and between the bolt shanks and the holes in the plates.
I do not intend to apply any bolt pretension.
Here is a first model I created. However, I am observing very large stresses at the transition between the nut–plate contact and the contact between the shank and hole B. This appears even when applying a very small load.
test_bolt_v2_.pmx (4.9 MB)
I would remove that rigid body constraint. But the main issue is that the mesh is very coarse, especially on the holes. You should refine it (the problem is that you have many node sets and surfaces that may break or need regeneration then - it would be better to make selections directly on the geometry) or use hex elements - this would be the best option, but needs some effort to define. Basically, there are 3 ways to obtain it:
This mesh was imported, but should give you an idea of what I mean (it could be even more refined, though):
When you refine the mesh, there are two very important things to remember:
Thank you for your detailed feedback. I will implement these improvements in my model.
Is there a specific guideline for choosing the master and slave surfaces in contact or tie definitions?
For tie constraints, make sure that the master surface has a coarser mesh. The same rule applies to contact, but there are also other factors to take into account. Master should be the stiffer (or rigid) part. Then there are some additional guidelines regarding the size and shape of the surfaces. It’s recommended to define the larger and less curved surface as the master.
Abaqus recommends the following:
All these rules are especially important for node-to-surface contact, but surface-to-surface is recommended in the majority of the cases anyway.
Here and on the CalculiX forum, you may also find similar guidelines from Ansys:
Are those first-order or second-order elements ? Full or reduced integration ? The element order can be set when meshing while the formulation is set when editing parts in the FE Model tab.
To ensure correct mesh density, you should run a mesh convergence study - refine, recalculate and see how the results changed, then repeat if needed.
Element order is set in Meshing parameters. By default it’s second order. For a dense hex mesh, you can use firs order instead and switch ti C3D8R elements.
I have been taking a look at your model and think one issue is the bolt is a little bigger than the hole
i have had trouble with contact models not converging when the has been interference with parts. I now make the bolts a “clearance fit” to avoid any issues here- I try to avoid adjustment as I am not always sure of the outcome. I simplified your model and generated some simple solid bolts that were smaller dia than the hole and. despite the mesh being very course, appeared to get reasonable results.TestBolt1.pmx (1.1 MB)
to prevent any rigid body movement of the bolts I chose to tie the heads to one surface of the part - the other contacts were unilateral with a small amount of friction.
I have attached the file with no results - it takes a 20 mins to solve
Yes, as I said, there are large stresses from interference fit being automatically resolved by CalculiX when there’s a penetration (even just because of coarse meshing) and adjustment is disabled. The quickest fix (provided that the mesh is improved first) is to enable adjustment with a proper tolerance value, but of course, it can also make sense to reduce the bolt diameter or increase the hole diameter a bit to introduce some clearance.
If preload is added (even though the OP doesn’t plan to include it), it should be frozen in the second step where operational loading is applied.
connect beam element to MPC constraint have advantages in section forces output since it can be read directly. An example below, S33 for axial, S11&S22 for shear so further bolt calculation checks are easier to manage.
What’s interesting, nodes of 1D elements shown with OUTPUT=2D (needed to obtain section forces) can be querried (it’s just difficult to select them), but can’t be used for distance measurement. I’ve noticed that when I was trying to measure a spring element, but the same applies to GAP elements.
Quadratic beams can’t be displayed in the non-expanded form, but I knew about this limitation:

Thank you very much for your work and your time. How did you create your screws and your quadrilateral mesh?
i do most of my mesh manipulation in mecway. The screws are easy -i generate a 2d circle with a simple quad mesh, extrude it length wise then extrude top and bottom diametrically to form head and “nut”. To generate the body quadrilateral meshes i took the original model and extracted the faces in cad then made 2D quads meshes on the surfaces- it involves a bit of playing around and i had to change the geometry a little to make it easier. Then i extrude these surfaces into hex blocks. I’m never totally sure its worth the effort but i feel i get a nicer mesh with a lower element count
I assume that you would want to do this in non-commercial software so you could try partitioning the parts with several planes/faces in FreeCAD: Simple tutorial on how to divide an object in FreeCAD into PrePoMax - #5 by MisiaKu
It will be a lot of work, but if you can get only 5- or 6-sided volumes with 3 or 4 edges each then you will be able to create a compound and apply the Transfinite Gmsh algorithm in PrePoMax:
Or use prepomax- import a circle the dia of the head, 2D quad mesh it like this
thicken mesh like this
make an element set like this
change element set to part
finally remove that part
once u have one sensibly proportioned bolt, keep that in a library and simply scale x/y for dia and z for length
To have fully parametric bolts, the easiest way would be to write a Gmsh script. Gmsh can create simple geometries such as rectangles and circles, mesh them with quads and extrude/revolve together with the mesh as well as apply the transfinite algorithm. Then it would be possible to change the proportions of the bolt too.
But it might be one of the goals of the CalculiX forum thread I plan to start.