Optimizing Surface FFT Calculation
You can create surface time histories faster if you use in-core storage. In addition, working with a static mesh provides the opportunity to save computational resources.
- To use in-core storage, select the In-core surface FFTs property. node and activate the
Limitations on Data Storage
The technique described here activates in-core storage for surface time histories and surface FFTs. It can provide optimization during batch-type workflows. At the same time, for these quantities (when applied to the surface mesh), intermediate results are not stored in a file but kept in memory. This approach has two consequences:
- The time taken to perform the FFT is greatly reduced (by at least 10 times, per observations).
- Results do not remain consistent in a saved simulation file and must be recalculated.
In a batch run, as the generated results are not serialized they must be exported
during the simulation run, for example as hardcopies (.png
) or
tables (.csv
). Once the simulation is saved and closed, all FFT
results are lost and must be recalculated. This is acceptable for workflows where
you have decided beforehand what to export.
Independent FFT Updating for In-Core Workflows
The more common method for generating FFT data is:
- Set up a surface time history.
- Set up a Surface FFT dependent on the time history.
- Update the Surface time history to generate data.
- Update the Surface FFT to generate data.
As all data is stored in-core, for a time history of N steps and an FFT on it, with B analysis blocks you need to store the following:
- Data for the time history which has size proportional to ~ N.
- Data for the FFT which has size proportional to ~ N/B.
This storage allows you to visualize all states in the time history and the FFT.
However, when N is large (values in the 1000s or 10000s) this approach can consume all the memory, even on larger workstations. For these situations an alternative exists, independent updating of surface FFT nodes:
- Set up a surface time history.
- Set up a surface FFT dependent on the time history.
- Update the surface FFT to generate data.
As all data is stored in-core, for a time history of N steps and an FFT on it with B analysis blocks you need to store data for the FFT which has size proportional to ~ N/B.
This technique allows you to visualize all states in the FFT only. The memory requirements are much reduced from those of the more common workflow. Moreover, as memory usage is proportional to ~ N/B, you can reduce it further by increasing B.
Optimizing with Static Meshes
The more common method for creating these time histories involves data mappers due to the need to account for mutating meshes. However, with a static mesh, it is possible simply to copy the data, saving considerable computational resources.
-
Select the In-core surface
FFTs property.
node and activate the This step makes the Static Mesh Copy option available.
- Select the surface time history node, for example h(s) 1, and set the Interpolation Method property to Static Mesh Copy.
Limitations on Inputs to Surface Time History
When the Static Mesh Copy option is active you must:
- Select a single
source
for mapping and a singletarget
. - Set
source == target
, that is, map from a single source to itself.
Otherwise Simcenter STAR-CCM+ generates a failure message such as:
Invalid input: static copy requires the a single source/target, where source == target
When the input source and target are correctly configured then you can construct a time history. Output during this process, which facilitates a faster simulation run, resembles the following:
Representation : multipart_1b1ps, Import State : State 1.
Static copy of field Pressure for time 0.001000
Representation : multipart_1b1ps, Import State : State 2.
Static copy of field Pressure for time 0.002000
...
By contrast, the more common technique using mappers often includes the following output:
Map and export data at time: 0.001
Map and export data at time: 0.002
...
The surface that is being copied should not undergo any changes to geometry (due to remeshing or reimprinting for example). If such a change exists, expect an error message such as:
Invalid cache for static copy, cannot be performed.
Such an error is not expected for a static mesh, provided there is no mesh motion.