# FloEFD¶

This integration type block allows to apply optimization and other data mining techniques to FloEFD projects.

## Introduction¶

The FloEFD block integrates FloEFD flow analysis into a workflow and maps model and analysis properties to block’s input and output ports. When this block runs, it receives values to input ports, changes model dimensions and analysis parameters (initial conditions, boundary conditions, heat sources), rebuilds the model, runs analysis projects in FloEFD, reads projects results (goals, images) and model mass properties, and sends resulting values to output ports.

When the FloEFD block executes, it actually launches FloEFD, so the block can run only on a host where FloEFD is installed. Nevertheless, you can configure the block without FloEFD: set document path, add inputs and outputs, change option values.

The FloEFD application starts in the following cases:

• when you get information from the document (build the document tree),
• when you open the selected document from the block configuration dialog, and
• when actually running analysis, at the workflow run-time.

Note that FloEFD application window is always shown when it is started by the block.

If FloEFD is already launched, the block connects to the running application. If a document with the same name is already open in FloEFD, the block uses this document. This way you can work with the same model in FloEFD and pSeven simultaneously.

Note

When opening the project file from a previous version of FloEFD, you will get a warning message that the project file is in an old format. Working with pSeven will be blocked unless you press and close the dialog. To prevent this situation, save your project file using the currently installed version of FloEFD before using the the project with the FloEFD block.

## Compatibility¶

The block supports FloEFD Standalone (SolidWorks-embedded), FloEFD for PTC Creo and FloEFD for NX. Versions for other CAD applications are not supported.

The block was tested with the following FloEFD versions:

• FloEFD Standalone 14.
• FloEFD Standalone 15.
• FloEFD Standalone 16.
• FloEFD 16 for PTC Creo (in Creo 3.0 M080).
• FloEFD 16 for NX (in NX 10.0 and NX 11.0).
• FloEFD Standalone 17.
• FloEFD 17 for PTC Creo (in Creo 3.0 M080).
• FloEFD 17 for NX (in NX 11.0).

Other FloEFD releases should also be compatible, but were not actively tested.

Note

Multiple versions of FloEFD being installed on the same host may result in various issues when using the FloEFD block. For example, if you install FloEFD 16 and then FloEFD 17 on the same host and set the FloEFD.Version option value to 16, the block will be unable to start the FloEFD application when you run a workflow (see section Known Issues for details and a possible workaround).

## Document File¶

The block supports:

• SolidWorks parts (.sldprt) and assemblies (.sldasm),
• Creo parts (.prt) and assemblies (.asm),
• NX parts (.prt) and ZIP assemblies (.zip).

To select a document file, click in the Document tree pane.

The path to the selected document is also stored in the FloEFD document file option and thus can be set on the Options tab.

Note

FloEFD always saves changes to the document before running a solver, so the FloEFD block also does this when it starts. If you want to keep your document unchanged, you can create a copy of it manually before running the workflow.

## Document Tree¶

After you select a document, click in the Document tree pane to build the tree. The block will parse model structure in the file and select model and analysis properties which can be changed or read in the workflow.

The structure of the geometry model properties tree is similar to the document tree structure in the SolidWorks and Creo blocks. This tree includes model dimensions, global variables and mass properties.

The analysis properties which the block adds to its tree are:

• Initial conditions — for example, initial velocity, initial pressure.
• Boundary conditions — for example, inlet volume flow, volume flow rate, static pressure.
• Heat sources — such as heat generation rate, heat transfer rate, and so on.
• Goals — such as physical time, average static pressure, mass flow rate, and so on.
• Images — for example, plots generated during results processing.

Collected properties are grouped as shown in the tree in the Document tree pane. Note that the structure of this tree partially resembles the FloEFD model tree, but it can skip some nodes (usually nonparametric) which cannot be used in a workflow. For a full description of the tree structure created by the block, see section Structure.

In the tree you can select nodes to map them to input and output ports. When you select a node, a new corresponding variable appears in the Variables list. The Ports column in this list shows which ports (input, output, or both) are created for the corresponding tree node.

### Structure¶

The FloEFD block can work with analysis properties in FloEFD projects: initial conditions, boundary conditions and heat sources’ parameters, goal values and histories, as well as images generated during batch results processing. Analysis properties are available for all projects in all configurations.

If you use FloEFD Standalone or FloEFD for PTC Creo, the block can also access geometry properties in SolidWorks and Creo models. The structure of the geometry model properties tree is similar to the document tree structure in the SolidWorks and Creo blocks.

The analysis tree structure is as follows:

• flow analysis
• configuration name
• project name
• input data
• initial conditions
• list of parameters…
• boundary conditions
• boundary condition name
• list of parameters…
• … more boundary conditions
• heat sources
• heat source name
• list of parameters…
• … more heat sources
• goals
• @physical time
• goal name
• value
• history
• … more goals
• batch results processing
• list of images…
• … more projects
• … more configurations

For image names to be included in the document tree, image files must be located in the project directory. Images must be saved in the PNG format.

