Using APDL Snippets in ANSYS Mechanical
Eric Miller
Principal Director, Simulation and Business Technologies
5/26/2011 PADT, Inc.
DX R13: 02/17/2011 1
Agenda
Note: This presentation is being recorded Introductions Background and Foundation Item Snippets General Prep Snippets General Post Snippets Other Stuff to Know Conclusion
DX R13: 02/17/2011 2
Introductions
DX R13: 02/17/2011 3
Upcoming Webinars
Webinars go on Summer Breaks in June and July
Look for an e-mail in early June with next webinars
Will introduce User Issues where you suggest a topic and we research and do the presentation
See upcoming and past webinars at:
padtincevents.webex.com
Click on ANSYS Webinar Series
DX R13: 02/17/2011 4
About PADT
PADT is an Engineering Services Company
Mechanical Engineering 17 Years of Growth and Happy customers 68 Employees
3 Business Areas
CAE Sales & Services
Consulting, Training, Sales, Support
Product Development Rapid Prototyping & Manufacturing
Learn More: www.PADTINC.com
We Bring Dimension to Your Ideas
DX R13: 02/17/2011 5
Cube HVPC Systems
Balance between speed and cost
Mini-Cluster 96 Cores / 256 GB RAM / 3.6 TB Disk Mobile Rack / UPS / Monitor / Keyboard $43,250 Compute Server 32 Cores / 128 GB RAM / 3 TB Disk $12,300 Simulation Workstation 12 Cores / 64 GB RAM / 1.5 TB Disk $5,800 Simulation Fileserver 10 TB Disk / External eSATA $5,800
www.CUBE-HVPC.com
DX R13: 02/17/2011 6
PeDAL The APDL Editor
Side-by-side editor and help viewer layout. Instant help on any documented APDL command by pressing F1. Full syntax highlighting for ANSYS v12 Mechanical APDL. Auto-complete drop downs for APDL Commands. APDL Command argument hints while typing commands. Search ANSYS help phrases and keywords. Multiple tabs for the editor and html viewer. Full capability web browser built in allows for rich web experience and web searches.
DX R13: 02/17/2011 7
Connect with PADT
Facebook: facebook.com/padtinc Email Subscriptions:
www.padtinc.com/epubs
Twitter: #padtinc
Web: www.PADTINC.com
LinkedIn: Search on PADT, Inc.
ANSYS User Blog: padtinc.com/focus
DX R13: 02/17/2011 8
Background and Foundation
DX R13: 02/17/2011 9
APDL?
ANSYS Parametric Design Language
The ANSYS program, now Mechanical APDL (MAPDL), originally worked by reading command files:
COMMAND, arg1, arg2, arg3, arg4 Punch cards!
Using the GUI simply builds a command(s) that are sent to the program A logical improvement was to turn the command stream into a language
Variable substitution for any arguments Simple math with variables Added control logic: if-then-else, do, goto Added ability to interrogate the database and return values Added ability to deal with data as arrays, vectors, and matrices
Everything you can do in MAPDL you can do through a series of text commands: APDL
DX R13: 02/17/2011 10
Why is APDL Worshiped?
No Limits
Everything you can do in MAPDL you can do through a series of text commands: APDL Everything in APDL can be parameterized Almost everything about your model can be interrogated
Easy to learn and use
Very consistent Well documented Can start with contents of log file!
Simple
Concise, man-readable Old limits on character length (8char) keep things short
Every item in a MAPDL is identified by a number
Very Important!
DX R13: 02/17/2011 11
Mechanical and APDL
When you use ANSYS Mechanical you are building an object oriented description of your model When you hit solve, it converts the description into APDL
Runs MAPDL in batch
To add a new function to a complex object oriented system is tough
But many features users want exist in MAPDL Especially advanced functions and additional options
So, users can add APDL commands to their model
As an object in the pre- or post-processing branches
Allows user access to the full breadth and depth
DX R13: 02/17/2011 12
Command Objects
Users insert Command Objects into the tree to insert APDL code Originally called code snippets many users still call them snippets But documentation refers to them as Command Objects Icon is a text file with a big Red C
(APDL) indicates the type of snippet, you can do other solvers Decoration (Green check, yellow Lighting bolt, question mark) is the same as for other objects in your model tree.
DX R13: 02/17/2011 13
Not Perfect
You may not be able to post process your model
Some things done to results can not be viewed in Mechanical
You cant touch geometry
Only works on FE model, not on geometry KP, Line, Area, Volume dont exist in MAPDL from Mechanical
Not interactive in Workbench
You cant try out commands and see what happens from inside Mechanical You can only imbed APDL code in batch solves, even when working interactively Plotting and listing is to files only
DX R13: 02/17/2011 14
You Need to Know Some MAPDL
Biggest issue we see with Command Objects in Tech support:
User typed in their script and then ran their model didnt work
You need to be able to fire up MAPDL interactive
Read in ds.dat file or save *.db and *.rst and resume/set Then try out your scripts and check that they work
You are using the extensive features available in MAPDL
You cant treat it as a black box.
If you are not familiar with MAPDL
The documentation is very good Work interactive, commands go in log file
DX R13: 02/17/2011 15
The MAPDL Input File
When you click Solve Mechanical makes a ds.dat file
Use the Files tool in Project to find the file
Or you can save one anywhere you want
Or click anywhere on your solution branch and then use Tools->Write Input file
DX R13: 02/17/2011 16
Example No Snippets
DX R13: 02/17/2011 17
Adding Snippets
Click on Valid Object in Tree then
Click on Commands Icon RMB->Insert->Commands
Insert as many as you want
Executed in order
DX R13: 02/17/2011 18
Command Text Window
When you click on a Command Object you get a text window tab called Commands Enter and view your APDL code in here
DX R13: 02/17/2011 19
Linking to a Macro file
You can associate a Command Object with a text file
Usually *.mac, but also *.txt
Export creates a file from your text Import links to an existing file Refresh replaces the text window with what is in the file File name and status are shown in Details view
DX R13: 02/17/2011 20
Three Types of Snippets
Item Snippets
Are attached to an item in the tree Contains APDL that modifies only that item Some ID is set for the item number
Prep
General commands that get executed right before the solve command
Post
Post processing commands that get executed right after the solve
DX R13: 02/17/2011 21
Be in the Right Module
ANSYS runs usually go through three modules:
/PREP7, /SOLU, /POST1
APDL commands for a given module only work in that module Items: /PREP7 PREP: /SOLU POST: /POST You can move in and out of modules, but make sure you go back to where you started
Very important for PREP snippets!
DX R13: 02/17/2011 22
Objects you can Add Command Objects To
Type Tree Object Body Contact Pair ITEM Joint Spring PREP Environment Solution POST Pre-Stress After the joint definition After spring definition Right Before the Solve Command Right after the /POST1 command Before first solve in Pre-stress modal Inserted in APDL File After material for that body is defined After contact is defined MATID TID, CID for Type, Real and Mat _JID _SID. ID
DX R13: 02/17/2011 23
Command Object RMB
File Operations Standard object tools
Suppress Dup, Copy, Cut Delete, rename Rename Based on Definition
Shows File name if you are linked to a file.
DX R13: 02/17/2011 24
Command Object Details View
The same for Item and PREP Command Objects File name and status if you are linked to a file Suppression flag Target
This is where you can point to other solvers besides MAPDL
Input arguments for your script
They can be parameters managed by Workbench!
DX R13: 02/17/2011 25
Command Object Details View: POST
POST Adds ability to bring back parameters User defines prefix for it to use
my_ is default
Result can be a parameter More on this in Post section
DX R13: 02/17/2011 26
Other and General Things to Remember
Anything valid in APDL is valid in a snippet
Except geometry and interactive graphics stuff
Command snippets do get copied to Reports Use Duplicate and drag and drop If no changes to script on Item snippets, link to the same file!
Example: 32 contact pairs that all have the same advanced options
Remember that Mechanical generates APDL code Be aware of location that Mechanical inserts snippets Try and use Item Snippets when possible
ID makes it easy
Use files for complex snippets Rename your snippets with useful names
DX R13: 02/17/2011 27
Item Snippets
DX R13: 02/17/2011 28
Adding Command Objects to Objects
An object in the tree gets convert to a block of APDL code The Command Object lets you append your own code Nice because number of the object is passed to you as a parameter Body
Really material. This is the most used
Contact Pair, Joint, Springs
Use this to get access to advanced features
Strongly recommend using files for these
Especially if the same scripts are applied to multiple objects Use Arg1-9 to specify anything unique for a given object
Dont change item numbers in APDL
DX R13: 02/17/2011 29
Example: APDL Material for a Body
Usually used for advanced materials not supported in Mechanical
! ! Commands inserted into this file will be executed just after material definitions in /PREP7. The material number for this body is equal to the parameter "matid". ! Active UNIT system in Workbench when this object was created: U.S. Customary (in, lbm, lbf, s, V, A) !============================================================ ERMSNIP mptemp,1,30,50,600,700 mpdata,dens,matid,1,.0007,.00069,.00066,.00065 mpdata,ex,matid,1,29e6 ,28.9e6,28.5e6,27e6 !============================================================ ERMSNIP MP,NUXY,1,0.3, MP,MURX,1,10000, /wb,mat,end ! done sending materials ! ****** Begin Command Snippet ****** *set,matid,1 ! Commands inserted into this file will be executed just after material definitions in /PREP7. ! The material number for this body is equal to the parameter "matid". ! Active UNIT system in Workbench when this object was created: U.S. Customary (in, lbm, lbf, s, V, A) !============================================================ ERMSNIP mptemp,1,30,50,600,700 mpdata,dens,matid,1,.0007,.00069,.00066,.00065 mpdata,ex,matid,1,29e6 ,28.9e6,28.5e6,27e6 !============================================================ ERMSNIP ! ****** End Command Snippet ****** !************************* Model Summary ********************
DX R13: 02/17/2011 30
Comments on Item Command Objects
You can also use the body object to change the element type, section, or real by body
MATID also refers to TYPE and REAL Great place to change away from default 185 for solid elements
Before you go down the road of a fancy Item snippet, make sure that a new feature in Workbench cant do it
Lots of things we used to write snippets for are available now
DX R13: 02/17/2011 31
General Preprocessing Snippets
DX R13: 02/17/2011 32
General Modifications of Your Model
Executed right before the SOLVE command So you are in the /SOLU module
Ok for Loads, constraints, and solution options Not OK for materials, moving/creating mesh, etc
You can go back to /PREP7 if you need to
Just remember to return to /SOLU
The sky is the limit on what you can do here
But remember, if you create items (nodes, elements, numbering, etc..) you cant post process in Workbench
DX R13: 02/17/2011 33
Selecting Items to Work On
Everything in MAPDL has a number associated with it Item Snippets group by some ID
Material ID, Contact Pair, Joint ID, etc
But for general stuff you have three choices:
APDL selection logic Named Selections -> Nodal Components Combine named selection and APDL selection logic
Named Selections
For Every geometry object you name with Named Selection And, every geometry object you assign a nodal load or constraint A nodal component gets created in MAPDL
Note that load names may be tricky to figure out Recommend using named components
DX R13: 02/17/2011 34
Named Selection
Remember that it makes a nodal component for the nodes that sit on the geometry your select
Body named selections dont get turned into APDL
They show up in your DS.DAT file as shown Use descriptive names Some users actually encode stuff they want to pass in the Names Selection
F_Hydro_34 Write a macro that loops through components
Looks for ones starting with F_Hydro Applies a hydrostatic load assuming the highest node is at 34 feet
Can get very fancy
/com,*********** Send Named CMBLOCK,ERMF1 ,NODE, (8i10) 13 14 21 22 /golist Selection as Node Component *********** 12 15 23 16 24 17 18 19 20
DX R13: 02/17/2011 35
Parameters
User ARG1-ARG9 in Details to pass in Parameters
If you need more, use multiple Command Objects
You can also define parameters that you want passed back to Mechanical
A trick required Only user parameters with prefix in a Post Command Object are brought back So, add a my_param = my_param to a post object as a work around
PREP Command Object ! Commands inserted into this file will be executed just prior to the Ansys SOLVE command. ! These commands may supersede command settings set by Workbench.
! Active UNIT system in Workbench when this object was created: nsel,all nlist,all *get,my_nmx,node,,num,max U.S. Customary (in, lbm, lbf, s, V, A)
POST Command Object
! Commands inserted into this file will be executed immediately after the Ansys /POST1 command. U.S. Customary (in, lbm, lbf, s, V, A)
! Active UNIT system in Workbench when this object was created: nsel,all set,last *get,my_stmx,active,,set,sbst my_nmx = my_nmx
DX R13: 02/17/2011 36
General Postprocessing Snippets
DX R13: 02/17/2011 37
Getting Access to Full MAPDL POST
Puts you in /POST1
Make plots not supported in Mechanical Queries and calculations Return scalar values as parameters Graphs Make output files that you need for other programs
Also gives you access to POST26
Do time dependent post and then bring back graphs or scalar value
DX R13: 02/17/2011 38
Post Parameters
Do any calculations you want that produce a scalar result and bring back the results The way it works:
Mechanical scans the Command Object looking for parameter definitions
*get,par, *set,par, par=
It puts code in to just return those parameters
No arrays, no string You cant create parameters on the fly
*get,my_pf%i%, does not work
DX R13: 02/17/2011 39
Parameter Example
Get number of modes and participation factors Need to know ahead of time how many modes
Remember, no do-loops
*set,last *get,my_nmd,active,,set,sbst *get,my_pf01,mode, 1,pfact *get,my_pf02,mode, 2,pfact *get,my_pf03,mode, 3,pfact *get,my_pf04,mode, 4,pfact *get,my_pf05,mode, 5,pfact *get,my_pf06,mode, 6,pfact *get,my_pf07,mode, 7,pfact *get,my_pf08,mode, 8,pfact *get,my_pf09,mode, 9,pfact *get,my_pf10,mode,10,pfact *get,my_pf11,mode,11,pfact *get,my_pf12,mode,12,pfact
DX R13: 02/17/2011 40
Plots
If you create a PNG file in your Command Object, Mechanical appends it to the Tree Standard MAPDL plotting to png files applies
Only requirement is to use /show,PNG
Note: Files get appended to first post command object
Not the object that the plots were created in
Files show up in MECH directory as PostImageNNN.png
Mechanical increments the NNN Use Files viewer on project page to see
DX R13: 02/17/2011 41
Example: Mode Shape Plots
DX R13: 02/17/2011 42
Example: Mode Shape Plots
set,last /gfile,600 /show,png *get,nmd,active,,set,sbst icc = 1 irr = 1 np = 3 aa = 2.8/np bb = 1.9/np xx = -1 yy = 1-bb /plopts,info,0 /plopts,minm,0 /psymb,cs,off /triad,off /view,1,.9875,.125,-.09 /angle,1,-50.41 /dist,1,11 /focus,1,.386,1.192,10 /RGB,INDEX,100,100,100, 0 /RGB,INDEX, 80, 80, 80,13 /RGB,INDEX, 60, 60, 60,14 /RGB,INDEX, 0, 0, 0,15 *do,i,1,nmd set,1,i *get,frq,mode,i,freq /window,1,xx,xx+aa,yy,yy+bb /ANUM ,0, 1,-0.85480 , 0.37396 /TSPEC, 15, 0.75, 1, 359, 0 /TLAB,xx+.05,yy+.05,'%i%: %frq%
plnsol,u,sum /annot,delete /noerase xx = xx + aa icc = icc + 1 *if,icc,gt,np,then xx = -1 yy = yy - bb icc = 1 irr = irr + 1 *endif *if,irr,gt,np,then /erase /annot,delete icc = 1 irr = 1 xx = -1 yy = 1 - bb *endif *enddo /erase /annot,delete /win,1,full /show,close
DX R13: 02/17/2011 43
Example: Mode Shape Plots
Things to note
Users /erase and annotation without any problems Change background to white or go for blue-blue background to look more like workbench Not a MAPDL plot guru, see The Focus for a quick review of important comands:
Making Pretty Plots in ANSYS Mechanical and Mechanical APDL Got to www.PADTINC.com/blog and search for /gfile
DX R13: 02/17/2011 44
Example: A Graph
Created a macro to make a bar graph of Participation Factors on a modal analysis Use this to plot arrays (bar) and table (line)
*set,last *get,nmd,active,,set,sbst *dim,pfs,,nmd *do,ii,1,nmd *get,pfs(ii),mode,ii,pfact *enddo /show,png /gropt,fill,1 /xrange,0,nmd+1 /gropt,divx,nmd+1 /axlab,x,'Mode' /axlab,y,'PFact' *vplot,,pfs(1) /show,close
DX R13: 02/17/2011 45
Other Stuff to Know
DX R13: 02/17/2011 46
Not Just for MAPDL
Works for other solvers that work with ANSYS Mechanical:
ANSYS Rigid Dynamics LS-DYNA SAMCEF ABAQUS
Put in appropriate keywords or commands and they will be inserted as needed
DX R13: 02/17/2011 47
Debugging
Biggest issue is that creating snippets is not interactive
Testing requires a re-run of your model
Suggested solution
Get your model ready without snippets Write Input File Bring up in an interactive MAPDL session Write and debug a macro Attach to your ANSYS Mechanical model as a file
Or cut and paste it into your Command Object
Much better way to debug Also, dont forget to check the output file under solution Information
DX R13: 02/17/2011 48
Dealing with Tabular Information
No way right now to get tabular information from MAPDL back into ANSYS Mechanical Use /out or *vwrite to create text files View manually If you want to see them during/after the run:
Use /sys,notepad filename to bring it up
/out,foo,txt nlist,all /out /sys,notepad foo.txt
DX R13: 02/17/2011 49
Conclusions
DX R13: 02/17/2011 50
Suggestions
Run MAPDL interactively and use log file!!!!!!!!! Dont forget: No Geometry Put good comments in your snippets
Put in a search string like ermsnip so you can find them in your ds.dat easily
If a restart is possible, when you Write Input File you wont get your snippets
Clear restarts to get full file.
Tell program to save DB
Go to directory and double-click on DB Work on your macros interactively
Get a very simple/quick model to write/debug with As always: Crawl, Walk, Run
DX R13: 02/17/2011 51
Resources
Help System ANSYS.net XANSYS.org Weathered users ANSYS Customization with ANSYS Parametric Design Language
$75/copy www.PADTINC.com/support/techguides
DX R13: 02/17/2011 52
PeDAL The APDL Editor
Side-by-side editor and help viewer layout. Instant help on any documented APDL command by pressing F1. Full syntax highlighting for ANSYS v12 Mechanical APDL. Auto-complete drop downs for APDL Commands. APDL Command argument hints while typing commands. Search ANSYS help phrases and keywords. Multiple tabs for the editor and html viewer. Full capability web browser built in allows for rich web experience and web searches.
DX R13: 02/17/2011 53
Thoughts
Dont just dive into APDL because that is what you know
Every release, we need less and less snippets
The incredible power of APDL is still there and available
But you get the incredible power of ANSYS Mechanical at the same time
DX R13: 02/17/2011 54
Thank You
PADT Enjoys doing these webinars Please consider us as your partner ANSYS Related
Training, Mentoring Consulting Services Customization Sales (if in AZ, NM, CO, UT, NV)
Stratasys 3D Printers and Systems CUBE HVPC Systems Product Development
High-end engineering with practical, real world application
Rapid Prototyping
SLA, SLS, FDM, PolyJet, CNC, Soft Tooling, Injection Molding
Help us by letting us Help you
DX R13: 02/17/2011 55