Creating a Human Machine Interface in Flownex

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

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!

Modeling a Fire Suppression System in Flownex

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:

Scale Drawings in Flownex

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!

What’s new in Flownex 2021 Update 1

Friday Flownex Tip #16:

The Flownex team has just released Flownex SE 8.12.8, also known as 2021- Update 1. This release added new components, additional flexibility, additional improvements to user-friendliness, and bug fixes. There is a lot to unpack, and the best way to know all the details is to dig into the Release Notes. If you don’t have time for that, below are the nine enhancements that PADT’s engineers feel are the most noteworthy.

Velocity Based PID controller in the Distributed Control System

The new velocity based PID controller calculates the change in output variables, rather than an output itself. This enables multiple controllers to control the same variable without causing spikes in the output.

Steady state operations are now part of DCS components

DCS components can propagate their inputs into the model before, during, or after a steady state solution has been computed. This allows the user to decide if the DCS component initializes the steady state solution, calculate values for each timestep during the solution, or after the steady state solution has been completed. Be default, before is used.

Component Selection now has a search feature

The same controls that are in Flownex’s “Find” dialog are now in the Component Selection dialog. Multiple filters and options are available to make it easy to select components in models.

Added humid air fluid functions to Material Scripts

Psychrometric fluid functions have been added to the Material Scripts to enable the calculation of mixture mass fractions for three input combinations:

  • Humidity Ratio
  • Pressure, dry bulb temperature, and relative humidity
  • Pressure, dry bulb temperature, and wet bulb temperature

A new option to select between Conduction Shape Factors and Effective Area for the composite conductivity element

This one is pretty straightforward. A drop down in the Composite Conductivity dialog, under “Geometry”, lets the user specify which method they want for calculation conduction.

The installation verification tool now support several instances of Flownex in parallel

Users can now make sure that their installation is running parallel instances correctly with this new option. By default, it will run half the number of available logical processors, or the user can change the number in the tools user interface.

The Reactor Builder script has been greatly enhanced

User input has been combined to make multiple changes to the script that builds reactors. The enhancements are very specific to nuclear reactors and not only allow for more accurate models, but also a smoother process. If you use this feature, make sure you check the release notes.

Changes have been made to the runtime neutronics script

Another area that should excite (is that a pun?) those who model nuclear reactors are the user-driven changes to the script that models neutron behavior in reactors. These are fairly significant and a must-read for anyone who uses this feature.

Ability to select all components in a flow circuit on the drawing canvas

Users can now right-mouse-button on a component in their model and select all the components that are in the same flow circuit. Not only are they selected, but any common properties are shown in the properties grid.

And, much more

There were also a few bug fixes, especially in the flow solver components, so if you were dealing with an issue check the release notes or contact PADT to see if your problem has been resolved.

These were the changes that we think most users would be interested in knowing about. Check out the release notes to see all of them and, as always, don’t hesitate to reach out if you have any questions or don’t see something you need.

Simple Scripting in Flownex

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

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.

PADT Announces Leadership Team Expansion to Support the Growth of 3D Printing and Simulation Business Units

Additions to the Executive Team and Staff Allow PADT to Better Serve Customers Across New and Existing Business Units

Our sales and support team is the part of PADT that the largest number of customers interact with. Over two decades we have grown our offering from the core Ansys product in Arizona to representing half a dozen different simulations, 3D Printing, and scanning solutions across the US. that is why we decided to step back and take a look at the leadership and structure of our team and create three new positions that allow our sales professionals and engineers to better serve our customers.

You can read the details below in the press release. The primary changes are the promotion of two leaders, Kathryn Pesta and Ted Harris to the Director level where they will oversee expanded teams in sales operations and simulation technical support. We have also created a new team, Enterprise Solutions & Alliances, and appointed Alan McNeil as Director. Under the restructuring, Doug Oatis is taking over our Simulation application engineering team.

These changes are on top of the addition of Jim Sanford as VP of Sales and Support at the beginning of the year and new agreements with EOS to distribute and support their metal 3D Printers and #handsOnMetrology for their scanning solutions.

Our longstanding partners, Ansys, Stratasys, and Flownex, and users of their tools will also benefit from these developments. At the same time, we continue to add experienced engineers to our award-winning support team and seasoned professionals to our respected sales teams. Read below to learn more about these new staff members, and visit our careers page if you or someone you know wants to join our growing family. You can view a quick update on the nine new employees who joined PADT in the first half of 2021 at the bottom of our July newsletter.

You can also view the official press release in HTML or PDF.

As always, If you have any questions about these changes or want to learn more about the amazing products, contact us.


Press Release:

PADT Announces Leadership Team Expansion to Support the Growth of 3D Printing and Simulation Business Units

Additions to the Executive Team and Staff Allow PADT
to Better Serve Customers Across New and Existing Business Units

