The Focus


 

Creating a Human Machine Interface in Flownex

Posted on October 15, 2021, by: Miles Adkins

Flownex Tech Tips!

No, robots are not taking over... yet... Luckily, Flownex has human machine interface controls available so that we can interact with our system simulation. Let's go over how to maintain human control of our system using an HMI. For this demo I am using Flownex version 8.12.8

Visualization Library

In the Components pane near the bottom we can find our human machine interface (HMI) components in the Controls category. We have a few components here which we'll go over use cases for. As a reminder, if we want to learn more about a specific component we can always select the component and press F1 on our keyboard to bring up the library manual for that specific component.

Dial

No, the phone call is not coming from inside the house! We can use the dial component to visualize any property, usually a result, in a dial interface. To use the dial component we simply drop it into our network and then drag and drop the property we're interested in onto the component itself.

We must set the minimum and maximum values for our dial, in this case since we are reporting the pressure we will want the variable type to be Double. If we want to get fancy we can change our start degrees, amount of rotation, even replace the gradient background with an image from an actual dial!

IO Box

The IO Box is probably something we've already been using without even realizing it. This is what is created whenever we drag an input or result property onto the canvas. In the image with the dial we use an IO box to report the pressure in our reservoir. We can attach properties to IO boxes by dragging and dropping. In the properties of the IO box we can change the font, size, units, how many significant figures are reported, and more.

Progress Bar

The Progress Bar is used in very similar situations as the dial however I find it to be particulary useful when reporting fill levels in containers or reporting valve fractions open. We'll tie the "fraction open" of the restrictor component downstream of the reservoir to our progress bar.

Push Button

The Push Button can be used for a variety of operations (selectable via drop-down in the inputs). I most often use these to run scripts, start, or stop a transient simulation. We have all of the similar formatting options as we've seen with these other tools. It is important to note that in order to interact with the push button we need to be in "Interact Mode" found on the home ribbon.

Toggle Button

The Toggle Button is going to be similar to the push button but has distinctive on vs off characteristics. We most often would use this to set a property. This can, again, be set up by dragging and dropping the property onto the button. What I'll do in this example is have the toggle button set up to toggle our downstream pressure boundary condition between 14.7 psi and 50 psi to simulate an overpressure event. We can go into the different style menus to make our button more aesthetically pleasing and change the text, etc.

Track Bar

The Track Bar is a slider which allows us to vary an input via interaction. We'll use two track bars in this example; One to control the mass flowrate at the inlet and a second to control the fraction open of the restrictor. To tie a property to a trackbar we again drag and drop the property and then update the track bar's minimum and maximum values to give us the range of operation. The complete network with all of the HMI components can be seen below (remember we are in "Interact" mode):

Avoid Spiderwebs with Direct References in Scripts

Posted on October 8, 2021, by: Miles Adkins

Flownex Friday Tech Tips!

It's officially Spooky Season! In between episodes of Squid Game and re-watching Hubie Halloween I thought I could make things a little less scary by demonstrating how to get rid of the spiderwebs in our projects (AKA Data Transfer Links). We use these often with scripts, which can be very powerful, but as our networks get more complex we may want to avoid the clutter/attracting spiders.

Quick Script vs Full Script

If we're not scared of a little C# we may decide to start with a full script. I, personally, like to use a quick script so that I can use the table inputs to define my script inputs and results.

Calling a Specific Component

We will identify the component we want to read/write to by the unique Identifier. This can be found in the input properties for the component. In this example we'll use a pipe component. By default this would typically be "Pipe - 0" or "Pipe" followed by some other integer. This field is editable so you can change it, but it must remain unique to that specific component.

We can either specify the identifier as a string explicitly in the script:

//Referencing component "Pipe - 0"
IPS.Core.Component Pipe = Project.GetComponent("Pipe - 0");

Or we can have this as an text-type input to the script so that we can change the reference more easily. In this example we have a text variable "ComponentIdentifier":

//Referencing component which is defined by input "ComponentIdentifier"
IPS.Core.Component Pipe = Project.GetComponent(ComponentIdentifier.ToString());

Note that we are using the ToString function to convert our text variable to a string.

Reading from Component

Now that we have our Pipe component referenced in the script we can read any of the results into our script via their display identifier using the following syntax:

