ETK-nD Node

This node is located in the Process chain elements > Output nodes folder in the Modules pane.

  • This node generates optiSLang 3D Post-Processing (oSP3D) database files (.sdb) for field data of a single design. It works based on customizable plugin scripts.

  • This node can also load Ansys Mechanical results files and convert them to the *.vtu or .vtp format.

ETK-nD Plugins

  • The ETK-nD plugins are customizable Python scripts located in the plugins folder inside of the ETKnD integration folder.

  • Each plugin script represents an SDB generation routine tailored for a particular dataset format to read and interpret. Three default plugins are installed with the integration:

    • 2D Grid - This plugin requires very specific properties of its target files and interpret the given data in a specific way. It can be used as a reference for custom plugins.

    • CSV - This plugin loads higher dimensional data and stores into .sdb files uisng optiSLang 3D Post-Processing (oSP3D).

    • RST to VTU/P - This plugin can load Ansys Mechanical results files and convert them to the *.vtu or .vtp format. The whole results file or a subset can be converted using scoping functionality of the plugin.

  • The plugins internally use the Python API of oSP3D for the .sdb file generation. Additional information can be found in the oSP3D Script API Documentation located on the Ansys API Docs website.

  • To create a new custom plugin, you can add a new Python script to the plugins folder and implement the get_name and create_sdb methods (see the default plugins for reference and interface description below). To implement create_sdb, consult the oSP3D Python API.

  • When selecting the custom plugin in the node, a few checks will automatically be performed to make sure the script is valid and compatible with the node. The result of this check is displayed at the bottom of the user interface.

ETK-nD/Field Data Collector Workflow

With the help of the ETK-nD and Field Data Collector nodes, you can graphically program the SDB generation routine in a two-step process:

  1. Create a single-design SDB in each design folder using the ETK-nD node.

  2. Convert many single-design SDBs results files into a single merged SDB or Twin Builder format using the Field Data Collector node.

This section describes the first step. See Field Data Collector (FDC) Node for additional information.


Note:  The ETK-nD node "RST to VTU/P" plugin produces a VTP/VTU file instead. The Field Data Collector node cannot read this file, so this workflow is not applicable for the ETK-nD "RST to VTU/P" plugin.


2D Grid Plugin

  • Higher-dimensional datasets are treated with optiSLang 3D Post-Processing (oSP3D). oSP3D databases (SDBs) are stored as .sdb files.

  • See the ETK-nD/Field Data Collector Workflow section for more information.

Setup

  1. Place an ETK-nD node into the Parametric system.

  2. Select a suitable reference file and adjust the absolute or relative path mode.

    The node expects that a file with the same name (or the same name and relative path) exists in each design directory at the time of execution. The path of the file inside the design directory is forwarded to the SDB generation routine.

  3. Select the "2D Grid" plugin from the Output generation plugin drop-down list.

  4. Optionally, define a name for the result output file. By default, the node will produce the same name as the input file.

Settings

NameInstallation DefaultDescription
Output generation plugin2D GridShows the plugin that will generate the output.
Output filename Specify the filename for the resulting file. Will default to the input filename if left blank.

CSV Plugin

How it Works

  • Higher-dimensional datasets are treated with optiSLang 3D Post-Processing (oSP3D). oSP3D databases (SDBs) are stored as .sdb files.

  • See the ETK-nD/Field Data Collector Workflow section for more information.

Setup

  1. Place an ETK-nD node into the Parametric system.

  2. Select a suitable reference file and adjust the absolute or relative path mode.

    The node expects that a file with the same name (or the same name and relative path) exists in each design directory at the time of execution. The path of the file inside the design directory is forwarded to the SDB generation routine.

  3. Select the "CSV" plugin from the Output generation plugin drop-down list.

  4. Optionally, define a name for the result output file. By default, the node will produce the same name as the input file.

Settings

NameInstallation DefaultDescription
Output generation plugin2D GridShows the plugin that will generate the output.
Output filename Specify the filename for the resulting file. Will default to the input filename if left blank.
Delimiters 

