I am purshing to plot the VM stresses of a BEAM structure as a contour/fringe (such as for the Comb. Stresses).
As far as I know, the only way to obtain the VM stresses of a beam element is by plotting the section cut(using the "Beam Cross Section"). this may not be always usefull specially if you want to show the critical elements in a huge structure.
It would be really usefull to plot these results in a coloures contour along the elements. Other parameters may be needed to obtain this (eg. max. stress in the EndA/EndB in one/several Pt).
This option is available in other postprocessors such as Patran but I´m not sure how to proceed in FEMAP.
Any help will ve very much appreciated!
thanks a lot for your quick reply. Attached you have a PATRAN plot of the VM stresses at the beam. This fringe is based on the maximum stress at each node section.
Unfortunately I was unable to compare the attached plot withthe FEMAP output as my FEMAP is unable to show the VM stresses at the beam sections.
I´m using v11.3.2, it runs your txt file directly and the usual contours/deformed plots work fine. However, the beam cross section menu doesn´t show any result. The following error is shown in the message window: "No valid elements selected for beam cross section contour".
I´ve rerunned the model asking for the "Eq. Forces" and "Force Balances" in destination 3 "Print and PostProcess". This doesn´t work either.
Thanks in advance!
I really don't know exactly what PATRAN is doing, but the maximum value being displayed appears to be the Max Combined Stress from NASTRAN. This is not von Mises, it is the Maximum Tensile value for combined Axial and Bending Stress Mc/I + P/A, 6.15+003 appears in the .F06 listing as this value -
You can get the same plot in FEMAP by making a Contour of Vector "3164..Beam EndA Max Comb Stress", FEMAP automatically grabs the matching EndB data to make this plot -
In order to calculate beam von Mises stresses, you need the cross section, using the information from the Max Combined Stress, I zeroed in on Element 35 and used FEMAP's View - Advanced Post - Beam Cross Section and get this von Mises stress plot -
The von Mises Stress is 6913, higher than the Max Combined Stress since stresses due to torsion are now taken into account. This is what makes me think that PATRAN is just reporting back the Max Combined Stress and not a calculated von Mises value.
I realize that it would be tedious to look at every beam in your model to find peak von Mises values. Our Beam Cross Section Stress Calculator is available via the FEMAP API. Here is an API that will go through every beam in your model, for every output set, and report back maximum calculated von Mises stresses for each element, and report back the overall highest.
The HTML Clipboard
Sub Main Dim App As femap.model Set App = feFemap() Dim ouSets As femap.Set Set ouSets = App.feSet rc = ouSets.AddAll( FT_OUT_CASE ) Dim feElem As femap.Elem Set feElem = App.feElem Dim fbc As femap.BeamCalculator Set fbc = App.feBeamCalculator fbc.IncludeAxialForce = True fbc.IncludeMomentY = True fbc.IncludeMomentZ = True fbc.IncludeShearForceY = True fbc.IncludeShearForceZ = True fbc.IncludeTorque = True fbc.MeshFactor = 4 fbc.Position = 0.0 Dim mxStress2 As Double Dim mxStressID As Long Dim mxStressSetID As Long Dim mxStressSetID2 As Long Dim mxStress As Double Dim vMax As Double Dim vMin As Double Dim ouSetsID As Long ouSetsID = ouSets.ID Dim maxOutID As Long Dim maxComp As Long Dim maxLoc As Double Dim minOutID As Long Dim minComp As Long Dim minLoc As Double mxStress = 0.0 mxStress2 = 0.0 While feElem.Next If feElem.type = femap.FET_L_BEAM Or feElem.type = FET_L_BAR Then mxStress = 0.0 fbc.Element = feElem.ID rc = fbc.FindMaxMinStress( ouSetsID, FBMC_SC_VONMISES, maxOutID, maxComp, maxLoc, vMax, minOutID, minComp, minLoc, vMin ) If vMax > mxStress Then mxStress = vMax mxStressSetID = maxOutID End If If mxStress > mxStress2 Then mxStress2 = mxStress mxStress2ID = feElem.ID mxStressSetID2 = maxOutID End If Msg = "The Maximum vonMises Stress for Element " + Str$( feElem.ID) + " is " + Str$( mxStress) + " Output Set ID " + Str$(mxStressSetID) rc = App.feAppMessage( FCM_NORMAL, Msg ) End If Wend If mxStress2 > 0.0 Then Msg = "The Maximum overall vonMises Stress is" + Str$( mxStress2) + " on Element " + Str$(mxStress2ID ) + " Output Set ID " + Str$(mxStressSetID2) rc = App.feAppMessage( FCM_NORMAL, Msg ) End If End Sub
Running this API does find and report back -
"The Maximum overall vonMises Stress is 6312.9892578125 on Element 35 Output Set ID 1"
Please try this on your model and let me know if it helps. As soon as we get v11.4 out the door, we'll work on a more comprehensive version of this API that creates EndA and EndB von Mises data so that you can do a contour plot.