Posts

Defining Ansys Superelement SUB File Manually

Image
Photo by  James Owen  on  Unsplash A surprisingly popular blog-post written here is Exporting Stiffness Matrix from Ansys . A sensible follow up question is what can one do with the exported stiffness matrix? In a recent Xansys Forum post, a question was raised on how we can edit the stiffness matrix of a superelement and use it for our model.  An approach presented below is to first create a superelement that has the same number of DOF and nodal location that will serve as a template. An APDL script can then be written to edit the stiffness matrix entries as desired before exporting to a new superelement *.SUB file for use in future models. The self-contained script below demonstrates this.  /prep7 et ,1, 185 mp , ex, 1, 200e3 mp , prxy, 1, 0.33 w = 0.1 ! single element (note nodal locations) n , 1, w, -w, -w n , 2, w, w, -w n , 3, -w, w, -w n , 4, -w, -w, -w n , 5, w, -w, w n , 6, w, w, w n , 7, -w, w, w n , 8, -w, -w, w e , 1, 2, 3, 4, 5, 6, 7, 8 /solu anty...

CMS circa Ansys 2019 R3

Image
CMS circa 2019R3 Roughly a year ago, I wrote about how you could reuse CMS elements using APDL snippets within Ansys Mechanical. The new feature of Condensed Geometry in recent releases unfortunately does not completely solve the problem; but does get you half way there. To recap, the goal here is to have a part (A) that is complicated/ huge  but now condensed into a teeny-tiny Super-Element. Changes can be quickly made to other parts (B). When combined together (C/D), the model as a whole is smaller and faster to solve since A is reused. This blog post is an update to the earlier post that uses the same technique but takes advantage of two new tools:  Condensed Geometry & Mesh Numbering . To get started, download the Ansys 2019R3 archived file to follow along. Archived File with RST ( 177.0MB )    Link  or Archived File without RST ( 1.5MB )   Link The rough procedure: Create and mesh both Analysis A for CMS part and Analysis B fo...

Matrix Transfer between MATLAB and Ansys

Image
Matrix Transfer * Reading and writing matrix or arrays to MATLAB and back can be painstaking as described by SimuTech in a well written article  using *TREAD  or *VREAD . Wouldn't it be great to have someone else do the heavy lifting for you on formatting etc? Fortunately there is a Matrix Market format sponsored by NIST that is also supported by Ansys and Matlab. There are two very useful MATLAB functions created just for this purpose: mmread.m   for reading in the Market Matrix file into MATLAB mmwrite.m for writing the matrix into a Matrix Market file Writing Matrix or Arrays from Ansys to be Read by MATLAB In Ansys... /prep7 *dim , c,, 10,10, 1 ! Example Matrix enow = 0 *do , ct, 1, 10              *do , ct2, 1, 10         c(ct,ct2) = ct*ct2     *enddo     *enddo     !!! Writes out Matrix to matlab *dmat , exportmatrix, D, import, APDL, c ! e...

CMS Superelement Harmonic Analysis

Image
Fig 1: Project Schematic With the release of Mechanical 19.2, substructuring is now available for Modal & Rigid Dynamics without scripting. That just made my  earlier post on CMS outdated! Note that there is still a key limitation where Generation and Expansion Pass must be performed on your local machine. To get ahead of the game a bit, here is a way to do Harmonic Analysis extending on previous work . (Please go through that before this post). Some points of note: The method of merging the CMS and non-CMS models together into System C is the same. All files related to the superelement has to be copied over to the solver file directory as before. Modal analysis need not be performed first as the example here uses Full Method instead of Modal Superposition for simplicity.  The script expands the responses the same way as Modal Analysis does so the script will look familiar. Command Snippet for Combined Analysis D !!!!! Save full model fini /filnam...

Learning Python for Ansys and Beyond

Image
Figure 1: Colab by Google Ansys has  ACT extension where users can do some customization using a popular programming language called Python. The barriers to learning Python is now much lower but I'm still stumped by Object Oriented Programming. Hopefully this post would be useful to those who fit the following demographics: Knows simple programming concepts like loops and functions Understand some Calculus Side Notes on Ansys ACT Before You Begin Ansys uses  IronPython 2.7  which is an implementation in the .NET framework. Unfortunately, as I understand it, some libraries such as NumPy are difficult to install . Colabs Colaboratory Research by Google (Fig 1) is a neat tool. All you need is a free Google account and you can execute Python scripts in the browser. No installation required! It has Jupyter notebook running in the background and allows both Python 2 or Python 3. While NumPy and Matplotlib is already installed by default, you could install othe...