Specify delimiters in provided result file

Begin reading from line1

Specify skipped lines

Column containing … coordinates 

Specify nodes XYZ coordinates columns (if provided)

Column containing data values 

Specify XYZ results columns and resulting field names

Use index values from file 

Set this option if numbering of the nodes is included and is supposed to be preserved

Column containing node indices If Use index values from file is selected, specify the column that contains indices.

RST to VTU/P Plugin

This plugin can load Ansys Mechanical results files and convert them to the *.vtu or .vtp format. The whole results file or a subset can be converted using scoping functionality of the plugin.

Support for results files:

  • Static structural

  • Transient

  • Modal

  • Thermal steady

  • Thermal transient

  • Limited support: Harmonic

Setup

  1. Place an ETK-nD node into the Parametric system.

  2. Select a suitable reference file and adjust the absolute or relative path mode.

    The node expects that a file with the same name (or the same name and relative path) exists in each design directory at the time of execution. The path of the file inside the design directory is forwarded to the SDB generation routine.

  3. Select the "RST to VTU/P" plugin from the Output generation plugin drop-down list.

  4. Optionally, define a name for the result output file. By default, the node will produce the same name as the input file.

Settings

NameInstallation DefaultDescription
Output generation plugin2D GridShows the plugin that will generate the output.
Output filename Specify the filename for the resulting file. Will default to the input filename if left blank.
Export all results Use Scoping.
Export to VTU/VTP formatVTU

VTU result is created always as an intermediate result.

Load RST 

Load data from result file path:

  • provides basic info about the result in field below

  • necessary to allow selection of a subset of the result file using the "Scoping" functionality on the right-hand side

Scoping section 

Create a scoping:

  • specify name, result type, (component), and result set

  • add scoping to the resulting subset that is to be extracted and converted

Selected Entries field lists the created scopings

Run Options

This node has general Run Options. The number of supported options is individual for each node.

Troubleshooting

IssueSolution
The node does not offer a plugin for my data format.The installation only contains plugins that work with specific data formats. You can create custom plugins for your use-case; see ETKnD Plugins.
The default plugin does not extract the data I need.The 2D Grid plugin extracts only a subset of data. You can adapt the corresponding code in the script or create a custom plugin.

Versions and Requirements

  • The ETK-nD node requires optiSLang 2023 R1 or later.

  • The ETK-nD node requires optiSLang 3D Post-Processing (oSP3D) 2023 R1 or later.

  • When needed, optiSLang will load oSP3D of the same version.

Interface description

`.py` file requirements:
------------------------
- implement `get_name()` method returning plugin's name
- implement `create_sdb(*kwargs)` method


`.qml` file requirements:
-------------------------
- QML file is not required
- additional plugin settings (which are supposed to be passed to the plugin's Python method) can be specified in QML file
- the following methods must be used to store and retrieve plugin's settings (see docstrings below):
	- `getPluginBackendSettings(pluginName, valueName)`
	- `setPluginBackendSettings(pluginName, valueName, value)`
- another modification/access to backend settings is not permitted in order to keep data consistent for all plugins


/**
 * Get the plugin setting value from the backend settings object.
 * 
 * Use this method for plugin development. This method ensures data consistency for all plugins.
 * @param  {string}  pluginName   The name of the plugin. Must be consistent with value returned 
 *                                by get_name() method implemented in plugin Python code.
 * @param  {string}  valueName    Name of the setting.
 * @return {*}                    Value of the plugin setting.
 */
function getPluginBackendSettings(pluginName, valueName)


/**
 * Set the plugin setting value to the backend settings object.
 * 
 * Use this method for plugin development. This method ensures data consistency for all plugins.
 * @param {string}  pluginName   The name of the plugin. Must be consistent with value returned 
 *                               by get_name() method implemented in plugin Python code.
 * @param {string}  valueName    Name of the setting.
 * @param {*}       value        Value of the setting.
 */
function setPluginBackendSettings(pluginName, valueName, value)