We just finished up a tech support call for a customer that wanted a way to get accurate reaction loads from a PSD run in ANSYS Mechanical. Alex Grishin took the call and provided a nice example to the customer, so we thought we would leverage that and share it with all of you. Even if you are not in need of this particular function, it is a great example of using snippets. If you are not familiar with this, check out our recent webinar on the subject.
The reason why you have to do this is because doing an accurate PSD force calculation is not a simple thing. The math is a bit complicated, because PSD responses are probabilities of results that loose sign. And it is right now only available in Mechanical APDL (MAPDL). This is not a problem because we can use an APDL command object to get the results from MAPDL and bring them back to ANSYS Mechanical.
Three Simple Steps
There are three very simple steps needed to get this done:
- Identify the geometry you want the reaction loads calculated on
Do this by selecting a face, edge, or corner and create a named component. You will use that named component to grab the nodes that sit on the piece of geometry and do an FSUM in MAPDL. In our example, we call the named selection react_area1. - Tell the solver to store the required modal information
Since ANSYS Mechanical doesn’t do reaction force calculations they save disk space by not storing the info needed for such calculations, but we need them. So add a command object in your modal analysis environment that says save all my results (outres) and expand all my modes (mxpand):
outres,all,all
mxpand,,,,yes,,yes - Calculate the reaction force
Now we simply need to add a command object to the post processing branch that:- gets the PSD deflection results (set,3)
- selects the named selection (cmsel),which is a nodal component in MAPDL,
- gets the nodes attached (esln)
- calculates the reaction load (fsum)
- stores the results in parameters that we return to ANSYS Mechanical. (*get,my_). Remember that anytime you create a MAPDL parameter in the post processor that starts with my_ it gets returned to ANSYS Mechanical. (well, that is the default, you can change the prefix)
- select everything so that MAPDL can keep post processing like normal
For our example, it looks like this:
/post1
set,3,1
cmsel,s,react_area1
esln
fsum
*get,my_fsumx,fsum,0,item,fx
*get,my_fsumy,fsum,0,item,fy
*get,my_fsumz,fsum,0,item,fz
allsel
The following figure shows the model tree for our example, and the returned parameters:
Nothing fancy, simple in fact: Make a component, store the required info in the result files, do an FSUM and bring back the results.
You can download the example here.
That was a short article! And no exciting pictures. So… if you want to you could check out the travels of The PADT Hat around the world.