Skip to main content

DesignXplorer Design Point Alternative Save

Solving for many cases with small variations using DesignXplorer is quite convenient. After setting up an initial model, a parameter could be defined in SpaceClaim or elsewhere. The solution for multiple design points are then generated as I sip on my beer (legally at home).

As shown in this YouTube Video, the output parameters are single values like natural frequency, displacements and other maximum or minimum of available solution results. Unfortunately if you are interested in more complicated items that aren't easily available through the user defined results or *GET commands, how do you capture that output parameter?

One way would be to retain all design point results for later post processing but that would be overkill especially since I'll have to go into everyone of them to extract out the information which is a pain.

Alternately, a post-processing APDL script could be written to extract out key information at each run. An example would be the mode shape of a beam. With different input parameters (e.g. length), let's export the response at the nodes on top of the beam for all runs.

Step 1
Setup the model as usual with at least one input parameter and one output parameter.

Step 2
Create Named Selection of regions of interest. This can then be later accessed via the MAPDL db to be called by the script. Note that this should be done before the first solve.

Step 3
The command snippet is added at the Solution branch to allow for /POST1 computation in extracting out the results of interest. In this case the nodal X location and the Y displacements. Two key points:
1. The file.db was made available to identify the named selection.
2. The output text file is copied over to the user file directory before Ansys DesignXplorer deletes it.

The Command Snippet could look like the following:
resume, file, db

cmsel, s, TopNodes
*get, ncount, node, 0, count
*dim, data, array, ncount, 4

*do,cto, 1, 3
set, 1, cto
nnow = 0
*do, ct, 1, ncount
nnow = ndnext(nnow)
data(ct, 1) = nx(nnow)
data(ct, cto+1) = uy(nnow)

!!! Writes data to file
! File Name
*get, timenow_test, active,, time, wall ! appends time 
timenow = chrval(timenow_test)

*dim, fname, string, 128
fname(1) = strcat('file',timenow)

! Actual File Writing
*cfopen, fname(1), txt
*vwrite, data(1,1), data(1,2), data(1,3), data(1,4)
(E20.5,'  ',E20.5,'  ',E20.5,'  ',E20.5)

!!! Copies over to User Folder
*dim, fname2, string, 120
fname2(1) = strcat(_WB_USERFILES_DIR(1), fname(1))
/copy, fname(1),txt,, fname2(1).txt

Step 4
With the exported text file in the user_file directory, the data can then be post processed in Matlab/Octave. The plots of the first three mode shapes are shown in the first figure of this post.

Files Used in this Post
Ansys Workbench R18.2 Archive File
Octave/Matlab Post Processing Script File


Popular posts from this blog

ANSYS User Defined Results

There is an abundant of options in ANSYS classic when one wishes to post process results. ANSYS workbench default pull down menu post processing options are more limited but they can still be accessed via the User Defined Results. One way not commonly used but can come in handy is as follows: Zeroth: Under Analysis Settings, there is "Output Controls" where you can toggle to "Yes" what you would like to save before the solution starts. This is like OUTRES in APDL. Output Controls First: After solving the model, click on Solution in the tree to highlight it. Solution Second: Click on Worksheet in the toolbar. Worksheet Third: In the worksheet, you will see list of results that are saved. Right click on it to create the User Defined Results. Create User Defined Results So here we have it. You could of look up the different expressions in the help document but I find this method of accessing the results convenient.  Example: Aspec

Export Stiffness Matrix from Ansys

It is sometimes useful to extract the mass and stiffness matrix from Ansys.     *SMAT, MatK, D, IMPORT, FULL, file.full, STIFF       *PRINT, matk, matk, txt Exporting mass matrix would be similar:       *SMAT, MatM, D, import, full, file.full, MASS The above script uses APDL Math to get the job done. (Please see previous post for another example). The ordering of the matrix is unfortunately not concurrently exported. To verify the sequencing is as expected, we will work to replicate a truss example in the  Finite Element Trusses course notes by Bob Greenlee. Figure 1: Truss Problem Setup Model Creation Script to create model: /prep7 !! Creates Model to reflect course notes ! Properties et ,1,1  mp , ex, 1, 29.5e6 r , 1, 1 ! Geometry n ,1 $  n ,2, 40 $  n ,3, 40, 30 $  n ,4, 0, 30 e ,1,2 $  e ,2,3 $  e ,1,3 $  e ,3,4 ! Boundary Conditions d ,1,ux,0 $  d ,1,uy,0 d ,2,uy,0 d ,4,ux,0 $  d ,4,uy,0 f ,2,fx,20e3 f ,3,fy,-25e3 ! solves /solu eqslv , sparse

ANSYS APDL Syntax Highlighting editor

Notepad++ with APDL User Defined Language The editor of my choice is Notepad++  with the available User Defined Language Files for APDL . You can install it without administrative privileges via the zip file. The best part of it is, it's FREE! After installing Notepad++, go to "Language>Define Your Language..." then "Import" the XML file downloaded from the above link. Remember to restart Notepad++ so that the language changes will take into effect. Opening up any *.inp or *.ans files should automatically switch highlighting to APDL. I made some minor edits. Here's my XML file: LINK . I also heard Sublime Text and  Ultraedit  has more advance features but they aren't (totally) free.