Modal Submodeling

Image
This post was inspired by CAEAI's blog post on modal analysis sub-modeling and an XANSYS question. Their instructions were not explicit and everything was done in Ansys Classic. The goal here is to show modal submodeling in Ansys Workbench. Here's a walk through of an example: Step 1 Solve the coarse model Modal Analysis (System A). Fig 1: Coarse Model Modal Analysis (System A) Step 2 Create a finely meshed submodel Harmonic Response Model (System B). This will be the submodel. Fig 2: Project Schematic After creating the desired mesh, add a named selection at the cut boundaries called  cut_face . Add the following command snippet in the Setup branch. !! Creates cut boundary NODE file ! WB will complain but boundarynodes.node file should be created /prep7 cmsel , s, cut_face nwrite , boundarynodes, node finish /exit The above step writes out a file listing the nodes and their coordinates which will be used for interpolation. After solving for the mode...

Ansys Student in the Cloud

Image
Cloud Computing * ? Cloud computing is all the rage now for good reason. It is tempting to own a low cost computer and remote-desktop to a supercomputer. One could, in theory, run Ansys on Chromebook with internet connection by connecting to a Cloud Computing Providers  Virtual Machine. I took a quick look and have the following to report. Setting Up Windows Virtual Machine (VM) : Quick Start Google Compute: YouTube  Micosoft Azure: YouTube1 & YouTube2 Patience is key. After starting up the Virtual Machine for the first time, one has to wait a bit (15 minutes?) before the virtual machine really starts for one to remote login. I fiddled around with the "source IP ranges", setting it to 0.0.0.0 and even my own IP address. It was unclear if that was useful or waiting alone did the trick. Once logged in, one has to override the strict security set by the Internet Explorer to allow download of the free  Ansys Student . Finally, remember to Shut Down from...

Non-linear Convergence

Image
Livin' ON a Prayer * In the few tingling seconds between saving the project and hitting Solve on Ansys, I would mutter a prayer under my breath. There is always an indescribable brief sense of helplessness and hope. Non-linear problems are tough because... they are nonlinear! A small nudge can have disproportional effects.  Learning how to solve non-linear problems takes patience and luck. Here are some resources which I found useful in my journey in learning the secret arts (in no particular order): 1. CAEAI: Best Practices ( link ) ( backup_link ) 2. Joseph Metrisin 1 : contact convergence debugging guidelines ( link ) ( backup_link ) 3. Rod Scholl: contact analysis guidelines ( link ) ( backup_link ) 4. Ansys: Could you give me tips and tricks for Non-linear simulations? ( link ) 5. John Higgins: Obtaining and Optimizing Structural Analysis Convergence ( link ) 6. PADT: Overcoming Convergence Difficulties (Part I & II ) 7. Ansys: Snap Fit Analysis - Be...

ACT to Automate Post-Processing

Image
I gushed about the ACT console in a previous post . Here's another example of automatically populating some post processing objects for all time steps inside Mechanical after a solve.  Copy-and-paste it in Mechanical ACT Console Command Line, then hit the Enter key. Text file of script: Link . # Extracts at each time step... # x, y, z stress components, von Mises stress, max principal stress, total deformation, and x, y, z normal deformation components numsteps = ExtAPI.DataModel.Project.Model.Analyses[0].AnalysisSettings.NumberOfSteps for ct in range(numsteps): setTime = str(ct+1) + " [s]" nowTime = str(ct+1) + "s" # Normal Stresses sx=ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddNormalStress() sx.NormalOrientation =NormalOrientationType.XAxis sx.DisplayTime=Quantity(setTime) sx.Name = "Normal Stress X at "+nowTime sy=ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddNormalStress() sy.NormalOrientat...

Cleaning Up Geometry with SpaceClaim

