Dynamic Memory Management

Introduction

The first version of Dynamic memory management has been integrated in Flux 2020 in Beta version. By default, User (or static) memory was activated in supervisor options. For Flux 2021, we continued to work on algorithms to improve the robustness and performance of Flux with the Dynamic memory mode.

Now, in Flux 2021, Flux works fully in dynamic memory, and this feature is no longer in Beta mode.

Warning: The dynamic memory working process (with memory allocation/releasing) has a light impact on the performances. If you notice an abnormal execution time with dynamic memory (and not in static memory), you can contact the support (code optimizations are possible). The default memory mode is still set to User but we encourage you to use the Dynamic mode extensively and give us feedback. We plan to continue working on the robustness an the performance of the dynamic memory, our goal being to have the Dynamic mode by default for the next Flux 2021.1 release.

Supervisor options

User mode:



Dynamic mode:



Limitations lifted

From Flux 2021, dynamic memory can be used in the following configurations (before, it was working only with user memory):
Configuration Information
Do coupled simulation with: Activate The coupling component "*.F2STA" generated from Flux project in dynamic memory will contains the information of numerical and character memory set to 0, so that the Flux project launched at the cosimulation will be in dynamic
HyperStudy Same as Activate, with " *.F2HST" HyperStudy component
Simulink Same as Activate, with " *.F2MS" Simulink component
Compose Set dynamic memory by configuring the server with numerical memory set to "0":
serverUid =
        FMP_startLocaleServer(FLUX2D_64,'../',strcat(NUMERICAL_MEMORY_LABEL,'0'))
Use FeMT Same as Activate, with " *.FEMT" FeMT component.

User will see in the inputs list a numerical memory set to "Dynamic" in ready only.

The tests will be executed in dynamic memory (with or without CDE).

Solve with CDE (computing distribution engine) All the distributed computations will be launched in the same memory mode (dynamic / user) as the master Flux project
Use PBS for distributed computations In the Compute Manager, select in the inputs the dynamic memory to launch Flux computations in this mode.
Note: When an external application calls Flux, the value of "0" in the numerical and character memories will launch Flux in dynamic memory.

Additional information about Delaunay / MeshGems meshers

All Flux algorithms work now with dynamic memory, except Delaunay mesher (not default mesher). Only MeshGems mesher is available in Dynamic memory. If user wants to use specifically Delaunay, he has to switch to User (or static) memory in supervisor options.

Some information are presented here on this topic:

  • Old Flux projects with Delaunay mesher will be opened with MeshGems mesher selected.
    Note: Reminder: MeshGems mesher respects surface mesh without inserting nodes. User has to pay attention when defining the surface mesh, especially when using compressible mechanical set leading to small airgaps.
  • In Flux 2021, most Flux examples are executed with MeshGems, except following examples which are for the moment executed with Delaunay (the conversion to MeshGems will be done in the future versions). To be able to execute them, user has to switch to user memory mode in supervisor options. The examples executed with Delaunay are:
    • 3D / Technical tutorials / Magneto Static application - Contactor
    • 3D / Technical tutorials / Magneto Static application - Sensor
    • 3D / Technical tutorials / Magneto Thermal application - Bridle
    • 3D / Technical tutorials / Rear-view mirror motor
    • 3D / Technical tutorials / Rotating motion
    • 3D / Technical tutorials / Translating motion
    • 3D / Application Note / Axial flux motor
    • 3D / Application Note / Claw pole machine
    • 3D / Application Note / Coaxial tubesThermalRadiation
    • 3D / Application Note / Contactless inductive power transfer
    • 3D / Application Note / Inductive proximity sensor
    • 3D / Application Note / PowerTransformer
    • 3D / Application Note / Three phases transformer overlay
    • 3D / Application Note / Wireless power transfer
    • 3D / Application Note / Wound torus
    • 3D / Application Note / Brushless IPM motor (Step Skew)
    • 3D / Application Note / Switched Reluctance Machine
    • 3D / Co-simulation / Flux-Flux: Magnet magnetization
    • 3D / Co-simulation / Flux-Activate: translating motion
    • 3D / Specific Feature / Cogging torque: meshing method