TEMPE, Ariz., August 3, 2021 PADT, a globally recognized provider of numerical simulation, product development, and 3D printing products and services, today announced the expansion of its 3D printing and simulation sales and support team with the addition of new members and management. The executive growth includes a new hire and two promotions. Alan McNiel joined as the director of Enterprise Solutions & Alliances, Ted Harris has been promoted to director of Simulation Support and Kathryn Pesta has been promoted to director of Sales Operations. The additions to the executive team are necessary to support the overall rise in demand for PADT’s sales and support offerings.

“As the U.S. begins to recover from the pandemic and gets back to business, we’re seeing significant demand for simulation tools and advanced 3D printing systems and materials,” said Ward Rand, co-founder and principal, PADT. “To meet this demand and serve our customers, PADT is bolstering our executive teams with the hiring of an industry-leader in Alan McNiel and the promotion of two of our most tenured and capable employees, Ted Harris and Kathryn Pesta.”

The newly appointed directors’ responsibilities include:

  • McNiel is now leading the newly created Enterprise Solutions and Alliances team. He is focused on the sale of Ansys, Stratasys, and EOS products to enterprise customers, growing Flownex in North America, as well as expanding new industry alliances.
  • Harris will restructure the company’s award-winning software support team to be aligned with expanded product offerings and drive optimal customer outcomes.
  • Pesta is leading a reengineering of PADT’s sales and support operations to meet the changing demands and increasing size of the company’s customer base.

Along with these management changes, PADT has recently added experienced salespeople to the Ansys and Stratasys sales team. The hiring of Mike Borsum in California, Brandyn Small in Texas and Brian Basiliere in Arizona as account managers will bolster PADT’s growing presence in California, Oklahoma, Texas and Arizona, respectively. Additionally, Shane Stahl has joined PADT to represent EOS for the western U.S. Multiple additional sales positions will be filled across the country in the second half of 2021.

PADT’s Expanding Sales Territories

Bolstering PADT’s technical staff, electrical engineers Kang Li, PhD and Akimun Alvina have recently been added.  Li, located in Arizona, specializes in motors and electrification, while Alvina, located in Colorado, is a high frequency antenna specialist. As part of the transformation, former PADT team lead Doug Oatis has been promoted to engineering manager over the customer facing simulation application engineer team, while Harris assumes the role of acting manager over the simulation engineering support team. The 3D Printing technical team also increased its capability with the addition of Chase Wallace as an additive manufacturing application engineer.

“To support our customers across the U.S., PADT has worked hard to add talent in new and existing regions, as well as new products and capabilities, as quickly as possible,” said Jim Sanford, vice president, Sales and Support, PADT. “Our continued growth is truly a testament to our people and the technical excellence they’ve displayed despite the challenges of the last year and a half.”

PADT experienced significant growth in 2021, which began in April when it partnered with EOS to improve its additive manufacturing product offerings, resulting in the immediate addition of five advanced EOS metal 3D printing systems to its portfolio. The company also partnered with GOM and the #HandOnMetrology Network in May to add new products and capabilities in 3D scanning. The additions to the management team and new partnerships exemplify PADT’s commitment to growth based on long-term success providing customers with the technical and business solutions they need to design and improve their products. 

To learn more about PADT’s growth story please visit www.padtinc.com.

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.

# # #

Friday Flownex Tech Tips #13

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

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

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.

Friday Flownex Tech Tips #10

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!

Friday Flownex Tech Tips #8

How to Setup an External Shared Database in Flownex

Hi Folks! Another short and simple tech tip this week; How to set up an external shared database in Flownex. When working as part of a team it makes sense to share resources. Once one person builds a custom component or defines a complex fluid we want to share that with everyone in our organization. Today I will show you how to create and maintain a shared database. For todays example we are working in Flownex version 8.12.7.4334

Creating the Database

Start by opening up Flownex – it can be a new project or any existing project. On the right side of the GUI we’ll want to navigate to the Components pane. At the top of the pane you’ll see a variety of buttons. Depending on your installation the buttons you see may be different than the ones in the visual below. To create a new database we’ll want to click the Create Database icon.

Then we’ll want to navigate to a shared network location and pick an appropriate folder that will be accessible to others in our organization. I would encourage keeping the directory name as short as possible (I.E. a top level location) so that there is no concern for a deep database hitting windows character limit.

Once we have chosen a location and clicked OK we will see our shared database in both the Components pane and in the Charts and Lookup Tables pane. We’ll need to right-click on the newly created shared database and create a New Library in which we will place our shared components. Creating multiple libraries can be useful when grouping similar components or to discretize between different groups in the organization which are using Flownex.

Adding components to an External Database

To add custom components to our external database we simply drag and drop them from our project database. If you want to learn how to create a custom compound component please reference our previous blog post on this topic here. Choosing “Copy” will create a copy of the component in the shared database, choosing “Move” will move the component to the shared database and any references to that component in the project will now reference the component from the external database.