### Node Properties¶

This section describes only the flow analysis subtree. For the model subtree, refer to the SolidWorks and Creo blocks documentation.

Hovering a document tree node shows a tooltip with node’s properties: type, value and read-only state.

Type

Goal histories and @physical time are of RealVector type, images are of File type, nodes in the input data subtree are of the following types:

Other nodes are RealScalar. When you select a node in the project tree, it is mapped to a port of this type.

Value

Shows input parameter values and goal values if project results are available. Note that the values shown here, as well as the values that FloEFD reads from and sends to ports, are always in SI units.

If you select a read-only node in the document tree, it is always mapped to an output port. Writeable nodes are mapped to input ports by default. All nodes in the input data subtree are writeable, and other nodes are read-only.

## Options¶

Analysis actions

Defines the flow analysis actions to perform.

Value: Rebuild and solve, BRP only, Rebuild only Rebuild and solve

New in version 6.13.

• Rebuild and solve — rebuild the project, run calculation, then run batch results processing.
• BRP only — rebuild the project, skip calculation, run batch results processing.
• Rebuild only — rebuild the project, skip calculation and batch results processing.

Note that the block always tries to output flow analysis results selected in the document tree. If you skip calculation and the project does not contain any saved results, the block raises an error.

Error handling behavior

The action to perform, if the block encounters an error.

Value: stop workflow, output defaults and signal, output signal only stop workflow

When set to stop workflow, the block simply reports an error and the workflow interrupts.

If set to output defaults and signal, the block suppresses the error. Output ports in this case send values assigned to them (the defaults), and the done port outputs a False value (the signal). Note that the block automatically assigns values to output ports that are created when you select document tree nodes. The values are:

The output signal only behavior means to output only the False value to done; nothing is output to other ports.

FloEFD document file

Path to the FloEFD document file. A document file is a SolidWorks, Creo or NX model containing FloEFD project.

Value: path string empty

Stores the path to the selected document file. Can also be used to set this path instead of selecting a document file on the Configuration tab.

FloEFD wait timeout

The time in seconds to wait for the FloEFD application to become available in case it is currently used by another FloEFD block.

Value: positive integer 300

Several FloEFD blocks in a workflow can start simultaneously — this is typically the case when there is a parallel Composite block containing FloEFD blocks. In this case, only one of the FloEFD blocks can connect to the FloEFD application at a time (this is a FloEFD limitation). Other blocks have to wait until FloEFD becomes available, and will do so until the timeout is exceeded.

Exceeding the timeout raises an error which always stops the workflow. That is, the timeout error is never suppressed regardless of the Error handling behavior setting. The workflow is not terminated immediately: all blocks that are currently running continue their execution, and the workflow stops after they finish (soft stop). Note that setting the timeout to 0 will always trigger workflow stop if a FloEFD block with zero timeout starts while there is another FloEFD block running. The running block will be allowed to finish execution in this case, and the workflow will be stopped by the timeout error from the second block.

FloEFD.Product

The FloEFD product to use.

Value: Auto, FloEFD Standalone, FloEFD for PTC Creo, FloEFD for NX Auto

New in version 6.11.

This option allows to choose the product to use, if several FloEFD products are installed. If set to Auto, the block finds all installed products and chooses the appropriate product to open the selected document file.

FloEFD.Version

The FloEFD version to use when building the document tree and running the workflow.

Value: "latest" or a string with the version number (for example, "2019.4" or "17") "latest"

The version of FloEFD specified by this option is used both when editing the workflow (the block launches FloEFD to build the document tree) and when running (performing FloEFD analysis). Default ("latest") automatically selects the newest version.

Note

If you have multiple versions of FloEFD installed, it is required to select the most recently installed version. The recently installed version is not necessarily the version with greatest number. For example, it is possible that FloEFD 16 was installed later than FloEFD 17. In this case, you will have to set FloEFD.Version to "16", otherwise the workflow will not run properly.

Note also that if you build the document tree and then change FloEFD.Version, the block will not be able to rebuild the document tree until you restart pSeven. See the Known Issues section for details.

Max steps

The maximum number of times that the block can use the same FloEFD application instance.

Value: positive integer 50

Normally, the FloEFD application started by the block is not closed after the block finishes (that is, until the workflow stops). Subsequent startups of the block use the same application instance to save time. However, each next model rebuild and analysis run in FloEFD can take more time; due to this it can be useful to restart the application sometimes. This option sets the number of block startups that are allowed to use the same running FloEFD instance. When the limit is reached, FloEFD is restarted.

This option works only when FloEFD is started by the block. If the block connects to an instance of FloEFD that you have started manually, this instance is never restarted.

Setting this option to 1 may also help if you get a Visual C++ runtime error when running a workflow with a FloEFD block — see section Known Issues for details.

NX.Model name

The name of the model to use, if the document file is zip archive.

Value: string, file name with extension (for example, "assembly.prt") empty string

New in version 6.11.

