I’m going through a textbook for a proprietary FEA program, trying to replicate them all in PrePoMax. I’m not a seasoned FEA expert, but i’m working on it.
The section on selected non-linear problems have proved difficult for me to replicate, but i wonder if my approach is wrong.
The problem is simple:
Static, with total step time of 1s, in increments of 0.1s. No “large displacements” (geometric non-linearity)
My results have the same stress distribution as the problem solution, with very similar stress values. Though a point made in the text is that the maximum stress occuring is the yield stress, as per the non-linear material model, but my model experiences maximum stresses in step 5 and 6 that are beyond yielding. The model seems to have correct residual stresses by step 10, in the areas that experienced yielding.
¿Could you please share the pages on the textbook related to that problem. I’m also working to improve my knowledge on Plastic and would be nice to have a validated problem with the expected results?
I have seen some people requesting for some plasticity tutorial and maybe this could be a good example if we managed to solved it?
I would love to. The book is “Engineering Analysis with Solidworks Simulation 2020” by SDC publications. I’m actually enjoying going through the problems.
I wonder if i could get into trouble by sharing photos of the pages. It’s not very condensed as it’s a lot of screenshots, followed by text etc. Is there anything in particular you would like to see?
This might be caused by nodal extrapolation and averaging of the stresses. You would have to check the values at the integration points to confirm that.
You can save the stresses for a given set of elements to the .dat file. There they will be stored in a tabular format and obtained directly from the integration points, without extrapolation to nodes.
By how much do the stresses exceed the yield stress?
As already mentioned above, it is very likely that stress extrapolation from the integration points inside the elements to the nodes is to blame for equivalent stresses exceeding the yield limit.
Some codes (e.g. ABAQUS) have the option to not extrapolate but just to transfer the IP values to the nearest nodes. AFAIK this is not possible in CalculiX. The effect is largest, when the boundary of the plastic zone is far from an element boundary. So you can do mesh refinement at the boundary of the plastic zone.
A typical feature of this effect is that the maximum equivalent stress in the model for ongoing loading may exhibit some noise. This can even lead to noisy load-displacement curves (in particular for coarse meshes).
If you want to examine the integration point values from the dat file, note that you also can write the coordinates of the integration points there, which allows for plots like in the sketch above.
The display of non-averaged element stresses is possible in Calculix by making sure that no node is attached to more than one element and enforce continuity by MPCs. This is what the script “separate.py” in my example collection provides.
You can save the stresses for a given set of elements to the .dat file. There they will be stored in a tabular format and obtained directly from the integration points, without extrapolation to nodes.
I’ve tried to figure out how to save the stresses of selected elements to the .dat file that i see in the Temp folder in the PrePoMax folder. It’s empty as of now. Would you care to elaborate on the process to extract data into the .dat file? I’ve checked the user manual, but i don’t see anything about working with .dat files there.
If you want to examine the integration point values from the dat file, note that you also can write the coordinates of the integration points there, which allows for plots like in the sketch above.
The display of non-averaged element stresses is possible in Calculix by making sure that no node is attached to more than one element and enforce continuity by MPCs. This is what the script “separate.py” in my example collection provides.
Thank you for such a thorough reply. It makes somewhat sense to me now. As above, i would really appreciate some specifics on how to examine the integration points in the .dat file, because i simply can’t seem to find them.
Regarding the python scripts, that sounds amazing. What a goldmine for CCX examples your github seems to be. Though i have to declare my lack of skills to actually run any of the files on your page successfully with PrePoMax. I’m familiar with Python, but not very advanced. From my prepomax model, how do i export the mesh so that i can run it with the separate.py file from the terminal?
As i’m very much approaching CalculiX through the filter of Prepomax, i haven’t been succesful in trying to importing/opening any of your examples from the github page. I realise that my lacking knowledge is the bottleneck here, but could you perhaps tell me how to make your great examples run through Prepomax?
As to how to export mesh for handling with separate.py: I didn’t test this, but saving the input file from Prepomax should be sufficient. Safest would be to isolate the *node and *element parts and then include the resulting files into the original input file in place of the original mesh.
In the example collection, the mesh is usually generated by CGX, so it is already available as a separate file and included in the input.
Running the examples with PrePoMax would work via import of the input file once you did the preprocessing using CGX. I didn’t try that though. Perhaps it would be a good idea to store the input files in the github repository even if they are dependent files.
You can use history output (element type) for it. Stresses are selected by default so just pick a region with elements of interest. Then you will also find the data in the Results tab.
You can use history output (element type) for it. Stresses are selected by default so just pick a region with elements of interest. Then you will also find the data in the Results tab.
Thank you. When going about it this way i was able to see the stress values in the internal spreadsheet, and none of them went beyond yield. Thanks for all the kind help.
Hi Mate, I tried to use the method you suggested, but no luck, got stuck when importing the modified input to PrePomax.
I have attached all the relevant files for your review. Could you please take a look when you are free? Looking forward to discuss with you about it. Tutorial.zip (6.8 MB)