Release notes

APM 1.1.0 (2 November 2024 - latest)

  • Improved control surface morphing algorithm. Control surface element detection was improved for control surfaces with swept hinges.

  • Added wake_particle_smoothing_radius option in the configuration file.

  • Minor performance improvements.

APM 1.0.9 (2 March 2024)

  • Added support for UCD and WRL mesh formats. By default, APM will try to read a mesh in STL format. If no mesh in STL format is present, APM will try to read a mesh in UCD format. If no mesh in UCD format is present, APM will try to read a mesh in WRL format. The UCD and WRL formats support structured and unstructured elements. Check the corresponding section in the documentation for more information.

APM 1.0.8 (1 October 2023)

  • Added an extended_output option in the conf file. If the extended_output option is set to 1 each panel force and moment vector will be appended to the Paraview and Tecplot output files.

APM 1.0.7 (9 February 2023)

  • Added an x-z symmetry option to the APM solver. The symmetry option reduces the solution time and the required memory by a factor of 2. Check the corresponding section in the documentation for more information.

  • Added Trefftz plane analysis option for steady and unsteady simulations. Check the corresponding section in the documentation for more information.

  • Added a secondary APM executable where the solution is performed with double-precision floating point numbers. Note that for the same number of panels, the double-precision APM executable will require more memory.

  • Support for hybrid meshes - made up of quadrilateral and triangular panels.

  • Modified the body-to-wind transformation so CL, CD and CC follow the commonly adopted convention [1].

  • Various bug-fixes.

APM 1.0.6 (4 January 2022)

  • Added support for multiple wake-body intersections. E.g. intersections between a horizontal tail and a fuselage and a main wing and a fuselage.

  • Added a "mirror" option for each control surface. By default, the value of the mirror option is 1. A value of 1 will mirror the control surface across the x-z body-fixed frame. If mirroring is not required the value of the mirror option can be set to 0.

APM 1.0.5 (10 October 2021)

  • Further improved performance by parallelising any remaining "serial" for loops

  • Improved the panel neighbour search algorithm

  • Added a feature where a .vtu or .dat files are created if the trailing edge search algorithm fails. The files can be opened with ParaView or Tecplot and used for debugging.

  • Added a feature in the .stl file reader which rounds the coordinates in the file to the 6th digit after the decimal point

APM 1.0.4 (8 August 2021)

  • Improved performance by removing unnecessary copying

  • Removed the .res output format

  • Changed the integrated loads file format from .ires to .loads

  • Removed email and password authentication

  • Removed the .mesh file format.

  • Added a custom .stl file format that supports both structured and unstructured meshes.

APM 1.0.3 (9 May 2021)

  • Fixed bugs in the restart from checkpoint feature

  • Added a new authentication method (using a licence key). The authentication method uses an environmental variable "APM_KEY".

APM 1.0.2 (27 May 2020)

  • Fixed bugs in .conf file reader and in the JSON file writer

APM 1.0.1 (17 April 2020)

  • Added a .json output format. JSON results can be viewed in the APM Viewer available at https://apm.aviumtechnologies.com/viewer

  • Added a new method for pressure calculation (LSH) which uses inverse weighted distance interpolation and linear shape functions

  • Renamed the "high_order" option in the .conf file to "doublet_gradient_scheme". The doublet_gradient_scheme setting accepts the following values:

    • 0 - the pressure is calculated with the CHTLS scheme

    • 1 - the pressure is calculated with the WLS scheme

    • 2 - the pressure is calculated with the LSH scheme

    • 3 - the pressure is calculated with the FD scheme (the FD scheme can only be used for models with quadrilateral panels

APM 1.0.0 (30 October 2019)

  • Initial release

Testing new releases

Unit and integration testing is performed for each new APM release. Every portion of the software is tested - from influence calculation functions to gradient functions and helper functions. The solver and preprocessor are also tested by running a series of simulations (test cases).

...
[----------] 7 tests from HelpersTests
[ RUN      ] HelpersTests.DegToRad
[       OK ] HelpersTests.DegToRad (0 ms)
[ RUN      ] HelpersTests.RadToDeg
[       OK ] HelpersTests.RadToDeg (0 ms)
[ RUN      ] HelpersTests.Sign
[       OK ] HelpersTests.Sign (0 ms)
[ RUN      ] HelpersTests.Factorial
[       OK ] HelpersTests.Factorial (0 ms)
[ RUN      ] HelpersTests.LSQR
[       OK ] HelpersTests.LSQR (14 ms)
[ RUN      ] HelpersTests.EllipticKEPI
[       OK ] HelpersTests.EllipticKEPI (0 ms)
[ RUN      ] HelpersTests.CHTLS
[       OK ] HelpersTests.CHTLS (0 ms)
[----------] 7 tests from HelpersTests (40 ms total)

[----------] 1 test from DoubletGradientTests
[ RUN      ] DoubletGradientTests.FDWLSLSFCHTLSTests
[       OK ] DoubletGradientTests.FDWLSLSFCHTLSTests (0 ms)
[----------] 1 test from DoubletGradientTests (3 ms total)

[----------] 1 test from ConfigTests
[ RUN      ] ConfigTests.ReadTest
[       OK ] ConfigTests.ReadTest (6 ms)
[----------] 1 test from ConfigTests (8 ms total)

[----------] 1 test from ActuatorDiskTests
[ RUN      ] ActuatorDiskTests.VelocityInfluenceTest
[       OK ] ActuatorDiskTests.VelocityInfluenceTest (0 ms)
[----------] 1 test from ActuatorDiskTests (3 ms total)

[----------] 12 tests from InfluenceTests
[ RUN      ] InfluenceTests.NearPotentialInfluenceTest
[       OK ] InfluenceTests.NearPotentialInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.FarPotentialInfluenceTest
[       OK ] InfluenceTests.FarPotentialInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.NearDoubletVelocityInfluenceTest
[       OK ] InfluenceTests.NearDoubletVelocityInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.NearSourceVelocityInfluenceTest
[       OK ] InfluenceTests.NearSourceVelocityInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.FarDoubletVelocityInfluenceTest
[       OK ] InfluenceTests.FarDoubletVelocityInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.FarSourceVelocityInfluenceTest
[       OK ] InfluenceTests.FarSourceVelocityInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.NearDoubletVelocityGradientInfluenceTest
[       OK ] InfluenceTests.NearDoubletVelocityGradientInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.FarDoubletVelocityGradientInfluenceTest
[       OK ] InfluenceTests.FarDoubletVelocityGradientInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.NearSourceVelocityGradientInfluenceTest
[       OK ] InfluenceTests.NearSourceVelocityGradientInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.FarSourceVelocityGradientInfluenceTest
[       OK ] InfluenceTests.FarSourceVelocityGradientInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.ParticleVelocityAndVelocityGradientInfluenceTest
[       OK ] InfluenceTests.ParticleVelocityAndVelocityGradientInfluenceTest (0 ms)
[ RUN      ] InfluenceTests.SpecialCasesInfluenceTest
[       OK ] InfluenceTests.SpecialCasesInfluenceTest (0 ms)
[----------] 12 tests from InfluenceTests (25 ms total)

[----------] 11 tests from PreprocessorTests
[ RUN      ] PreprocessorTests.AGARD
...

References

[1] Brian L. Stevens and Frank L. Lewis. "Aircraft control and simulation / Brian L. Stevens, Frank L. Lewis," Wiley, New York 1992.

Last updated