Adding a fluid to an External Database

To add a custom fluid to our external database the process is very similar to the procedure for the custom compound component. The only difference is that we want to do this drag and drop action within the Charts and Lookup Tables pane instead of the Components pane. If you need a refresher on creating or importing custom fluids here is a blog post on that topic!

Connecting to an External Database

Once a user has created a shared database it is now possible for other users to connect to that database. the process of connecting to an external database is quite simple. On the Components pane we will again look at the buttons near the top. We will want to click the Connect Database icon and then navigate to the shared location of the external database. Once there we will find the database configuration file, .dbcfg. We should select this file and click OK. You are now connected to the shared database!

Bonus Tips!

  • To lock an external database to avoid unintentional editing you can right-click on the database in Flownex and select “Lock Database”.
  • If you need to migrate the database to another location on your server you can copy the entirety of the folder and move it. Users will simply need to follow the same procedure of connecting to an external database the next time they open Flownex.
  • Special Note: If sending a network to someone external to your organization it is important to note that components or references from external databases will not be included by default. These components or charts will need to be copied to the project database and then the shared database will need to be disconnected before archiving the project for transfer. A second option would be to share the database itself.

Friday Flownex Tech Tips #7

Using Views to bridge networks across multiple pages

When building our networks it may be necessary to utilize multiple pages for a single network. This could be simply because our network is large and complex, or because it simply makes sense to keep certain branches or processes separate. In this tech tip we will show how to use “views” to continue networks across multiple pages. For this example we are using Flownex version 8.12.7.4334.

Views

In Flownex the way that we continue networks across pages or even just jumping across portions of the same page is through the use of “views”. To create a view we right-click on the component we’d like to use as our bridge and select copy. Then navigate to where we’d like to continue our network and right-click, “paste view”.

Note that this is not really a “copy” of the previous node; it is another instance of the exact same node. I personally recommend using nodes for views over flow components so that they are less likely to be mistaken as separate components.

Regarding views

A couple of things to note regarding view components. First, you’ll notice the floating “V” to the left of the component. This indicates that the component is a view. It’s a good idea to leave this layer on – if for some reason you cannot see the “V” it can be turned on under the view ribbon:

Secondly, to find out where the views are located in your network the simplest way to jump between them is to right-click on an existing view and select the “views” option. Here you can navigate to any other views by simply clicking on them. Note that you are not limited to only two instances of a node (two views). There could be many instances across many pages.

Common uses of views could be to connect networks built by different engineers, connecting different subsystems that make up a larger network, or even capturing 3D network layouts by building a portion of the network in the x-y plane and using a view to connect to part of the network built in the z-y plane.

Friday Flownex Tech Tips #5

Custom Result Layers!

The result layers in Flownex have evolved quite a bit over the last few iterations of the code. Although we might typically associate color-gradient results more with 3D CFD, it does have a place in 1D system modeling. Taking advantage of results layers in Flownex can give a very quick understanding of what is going on with our system, and, with a little customization, can be incredibly powerful as an addition to our design and analysis toolbelt. In this post I am using Flownex version 8.12.7.4334.

How to create a result layer

To create a custom result layer we must navigate to the results ribbon and select result layer setup.

First we want to right-click in the Result Layers window and add a new result layer.

There are two options to add the schema for our result layer. The first is to right-click on the Selected Result Layer Schemas and add either a specific or generic schema. The second, and my PREFERRED, method is to simply drag and drop results from components on the canvas into this window:

Note that I want to multi-select any component types which will be included in this result layer. This could be any flow components which share a common result such as “quality”. I also convert to generic because I want the result layer to apply to all pipes, not just the pipe I initially drag and drop the property from.

Defining the custom result layer

In this example I have a two-phase water network with a cold external temperature. I want to create a result layer to quickly see if the water is in the gas phase, liquid phase, or somewhere in-between. The problem I have been tasked with solving is ensuring that the water never condenses. I will need to determine where we may need to add additional heat flux to the network.

We can use the Quality result property to determine the phase of our fluid. Quality < 0 indicates fully liquid, quality between 0 and 1 indicates liquid/gas mixture, greater than 1 indicates fully vapor.

To make this work as intended I can set up a gradient with three increments going from -1 to 2. The idea being the lowest increment would encompass -1 to 0, middle increment would be 0 to 1, and the top increment would be 1 to 2. For the gradient mode I made sure to pick <-[MinValue, MaxValue]-> so that the max and min increments would extend past the specified range.

As we apply this to our network we can easily see that we do, in fact, have a phase change from gas at the inlet, to mixture in the second two component, to fully liquid near the outlet.

I may decide to add a heater to our outlet pipe and perhaps a thicker insulative layer to all three to attempt to keep the water in gas phase throughout the system.

Bonus Tip!

  • Result layers can also be super handy when troubleshooting to quickly identify large pressure differentials, choking points, or other outlying fluid properties.