If you want to update geometry in NX model, you should use the NX block. NX block saves updated model in .zip format, if the model is an assembly. When you use zip archive as a document file in the FloEFD block, you must specify this option for the block to know which model from the archive to open.

Path to CAD application

Path to Creo or NX executable to run with FloEFD.

Value: path string empty

New in version 6.11.

This option allows to choose Creo or NX version to use, if several versions of CAD application are installed. The value of the option depends on FloEFD product in use:

• FloEFD Standalone: the option is ignored,
• FloEFD for PTC Creo: absolute path to parametric.exe,
• FloEFD for NX: absolute path to upgraf.exe.

If not set, FloEFD uses default application (depends on FloEFD settings).

SolidWorks.Consider as failure

When to consider model rebuild as failed.

Value: errors, errors and warnings errors and warnings

After rebuilding a part or an assembly, the block checks SolidWorks’ What’s Wrong. By default, any error or warning in What’s Wrong is considered as a failure to rebuild. You can skip warnings by changing this option to errors.

The Error handling behavior option controls further behavior in case of failure.

Solver.CPUs

Number of processors or processor cores to use for calculation.

Value: use all or a string containing number (for example, "8") use all

New in version 6.11.

Solver.Host

Name or IP address of the network computer on which calculations are run.

Value: string empty string

New in version 6.11.

If not set, the solver runs on the current computer.

Solver.Port

Port number of the network computer.

Value: integer in range $$[1024, 65535]$$ 30951

New in version 6.11.

## Known Issues¶

This section describes known issues related to using the FloEFD block and their possible workarounds.

### Multiple FloEFD Versions¶

It is not recommended to install multiple versions of FloEFD on the same computer if you intend to use the FloEFD block, as this can lead to various issues while editing block configuration or running the workflow.

• If you build a document tree in the block configuration, then change FloEFD version using the FloEFD.Version option and try to rebuild the tree, pSeven is likely to crash. To avoid this crash, you will have to restart pSeven before rebuilding the tree.

• Upon installation, FloEFD replaces some of its common libraries used by pSeven, and certain versions of these libraries (for example, installed with FloEFD 16 and 17) are not compatible. As a result, the block becomes unable to use the FloEFD application when you run a workflow and fails to load the values of output variables from a FloEFD project. Some known signs of this issue are:

• pSeven crashes when you try to build the document tree.

• Boundary conditions and heat sources are not shown in the document tree in block configuration.

• Multiple error messages in the workflow log, like the following:

Project <FloEFD project name>: parameter <parameter name> in initial conditions is skipped
since it has unknown dependency type.

• FloEFD analysis seems to finish, but an error message like the following appears in the log:

block 'FloEFD' has errors:
Failed to load results of the project <FloEFD project name>.


These errors may happen, for example, if you install FloEFD 16 followed by FloEFD 17 and set the FloEFD.Version option value to 16. The FloEFD block can use only the most recently installed version of FloEFD — in this example, FloEFD 17. As a workaround, you can change the order of FloEFD installations — for example, install FloEFD 16 after FloEFD 17 — and always set FloEFD.Version to the version which was installed last.

Since such issues are often hard to investigate, the recommended workaround is to never install multiple versions of FloEFD on the computer which runs pSeven. When possible, install only the version you are going to use with the FloEFD block.

### Unsupported Goal Names¶

It is known that some FloEFD versions incorrectly export the project information if there are goals with names containing one of the following characters: < > & ' ". In such cases the block is unable to build the document tree since it cannot read information about goals. This error is identified by the following message:

Cannot build document tree.
Failed to parse XML file with information about goals.


If you see this error, check the names of goals in your FloEFD project and remove the characters noted above.

### Visual C++ Runtime Error¶

A Visual C++ assertion error may be raised when running a workflow with a FloEFD block. This error is related to problems with Microsoft Visual C++ installation and sometimes occurs even when running FloEFD normally (starting the application manually, not from pSeven). It is indicated by an error message which looks like the following:

If you have encountered this error and your workflow is already running, you can click the ignore button in this error dialog. Usually the workflow continues normally — however, you will have to manually ignore all subsequent occasions of this error too.

To resolve the problem, you can try to reinstall the Microsoft Visual C++ redistributable package supplied with FloEFD (if your installer provides one). Otherwise, a possible workaround is to set Max steps to 1 — this does not fully fix the problem, but often allows to avoid the error.

### FloEFD for NX Error on Exit¶

FloEFD for NX sometimes fails to close NX correctly, after which it hangs and displays an error message like the following:

This error can occur only when the block tries to close the FloEFD application — for example, when the workflow finishes or the Max steps limit is reached. The error does not affect results, but if the workflow has not finished yet, the error dialog has to be dismissed — otherwise the workflow cannot continue.

In this situation, the FloEFD block handles the error by automatically terminating all NX processes with a timeout of 10 seconds. You can also terminate the NX process manually by selecting “Close the program” in the dialog. The workflow continues normally in both cases.

A partial workaround to this issue is increasing Max steps. This reduces the number of the FloEFD application restarts, so the error is less likely to occur.