I run the model in PrePoMax . the model is like lap joint of two plates with help of three rivets for this model rivets replaced with springs . after running the model . i got the top plate displacement is zero. if anyone can clarify my doubt . below are the results images .
Can you share the file ? I wonder how you modeled the springs since only springs to ground (not node-to-node springs) are currently supported in PrePoMax: Spring between two nodes
(NEW)plate with 3 rivets.pmx (3.4 MB)
this is the prepomax file
It seems that those 2-node springs are defined between the nodes of the shell plates. You should use rigid body reference nodes instead.
I don’t know how give reference nodes instead of node ids . can you please explain .
also explain where i need to edit .
Just change the node numbers used for spring element definitions to node numbers of rigid body constraint REF NODEs (you can find them in the Constraints section of the Keyword Editor).
After change the node id as reference node . again the displacement is zero for top plate . the reaction forces are much higher at reference points . i applied only 178 newton force . i want how much of load taken by each spring . can you explain how to take the forces at each spring.
The problem is that the bottom plate is free to move in the X direction under the applied force, it just drags the springs with it:
That’s why there are so large displacements (10^9 - 10^10 mm).
You could add some soft springs in the X direction to the edge (opposite to the loaded edge) of the bottom plate.
Also, enable Nlgeom.
And I would consider replacing springs with beam elements.
i don’t know how to use beam elements in place of springs . can you guide me to create beam elements in place of springs .
The easiest way is to replace element type SPRINGA with B31 and *SPRING with:
*BEAM SECTION, MATERIAL=..., ELSET=..., SECTION=RECT
width, height
x, y, z
where x, y and z are global coordinates of a vector defining the width direction of the beam section.
I replaced my previous spring elements (SPRINGA
) with beam elements (B31
) to simulate rivet stiffness more realistically.
For this, I defined a beam section like below:
*BEAM SECTION, MATERIAL=ALU, ELSET=BEAMS, SECTION=RECT
0.005, 0.01
0, 1, 0
I also made sure that the material ALU
is defined earlier in the input:
*MATERIAL, NAME=ALU
*ELASTIC
71000, 0.33
However, when I run the analysis, I get an error saying:
*ERROR reading *BEAM SECTION: nonexistent material
Even though the material appears in the PrePoMax material tree and looks correctly defined, CalculiX fails to recognize it.
What could be the cause of this mismatch between the defined material and the beam section?
Is there a specific way to link the material defined in PrePoMax to be recognized properly in the beam section?
prepomax file correct the mistakes i done and explain them . after corrections are complete in prepo max send new prepomax file .
Plate with 3 rivets .pmx (3.4 MB)
If the material is not used by any section, it’s deactivated by PrePoMax in the input deck. So you can define the material in the Keyword Editor or choose already used material (even if it’s a dummy assignment).
Thanks sir
(NEW)plate with 3 rivets (tuesday).pmx (3.4 MB)
I’m working on a riveted joint model in PrePoMax. where I replaced spring elements with B31
beam elements to simulate rivets. I created the beam elements between node pairs like 14038,14048, 14042,14044, etc., and grouped them under ELSET=BEAM
.
I then defined the material ALU
in the keyword editor like this:
*Material, Name=ALU
*Elastic
71000, 0.33
And I applied the beam section:
*BEAM SECTION, MATERIAL=ALU, ELSET=BEAM, SECTION=RECT
0.005, 0.01
0, 1, 0
All node IDs and element IDs are defined correctly, and the material appears in the Materials
section. But when I run the model, CalculiX fails with this error:
*ERROR in allocation: at least one fatal error message while reading the input deck: CalculiX stops. can you explain how to resolve this error . solve this error in below prepomax file. attach the new file .it will help me to understand where i made mistake .
The prepomax file is in below .
I can’t check your file now but if you scroll up in the Output tab of the Monitor window, you should see another error message indicating a specific issue with the keyword syntax.
From what I see in your screenshots, you should remove the *ELSET keyword (the BEAM elset is already created by the *ELEMENT, TYPE=B31, ELSET=BEAM keyword. And remove that empty third line under *BEAM SECTION.
Thanks sir . now my model run with out error. but in results the displacement is zero on the top plate . i am confused that why the top plate displacement is zero. can you explain why the load is not transfer from bottom plate to top plate through beam elements . how to get reaction forces at beams . i attach the pre po max file also check it once .
(NEW)plate with 3 rivets (7-5-25).pmx (3.5 MB)
You still have huge rigid displacements of the bottom plate. As I said before, I would add soft springs to the left edge of the bottom plate and enable Nlgeom. This should make the results more realistic and you should see the response in the top plate.
After adding soft spring with stiffness of 17181 N/mm to the left edge of the bottom plate and after enable Nlgeom.still the top plate displacement become zero .
(NEW)plate with 3 rivets (8-5-25).pmx (3.3 MB)
Thanks sir . I am beginner to pre po max i do not know how to define beams . can you explain it for previous pre po max file .
Do it in the same way as you did with spring elements - give the 2 corresponding ref node numbers under each *ELEMENT, TYPE=B31 data line. Your definition is mostly correct - just change the first beam element nodes to:
*Element, type=B31, elset=BEAM
900001, 14038, 14040
...
Then you can try pulling the bottom plate with prescribed displacement instead of force to avoid the need to use springs. Restore proper BCs to avoid rigid body motions before doing that.
Btw. you don’t need a custom keyword to enable Nlgeom for the step, you can change it in the step settings in PrePoMax.
P.S. Try with one rivet first.