Mechanical Updates in ANSYS 2020 R1 – Webinar

With ANSYS structural analysis software, users are able to solve more complex engineering problems, faster and more efficiently than ever before. Customization and automation of structural solutions is much easier to optimize thanks to new and innovative finite element analysis (FEA) tools available in this product suite.

Once again, ANSYS is able to cement their role as industry leaders when it comes to usability, productivity, and reliability; adding innovative functionality to an already groundbreaking product offering. ANSYS Mechanical continues to be used throughout the industry, and for good reason as it enables engineers to optimize their product design and reduce the costs of physical testing.

Join PADT’s Senior Mechanical Engineer & Lead Trainer Joe Woodward, for an in-depth look at what’s new in the latest version of ANSYS Mechanical, including updates regarding:

  • External Modeling
  • Graphics
  • Composites
  • Linear Dynamics
  • And much more

Register Here

If this is your first time registering for one of our Bright Talk webinars, simply click the link and fill out the attached form. We promise that the information you provide will only be shared with those promoting the event (PADT).

You will only have to do this once! For all future webinars, you can simply click the link, add the reminder to your calendar and you’re good to go!

Reduce EMI with Good Signal Integrity Habits

Recently the ‘Signal Integrity Journal’ posted their ‘Top 10 Articles’ of 2019. All of the articles included were incredible, however, one stood out to me from the rest – ‘Seven Habits of Successful 2-Layer Board Designers’ by Dr. Eric Bogatin (https://www.signalintegrityjournal.com/blogs/12-fundamentals/post/1207-seven-habits-of-successful-2-layer-board-designers). In this work, Dr. Bogatin and his students were developing a 2-Layer printed circuit board (PCB), while trying to minimize signal and power Integrity issues as much as possible. As a result, they developed a board and described seven ‘golden habits’ for this board development. These are fantastic habits that I’m confident we can all agree with. In particular, there was one habit at which I wanted to take a deeper look:

“…Habit 4: When you need to route a cross-under on the bottom layer, make it short. When you can’t make it short, add a return strap over it..”

Generally speaking, this habit suggests to be very careful with the routing of signal traces over the gap on the ground plane. From the signal integrity point of view, Dr. Bogatin explained it perfectly – “..The signal traces routed above this gap will see a gap in the return path and generate cross talk to other signals also crossing the gap..”. On one hand, crosstalk won’t be a problem if there are no other nets around, so the layout might work just fine in that case. However, crosstalk is not the only risk. Fundamentally, crosstalk is an EMI problem. So, I wanted to explore what happens when this habit is ignored and there are no nearby nets to worry about.

To investigate, I created a simple 2-Layer board with the signal trace, connected to 5V voltage source, going over an air gap. Then I observed the near field and far field results using ANSYS SIwave solution. Here is what I found.

Near and Far Field Analysis

Typically, near and far fields are characterized by solved E and H fields around the model. This feature in ANSYS SIwave gives the engineer the ability to simulate both E and H fields for near field analysis, and E field for Far Field analysis.

First and foremost, we can see, as expected, that both near and far Field have resonances at the same frequencies. Additionally, we can observe from Figure 1 that both E and H fields for near field have the largest radiation spikes at 786.3 MHz and 2.349GHz resonant frequencies.

Figure 1. Plotted E and H fields for both Near and Far Field solutions

If we plot E and H fields for Near Field, we can see at which physical locations we have the maximum radiation.

Figure 2. Plotted E and H fields for Near field simulations

As expected, we see the maximum radiation occurring over the air gap, where there is no return path for the current. Since we know that current is directly related to electromagnetic fields, we can also compute AC current to better understand the flow of the current over the air gap.

Compute AC Currents (PSI)

This feature has a very simple setup interface. The user only needs to make sure that the excitation sources are read correctly and that the frequency range is properly indicated. A few minutes after setting up the simulation, we get frequency dependent results for current. We can review the current flow at any simulated frequency point or view the current flow dynamically by animating the plot.

Figure 3. Computed AC currents

As seen in Figure 3, we observe the current being transferred from the energy source, along the transmission line to the open end of the trace. On the ground layer, we see the return current directed back to the source. However at the location of the air gap there is no metal for the return current to flow, therefore, we can see the unwanted concentration of energy along the plane edges. This energy may cause electromagnetic radiation and potential problems with emission.

If we have a very complicated multi-layer board design, it won’t be easy to simulate current flow on near and far fields for the whole board. It is possible, but the engineer will have to have either extra computing time or extra computing power. To address this issue, SIwave has a feature called EMI Scanner, which helps identify problematic areas on the board without running full simulations.

EMI Scanner

ANSYS EMI Scanner, which is based on geometric rule checks, identifies design issues that might result in electromagnetic interference problems during operation. So, I ran the EMI Scanner to quickly identify areas on the board which may create unwanted EMI effects. It is recommended for engineers, after finding all potentially problematic areas on the board using EMI Scanner, to run more detailed analyses on those areas using other SIwave features or HFSS.

Currently the EMI Scanner contains 17 rules, which are categorized as ‘Signal Reference’, ‘Wiring/Crosstalk’, ‘Decoupling’ and ‘Placement’. For this project, I focused on the ‘Signal Reference’ rules group, to find violations for ‘Net Crossing Split’ and ‘Net Near Edge of Reference’. I will discuss other EMI Scanner rules in more detail in a future blog (so be sure to check back for updates).

Figure 4. Selected rules in EMI Scanner (left) and predicted violations in the project (right)

As expected, the EMI Scanner properly identified 3 violations as highlighted in Figure 4. You can either review or export the report, or we can analyze violations with iQ-Harmony. With this feature, besides generating a user-friendly report with graphical explanations, we are also able to run ‘What-if’ scenarios to see possible results of the geometrical optimization.

Figure 5. Generated report in iQ-Harmony with ‘What-If’ scenario

Based on these results of quick EMI Scanner, the engineer would need to either redesign the board right away or to run more analysis using a more accurate approach.

Conclusion

In this blog, we were able to successfully run simulations using ANSYS SIwave solution to understand the effect of not following Dr.Bogatin’s advice on routing the signal trace over the gap on a 2-Layer board. We also were able to use 4 different features in SIwave, each of which delivered the correct, expected results.

Overall, it is not easy to think about all possible SI/PI/EMI issues while developing a complex board. In these modern times, engineers don’t need to manufacture a physical board to evaluate EMI problems. A lot of developmental steps can now be performed during simulations, and ANSYS SIwave tool in conjunction with HFSS Solver can help to deliver the right design on the first try.

If you would like more information or have any questions please reach out to us at info@padtinc.com.

All Thing ANSYS 054: Talking CFD – Discussion on the Current State of Computational Fluid Dynamics with Robin Knowles

 

Published on: January 13th, 2020
With: Eric Miller & Robin Knowles
Description:  

In this episode we are excited to share an interview done with host and Co-Founder of PADT, Eric Miller and host of the Talking CFD podcast Robin Knowles, regarding the history of PADT’s use of simulation technology as a whole, and the current state of all things CFD.

If you would like to hear more of Robin’s interviews with various other CFD based companies both small and large, you can listen at https://www.cfdengine.com/podcast/.

If you have any questions, comments, or would like to suggest a topic for the next episode, shoot us an email at podcast@padtinc.com we would love to hear from you!

Listen:
Subscribe:

@ANSYS #ANSYS

Defining Antenna Array Excitations with Nested-If Statements in HFSS

HFSS offers various methods to define array excitations. For a large array, you may take advantage of an option “Load from File” to load the magnitude and phase of each port. However, in many situations you may have specific cases of array excitation. For example, changing amplitude tapering or the phase variations that happens due to frequency change. In this blog we will look at using the “Edit Sources” method to change the magnitude and phase of each excitation. There are cases that might not be easily automated using a parametric sweep. If the array is relatively small and there are not many individual cases to examine you may set up the cases using “array parameters” and “nested-if”.

In the following example, I used nested-if statements to parameterize the excitations of the pre-built example “planar_flare_dipole_array”, which can be found by choosing File->Open Examples->HFSS->Antennas (Fig. 1) so you can follow along. The file was then saved as “planar_flare_dipole_array_if”. Then one project was copied to create two examples (Phase Variations, Amplitude Variations).

Fig. 1. Planar_flare_dipole_array with 5 antenna elements (HFSS pre-built example).

Phase Variation for Selected Frequencies

In this example, I assumed there were three different frequencies that each had a set of coefficients for the phase shift. Therefore, three array parameters were created. Each array parameter has 5 elements, because the array has 5 excitations:

A1: [0, 0, 0, 0, 0]

A2: [0, 1, 2, 3, 4]

A3: [0, 2, 4, 6, 8]

Then 5 coefficients were created using a nested_if statement. “Freq” is one of built-in HFSS variables that refers to frequency. The simulation was setup for a discrete sweep of 3 frequencies (1.8, 1.9 and 2.0 GHz) (Fig. 2). The coefficients were defined as (Fig. 3):

E1: if(Freq==1.8GHz,A1[0],if(Freq==1.9GHz,A2[0],if(Freq==2.0GHz,A3[0],0)))

E2: if(Freq==1.8GHz,A1[1],if(Freq==1.9GHz,A2[1],if(Freq==2.0GHz,A3[1],0)))

E3: if(Freq==1.8GHz,A1[2],if(Freq==1.9GHz,A2[2],if(Freq==2.0GHz,A3[2],0)))

E4: if(Freq==1.8GHz,A1[3],if(Freq==1.9GHz,A2[3],if(Freq==2.0GHz,A3[3],0)))

E5: if(Freq==1.8GHz,A1[4],if(Freq==1.9GHz,A2[4],if(Freq==2.0GHz,A3[4],0)))

Please note that the last case is the default, so if frequency is none of the three frequencies that were given in the nested-if, the default phase coefficient is chosen (“0” in this case).

Fig. 2. Analysis Setup.

Fig. 3. Parameters definition for phase varaitioin case.

By selecting the menu item HFSS ->Fields->Edit Sources, I defined E1-E5 as coefficients for the phase shift. Note that phase_shift is a variable defined to control the phase, and E1-E5 are meant to be coefficients (Fig. 4):

Fig. 4. Edit sources using the defined variables.

The radiation pattern can now be plotted at each frequency for the phase shifts that were defined (A1 for 1.8 GHz, A2 for 1.9 GHz and A3 for 2.0 GHz) (Figs 5-6):

 Fig. 5. Settings for radiation pattern plots.

Fig. 6. Radiation patten for phi=90 degrees and different frequencies, the variation of phase shifts shows how the main beam has shifted for each frequency.

Amplitude Variation for Selected Cases

In the second example I created three cases that were controlled using the variable “CN”. CN is simply the case number with no units.

The variable definition was similar to the first case. I defined 3 array parameters and 5 coefficients. This time the coefficients were used for the Magnitude. The variable in the nested-if was CN. That means 3 cases and a default case were created. The default coefficient here was chosen as “1” (Figs. 7-8).

A1: [1, 1.5, 2, 1.5, 1]

A2: [1, 1, 1, 1, 1]

A3: [2, 1, 0, 1, 2]

E1: if(CN==1,A1[0],if(CN==2,A2[0],if(CN==3,A3[0],1)))*1W

E2: if(CN==1,A1[1],if(CN==2,A2[1],if(CN==3,A3[1],1)))*1W

E3: if(CN==1,A1[2],if(CN==2,A2[2],if(CN==3,A3[2],1)))*1W

E4: if(CN==1,A1[3],if(CN==2,A2[3],if(CN==3,A3[3],1)))*1W

E5: if(CN==1,A1[4],if(CN==2,A2[4],if(CN==3,A3[4],1)))*1W

Fig. 7. Parameters definition for amplitude varaitioin case.

Fig. 8. Exciation setting for amplitude variation case.

Notice that CN in the parametric definition has the value of “1”. To create the solution for all three cases I used a parametric sweep definition by selecting the menu item Optimetrics->Add->Parametric. In the Add/Edit Sweep I chose the variable “CN”, Start: 1, Stop:3, Step:1. Also, in the Options tab I chose to “Save Fields and Mesh” and “Copy geometrically equivalent meshes”, and “Solve with copied meshes only”. This selection helps not to redo the adaptive meshing as the geometry is not changed (Fig. 9). In plotting the patterns I could now choose the parameter CN and the results of plotting for CN=1, 2, and 3 is shown in Fig. 10. You can see how the tapering of amplitude has affected the side lobe level.

Fig. 9. Parameters definition for amplitude varaitioin case.

 Fig. 10. Radiation patten for phi=90 degrees and different cases of amplitude tapering, the variation of amplitude tapering has caused chagne in the beamwidth and side lobe levels.

Drawback

The drawback of this method is that array parameters are not post-processing variables. This means changing them will create the need to re-run the simulations. Therefore, it is needed that all the possible cases to be defined before running the simulation.

If you would like more information or have any questions please reach out to us at info@padtinc.com.

Getting Bulk Properties for Repeated Structures in ANSYS Mechanical with Material Designer

Using Material Designer To Perform Homogenization Studies

Editor’s Note:

3D Printing and other advanced manufacturing methods are driving the increased use of lattice-type structures in structural designs. This is great for reducing mass and increasing the stiffness of components but can be a real pain for those of us doing simulation. Modeling all of those tiny features across a part is difficult to mesh and takes forever to solve.

PADT has been doing a bit of R&D in this area recently, including a recent PHASE II NASA STTR with ASU and KSU. We see a lot of potential in combining generative design and 3D Printing to drive better structures. The key to this effort is efficient and accurate simulation.

The good news is that we do not have to model every unit cell. Instead, we can do some simulation on a single representative chunk and use the ANSYS Material Designer feature to create an approximate material property that we can use to represent the lattice volume as a homogeneous material.

In the post below, PADT’s Alex Grishin explains it all with theory, examples, and a clear step-by-step process that you can use for your lattice filled geometry.

PADT-ANSYS-Lattice-Material_Homogenization

All Things ANSYS 053: 2019 Wrap-up & Predictions for ANSYS in the New Year

 

Published on: December 20th, 2019
With: Eric Miller, Tom Chadwick, Ted Harris, Sina Ghods & Ahmed Fayad
Description:  

In this episode your host and Co-Founder of PADT, Eric Miller is joined by PADT’s Simulation Support Team, including Tom Chadwick, Ted Harris, Sina Ghods, and Ahmed Fayad for a round-table discussion of their favorite ANSYS features released in 2019, along with predictions on what has yet to come.

If you have any questions, comments, or would like to suggest a topic for the next episode, shoot us an email at podcast@padtinc.com we would love to hear from you!

Listen:
Subscribe:

@ANSYS #ANSYS

All Things ANSYS 052: A Deep Dive into Design & Technology in the ANSYS World

 

Published on: December 2nd, 2019
With: Eric Miller, Prith Banerjee, & Mark Hindsbo
Description:  

In this episode, your host and Co-Founder of PADT, Eric Miller is joined by ANSYS CTO Prith Banerjee and VP/General Manager of the Design Business Unit Mark Hindsbo, for a discussion of their roles at the company, what trends they see coming from various industries working with simulation, and how ANSYS continues to help their customers by providing valuable solutions in response to those trends.

If you have any questions, comments, or would like to suggest a topic for the next episode, shoot us an email at podcast@padtinc.com we would love to hear from you!

Listen:
Subscribe:

@ANSYS #ANSYS

All Things ANSYS 051: New 3D Design Capabilities in ANSYS 2019 R3 – Discovery Live, AIM, & SpaceClaim

 

Published on: November 18th, 2019
With: Eric Miller, Joe Woodward, Robert McCathren, Tom Chadwick, & Ted Harris
Description:  

In this episode, your host and Co-Founder of PADT, Eric Miller is joined by PADT’s Specialist Mechanical Engineer/Lead Trainer Joe Woodward, Senior CFD Engineer Tom Chadwick, Application Engineer Robert McCathren and Simulation Support Manager Ted Harris, for a discussion on what’s new regarding 3D design capabilities in ANSYS 2019 R3. This discussion covers updates and our teams favorite components in the latest versions of Discovery Live, AIM, & SpaceClaim.

If you would like to learn more about what this release is capable of, check out our webinar on the topic here:

https://www.brighttalk.com/webcast/15747/377929

If you have any questions, comments, or would like to suggest a topic for the next episode, shoot us an email at podcast@padtinc.com we would love to hear from you!

Listen:
Subscribe:

@ANSYS #ANSYS

New 3D Design Capabilities Available in ANSYS 2019 R3 – Webinar

The ANSYS 3D Design family of products enables CAD modeling and simulation for all design engineers. Since the demands on today’s design engineer to build optimized, lighter and smarter products are greater than ever, using the appropriate design tools is more important than ever.

Rapidly explore ideas, iterate and innovate with ANSYS Discovery 3D design software, evaluate more concepts and rapidly gauge design performance through virtual design testing as you delve deeper into your design’s details, with the same results accuracy as ANSYS flagship products – when and where you need it.

Join PADT’s Training & Support Application Engineer, Robert McCathren for a look at the new 3D design capabilities available in ANSYS 2019 R3 for ANSYS Discovery AIM, Live, and SpaceClaim. These new updates include:

Mass flow outlets

Transient studies with time varying inputs

Structural beam support

Linear buckling support

Physics-aware meshing improvements

Mesh failure localization and visualization improvements

And much more

Register Here

If this is your first time registering for one of our Bright Talk webinars, simply click the link and fill out the attached form. We promise that the information you provide will only be shared with those promoting the event (PADT).

You will only have to do this once! For all future webinars, you can simply click the link, add the reminder to your calendar and you’re good to go!

All Thing ANSYS 050: Updates and Enhancements in ANSYS Mechanical 2019 R3

 

Published on: November 4th, 2019
With: Eric Miller, Joe Woodward, & Ted Harris
Description:  

In this episode, your host and Co-Founder of PADT, Eric Miller is joined by PADT’s Specialist Mechanical Engineer/Lead Trainer Joe Woodward, and Simulation Support Manager Ted Harris, for a discussion on what’s new in the mechanical release for ANSYS 2019 R3, as well as a look at their favorite features. This includes a focus on updates and enhancements to improve ease of use, reduce set-up time, and provide more valuable solutions.

If you would like to learn more about what this release is capable of, check out our webinar on the topic here: https://www.brighttalk.com/webcast/15747/376304

If you have any questions, comments, or would like to suggest a topic for the next episode, shoot us an email at podcast@padtinc.com we would love to hear from you!

Listen:
Subscribe:

@ANSYS #ANSYS

Property Controllers in ANSYS ACT

Customizations developed using ANSYS ACT adhere closely to the user experience that is native to Mechanical and other Workbench apps.  Obviously, this is to be expected, but sometimes it can be a little challenging to fit a particular workflow into the “tree object” plus “object properties” model.   One way to broaden the available set of user experiences from which to construct a customized behavior is to use what are known as property controllers.

Property controllers are classes, which can be implemented either in C# or Python that are associated with a given property in the details pane of a given ACT object.  These classes allow the programmer to specialize the functionality and behavior of the particular property to which they are associated.  The association between a given property and its property controller is made in the ACT XML definition file.  For this article, like most of the ones I write on ACT, I will be using C# as the implementation language.

The degree to which any given property can be specialized by a property controller is quite vast.  Therefore, I won’t be able to touch on all of the possible combinations.  However, I will demonstrate two that I have found particularly useful in various ACT apps I’ve written.

The first is a custom “select” controller that allows the user to pick one of a set of given Mechanical objects.  For most customizations, perhaps the canonical example, is a select controller that allows a user to pick a particular coordinate system out of all of the defined coordinate systems in the model.  Yes, there is a template for this that ships with Mechanical, but I will show a given implementation.  Understanding how the controller works will enable you to apply the same technique to other object types, even other ACT objects within the same app.

The second is a way to “fly out” a dialog box that can contain additional custom controls, and that is “anchored” to the side of the given property box within the details pane.  This is useful for scenarios when we can’t easily fit a particular data entry within a given property field.  Tabular data is a prime example.  Again, there are some templates for this in Mechanical, but understanding how to build it up from scratch will allow you to apply the same principles to more complex dialogs.  This second example will be covered in a subsequent blog post.

Foundations

Before we dive into the individual examples above, let’s understand some of the basics of property controllers in general.  First, how do we associate a given property controller class with a particular property.  This is accomplished by using the “class” attribute in the property tag within the XML definition.  So, here is an example from an extension XML file:

<property name="EngineAxis" 
  caption="Coordinate System" 
  control="select"                         
  class="PADT.PropertyControllers.CoordinateSystemSelectController">
  <attributes type_filter="cylindrical"/>  
</property> 

You can see that we’ve added a “class” attribute inside the property tag and set it equal to a fully qualified class name.  All other property attributes are the same as with a typical property.  In order for this to work, however, we will need to implement a class called “CoordinateSystemSelectController” in the PADT.PropertyControllers namespace.

You will also notice that there is a nested <attributes> tag inside the <property> tag.  This can be used to pass additional configuration data to the controller as we will see.  Clearly, in this case, the additional data is designed to constrain the types of coordinate systems that will be populated within the control.

Example 1: Coordinate System Select Property Controller

The method by which behavior is customized for a given property is by implementing overrides for a series of virtual functions defined on the property itself.  These virtual functions allow us to hook into various points within the properties lifetime and operation.  The names for these virtual functions correspond to the callbacks listed in the ANSYS help for the <property> tag in the ACT XML reference manual.  The names are always lowercase.  Common ones that I use are functions such as “onactivate”, “onshow”, “isvalid”,”value2string” and “getvalue”.  Except for the “value2string” function, most of these are probably self-explanatory as to when they would fire.   For this controller, I’ll demonstrate a few of these functions including when and how to use the “value2string”.

Let’s begin with the “onactivate” function.  This function is called when the user “selects” or activates the property.  So, within this function is a good place to populate the list of currently available coordinate systems.  It is tempting to cache this list so that it doesn’t have to be recomputed.  However, if the user deletes, or adds a coordinate system after we have cached the list, we would not display it as an option the next time they activated this control.  Therefore, on each activation, we build up a list of available coordinate systems.  Here is the code:

You can see the parameters to this function are parameter representing the “tree object” to which this property is a member of that object’s details pane, and a parameter representing this “property”.  The second parameter might seem counterintuitive.  You might think that we are subclassing the property itself and thus this parameter would be redundant. (i.e, it would be equivalent to the “this” object).  However, we are not subclassing the property per say, but rather implementing a controller object that property itself makes calls against to modify its own behavior.  Sounds convoluted, I understand, but my guess is that this is what allows us to specify all of this within the extension XML file.  So, it’s a good thing.

Once we get into the function proper, on line 55 we clear out all of the items within this properties associated drop down control.  Then, in lines 56-58 we figure out what are the enum constants that represent the types of coordinate systems (cylindrical, Cartesian, etc…) that we would like to present to the user.  Note, our attribute “type_filter” could contain multiple types. Then, in lines 59-67, we iterate over all of the coordinate systems current defined in the Mechanical session and pick out the ones that are of the right type.  We then add them to the “options” property of this SimProperty object.  Note, however, that we don’t add the coordinate system objects themselves, but rather string representations of the object Ids.  This is important.  The reason we don’t add the name of the coordinate system is because names (or labels) in Mechanical are not required to be unique.  You can create five coordinate systems and name all of them “Bob”, Mechanical doesn’t care and will treat them as unique.  So, we need a unique attribute of the coordinate system to store in our list of options.  The object Id is guaranteed to be unique.  So, we store this instead.

The final bit of code in this function just makes sure to default select one coordinate system if the user hasn’t already selected one.  That functionality is on lines 69-83.  If the Value property is null, then the user (or this code) has not populated the select with a given coordinate system. So, if there are any coordinate systems that are appropriate we just find the first one and select it automatically.  Note, if the user later changes this to a different CSYS and this function fires a second time, it will not overwrite their choice because the null check will fail on line 69.  The reason for this behavior is because the extension for which this code was written made extensive use of a single cylindrical coordinate system in a number of different objects.  Typically the user would add just this one coordinate system in addition to the default global Cartesian system.  So, by adding this code, the user would not be required to select this coordinate system each time they added a new object, but rather, the tool would do it for them.

The next bit of code to examine is the “value2string” function, which is shown below:

You may recall from above that the data we store in the options property was a list of string representations of the various coordinate system Ids.  Now, if we didn’t implement this function, when the user interacted with the drop down control what they would see would be a list of numbers.  They might see a list like “42” “87” and “94”.  Clearly, it’s not very intuitive as to which coordinate system these numbers may refer. 

So, what the “value2string” function allows us to do is to transform the data that the property actually stores into a visual representation that is meaningful to the user.  However, this is purely a stateless transformation.  The actual data store in the property always remains the string representation of the object’s id.  So, you can think of this function as sitting between the internal code that pulls a value out of the property, and the internal code that renders that value to the screen.  In between these two calls, we have the opportunity to transform what gets rendered.

So, essentially what we do inside this function is parse the Id string back into an integer.  If that’s cool, we then lookup the particular mechanical tree object that has this given Id.  Finally, if everything is kosher with this object, we return the name of the object we looked up.  If at any point something goes wrong, we just return an empty string.

Now, when the user interacts with the property controller, the will see a list of names corresponding to the coordinate systems of the appropriate type.  If they sadistically named all of these coordinate systems the same name, then they will see a list with multiple entries of the same name.  However, each one in the list is a unique coordinate system.  How they figure out which one is the one they actually want is now their problem…

Finally, the last function we will look at is the “getvalue” function.  As the “value2string” function made the experience of the end user more palatable, so too the “getvalue” function makes the experience of the developer more palatable.  Essentially what it does is analogous to the “value2string” function, but rather than returning a string, it returns an actual coordinate system object that can be used in other places in the system.  It looks like the following:

As you can see, it is very similar to the “value2string” object, but instead of returning a string, it returns the actual tree object itself.  Note, you have to cast the return value at the caller site to the appropriate type, but meh… it’s still nice to have.

Finally, to see this property controller in action, I’ve taken a quick screen grab of the properties pane of an ACT object I’ve implemented.  This is a little symmetry object that implements a homebrewed CPCYC, but you can see the coordinate system object.

That’s all for this post.  Next time we’ll look at how to implement the flyout feature.  Good luck with your ACT programming needs.  Oh, and if you need some help, or ever want to have some ANSYS customization done for you, let us know.  We do all sorts of customization work from more run of the mill type

Updates & Additions in ANSYS Mechanical 2019 R3 – Webinar

With ANSYS structural analysis software, users are able to solve more complex engineering problems, faster and more efficiently than ever before. Customization and automation of structural solutions is much easier to optimize thanks to new and innovative finite element analysis (FEA) tools available in this product suite. 

From designers and occasional users looking for quick, easy and accurate results, to experts looking to model complex materials, large assemblies and nonlinear behavior, ANSYS has you covered. The intuitive interface of ANSYS Mechanical enables engineers of all levels to get answers fast and with confidence.

Join PADT’s Specialist Mechanical Engineer Joe Woodward, for an in-depth look at what’s new in the latest version of ANSYS Mechanical, including updates regarding:

  • Software User Interface
  • Design Elements
  • Composites
  • Acoustics
  • External Modeling
  • And much more

Register Here

If this is your first time registering for one of our Bright Talk webinars, simply click the link and fill out the attached form. We promise that the information you provide will only be shared with those promoting the event (PADT).

You will only have to do this once! For all future webinars, you can simply click the link, add the reminder to your calendar and you’re good to go!

All Things ANSYS 049: Predicting & Controlling Environmental Pollution with ANSYS Simulation

 

Published on: October 21st, 2019
With: Eric Miller & Clinton Smith
Description:  

In this episode, your host and Co-Founder of PADT, Eric Miller is joined by PADT’s CFD Team Lead Engineer Clinton Smith for a discussion on how ANSYS fluids tools are being used to help predict and control environmental pollution. This information is helping engineers in a variety of ways, such as understanding the formation and dispersion of pollutants such as NOx, SOx, CO and soot.

If you would like to learn more about what this application is capable of, check out our webinar on the topic here: https://www.brighttalk.com/webcast/15747/374571

If you have any questions, comments, or would like to suggest a topic for the next episode, shoot us an email at podcast@padtinc.com we would love to hear from you!

Listen:
Subscribe:

@ANSYS #ANSYS

Predicting & Controlling Environmental Pollution with ANSYS Simulation – Webinar

Environmental pollution has been a fact of life for many centuries, though it became a real issue after the start of the industrial revolution. An estimated 6.5 million premature deaths have been linked to air pollution every year.

In order to properly combat this growing issue, the world’s leading minds have turned to a more effective tool for environmental analysis; numerical simulation. Computational fluid dynamics has proven to be a powerful tool when it comes to predicting and controlling air, water, and noise pollution.

Join PADT’s CFD Team Lead Engineer Clinton Smith to learn how ANSYS fluid mechanics solutions provide insight and detailed understanding of the formation and dispersion of pollutants such as NOx, SOx, CO & Soot as well as effective ways for modelling pollution control equipment such as ESP’s, bag filters, and wastewater treatment plants.

Register Here

If this is your first time registering for one of our Bright Talk webinars, simply click the link and fill out the attached form. We promise that the information you provide will only be shared with those promoting the event (PADT).

You will only have to do this once! For all future webinars, you can simply click the link, add the reminder to your calendar and you’re good to go!

ANSYS Mechanical – Overcoming Convergence Difficulties with the Semi-Implicit Method

In our last blog, we discussed using Nonlinear Adaptive Region to overcome convergence difficulties by having the solver automatically trigger a remesh when elements have become excessively distorted.  You can read it here:  http://www.padtinc.com/blog/ansys-mechanical-overcoming-convergence-difficulties-with-automatic-remeshing-nonlinear-adaptive-region/

This time we look at another tool for overcoming convergence difficulties, the Semi-Implicit method.  ANSYS, Inc. describes the semi-implicit method as a hybrid, combining features of both implicit and explicit finite element methods.

In highly nonlinear problems involving significant deformations we may get a solver error like this one: 

*** ERROR ***                           CP =   18110.688   TIME= 11:58:42
Solution not converged at time 0.921 (load step 1 substep 185).           Run terminated. 

Like it does with other problems that lead to convergence failures, the Solution branch will have telltale red lightning bolts, indicating the solution was not able to complete due to nonconvergence.

In this case, it can be difficult to determine from the error message in the solution output exactly what the problem is.  Plotting the Newton-Raphson residuals can be a good starting point.  In order to plot the Newton-Raphson residuals, though, we need to turn them on prior to solving.  See this older Focus blog for instructions on how to do that:

http://www.padtinc.com/blog/overcoming-convergence-difficulties-in-ansys-workbench-mechanical-part-i-using-newton-raphson-residual-information/

A plot of the Newton-Raphson residuals shows us where the highest force imbalance is in the model:

That’s a nice looking plot, but doesn’t tell us much without knowing more about the simulation.  The model is of a plastic bottle, subject to a force load tending to ‘crush’ the bottle from top to bottom.  There is a slight off center load as well, so that the force is not purely in the downward direction. 

The bottle is constrained with a fixed support on the bottom flat surface, and contact elements between the outer surface of the bottle and a fixed surface representing a table or floor.  This is to prevent the bottle from deflecting below the plane of that surface.

The material used is a polyethylene plastic, from the ANSYS Granta Materials Data for Simulation add-on, which is a great tool to get access to hundreds of materials for ANSYS simulations.  The geometry of the bottle was created in SpaceClaim as a surface body and meshed with shell elements in ANSYS Mechanical. 

The solution was run as nonlinear static, with large deflection effects turned on.  Automatic Time Stepping was manually activated with a starting and minimum number of substeps set to 200 and a maximum number of substeps set to 1000.

With these settings, the solution ran to about 92% of the full load, where it failed to solve after bisecting to the maximum number of substeps (minimum ‘time’ step).  The force convergence plots showed the bisections and failed convergence attempts started at about iteration 230 and ‘time’ 0.92.  (If you are not familiar with the convergence plots from a Newton-Raphson method solution, please see our Focus archives for an article on the topic – look for the link to the GST Plot:  http://www.padtinc.com/blog/wp-content/uploads/oldblog/PADT_TheFocus_08.pdf).

Even though our solution has not converged, it is probably helpful to view the deformation results for substeps which did converge (at partial load) as well as the unconverged results which will be written as the last set of results.

This plot shows the total deformation at the last converged substep (time value 0.92):

This plot shows the unconverged solution, ‘extrapolated’ to time 1.0:

From the unconverged deformation plot we can see that the top of the bottle is tending to experience very large deformations.  It’s not surprizing that convergence difficulties are being encountered.

One of the techniques we can utilize to get past this problem is the Semi-Implicit method in ANSYS Mechanical.  As of 2019 R2, this needs to be activated using a Mechanical APDL command object, but it can be as simple as adding a single word within the Static Structural branch:

SEMIIMPLICIT

There are some optional fields on that command, but minimally just the one word command is needed.

Once the semi-implicit method is activated, if the solver detects the default implicit solver is having trouble, it automatically switches to the semi-implicit solving scheme.  Like a traditional explicit solver, the semi-implicit method can better handle very large deformation, transitory-like effects.  The method can switch back to implicit if conditions warrant for a more efficient solution and in fact can switch back and forth between the two schemes.

The solver output will tell us if the semi-implicit scheme has been activated:

EQUIL ITER  26 COMPLETED.  NEW TRIANG MATRIX.  MAX DOF INC=  0.9526   

     NONLINEAR DIAGNOSTIC DATA HAS BEEN WRITTEN TO  FILE: file.nd004

     DISP CONVERGENCE VALUE   =  0.3918      CRITERION=   1.448     <<< CONVERGED

     LINE SEARCH PARAMETER =  0.4113     SCALED MAX DOF INC =  0.3918   

     FORCE CONVERGENCE VALUE  =   44.44      CRITERION=  0.9960   

     MOMENT CONVERGENCE VALUE =   3.263      CRITERION=  0.1423   

    Writing NEWTON-RAPHSON residual forces to file: file.nr001

    >>> TRANSITIONING TO SEMI-IMPLICIT METHOD

     NONLINEAR DIAGNOSTIC DATA HAS BEEN WRITTEN TO  FILE: file.nd001


    EQUIL ITER   1 COMPLETED.  NEW TRIANG MATRIX.  MAX DOF INC=  0.8788E-04

     NONLINEAR DIAGNOSTIC DATA HAS BEEN WRITTEN TO  FILE: file.nd002

 *** LOAD STEP     1   SUBSTEP   185  COMPLETED.    CUM ITER =    284

 *** TIME =  0.920010         TIME INC =  0.100000E-04

    Kinetic Energy = 0.2157        Potential Energy =  60.59   

 *** AUTO STEP TIME:  NEXT TIME INC = 0.10000E-04  UNCHANGED

     NONLINEAR DIAGNOSTIC DATA HAS BEEN WRITTEN TO  FILE: file.nd003

There are some ‘symptoms’ of the switch from implicit to explicit.  The most obvious is probably that the force convergence plot will stop updating. 

Changing the Solution Output to the Solver Output will show the explicit scheme being used in that case.  The telltale is the information on Response Frequency and Period (the example shown is a static structural solution).

Deformation plot trackers and contact trackers continue to work as expected during the solution, however.

Using the semi-implicit method, the solution was able to successfully converge to the full load, and converged results are available at the last time point:

We also used the new keyframe animation technique to animate the results time history.

The semi-implicit method is well documented within the Mechanical APDL 2019 R2 Help, in the Advanced Analysis Guide, chapter 3 on Semi-Implicit Method.  We suggest reviewing that information to get a much better handle on the technique.

We hope this is helpful in getting your nonlinear solutions to converge the full value of applied loads.