Image
I sometimes come across a very ugly UGLY message when I try to mesh. The description is especially misleading. Figure 1: Error!  The problem is often fixable in SpaceClaim. Here's something to try: 1. Select everything (Ctrl-A), Right-Mouse-Button then Detach All . 2. Under the Repair tab, click on Stitch and click the green check mark to complete all. Hopefully the first step would solve all problems. You could verify this using the Check Geometry feature. It's not full proof but worth a shot. Figure 2: Check Geometry This would highlight any outstanding problem areas. Other repair tools such as repairing  gaps and missing faces usually does the job. Otherwise, it may be necessary to get more fancy by removing the difficult surface by cutting it (Ctrl-X), then replacing it with blending or  fill .  A really neat trick with fill is Patch Fill. First click on Fill without selecting any geometry. Under the options, the default is Extend Fill ....

Tension Only LINK180

Image
Figure 1: Von Mises Stress Animation LINK180 is a very interesting element which allows tension but not compression. A snippet in a Beam element does the trick of configuring beams in Workbench into tension only beams. et, matid, 180 *get, area, secp, matid, prop, area sectype, matid, link secdata,  area seccontrol,, 1 ! Tension only The example problem has a thin plate that has a Revolute joint in the middle that rotates \(\pm3^o\). The two chain LINK180 on each sides of the plate will thus take turns being in tension and be relaxed. Figure 2: Displacement Animation The forces plotted using SMISC1 shows forces in tension. Figure 3: Force Animation V18.2 Archived Workbench File: Link

APDL Pseudoinverse Least Square Fit

Curve fitting is a frequently used tool in engineering. I wished my linear algebra teacher taught me pseudoinverse. As used in the previous blog post  script, it computes the least-square curve fit for linear equations. This can come in handy for fitting 2D or even 9D variables. For a simple 2D straight line, the equation is \( y = m \cdot x + c\). Writing it matrix form, we have: \(y = \begin{bmatrix} x & 1 \end{bmatrix} \cdot \begin{bmatrix} m\\c \end{bmatrix}\) With multiple data points in space (e.g. \((x_1,y_1), (x_2,y_2),\dots\) ) the equation looks like this... \( \begin{bmatrix}y_1\\y_2 \\y_3\\ \vdots \end{bmatrix} = \begin{bmatrix} x_1 & 1\\ x_2 & 1 \\ x_3 & 1 \\ \vdots & \vdots \end{bmatrix} \cdot \begin{bmatrix} m\\c \end{bmatrix} \) This matrix looks similar to \(y = A \cdot b\) where our \(A = \begin{bmatrix} x_1 & 1 \\ x_2 & 1 \\ x_3 & 1 \\ \vdots & \vdots \end{bmatrix} \) and \(b = \begin{bmatrix} m\\c \end{bmatrix} ...

Extract Translation & Euler Angle Rotation

Image
Figure 1:  Z-X'-Y '' Rotation of the 'Grip' PADT has a recent post on Extracting Relative Displacements in ANSYS Mechanical. The macro only works for small angles (in the order of 5 degrees). The accompanied PDF file shows: \(u = dR \cdot (x-\overline{x}) + \overline{u}\) Their nomenclature:    \(dR\) : Small rotation matrix    \(x\) : Nodal position vector    \(\overline{x}\) : Center of Gravity (CG) position vector    \(u\) : Nodal displacement vector    \(\overline{u}\) : CG displacement vector To extend their work to account for large deflection, I've added some terms: \(x + u - \overline{x} \approx R \cdot (x - \overline{x}) + \overline{u} \)    \(R\) : Rotation Matrix The left side of the equation is the final deformed body. The right side of the equation is the rigid body rotation and translation. As the rotation is applied at the center of the body, \(\overline{x}\) is accounted for on both...

Reuse CMS Superelement in Ansys Workbench with Expansion

Image
Figure 1: CMS Reuse Project Schematic In the previous two posts ( here and here ), the workflow requires another generation pass when reusing the model. This diminishes the advantage of using a component mode synthesis (CMS) superelement model. The difficulty is that when the model changes, the superelement node numbering no longer matches the new workbench (WB) model. Everything gets shuffled around. To reuse a superelement body, we need the  nodes to persist in the final Analysis for expansion. Strategy We start out with an original modal analysis ( Analysis A ) that would have worked on it's own. Next, the original modal analysis is duplicated (becoming Analysis B ). Analysis A will be modified to only have the superelement body while  Analysis B will be modified to have the geometry and mesh of non-superelement body. When both analysis are assembled into a new modal Analysis C , Analysis B 's element and nodes are automatically offset so that ...