//Reading from flow component
IPS.Properties.Double T_1 = Pipe.GetPropertyFromFullDisplayName("{Flow Element Results,Generic}Total temperature
") as IPS.Properties.Double;
Pipe_Temp.Value = T_1;

Note that we must use a internal variable. in this case "T_1", to read the temperature before we assign that to the value of our script result "Pipe_Temp".

A quick trick to determine the display name is to right-click on the result you're interested in and select "Copy display identifiers to clipboard".

Writing to Component

The process of modifying a component input with values from the script is very similar. We can use the above trick on our Inputs for the component to find the display identifier for the pipe diameter in this example.

//Write to component
IPS.Properties.Double diameter = Pipe.GetPropertyFromFullDisplayName("{Geometry,Inlet}Diameter") as IPS.Properties.Double;
diameter.Value = Pipe_Diameter;

Summary

Here is how we've set up the quick script, as you can see it is really not that scary:

And the snippet of code from the quick script:

//Identify Component
IPS.Core.Component Pipe = Project.GetComponent(ComponentIdentifier.ToString()); 

//Read from component
IPS.Properties.Double T_1 = Pipe.GetPropertyFromFullDisplayName("{Flow Element Results,Generic}Total temperature") as IPS.Properties.Double;
Pipe_Temp.Value = T_1;

//Write to component
IPS.Properties.Double diameter = Pipe.GetPropertyFromFullDisplayName("{Geometry,Inlet}Diameter") as IPS.Properties.Double;
diameter.Value = Pipe_Diameter;

Happy Friday and Happy Coding!

Using Ansys Fluent’s Gradient-Based Optimization

Posted on October 5, 2021, by: Tom Chadwick

There is a new workflow that has been developed for the Fluent CFD solver.  It is called gradient-based optimization.  It uses the adjoint solver, which computes the linearized derivatives of a single output variable with respect to all the input variables.  It then calculates separate sensitivity fields for the inputs.  Based on the sensitivity fields, it determines which inputs to change to maximize the desired change in the output variable.

The optimization tool is accessed through the Design tab in the Fluent menu.

There are several observable types that can be optimized for:

The first step in the process is to calculate a steady state solution of the problem.  Once a converged solution has been obtained for steady state solution, an adjoint solution is evaluated to either maximize or minimize the desired observable.

Once the evaluation is completed, the adjoint solution is calculated.

The next step is to use the Design Tool menu to define the wall boundaries that will be modified by the optimization process and what portions of those boundaries.

To perform an individual iteration in the optimization process, click on the Calculate Design Change button in the Design Tool window.  If you are looking to achieve a larger change to the observable, series of iterations will need to be run.  This can be done automatically using the Gradient-Based Optimizer tool.

To test out the capability of this new optimization tool, I ran a simple model of a u-bend pipe and optimized it to reduce the pressure drop through the bend by 40%.  The initial solution of the pipe resulted in pressure contours shown below.

When the optimizer was run to reduce the pressure drop through the model by 40%, the optimization history is as follows:

The resulting pressure contours and pipe geometry are shown below.

The change to the shape of the tube is not something that would be easy to determine without this tool.  It is very easy to use and will allow users to quickly optimize the geometry of their designs.

As you can see, this new capability allows one to quickly optimize flowpath shapes to accomplish optimization objectives. Hopefully you have found this useful and we encourage you to explore this and other enhancements to Ansys Fluent.

Modeling a Fire Suppression System in Flownex

Posted on October 1, 2021, by: Miles Adkins

Flownex Friday Tech Tips!

Today I'm going to go through my workflow of modeling a fire suppression system in Flownex. This particular system is designed with an aircraft in mind. We'll go over typical workflow and transient setup using Flownex version 8.12.8.4472

Background Image

See my post on adding a background image for in-depth step-by-step direction. I first set up a background image so I have an easily understood flow schematic to reference in my Flownex build. This also is particularly useful when showing or passing the network off to a colleague or customer who may not have intimate familiarity with Flownex. The image I used in this demo is from this paper by Jaesoo Lee.

Choosing the Appropriate Flow Components

In this model I've got a storage bottle, a distribution pipe, and some injection nozzles. I know that I want this to be able to handle two-phase and I know I am pressurizing the bottle with N2 so I will use the Container Interface components to represent the bottle. I will use pipe components for the distribution line, and for the nozzles I will simply use restrictors with discharge coefficients.

Container Interface - Top

Container Interface - Bottom

Pipe

Restrictor with Discharge Coefficient

Building network of components and entering geometry

While building this network I realized I was missing one additional component. I needed to add a valve to open the bottle and release the fire suppressant (HFC-125) and a valve representing a vent to the top portion of the tank which we will leave fully closed.

We need to specify our initial pressures, mass fractions, and a temperature on the storage bottle. We also need an outlet pressure and temperature to fully constrain our model. I use a "view" node on my nozzle so that I only need to specify a single outlet boundary condition.

Transient setup

For this transient analysis I am going to open the valve and see how quickly the suppressant discharges from the system. The first thing we will want to do is to remove any boundary conditions that we want to be "free" during the transient. I'll remove all of the boundary conditions at the storage bottle so that Flownex will calculate the remaining pressure as our system discharges.

I also need to specify our timestep and simulation length. We can do this under the Scheduler properties which can be found in the Solvers pane on the right side of the GUI. I chose a timestep size of 20ms and a total simulation duration of 2 seconds.

Solve Steady State, Snap and Run!

To get a stable transient simulation it's best to start from a converged steady state. At this point I'll solve steady state, addressing any warnings that arise. Then we will want to save a Snap of the solve (so that we can load the snap to get back to initial conditions for any future transient runs).

At this point we should be good to run our transient analysis! I've added a plot of the pressure in the bottle and pressure just before the nozzles vs time to this project as well:

Press Release: NASA Awards PADT and Penn State University a $375,000 Phase III STTR Research Grant

Posted on September 29, 2021, by: Eric Miller

When we applied for a NASA Small Business Technology Transfer (STTR) grant with Arizona State University in 2018 we had high hopes around that the idea of developing simulation and manufacturing techniques that would allow engineers to mimic structures found in Nature. Today's win of a rare Phase III grant from NASA exceeded those hopes and further showed the space agencies' interest in the research that PADT, ASU, and now Penn State are engaged in.

Inspired by the research of former PADT engineer and now ASU professor, Dr. Dhruv Bhate, the idea was to take a look at how nature uses repeating structures and responses to loads to optimize structures and to use 3D Printing as a way to create the derived shapes, growing geometry just as nature does. That Phase I was received well and led to a Phase II grant in 2019 to dig specifically into lattice structures. In addition to that work was the development of a topological optimization tool that could look at multiple types of loads and create aperiodic lattice topologies.

Researchers at NASA like those results enough to then grant PADT a Phase III project to further the development of the optimization tool and to connect it to a fluid-thermal optimization tool developed at Penn State under a separate NASA project. The study is called “Thermo-Fluid and Structural Design Optimization for Thermal Management” and it will look at creating structures that are strong, light weight, and have the thermal performance required for difficult launch and space-based missions.

You can read more in the press release below or here: PDF | HTML.

We are exceptionally proud of all three phases of this project because they show:

  1. PADT's ability to work with academia for R&D that results in useful tools
  2. Our deep and broad understanding of simulation across physics
  3. How our unique expertise in Additive Manufacturing can be combined with our simulation knowledge to turn theory into practical hardware.

If you have needs in any of these areas or are just looking for a strong R&D partner that can help make your innovation work, reach out to PADT.


Press Release

NASA Awards PADT and Penn State University a $375,000 Phase III STTR Research Grant

The Grant is a Continuation of PADT’s Topology Optimization Research, Which Will Fund “Thermo-Fluid and Structural Design Optimization for Thermal Management”

TEMPE, Ariz., September xx, 2021 ─ In a move that acknowledges its excellence and expertise in R&D for numerical simulation and 3D printing, PADT today announced NASA has awarded a $375,000 Phase III Small Business Technology Transfer (STTR) grant for PADT to collaborate with Penn State University. The partners will expand research into thermo-fluid and structural design optimization to provide engineers who design next generation launch and space crafts with better ways to design more robust and efficient structures that experience loading fluids, forces, vibration, and temperatures.

The Phase III STTR grant is a continuation of the original $127,000 Phase I and $755,000 Phase II grants awarded to PADT and ASU’s Ira A. Fulton Schools of Engineering in August 2018 and December 2019 respectively. This is PADT’s 17th STTR/SBIR grant since the company was founded in 1994.

“Furthering our research in simulation and 3D printing for topology optimization and thermal management is critical to the future of aerospace development,” said Alex Grishin, Ph.D., consulting engineer, PADT. “This Phase III award underscores how valuable NASA found the work we did earlier with ASU and signals their desire to have PADT work with other universities to transform it into a tool that engineers can use to design better launch and space-based structures.”

The objective of the joint effort between PADT and Penn State University is to successfully demonstrate the integration of 3D data output from Penn State Mechanical Engineering Experimental and Computational Convection Laboratory’s (ExCCL) thermo-fluid optimization code, developed under a NASA Aeronautics Fellowship grant, into PADT’s topology optimization tool. The latter was developed by PADT under the STTR Phase II contract.

In Phase II, PADT partnered with Arizona State University (ASU) to develop and test a novel shape optimization tool that used a unique methodology for topological optimization, taking both the thermal and stress response of a part into account. 3D printing was also used to create the geometry produced by the optimization approach. Phase III will connect PADT’s tool to Penn State’s tool, which uses genetic algorithms to better handle the optimization found in thermo-fluid problems.

“Taking our tool and connecting it with the optimization capability that Penn State developed has the potential to benefit aerospace design engineers worldwide,” said Tyler Shaw, PhD, PADT’s VP of Engineering and the leader of the group responsible for this work. “This project will take the joint research one step closer to delivering on an optimization approach that, just as in nature, takes into account all loads, regardless of physics.”

The ultimate goal of the project is to continue research with internal and government funding to create a commercial product that engineers can use as an alternate way to optimize the shape of structures that see loading from multiple physics.

To learn more about PADT and its advanced capabilities, please visit www.padtinc.com.

About Phoenix Analysis and Design Technologies

Phoenix Analysis and Design Technologies, Inc. (PADT) is an engineering product and services company that focuses on helping customers who develop physical products by providing Numerical Simulation, Product Development, and 3D Printing solutions. PADT’s worldwide reputation for technical excellence and experienced staff is based on its proven record of building long-term win-win partnerships with vendors and customers. Since its establishment in 1994, companies have relied on PADT because “We Make Innovation Work.” With over 80 employees, PADT services customers from its headquarters at the Arizona State University Research Park in Tempe, Arizona, and from offices in Torrance, California, Littleton, Colorado, Albuquerque, New Mexico, Austin, Texas, and Murray, Utah, as well as through staff members located around the country. More information on PADT can be found at www.PADTINC.com.

# # #

Scale Drawings in Flownex

Posted on September 17, 2021, by: Miles Adkins

Flownex Friday Tech Tips #17

Flownex has a pretty neat utility to capture geometry from a scale drawing and apply those inputs automatically to your flow network. In todays tip we'll go over a simple example of how to implement this. We are using Flownex Version 8.12.8.4472

Adding a Scale Image

To apply a scaled image in our Flownex network we will want to navigate to the Scaled Drawings ribbon. Here we can click on Generate Scale Drawing and import our desired image. For this demo I'm using a waterblock idea I sketched up a long time ago to try to fix the overheating issue I was having with my Xbox 360.

Applying Dimensions to Network Components

We'll notice that some dimensions are automatically associated with our new drawing. For instance, if we put some pipe components in to represent the flow paths we can see that the lengths are automatically updated. I know that these finned sections were about 90mm long so this checks out with what the scaled drawing is using.

We also have the option of associating dimensions with line segments we draw on the canvas. Since the cross-section of this flow path is rectangular perhaps a "duct" component would be better suited so that we can capitalize on the geometry association:

Other Useful Scale Tools

There are a few useful measurements we can do using the scale drawings utility that I didn't highlight in this demo. Point measurements and Link Points can be extremely useful in a variety of scenarios; A couple of examples might be to define connection points on rotor cavities or elevations of connections to some type of container.

Bonus Tip!

  • If your CAD is evolving we can swap out that image and then updating the measurements in our flow network is as simple as moving the components back into their correct places; Inputs update automatically!

3D Printing Ansys Mechanical Results with PADT’s “AM Result Printer” Ansys ACT Extension

Posted on August 31, 2021, by: Eric Miller

One of the first things PADT did when we got our first multi-color 3D Printer was figure out how to convert a result in Ansys Mechanical to something to be printed. If you go back to earlier blog posts (2014, 2020) on the topic and find that our earlier methods were - well cumbersome would be kind. There was no easy way to get Ansys Mechanical results into a file that contained color contour information on the surface that could then be printed with a color Additive Manufacturing system.

That is when our Matt Sutton stepped up and used Ansys ACT skills and knowledge on graphics programming to create simple plugin that converts any result object on a solid object in Ansys Mechanical into a 3D Manufacturing Format (3MF) file: AM Result Printer. The 3MF file can be read by Stratasys Grab CAD, the standard tool for Stratasys color systems and, because 3MF is an accepted platform across systems, it should work with any newer color additive manufacturing system.

The plugin is available at the Ansys Store here. It is free, and the download file contains installation and user instructions, or read on to learn more.

Installation

Instaillation is simple. For each installation of Ansys Mechanical, do the following:

  1. Download the ZIP file from the Ansys store
  2. Extract the files in some scratch location
  3. Go into 2021_09_00-3MF-Writer\AM_Result_Printer_v1\Incoming
  4. Then also expand the bianary.zip file. This contains the plugin for various versions of Ansys Workbench
  5. You need the right Visual C++ Redistributable package, so doublick on "vcredist_x64.exe" to make sure its installed. Follow the prompts until its done.
  6. Add the extension through Ansys Workbench. On the project page, go to Extensions > Install Extensions

Go into the binary folder and find the "Additive Manufacturing Result Exporter.wbex" in the proper version folder.

Then to into Extensions > Manage Extensions and click the check box for the Additive Manufacturing Result Exporter.

Now, when you got into your model in Ansys Mechanical, you should see the extensions listed at the top, and if you right-mouse-click on the Solution part of you model, it should be a choice.

How to use it

Make sure you insert any result objects you want to 3d Print and scope them to the things you want printed. Then, for each 3MF file you want, insert an "AM Result Export" into the tree. Then select the result you want a file for, they type of contour, and the number of bands.

When everything is ready, Generate the model to create the file or files.

How it works

This little tool is a great example of using Opensource libraries with the Ansys ACT interface. Matt used the VTK and lib3mf libraries. When you generate the object, the following happens:

  1. Converts the mechanical mesh scoped to the result body to a VTK unstructured mesh.
  2. Export out the result data from the result object as nodal values to a temporart file.
  3. Apply these nodal values to the VTK mesh.
  4. Contour using an appropriate VTK algorithm.
  5. Extract the VTK contour data as a series of triangular facets.
  6. Group the facets by color for banded, or extract the individual vertex colors for smooth.
  7. Write that data to the .3mf format using the lib3mf library.

Need more information?

If you would like more information or have any questions or need support on the tool, please email info@padtinc.com or give us a call at 480.813.4884.

This is also a great example of the type of custom application that PADT creates for a wide variety of customers to improve and enhance their simulation experience. If you have any questions on software development or customization needs around simulation, please reach out to info@padtinc.com or call 480.813.4884 as well.


Press Release

This article is getting posted as we also do a press release on the V1 posting of the program to the Ansys Store. You can also find the official press releases as a PDF and HTML.

Free Extension Designed to Export Ansys Mechanical Results as Color 3MF Files for Additive Manufacturing Released by PADT

Custom Plugin Allows Users to Create 3D Printed Full-Color Models with Results Contours

TEMPE, Ariz., August 31, 2021 PADT, a globally recognized provider of numerical simulation, product development, and 3D printing products and services, is pleased to announce the initial release of the Ansys Mechanical extension, AM Result Printer.  Written by PADT’s Scientific & Technical Computing team in the Ansys Customization Toolkit (ACT), AM Result Printer allows users to select any Ansys Mechanical results they have extracted from their model and output a 3D manufacturing format[, or 3MF, file. The extension is available on the Ansys Store today.

“PADT is an industry leader in off-the-shelf and custom 3D printing and simulation tools and products,” said Tyler Shaw, PADT’s VP of Engineering. “When customers requested a way to export Ansys Mechanical results as color 3MF files, we saw an opportunity to develop a custom program and share it with our community for free.”

The PADT Scientific & Technical Computing team work on small extensions like the AM Result Printer, large standalone programs, and a multitude of tools that make simulation more efficient and useful. The AM Result Printer extension was written by Matt Sutton, PADT’s Lead Developer for Scientific & Technical Computing using the tools provided by Ansys through their API and several publicly available libraries for working with tessellated geometry and the 3MF format.

Any Ansys Mechanical user can install the extension for free by first downloading it from the Ansys Store where it is listed as “AM Result Printer.”  The download includes installation instructions. Once installed, users can easily add an AM Result Object to any result object and then create the 3MF file. This file can then be used in any additive manufacturing system that support the 3MF format and prints in full color, like the Stratasys J55, J826, J835, and J850 PolyJet systems.

“This simple program is a fantastic example of how our software experts, who are also Ansys experts, create applications that greatly enhance the already strong capabilities of Ansys products,” said Sutton. “We’re proud to make this powerful tool available to the Ansys user community.”

For more information on how to customize Ansys programs or to speak to PADT for help with writing custom tools and programs, please visit the PADT website at www.padtinc.com, contact info@padtinc.com or call 480.813.4884. 

About PADT

PADT is an engineering product and services company that focuses on helping customers who develop physical products by providing Numerical Simulation, Product Development, and 3D Printing solutions. PADT’s worldwide reputation for technical excellence and experienced staff is based on its proven record of building long-term win-win partnerships with vendors and customers. Since its establishment in 1994, companies have relied on PADT because “We Make Innovation Work.” With over 90 employees, PADT services customers from its headquarters at the Arizona State University Research Park in Tempe, Arizona, and from offices in Torrance, California, Littleton, Colorado, Albuquerque, New Mexico, Austin, Texas, and Murray, Utah, as well as through staff members located around the country. More information on PADT can be found at www.PADTINC.com.

# # #


Thermal Results Visualization – Ansys SIWave Icepak and Ansys Electronics Desktop Icepak

Posted on August 27, 2021, by: Josh Stout

As a typically mechanical / systems engineer, I am not exactly qualified to go through and list exactly what SIWave does and why you need it for any given situation (shoutout to Aleksandr, our actual expert, whose assistance has been invaluable for my simple example case). However, what I think I have grasped is that SIWave is just one of those Ansys tools where if you need it, you probably really need it. Where this becomes relevant to me is of course in a PCB thermal analysis. DCIR is typically the electrical half of this problem that is within SIWave’s expansive toolkit, though SIWave also contains some very easy-to-use thermal-oriented options for co-simulation with Icepak. I’ll admit that I have tended to somewhat dismiss this on my end, as I am already familiar with a couple more advanced thermal analysis tools, so why wouldn’t I just use these if I wanted to look at the thermal response of A PCB? Despite this, I have recently (begrudgingly) taken a more in-depth look at the thermal side of SIWave, and what I have found is that even if the settings available are a little more simplistic than I might always like, it really is incredibly accessible and provides some nice visualization capability. What’s more, it provides not only an easy path to view your existing thermal results in a full Icepak interface, but also serves as a great starting point if you need to analyze some more complex setups than Icepak.

So, having just been through much of this on my own, it seems like a great opportunity to share some tips and tricks for thermal visualization in both Ansys SIWave and Ansys Electronics Desktop (EDT) Icepak, see where each is strong relative to the other, and then perhaps even share some suggestions for using the SIWave solution as a starting point to take an Icepak PCB simulation to the next level!

To start with, we need a SIWave DCIR project. A DCIR solution is required for providing thermal loads for a thermal solution. I am glossing over this, but basically, you need a PCB definition, a voltage source, and a current source. In the model I borrowed from Aleks, I am using these sources to push some current through one section of my PCB’s power layer and then referencing them to the ground layer. To complete the loop. This means that there are EM losses on both the ground layer and power layer.

For the first simulation, we’ll want to set a baseline temperature for our electrical material properties and make sure the toggle for “Export power dissipation for use in ANSYS Icepak and Mechanical” is enabled.

Now, we can set up an Icepak simulation! As I alluded to, the settings available within SIWave are somewhat primitive, although they do an overall good job of adhering to typical best practices. Our choices are basically using a board model without components and strictly modeling thermal conduction within that board, using a board model with components that includes explicit thermal convection to the environment, manipulating a mesh detail slider bar, and choosing the cooling regime used (natural vs forced convection). For this model, I’ll be using forced convection with surface components and “Detailed” meshing so that I have the most to look at, but obviously the exact settings will vary somewhat depending on your use-case. In 2021R2, the default SIWave-Icepak behavior will be to use EDT Icepak as the solver, however, we can choose to specify “Use Classic Icepak” in the simulation setup window. This determines which version of Icepak we have to use for additional postprocessing in as well, so I will leave “Use Classic Icepak” turned off.

The first method of visualization in SIWave is to simply right-click an Icepak simulation definition in the “Results” window and Display temperature.

This gives us a nice temperature contour on the outer surface of all the solid bodies considered during the simulation. If we stick with the top-down view, we can make use of a nice temperature probe that automatically displays at the mouse location. Once we rotate around into a 3D view with the middle mouse button or other view options, we lose this probe but of course, gain a nice graphical representation of the full geometry.

The second method is to use the View > Temperature Plots toolbar option, which gives us some more flexibility for viewing temperature through each layer.

Most commonly, we will probably be working with the XY cutting plane and then selecting the layer of interest from the drop-down menu so that we can see a plane through the entire PCB. For more precise control, we can also use the slider bar or input the exact plane-normal location to use for plotting.

One of the benefits of this approach is that we can use the other cutting plane definitions to get a cross-section view, along with whatever ECAD board elements we would like to plot. For instance, if we’d like to see more clearly how the temperature varies with depth underneath active components, or around via definitions, we can easily explore this, as in the image below.

Depending on your needs, this may be sufficient flexibility for observing the temperatures of interest, and the smoothly moving cut plane with the slider-bar position is certainly an easy way to get a sense of the board’s behavior. However, SIWave only gives us access to temperature within the solid bodies of our PCB/components, and we can free ourselves from this limitation by moving into EDT Icepak. There are a couple of primary ways to do this – one is to right-click on the Icepak simulation definition in Results and “Open project in Icepak” and the other is to use the same option from the “Results” section of the top toolbar. The more manual method is to directly open the .aedt file that gets generated alongside the SIWave project file.

Much like SIWave, temperatures in EDT Icepak are primarily displayed on cut-planes or object surfaces. Three-dimensional contour plots are also available but tend to be less clear, especially on very thin bodies (like layers of a PCB). For a cut-plane, the most straightforward option is to directly draw a plane or create a new coordinate system (a coordinate system will automatically create the 3 component planes), which can both be done through the top toolbar. 

Personally, I find it easiest to quickly create the objects in the graphical window and then select them in the model tree to fine-tune their locations through the properties display, as above. I do think this is one of the places that SIWave has an edge in ease-of-use – having that slider bar definition for a plane is much nicer. Although, using this method in Icepak also lets us angle the plane however we like, so there are still trade-offs to be considered.

Once we have a plane defined, it is then very easy to select this plane in the model tree and right-click > Temperature > Temperature to create a temperature plot.

One of the immediately observable differences is that we can now view temperature contours throughout the volume of air surrounding our PCB in addition to the PCB itself. So, if we were trying to compare against something like an experimental setup with a thermocouple placed in-air near the board, this would be the way to do it!

If we’re not interested in quite so large of a plot, we can also limit it to a certain model volume by choosing one of the objects in the “In Volume” list of the plot properties. In this case, Box1 and Box2 are smaller volumes enclosing the PCB that were automatically generated for mesh controls, which we can easily reuse for trimming down our temperature plot.

To instead plot on the surface of an object, we can select that object in the model tree (for the whole PCB, it is convenient to right-click it in the tree and use the “Select All” option), follow the same Plot Fields > Temperature > Temperature as before, and then make sure to enable “Plot on surface only”.

This should produce a plot that is very similar to what we obtained in SIwave. Another advantage of doing this in Icepak should now become clear -- we have the capability to stack multiple field plots! As below, we can see the solid body surface temperatures alongside our cut plane temperature down the center.

We can get as creative with this as we’d like, plotting on many different cut planes simultaneously, or even combining types of plots. Since we have access to the air volume solution, we can even do things like plot velocity vectors around the PCB for more insight into the overall system.

Having access to the full solution field (fluid and solids) means we can also visualize some other helpful values. The surface heat transfer coefficients can help us understand how to improve our setup in some cases, for instance. In the below plot, we can see some clear shadowing behind surface components which is indicative of the primary flow separating from the surface of the PCB. This certainly explains why the back end of the board is so hot – the components in the back are somewhat hidden from the flow field by those in the front. Since component (and component power) density is higher in the back, we might choose to reverse the direction of flow so that the particularly dense section of components receives the brunt of the airflow, or maybe we might explore angling the board relative to the inlet such that the entire top receives more direct flow.

While we might reach the same or similar conclusions by looking at data through SIWave’s interface, we certainly wouldn’t have access to the tools necessary to actually implement all these changes to the simulation.

As an example, I can pretty easily create a new coordinate system, rotate it by 11° from the original, and then assign my air box to the rotated reference. In effect, this angles all of PCB related volumes with respect to the flow field in just a couple of steps.

After solving, I can then compare the new temperature fields to the old and pretty quickly find that the hotspot on the top surface has been greatly reduced and that the maximum temperature of the system has dropped by about 9 °C. Not too bad! Of course, since I have modified at least one of the simulation bodies, we do have to remesh and solve from scratch, however, we already have an existing DCIR simulation to make use of, and it was much easier getting to this point having started in SIWave.

For my last set of tips, the visualization of the PCB itself in Icepak has been rudimentary so far, but we can also adjust this. Much like in SIWave, we can turn on and off the visualization of features for individual layers independently of anything else. These visualization settings are accessible by selecting our board in the 3D components list and then looking at the properties section.

Since these settings are independent of the 3D geometry visualization, we can selectively hide our model objects in order to isolate the detailed ECAD features. In my test case, the dielectric “Unnamed” layers include via definitions – so I can turn on visualization of these layers, hide the geometry for every layer except the bottom, and plot a temperature cut plane to get a nice visualization of how temperature varies around particular vias.

We could do the same for a temperature cut plane through the width/length of the board as well or even look at heat transfer coefficients on the PCB surface in regions of high via density. As is often the case with Ansys tools, the sky is the limit here.  

In summary, the SIWave interface can be both a great starting and ending point for thermal simulation depending on your needs. It makes setting up a complicated simulation very easy, albeit by removing some user flexibility, but it does allow for several methods of viewing thermal results. These include a smooth slider bar visualization for cut-plane temperatures and a dynamic mouse-probe for checking temperature values in the top-down 2D view. Since SIWave makes use of the full Icepak solver in the background, we can also access a whole lot of additional information by simply opening the existing Icepak solution in the full EDT Icepak interface after a solution has been generated. This gives us access to new thermal solution variables, variables from the fluid portion of our solutions, and new ways to plot and visualize all this information. The combination of SIWave and EDT Icepak also provides us with the opportunity to run an initial set of thermal simulations for relatively simple setups and then build on top of those with more complex boundary conditions or geometry configurations, if we either need greater detail or want to try out some more advanced cooling scenarios.

Simple Scripting in Flownex

Posted on August 20, 2021, by: Miles Adkins

Friday Flownex Tech Tips #15

Scripts can be very powerful additions to our network building toolbox. But we don’t need to have a degree in computer science to use them! The quick script makes integrating scripts into our network quite simple. In this tip we’ll go over how to set up a quick script in Flownex version 8.12.7.4334

Example Problem

In this demo I’m going to model a small pipe that is horizontal and perpendicular to the flow of a much large duct. We’re going to use a script to utilize our own correlation for determining the convection heat transfer.

What I’d like to accomplish is to apply the Churchill-Bernstein correlation for cylinder in a cross-flow to calculated the Nusselt number and in turn the convection coefficient.

Example Network

To build this network I’m just going to use a couple of pipe components and a composite heat transfer component. I’m assuming the cross-sectional area of the larger duct is not so impacted by the presence of the cross-pipe that we need to calculate any losses associated with it.

Quick Script

Quick scripts are located in the components pane near the bottom. To add a quick script we’ll simply drag and drop the script onto the canvas. Notice the inputs available for the quick script, we get to choose when it executes, and then we’ll notice that there are some example inputs and results. Since this script is going to be used to apply a correlation during the solve we’ll want this script to execute during steady state.

To edit the script we’ll need to double click on the quick script component. Then we’ll need to define our inputs and results. In this case we’ve got quite a few inputs and results to define.

The most challenging part, in my opinion, is simply getting the correct syntax for C#. Luckily there are a myriad of resources online for C# syntax which makes things a bit easier. In the below image I’ve added the mathematical operations to calculate Re_D and Nu_D using the Churchill and Bernstein correlation.

Connecting Script to Components

We’ll connect the script to our components using data transfer links. We’ll need to populate our script inputs with results from our network and then update the heat transfer input using the results from our script.

Once we’ve connected all of the data transfer links with the appropriate properties we ought to be able to solve!

Friday Flownex Tech Tips #14

Posted on August 6, 2021, by: Miles Adkins

Real-Time Plotting in Flownex

Today's tech tip will be short and sweet. We're going to go over how to do a real-time plot in Flownex. In this example we're using Flownex version 8.12.7.4334

Adding a Time Dependent Graph

For a time dependent graph we will choose the Line Graph under the Visualization library on the Components pane. We can drag and drop the variables we'd like to see plotted here. I'm going to look at the pump speed (rpm), the valve fraction open, and the mass flow through our network.

On the graph properties we'll likely want multiple Y-axis enabled so that the changes are easily seen as a function of time.

Real-Time Transient

To have our transient analysis solve in real-time we will need to go to the Solver Ribbon and click on Scheduler to access our transient settings. Here we can change the Running Speed to "Realtime".

Now when we run our analysis we will get real-time response! This comes in super handy when building human machine interfaces in Flownex for testing operations, when we want to observe response of controls systems, or observing start-up/shut-down type scenarios.

Friday Flownex Tech Tips #13

Posted on July 30, 2021, by: Miles Adkins

Parameter Sheet Tricks

It's Friday and time for the 13th Tech tip! Today we are going to go over some simple parameter sheet tricks and best practices. Parameter sheets are incredibly useful for running many different design or operation analyses. Let's go over how best to utilize their functionality. In this example we're working in Flownex version 8.12.7.4334

Parameter Sheet Setup

Probably the most critical thing to know when working with Parameter Sheets in Flownex is to make our edits through the setup interface. This is where we define the connection between Flownex and the worksheet.

As we recall, adding either inputs or results to our parameter sheet is as simple as dragging and dropping them into the different columns.

Renaming Parameter Columns

We may find that we'd like a more descriptive name of an input or result parameter than simply
"Pressure" or "Temperature". We can rename the columns and this must be done via the parameter table setup. If we were to change the name in the worksheet it will be overwritten by the setup when the model is solved.

Rearranging Parameters

We may decide after creating a parameter table that we need to go back in and add a new column between existing input or result parameters. This should be done, again, through the setup. We will add our new parameter to the first open column and then move it within the setup.

*Important Note: Cell references in Excel are explicit in parameter sheets. If we are performing calculations in the parameter sheet using cell references and we rearrange columns these formulas will need to be updated.

Bonus Tip!

Friday Flownex Tech Tips #12

Posted on July 23, 2021, by: Miles Adkins

Sizing Pumps and Manually Specifying a Pump Curve in Flownex

As a System Engineer you may not always already have equipment decided on for your particular network. Flownex makes it easy to start from scratch and will help determine the equipment necessary to meet the flow or process requirements. In today's tip we'll go over how to size a pump using the basic centrifugal pump component and how to manually enter pump curve data. We are using Flownex version 8.12.7.4334

Sizing a Pump

In our example scenario let us pretend we are sizing a pump for a cooling water circuit. We are tasked with finding a pump which will deliver water at a rate of 1 kg/s to the heat exchanger. We know our upstream and downstream boundary conditions as well as the heat added at the exchanger and the speed at which we will be operating the pump.

Choose the appropriate flow component

There are a few different pumps available in Flownex:

Basic Centrifugal Pump: Used when we do not have a pump chart available, particularly useful when sizing a pump.

Fan or Pump: Used when a pump chart is available for modeling either compressible or incompressible flows.

Positive Displacement Pump: Used for modeling rotary and reciprocating pumps where the fluid is incompressible, non-Newtonian, or a slurry.

Variable Speed Pump: Similar to the Fan or Pump but with the ability to interpolate between fan/pump curves for different speeds of rotation.

In this case we'd choose the Basic Centrifugal Pump. This is found in the component pane under Turbos and Pumps. Since we only know the RPM we can enter it in the inputs under Speed at BEP:

Recall we don't know what the design of the pump will be. Since all we know is that the mass flow rate needs to be 1 kg/s we will check the box for fixed mass flow and then select to change design to target our desired flowrate.

Once we hit solve our pump design inputs will be populated such that our desired mass flow rate is achieved. We can cross-reference these values with available pumps to choose the appropriate component for our network!

Specifying a Pump Curve

If we already know which pump we are using, or perhaps are trying to decide between several available pumps, we may need to add these pump curves to Flownex. To add a pump curve we will navigate to the Charts and Lookup Tables pane > Project Database > Flow Solver > Turbos and Pumps. In this scenario we are looking at a single speed pump so we will right-click on Pump and Fan Charts and Add a Category.

We can name our category whatever is appropriate and then right-click on the newly created category to add our own pump chart.

To edit the newly created pump chart we can either double-click on it or right-click and select edit. Now we simply specify the Reference Density and then fill out the table with the relevant data points. To speed things along we can copy and paste a table of data points from excel or whatever source we get this curve from. Don't forget to check your units!

Bonus Tip!

Friday Flownex Tech Tips #11

Posted on July 16, 2021, by: Miles Adkins

How to use Flow Path Graphs and Increment Plots in Flownex

Flow Path Graphs and Increment Plots can be incredibly useful visualization tools to see how a simulation result varies as a function of length along the axial flow path and to see a higher fidelity result for a single flow component. Use these in Flownex to up your reporting game! In this demo we are using Flownex version 8.12.7.4334

Creating a Flow Path

A flow path is any continuous series of flow elements and can be created by clicking "Flow Paths" in the results ribbon. Once we've created our new flow path we define it by choosing our start and end nodes.

Another, simpler, method is to simply drag and drop the nodes onto the flow path start and end point:

If we have a branched network we can add an intermediate node or flow component to our flow path to ensure the correct path is captured in the graph:

Insert a Flow Path Graph

The Flow Path Graph is in the component pane under visualization > graphs. Once the graph is added to the canvas we simply need to drag and drop our newly created flow path onto the graph and choose the characteristic we are interested in plotting. We will need to drag and drop the flow path for each characteristic we would like plotted.

How to create Increment Plots

You may have noticed in the previous images that there were many data points on the graphs for each of our flow components. This is because we had each pipe modeled as 25 increments. When we add increments to our flow components Flownex will treat each component as if it were split up that number of increments - solving the conservation equations for each increment rather than once over the entire component. This is helpful when modeling long pipes, capturing pressure waves, or determining exactly where a phase change may happen. A good way to think about this is that it is essentially the same as refining a mesh in a typical finite element analysis.

There is another plot in Flownex we can use for a single flow component that has been incremented. The increment plot is located in the components pane under Visualization > Graphs > Increment Plots. If we were, for example, trying to plot the inside surface temperature of our first pipe in this example network we could use an increment plot to see what is going on.

To create an increment plot we simply drag and drop the plot onto the canvas. We can either selectively drag results from individual increments or multi-select many increments and drag the desired variable onto the graph. Note that since there is a tie of each increment parameter separately there may be some delay if we are multiselecting a very large number of increments.

Bonus Tips!

  • We can use a Flow Path graph for a single component to avoid having to multi-select increments.
  • To create a graph on its own page instead of floating on the canvas go to the Project Explorer pane on the left side of the GUI, select Graphs, then right-click on the Graphs Folder and select Add Graph Page and choose your desired type of plot.

An Ansys Licensing Tip – ANSYSLMD_LICENSE_FILE

Posted on July 15, 2021, by: Josh Stout

Most Ansys users make use of floating licensing setups, and I would say the majority of those actually make use of licenses that are hosted nonlocally but on their network. Within this licensing scheme, there are quite a few different tools and utilities that we can use to specify where we pull our licenses, too. One of the methods that is making a comeback (in my recent experience) as far as success in troubleshooting and overall reliability is specifying the environment variable ANSYSLMD_LICENSE_FILE.

This variable allows you to point directly towards one or more license servers using a port@address definition for the FlexNet port. With just this defined, the interconnect port will default to 2325, but if your server setup requires another interconnect port then you can also specify this using the ANSYSLI_SERVERS environment variable with the same format.

The downside is that this is a completely separate license server specification from the typical ansyslmd.ini approach, so any values specified this way will not be visible in the “Ansys Client License Settings” utility. On the upside, this is a completely separate license server specification! Meaning, if there are permission issues associated with ansyslmd.ini, or the other license utilities experienced some unknown errors on installation, this may be able to circumvent those issues entirely.

Also, for more advanced setups this can be used to assign specific license servers to individual users on a machine or to potentially help with controlling the priority of license access if multiple license servers are present. Anyway, this may be worth looking into if you encounter issues with client-side licensing!

Friday Flownex Tech Tips #10

Posted on July 9, 2021, by: Miles Adkins

Rotor-Rotor and Rotor-Stator Cavities

Happy Friday! In today's tech tip we'll introduce the rotating components library and demonstrate how to utilize the cavity drawing tool for rotor-stator cavities which can be a huge time-saver when building secondary flow networks. We are working with Flownex version 8.12.7.4334.

Rotating Components

One common implementation of rotating components in Flownex that I see is for modeling secondary flow networks for gas turbines. These flow paths are also sometimes called secondary air systems. What this refers to is the flowpath separate from the primary flowpath (Secondary, get it?). This is flow used to cool equipment, shrouds, discs, vanes, and to provide buffering for the seals to the oil system.

https://flownex.com/industries/gas-turbines/

Flownex has a whole library of rotating components that come in handy when building these secondary flow networks. These are well documented in the Flownex help manuals if you'd like to read up on technical specification, inputs, results, and theory.

  • Custom Vortex
    • A custom vortex is used when velocity profile is between that of a forced vortex and free vortex.
  • Forced Vortex
    • In a forced vortex the fluid moves similar to a solid body with constant angular velocity.
  • Free Vortex
    • Free vortex swirl is calculated using mass flow rate average of the incoming swirl streams, swirl is constant over the radius; usually used for rotating fluid in an open cavity.
  • Labyrinth Seal
    • Used for modeling axial and radial straight and staggered seals.
  • Rotating Annular Gap
    • Used to model flow through an annulus with the inner or outer cylinder rotating.
  • Rotating Channel
    • Used for flow inside channels in rotating discs and blades.
  • Rotating Nozzle
    • Similar to a stationary nozzle where there is a discharge coefficient as a function of the inlet type.
  • Rotor-Rotor Cavity
    • Used when calculating swirl ratio from moment balance on the the rotor surfaces, bolt heads, and flows.
  • Rotor-Stator Cavity
    • Used when calculating swirl ratio from moment balance on the the rotor and stator surfaces, bolt heads, and flows.

Cavity Drawing Tool

Now we get to the nitty gritty of todays tip; how to utilize the cavity drawing tool. When we use either a Rotor-Rotor component or a Rotor-Stator component there are two options for specifying the surface geometry. We can either model as pure radial disks, or as a complex surface specification.

We can use the complex surface specification option to model a rotor-stator cavity like in the cross-section below. When using this option we will need to get a cross-section like this from CAD or from a scaled technical schematic.

To specify this surface geometry we will click the radio button next to surface geometry and add our image to the project. For a refresher on adding an image to your project check out the blog post on adding a background image.

Reference Measurements

We will first need to specify our reference axial and radial coordinates. This is done by dragging the red and blue boxes to known locations on the cross section and entering in the values in our desired units.

Surface Geometry

Now that we have specified the reference measurements we can define our rotor and stator surface geometries. This can be done in the Rotor Surface Geometry ribbon and the Stator Surface Geometry ribbon. The mode in the top right of the GUI lets us know if we are adding points, moving points, or deleting points. To add points we will click and drag from the previous point.

You'll notice the inner and outer radius fields are automatically updated. This can be a good way to sanity check against known measurements or against CAD. We will need to do the same thing for the stator surface geometry.

Bolts

If there are rotor or stator bolts they may be added in their respective ribbons. The blue lines we see in these images represent the limits of the rotor or stator surface. If bolts are added we will need to click Bolt Details at the bottom of the window and add bolt geometry. The radius fraction is populated automatically and the other inputs will need to be updated as needed by the engineer.

Cavity Shroud

If we need to model the cavity shroud this can be done in the shroud ribbon. In our demonstration today the shroud is included in the rotor and stator surface geometries. For this case we can de-select specify shroud width.

Gap Width

Next we must specify the gap width. To understand what the appropriate width to specify we must dive a little bit into the theory.

Flow regimes for rotor-stator cavity flow can be classified by the following image:

"G" being the gap width ratio (s/a where s is the gap width and a is the outer radius of the cavity) and Re is the Reynolds number for cavity flow. Essentially there are four regimes which are determined by the Reynolds number and gap ratio.

Flownex uses correlations from Haaser et. al (1987) and Daily and Nece (1960) to calculate the required moments produced by the rotor or stator on the fluid within the cavity. Haaser et al. is valid for Regime IV whereas Daily and Nece is valid for 0.0127<=s/a<=0.217 and 1000<=Re<=1e7. It is suggested to use Haaser when the flow is in Regime IV and Daily and Nece when the flow is within the other regions.

I hope I haven't lost you.

So, for complex geometry (not just two flat surfaces) it is recommended to use the smallest gap width first and calculate the disc Reynolds number. Using the smallest gap width gives you the smallest gap width ratio which will lower the point at which your fluid is in the flow regimes graph above. Now check in what region you are. If your Reynolds number is high enough to be in region IV, and while using the smallest gap width your are still in region IV then it is safe to say that your entire flow will be valid when using Haaser. If this is true, you can then use the smallest gap width because the correlations of Haaser is not dependent on gap width. Using the minimum gap width essentially allows you to make sure that your entire flow is within regime IV. When you have used the smallest gap but see that your gap width ratio and/or Reynolds number leaves you in a different regime (I,II or III), we will then suggest that you calculate the moments using Daily and Nece.

To summarize, start with the smallest gap width and determine the Flow Regime:

If we are in region IV for the smallest gap width then we can leave the gap width as originally specified. If we were in any other region we should change our gap width to be an average:

Don't forget to specify the correct correlation in the inputs for your rotor stator cavity as well. Big thanks to Leander Kleyn at Flownex for helping me understand the theory behind the gap width!

Discretization of the Cavity

Lastly, we need to assign the discretization of the model. This can be thought of as sort of refining the mesh of the cavity. We can specify more or less increments and can drag the increments around to be sure to capture changing geometry.

There you have it! A complex surface specification of a rotor-stator cavity using the cavity drawing tool in Flownex!