Changelog
v5.7.0
Library
- Modified MatrixFreeOp library switch initialisation to use BOOST_PP (!1794)
- Fix memory-leak with LowEnergyBlock preconditioner for time-updated matrices (!1627)
- Fix Fourier expansion integration weights are related test (!1803)
- Separate MeshGraph input/output functions into a new class (!1778)
- Fix AdaptiveSFD for MPI (!1821)
IncNavierStokesSolver
- Fix initial and boundary conditions in the moving reference frame (!1692, !1820)
- Fix memory-leak for the Mixed_CG_Discontinuous projection when initializing the traceMep (!1806)
- Add synthetic turbulence generation for the incompressible solver (!1664)
ShallowWaterSolver
- Implement implicit time-discritization (!1784)
NekMesh
- Added revolve module (!1825) FieldConvert
- Add vortexinducedvelocity module to compute the vortex-induced velocity (!1824)
Miscellaneous
- Use std::stod instead of boost::lexical_cast (!1819)
Documentation
- Add initial documentation for the IncNavierStokesSolver (!1822)
v5.6.0
Library
- Clean-up Set_Rhs_Magnitude function in NekLinSysIter (!1729)
- Consistently use template parameters in VmathArray (!1748)
- Fix issue with CMake and zlib versions >= 1.3.0 (!1744)
- Add 1D demo and test of h-type convergence for a CG projection. (!1738)
- Add 2D projection demo and tests following 1D added in MR !1738. (!1762)
- Tidy up tolerance in NekLinSystIter and NekNonlinSysIter solvers (!1722)
- Enable varcoeffs for Collections (!1701)
- Fix misplaced " in Nektar++Config.cmake (!1742)
- Further tidy-up in linear solver (!1761)
- Use FwdTrans in UnsteadySystem when using Parareal (!1785)
- Automate deployment of README.md to dockerhub (!1786)
- Fix memory leak with Block preconditioner for time-updated matrices (!1737)
- Support for implicit sliding meshes (!1787)
- Fix compilation issue with OpenCASCADE 7.8.0 (!1799)
- Fix MPI communicator for Parallel-in-Time (!1801)
- Fix warnings issued by MSVC compiler in LibUtilities and StdRegions (!1740)
- Fix Parareal convergence monitoring (!1802)
- Avoid copying input/output to/from padded aligned arrays in MatrixFree operators(!1783)
CompressibleFlowSolver
- Complete second Frechet derivative implementation (!1761)
- Add conditional updating of elemental Mass and Laplacian matrices for LinearADR matrices (!1766)
- Added routine to order expansion in an optimal manner for MatrixFree/Collection ops (!1770)
- Fix PFASST I/O and pre-initialize coarse preconditioner for Parareal (!1749)
- Remove collection offset arrays since no longer required (!1771)
- Fix summary output (!1779)
- Update Docker images to use bookworm (!1775)
- Update
clang-tidy
andclang-format
to v16 (!1777) - Add coverage metric capturing (!1776)
ShallowWaterSolver
- Refractoring to reduce code duplication (!1782)
NekPy
- Add binding to NekPy to check of geometry elements are valid (!1755)
- Update NekPy to more modern packaging (!1747)
- Add wrapper for selected SolverUtils classes, particularly Filter (!1379)
- Add VTK support for OutputVtk module (!1379)
- Add bindings for SolverUtils::EquationSystem and UnsteadySystem (!1752)
- Return native Python types when getting session variables and parameters (!1380)
NekMesh
- Fix optiKind flags in VarOpti for freenodes that are on more than a single curve / surface (!1597)
- Fix VarOpti Surface Node Sliding on the CAD in 2D (!1569)
- Add feature for r-adaption on user-defined CAD curves (!1349)
- Add feature for r-adaption on user-defined CAD curves (!1349)
- Add unit testing infrustructure and initial example (!1753)
- Added a custom cmake cache file to load defaults for building only NekMesh without the solvers (!1641)
- Extend peralign module to all types of meshes (!1702)
IncNavierStokesSolver
- Matrix-Free LinearADR operator for VCSImplicit and others (!1627)
- Make substepping normal velocity evaluation more efficient (!1795)
FieldConvert
- Add range function as an option in Xml Input, align python usage and start depracation of -r option (!1791)
v5.5.0
Library
- Fix Nektar++Config.cmake to use MPI_CXX (!1224)
- Redesign of Parareal and PFASST driver (!1613)
- Update default global system solver parameters for paralell-in-time (!1649)
- Add member function in MPI communicator to check if time-parallel is enable (!1647)
- Fixed FilterError for homogeneous expansions (!1640)
- Fix ForcingAbsorption for homogeneous expansions (!1650)
- Update AssemblyMap to reduce verbosity when using parallel-in-time (!1651)
- Tidy-up of Collection library (!1622)
- Tidy-up of I/O in BasicUtils (!1623)
- Fix local implementation of CG with Null preconditioner (!1658)
- Update to use C++17 nested namespaces (!1556, !1670)
- Fix a minor bug in ProcessWallNormalData (!1663)
- Fix Explist::v_GetNormals and GetElmtNormalLength (!1625)
- Replace
boost::random
withstd::random
(!1673) - Add a new feature of Lagrangian points tracking in parallel (!1666)
- Add Robin BC to xxt full solver (!1679)
- Update Parareal file output and tidy-up Parareal/PFASST interpolation (!1678)
- Move from
boost::filesystem
tostd::filesystem
(!1674) - Use
[[deprecated]]
attribute (!1682) - Fix QuadExp::v_ComputeTraceNormals(!1685)
- Replace
boost::thread
withstd::thread
(!1687) - Replace
boost::math::tgamma
bystd::tgamma
(!1686) - Remove
#include <boost/math/special_functions/fpclassify.hpp>
header (!1686) - Replace
boost::regex
withstd::regex
(!1676) - Update SDC scheme for implicit PFASST (!1659)
- Pre-allocate memory for GMRES (!1668)
- Update hdf5 read to only read in selected elements to reduce memory overhead (!1351)
- Remove arbitrary factor in
GlobalLinSysIterative.cpp
(!1694) - Some tidy-up in LinearAlgebra (!1699)
- Some further tidy-up in LinearAlgebra (!1700)
- Updated hdf5 to 1.12.3 (!1696)
- Remove redundant tolerance limiter in GMRES (!1707)
- Remove unused tolerance parameter in NekSys class and subclasses (1708)
- Avoid repeatly operator assignment in NekNonlinSysNewton class (!1709)
- Add an exact solution for GetLocCoords of straight-edge quad elements (!1704)
- Add sliding mesh capability (!1605)
- Remove MaxIterations parameter from AssemblyMap (!1710)
- Consistently use relative tolerance for GMRES (!1706)
- Fix use of absolute tolerance for iterative solvers (!1711)
- Move solver info loading form NekSys (and its derived classes) to the callers (!1716)
- Tidy physderiv and helmholtz in MatrixFreeOps (!1653)
- Remove time estimation for Parareal and PFASST drivers (!1691)
- Tidy and clarify implementation of Dirichlet boundary condition in GlobalLinSys (!1724)
- Remove unused file NekLinAlgAlgorithms.hpp (!1728)
ADRSolver
- Add support for spatially-constant, but variable direction, diffusion to ADRSolver. (!1669)
- Inline Vmath library (!1667)
- Refactor UnsteadyReactionDiffusion as a subclass of UnsteadyDiffusion (!1713)
- Tidy-up ADRSolver (!1715)
- Refactor UnsteadyAdvectionDiffusion as a subclass of UnsteadyAdvection (!1720)
- Update UnsteadyReactionDiffusion solver for explicit time-stepping (!1731)
- Refactor UnsteadyViscousBurgers as a subclass of UnsteadyInviscidBurgers solver (!1718)
CardiacEPSolver
- Fix cell model history point filter output after base class change (!1342)
- Add const qualifier to SetUniversalUniqueMap (!1644)
- Add safety check for FinTime parameter for parallel-in-time (!1652)
IncNavierStokesSolver
- Save BndElmtExpansion and avoid re-building (!1648)
- Add Simo-advection and a switch for Simo-/Dong-advection to VCSImplicit (!1630)
- Add a new feature of elasticaly mounted object using the moving reference frame (!1495)
- Some tidy-up (!1693)
- Fix memory leak in VCSImplicit due to matrix updating (!1688)
- Rename Simo-/Dong-advection to Extrapolated/Updated respectively for VCSImplicit (!1717)
- Update test for SuccessiveRHS parameter (!1727)
- Fix segmentation error in IncNavierStokesSolver when AeroForces filter is used (!1726)
- Added Examples in solvers/IncNavierStokesSolver/Examples, matching with the user-guide (!1723)
- Extend support for IO timer levels to IncNavierStokesSolver (!1732)
- Fixed issue with substepping when using mixed BCs (!1639)
CompressibleFlowSolver
- Add three subsonic inflow boundary conditions: EnforceEntropyPresure, EnforceEntropyVelocity, and EnforceEntropyTotalEnthalpy (!1398)
- Update implicit solver for implicit PFASST (!1659)
- Some tidy-up in the compressible flow solver (!1698)
- Fix ESDIRK scheme for compressible flow solver (!1690)
- Some further tidy-up in compressible flow solver (!1700)
Documentation
- Update instructions for VS2022 (!1714)
- Update ADRSolver user guide (!1730)
ShallowWaterSolver
- Reduce memory footprint of the Peregrine solver(!1680)
- Fix Peregrine solver for Parareal output(!1689)
FieldConvert
- Fix typo in user-guide and fix but for parallel-in-time FieldConvert (!1645)
- Fixed FieldConvert -m addfld (!1500)
- Add a new FieldConvert module to zero a plane in wavespace (!1632)
- Fix tecplot output for line and plane points (!1497)
CI
- Disable macOS Intel runner (!1655)
- Upgrade Win10 runners (!1656)
- Add
clang-tidy
support to CI for static analysis (!1556) - Remove some uncompiled files and add quality step to check (!1672)
- Add
clang-15
tester (!1671) - Update performance tests to use minimum execution time (!1733)
- Fix missing dependencies for clang-tidy and uncompiled-files jobs (!1736)
NekMesh
- Replace deprecated boost::filesystem functions (!1654)
- Remove deprecated AddTraceIntegral interface from ExpList.h (!1646)
Packaging
- Remove unnecessary Boost dependencies after C++17 migration (!1734)
Miscellaneous
- Add a particle tracker utilitiy using equation system infrastructure (!1310)
- Remove deprecated fs::copy_directory function call (!1662)
- Added a sample python script for wallnormaldata module (!1663)
- Replace boost::lexical_cast with std::to_string for integer variable (!1677)
- Use
[[maybe_unused]]
attribute in solvers (!1683) - Use
[[maybe_unused]]
attribute in library (!1684) - Fix sse2 SIMD bug (!1559)
- Improved the Incompressible NS section of User-guide (!1719)
v5.4.0
Library
-
Add unit tests for Polylib (!1533)
-
Add the absolution tolerance for the iterative linear system solver (!1549)
-
Redesign of Parareal driver (!1509)
-
Add PFASST driver (!1501)
-
Add local p-refinement functionality (!1508)
-
Tidy-up SDC schemes (!1550)
-
Add min/max and fmin/fmax function to the interpretor registry (!1552)
-
Fix a _m128d to _m128i conversion bug in sse2.hpp (!1551)
-
Register TimeIntegrationMethod to SessionReader (!1539)
-
Remove unecessary for loop in NekLinSysIterGMRES (!1554)
-
Generalize the use of size_t in TimeIntegration (!1555)
-
Fix convergence error in Fixed-point Jacobi algorithm (!1561)
-
Tidy-up NekLinSys (!1562)
-
Tidy-up TimeIntegration (!1505)
-
Fix Adams-Bashforth time integration scheme (!1558)
-
Remove unused Kernel directory (!1560)
-
Remove unused files in BasicUtils (!1564)
-
Fix convergence error in Fixed-point Jacobi algorithm (!1561)
-
Update parallel-in-time code base in fieldconvert (!1565)
-
Tidy-up Basis and Points classes (!1568)
-
Remove unused function GetKey in NekFactory (!1567)
-
Add new functionality and code improvements for the local p-refinement (!1571)
-
Fix v_Exscan compilation bug (!1566)
-
Tidy-up of comm class (!1572)
-
Tidy-up Nektar tolerances (!1570)
-
Tidy-up UnsteadySystem (!1579)
-
Fix StaticCond approach + GMRES when restarting (!1583)
-
Tidy-up NekManager (!1587)
-
Slightly reduce memory allocation in GMRES (!1586)
-
Tidy-up Advection class (!1580)
-
Tidy-up diffusion class and subclasses (!1581)
-
Tidy-up NekNonlinSys and fix some issues (!1563)
-
Avoid pre-allocating memory in GMRES (!1591)
-
Added a local space version of GMRES and ConjugateGradient (!1575)
-
Added a jacobi preconditioner building on diagonal impelemtation (!1575)
-
Add a priori convergence and null-input check to GMRES (!1590)
-
Some tidy-up in StdRegions (!1595)
-
Tidy-up/removed unused Lapack function definition (!1573)
-
Some Tidy-up in MatrixFreeOps (!1599)
-
Accelerate interpolation for regular and straight-edge elements (!1283)
-
Fix an indexing error in MatrixFreeOps (!1602)
-
Update Session File for Parallel-in-Time (!1516)
-
Partially fix hdf5 partition for Parareal (!1611)
-
Update Collection for Parareal-in-Time (!1607)
-
New version of CreateCollection using basisKey (!1603)
-
Remove unused Domain.cpp and Domain.h file (!1609)
-
Remove useless ReadExpressions and SubstituteExpressions function in sessionReader (!1608)
-
Corrected workspace size in triangle BwdTrans (!1610)
-
Reactivate Reactivate Movement_fixed_3D_stacked_cylinders_curved_hdf5_par test except on ARM MacOS (!1536)
-
Updated the PETSc version to v3.19.3 for THIRDPARTY_USE_PETSC, enabled local PETSc version usage (!1618)
-
Rename communicator in LinearAlgebra (!1612)
-
Add IProductWRTDerivBase operator for 3DH1D problems (!1483)
-
Full support of mixed-order elements in DG (!1606)
-
Refactoring collections for allowing variable output size inside the collections' operators, introduced PhysInterp1DScaled in Collections (!1620)
-
Use default keyword for destructor in Driver (!1624)
-
Add additional test for SDC time-integration(!1621)
-
Fix to compiler flags for MSVC (!1604)
-
Correct bug in scotch initialisation for substructuring (!1634)
-
Add ability to build up Movement objects programmatically (!1600)
-
Write out movement data to XML files (!1600)
CompressibleFlowSolver
- Fix AUSM3 Riemann solver and add tests to the CI (!1537)
- Set initial condition check points files to zero (0) (!1535)
- Prevent file overwrite with restart for the Compressible flow solver (!1540)
- Register Projection and GJPStabilisation in SessionReader (!1542)
- Redesign of AUSM Riemann solver class (!1577)
- Redesign of the compressible flow solver. Removal of RinglebFlow and IsentropicVortex subclasses (!1584)
- Redesign of PreconCfs class (!1578)
- Fix virtual functions in ContField class (!1616)
- Tidy-up Compressible flow solver print status (!1615)
- Update of for parallel-in-time (!1589)
- Fix some memory bugs for implicit compressible flow solver with LDGNS (!1617)
IncNavierStokesSolver
- Add an option to mask variables for the linear stability problem (!1280)
ShallowWaterSolver
- Fix NonlinearPeregrine solver due to a change of API (!1637)
FieldConvert
- Add option to use .csv files in pointdatatofld module (!1545)
- Add a new module to output power spectral in a given area (!1271)
- Add a new module to do field averaging (!1271)
IncNavierStokesSolver
- Register SolverType in SessionReader (!1541)
- Prevent file overwrite with restart for the IsentropicVortex solver (!1543)
- Fix GJP stabilisation for curved 3D elements (!1593)
- Enable SVV and GJP stabilisation for unresolved scales in VCSImplicit (!1592)
- Fix tolerance in KovaFlow_m10_VCSImplicit_SVV (!1619)
Miscellaneous
- Fix compilation against TetGen 1.6 (!1547)
- Tidy-up Parareal initial condition output (!1534)
- Remove double entry in documentation and slightly tidy-up code (!1530)
- Fixed deadlock problem for the LowEnergyBlock preconditioner which appeared for specific combinations of meshes and boundary conditions (!1553)
- Add a check to avoid unnecessary copy in DoOdoProjecton function (!1582)
- Update user guide and developer guide (!1598)
- Some various tidy-up (!1585)
- Added support for performance tests (!1614)
- Integrated performance tests into the CI system and enabled a test (!1629)
- Added additional performance tests and updated test documentation (!1631)
- Fix VmathTimer compilation error (!1635)
- Fix SIMD compilation error (!1636)
- Update ShallowWaterSolver performance test (!1643)
NekMesh
- Changed CMake to set NEKTAR_USE_THREAD_SAFETY to ON when MeshGen is set to ON (!1546)
- Fix VarOpti Tolerances (!1569)
- Fixed a bug where MeshElement/Tetrahedron did not assign edge IDs in the constructor (!1596)
- Reduce VarOpti memory usage by removing the storage for GetFunctional in NodeOpti (!1633)
Documentation
- Fix missing Tikz external package requires for bookworm (!1638)
CI
- Add testing and packaging for Debian bookworm (!1638)
- Added a NekMesh docker image and added the image to the CI (!1641) NekPy
- Add bindings for Movement-related classes (!1600)
- Add bindings for various helpful methods in the SpatialDomains library (!1600)
v5.3.0
Library
- Fixed avx512 back-end for SimdLib (!1333)
- Remove unnecessary IterPerExp methods (!1366)
- Added float to scalar and avx2 back-end, disable avx512, sse2, sve (!1255)
- Updated the library to use m_phys and m_coeff as function arguments (!1412)
- Added float and restored SVE back-end for SimdLib (!1373)
- Fix VmathSIMD by adding optional mapping with # of lanes (!1388)
- Added float and restore avx512 back-end for SimdLib (!1387)
- Fix namespace pollution which causes boost 1.74+ errors (!1389)
- Fix missing copy assignment operator warnings in clang 13+ (!1391)
- Added checkpoint file writing start time in the checkpoint filter (!1401)
- Fix boost 1.77 compatibility errors (!1420)
- Replaced depricated "sprintf" with "std::to_string" (!1406)
- Add compatiblity patch to solve conflict between flex 2.6.3 and scotch 6.0.4 (!1410)
- Add Parareal Driver module (!1317)
- Maintenance for C++-17 compatibility: removed std::unaray_function base class due to removal from the std (!1419)
- Fixed the comment of function Vvtvvtp in VmathArray (!1408)
- Add a FieldConvert utility to compute the divergence of the velocity (!1413)
- Added new filter to calculate variables integral on composite mesh (!1409)
- Overload PhysEvaluate to give first derivatives using barycentric interpolation (!1323)
- Non-conformal interface support (!1323)
- Fix a I/O issue related to the IO_InfoSteps parameter (!1422)
- Fix a I/O issue related to the IO_CheckSteps parameter (!1423)
- Fix boost 1.77 compatibility errors (!1402)
- Replaced depricated "sprintf" with "std::to_string" (!1406)
- Add compatiblity patch to solve conflict between flex 2.6.3 and scotch 6.0.4 (!1410)
- Templating FieldUtils::Interpolator class (!1420)
- Fix virtual function overrides in StdRegions and LocalRegions classes (!1435)
- Disable -Werror by default (!1443)
- Add missing override keyword to virtual functions in FieldUtils (!1452)
- Add override keyword to virtual functions in GlobalMapping and MultiRegions (!1450)
- Add fmod and modulus operator to interpreter (!1089)
- Add command line option and environment variable to disable backup field files (!1154)
- Add override keyword to virtual functions in SpatialDomains (!1448)
- Add missing override keyword to virtual functions in Collections (!1453)
- Update tutorial submodule (!1511)
- Add missing override keyword to virtual functions in SolverUtils (!1451)
- Add missing override keyword to virtual functions in LibUtilities (!1459)
- Enable ARM macOS runner, fixes for SCOTCH allocation and PETSc detection on macOS (!1462)
- Add FieldConvert module and filter to project velocity into body-fitted coordinate system (!1467)
- Add Curl operator to ExpList (!1475)
- Changed LinearAdvectionDiffusionReactionSolve arguments to be equivalent to HelmSolve (!1475)
- Added detection for advection matrices in GlobalLinSysIterative with silent switch from CG to GMRES (!1475)
- Added non-symmetric laplacian matrices via varcoeffs (!1475)
- Added matrix-free operator for LinearAdvection (!1475)
- Fix uninitialized coordinates in the Bodyforcing (!1472)
- Fix body-fitted velocity filter and also record the max/min for density,pressure, and temperature field (!1490)
- Fix typos in Vmath and VDmath (!1480)
- Fix minor typo and removed unused functions in LibUtilities/TimeIntegration (!1476)
- Fix RK5 time integration scheme (!1482)
- Fix fld file import for SingleMode expansion (!1487)
- Fix ESDIRK time integration scheme (!1484)
- Fix IMXGear time-integration scheme for consistent second-order accuracy (!1489)
- Fix ESDIRK time integration scheme (!1484)
- Fix TimeIntegrationDemo.cpp and add ESDIRK tst files to the CI (!1485)
- Add DIRKOrder1, BDFImplicitOrder3, BDFImplicitOrder4, RungeKutta1, and RungeKutta3 schemes to the register (!1485)
- Use DIRK (instead of IMEXdirk) schemes for the start-up phase of high-order BDF and AM schemes (!1485).
- Fix IMEXdirk_1_2_2 and IMEXdirk_2_3_3 time-integration schemes (!1499)
- Add extrapolation time-integration scheme (!1488)
- Fix CNAB/MCNAB time-integration schemes (!1493)
- Slightly tidy-up time integration algorithms (!1496)
- Reduced memory usage in the FilterHistoryPoint (!1458)
- Remove redundant functor typedef (!1498)
- Add missing m_ prefix to member variables in FFTW (!1504)
- Make some virtual functions protected (!1506)
- Remove trailing CONDITIONS tag in xml files (!1510)
- Disable problematic Movement_fixed_3D_stacked_cylinders_curved_hdf5_par test (!1507)
- Fix I/O issue related to Hdf5 that was unable to open file and fixed similar issue in other IO classes in BasicUtils (!1512)
- Remove unused function SetUpXmlDoc (!1513)
- Add new interpolation function to FieldUtils (!1514)
- Generalize the use of the space communicator (!1518)
- Add parallel-in-time feature to FieldConvert (!1520)
- Add Spectral Deferred Correction (SDC) time integration schemes (!1481)
- Redesign of Spectral Deferred Correction (SDC) algorithm (!1523)
- Modify SessionReader to read restart/exact solution files parallel-in-time (!1521)
- Fix Polylib_test.cpp (!1524)
- Update to Parareal file output (!1517)
- Add convergence criteria to Parareal driver (!1457)
- Add time metadata to tecplot output (!1525)
- Fix segmentation fault when no time integration method specified for unsteady problem (!1526)
- Set adjacent elements for m_bndcondExpansions for both CG and DG (!1491)
- Fix inconsisten treatment of 1D and 2D/3D expansions in DisContField::v_GetBoundaryToElmtMap (!1491)
- Tidy-up parallel-in-time processing in FieldConvert (!1529)
Python
- Add wrappers for Interpreter and Equation classes (!1329)