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)
- Added checkpoint file writing start time in the fieldconvert filter (!1789)
- Fix fieldconvert filter incorrect boundary values (!1789)
- Fix numerical precision issues with filters OutputStartTime (!1789)
- Fix AdaptiveSFD for MPI (!1821)
IncNavierStokesSolver
- Fix initial and boundary conditions in the moving reference frame (!1692)
- 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)
CompressibleFlowSolver
- Added Laplacian (NonSmooth) AV to the explicit Navier Stokes solver (!1372)
- Added Physical AV to the implicit Navier Stokes solver (!1372)
- Fixed Segmentation Fault when using C0 Smoother with Shock Capturing (!1394)
- The Incomplete IP method was made the default method for the IP method (!1377).
- Add additional parameters for the Isentropic Vortex equation system (!1323)
- Improve performance of the perconditioner and diffusion operator (!1393)
- Re-add the SFD test with an updated restart file (!1399)
- Improve performance of the block diagonal operator of the preconditioner (!1404)
- ExtractSurface2DCSF utility is updated to use the boost program option (!1407)
- Fix a Wuninitialized-const-reference warning (!1449)
- New implementation of the Stagnation Inflow Boundary Condition (!1478)
- Remove m_root in PreconCfs to avoid possible future conflict with parallel-in-time driver (!1515)
- Update to Parareal file output (!1517)
CardiacEPSolver
- Fix a shadowed loop counter variable in the benchmark filter (!1436)
- Update functions in derived classes to be consistent with the base class and add override keyword to virtual functions (!1439)
- Add dummy projection to CardiacEPSolver (!1527)
IncNavierStokesSolver
- Replaced depricated "sprintf" with "std::to_string" (!1406)
- Extended Reynolds Stresses filter to passive scalars (!1430)
- Added Implicit Solver (!1475)
- Fixed Taylor-Hood expansion for VCSWeakPressure (!1444)
- Fix filename in LinearisedAdvection (!1479)
- Added scalar advection terms to AdjointSolver (!1466)
- Remove member variables as funtion parameters in LinearisedAdvection solver (!1522)
VortexWaveInteractionSolver
- Replaced depricated "sprintf" with "std::to_string" (!1406)
DummySolver
- Fix CWIPI test to use DirectFull for projection of received data (!1502)
NekMesh
- Replace VTK pointers with VTK smart-pointers to avoid memory leaking, when exporting in .vtu format (!1386)
- Preserve CAD face labels and save in to session file as a "NAME=" tag on the composites (!1396)
- Fix a header include which caused compilation errors on OCC versions newer than v7.4 (!1395)
- Add option to refine curves in the same manner as the line refinement functionality (!1298)
- Add refined curves and refined lines now prompt the octree to subdivide until the desired refined delta is reached (!1298)
- Fix a segmentation fault with WriteOctree due to missing 'order' parameter (!1418)
- Multi domain input/output for Nekpp and HDF5 file formats (!1323)
- Fix CADSurfOCE curvature bug where negative curvature values could be returned causing incorrect mesh spacing (!1442)
- Fix ProjectCAD bug with findAndProject where the projection was missing and variable was passed without reference (!1442)
- Fix 3d_bl_wing test case for STEP files where the wrong surfaces were selected for the BL (!1442)
- Fix error when setting BL progression to 1.0 due a division by 0 (!1455)
- Changed the BOOLPARAMETERS tag in InputMCF to allow disabling the high order surface optimisation with "DisableSurfaceOptimiser" (surface optimisation is still enabled by default) (!1455)
- Fix 3d_bl_wing test case for STEP files - updated to use an improved CAD definition for the NACA aerofoil (!1486)
FieldConvert
- Add vars and dirs options in the gradient module to specify fields and partial derivative directions (!1415)
- Fix range option so that it also works with hdf5 (!1414)
- Fix halfmodetofourier module with triangles (!1492)
- Fix the output field names of WSS module of FieldConvert, revert !1352 (!1528)
Miscellaneous
- Updated gitignore to be friendly with CLion IDE (!1405)
- Correct header section of .cpp, .hpp, and .h files (!1426)
- Linux format .cpp, .hpp, and .h files (!1432)
- Fix wsign compare warning (!1437)
- Fix some Woverloaded-virtual warning (!1439)
- Add missing override keyword to virtual functions in solvers (!1440)
- Fix some Wunused-variable (!1438)
- Fix unused parameter warnings in virtual functions (!1441)
- Fix a Wreorder warning (!1445)
- Fix some Wimplicit-fallthrough warnings (!1446)
- Switch to using pkg-config for finding PETSc (!1454)
- Use Nektar::LibUtilities::Timer for better accuracy (!1468)
- Make some virtual functions protected (!1469)
- Extend clang-format checks to solvers, utilities, tests and templates (!1434)
- Fix documentation for exponential scheme (!1519)
CI
- Enable packaging for Fedora 35, removed Fedora 33/34 from package builds. (!1424)
- Add header checking for *.cpp, *.hpp and *.h files to the CI (!1431)
- Enable packaging for Fedora 36. (!1429)
- Fix XML files indentation (!1428)
- Update solvers CMakeList.txt to fix some warnings detection issue (!1447)
- Remove -fpermissive from NektarCommon.cmake (!1460)
- Remove old distribution versions, added Fedora 35/36 testing to CI (!1461)
- Kill orphan Tester-g processes on Windows and remove source tree after build (!1471)
- Fixed path issue and warning in the nektar-workbook image (!1470)
v5.2.0
Library
- Add Arm SVE backend to SIMD library (!1282)
- Added support for manifold MatrixFree operators (2D in 3D space) (!1304)
- Put in place automatic selection of explicit operations using an opt file (!1304)
- Fixed the moving reference frame rotation (Solver Utils) (!1305)
- Revised FilterAeroForces to accout for the moving reference frame (!1305)
- Add MaxMinFields filter to record the max/min at each quadrature point and output the max/min fields. (!1256)
- Simplify the logic in the MPI pairwise trace exchange (!1307)
- Fix imaginary mode in HalfModeToFourier module (!1247)
- Added a dummy output module OutputStdOut for NekMesh utilities that don't require an output file (!1318)
- Fix compiler errors on ARCHER2 using PrgEnv-cray (!1315)
- Fix cmake SIMD enable/disable options based on architecture (!1320)
- Restrucutred the communicators to reduce direct dependence on session file communicator (!1337)
- Fixed SIMD mask test (!1324)
- Fix memory leak in Timer.cpp (!1330)
- Fix cmake CWIPI option to remove Fortran check (!1331)
- Fix excessive verbose output in GetBndElmtExpansions method (!1341)
- Timer class was updated with safety checks to avoid wrong measurements (!1347)
- Fix to adjust for warnings/errors from Monterey updated compiler (!1355)
- Update
nektar
andnektar-env
packages to Debian Bullseye (!1356) - Reformat code with clang-format (!1359)
- Remove unnecessary IterPerExp methods (!1366)
- Fix erronous call to FwdTrans from MR 1366 (!1374)
- Fixed avx512 back-end for SimdLib (!1333)
- Added float to scalar and avx2 back-end, disable avx512, sse2, sve (!1255)
- Change MPI initialisation to allow MPI_Init call outside Nektar++ (!1376)
- Fixed incorrect summary output for diffusion/reaction terms (!1383)
FieldConvert
- Add calculation of CFL number for the incompressilbe flow (!1332)
- Added conditional to select the eNearestNeighbour method for 3D interpolation (!1335)
- Fixed the output field names of WSS module of FieldConvert (!1352)
- Add VTU output using VTK library (high-order & multi-block options) (!1343)
IncNavierStokesSolver
- Added Boundary conditions for moving reference frame (!1305)
- Added the virtual functions overwriting the FluidInterface for moving reference frame (!1305)
- Add Gradient Jump Penalty (GJP) Stabilisation into the solver (!1290)
- Equation types are registered to the session reader (!1344)
- Added Block-Preconditioner for Full Matrix solve (!1350)
- Update to Parareal file output (!1517)
ADRSolver:
- Add Gradient Jump Penalty (GJP) Stabilisation into the Unsteady Advection and Unsteady Advection Diffusion solvers (!1290)
PulseWaveSolver
- Parallelised solver (!1337)
NekMesh
- Allow for one or more blank lines between sections in Tecplot ascii (.dat) files (!1322)
- Small bug-fix for Python API for unused configuration options (!1348)
- Fix bug in ProcessVarOpti/ElUtil for segfault on non-tri or tet meshes (!1381)
CompressibleFlowSolver
- Added physical AV, dilatation sensor, Ducros's and smoothing (!1180)
- Added timers around important functions using the Timer class. Timers are available by specifying IO_Timer_Level > -1 (!1347)
- Fixed bug in the calculation of the discontinuity penalty factor for the DiffusionIP implementation (!1368)
Documentation
- Fix images not being displayed in HTML documentation and tutorials (!1370)
CI
- Remove unused build options (!1360)
- Enable NEKTAR_USE_VTK across full builds and in docker image (!1358)
- Add XML linting and checking in CI pipeline (!1433)
Packaging
- Fix various issues with debian unstable and centos8 packaging (!1362)
- Fix missing texlive package dependency for centos packaging (!1382)
v5.1.1
Library
- Fix a boost headers incompatibility with boost-1.77 (!1297)
- Add RungeKutta4 as an alternate name for ClassicalRungeKutta4 for time integration method (!1294)
Python
- Fix initialisation warning when using HDF5 (!1299)
- Fix issue with implementation of Diffusion IP (!1303)
- Split Helmholtz MatrixFree operator to improve compile times (!1292)
- Fix Boost deprecated header warnings (!1302)
- Add command lines to set starting time and starting checkpoint number of a time-dependent simulation (!1309)
- Fix an index referencing error in the Collections PhysDeriv method for Hex (!1314)
Python
- Updates to workbook, fix bugs in StdExpansion and SessionReader with MPI communication being recreated. (!1296)
BuildSystem
- Updated third party Lapack version 3.7.1 (!1312)
CompressibleFlowSolver
- Fix non-dimensional Sutherland law (!1253)
v5.1.0
Library
- Restructure library to use local coefficient storage down to the GlobalLinSys level. Removed GlobalCoeffs functionality (!963, !1145)
- Corrected the use of communicator in AssemblyMapDG and AssemblyCommDG which was not using GetRowComm() (!1144)
- Add interior penalty method to DG framework (!1101)
- Add an error filter for the time-evolution of the L2 and Linf errors (!1147)
- Fix successiveRHS method (!1176)
- Add cachedId in GetExpIndex and use in Fieldconvert (!1167)
- Fix bug in PreconditionerLowEnergy (!1161)
- Fix intel c compiler error in AeroFilters (!1198)
- Fix compilation errors when CWIPI interface enabled (!1207)
- Fix distance in ContainsPoint and GetLocCoords (!1200)
- Fix compiler warning of maybe-uninitialized elType in InputStar (!1217)
- Extend vectoisation to include all elements and initialise collections on first call (!1162)
- Add vectorisation of most element on basix operations (!1158)
- Add constant coefficients to matrix-free Helmholtz operator (!1284)
- Limit MPI methods based on core count (!1208)
- Split out IProduct.cpp and IProductWRTDerivBase.cpp in order to avoid long time compilations (!1228)
- Refactored time integration code using factory pattern (!1034, !1103)
- Fix WriteStream with empty Array/vector (!1233)
- Add interpolation at arbitrary point in 3DH1 (!1233) level. Removed GlobalCoeffs functionality (!963, !1159)
- Add interior penalty method to DG framework (!1101)
- Add an error filter for the time-evolution of the L2 and Linf errors (!1147)
- Enable global systems to be generated when using different values of variable coefficients (!1159)
FieldConvert
- Refactored time integration code using factory pattern (!1034)
- Fix to preprocessor logic for boost with Visual Studio >= 2015 (!1115)
- Fix type consistency and real comparison in SharedArray.hpp, replaced num_elements with size() (!1127, !1137, !1141)
- Use base MPI functions instead of the GS library in the trace exchange for parallel DG simulations (!1112)
- Replace PhysIntegral with Integral (!1246)
- Change the way periodic boundary conditions in parallel is setup to reduce excessive memory usage (!1235) (!1289)
- Add exponential and fractional-in-time integration schemes (!1106, !1111, !1210)
- Add nonlinear and linear system solvers (!1196)
- Add ESDIRK3 and ESDIRK4 time integration schemes (!1196)
- Add a filter to calculate mean value of solution fields (!1211)
- Fix the time dependent absorption forcing (!1254)
- Enable very high order (>100) quadrature use (!1262)
- Add rotation and improve performance of MovingReferenceFrame forcing (!1185)
- Fix BODYFORCE defined by a file (!1215, !1264)
- Add multi-level partitioning strategy for HDF5 geometry (!1209)
- Fix the URL of ccmio library (!1288)
FieldConvert:
- Add phifile module to compute shape functions for the SPM solver (!1065)
- Fix mean and innerProduct modules in 3DH1D cases (!1157)
- Add Python interface (!1081)
- Fix wss module with nparts option and reading of parallel xml files when the root partition is missing(!1197)
- Fix a segment error in the gradient module when the number of fields is smaller than space dimension(!1216)
- Add output of wall normal data from a single point (!1237)
- Add QCriterion for 2D flow (!1243)
- Fix to interppointsdatatofld to allow for mpi processing of large files (!1191)
- Fix the logic of C0Projection:helmsmoothing (!1220)
- Fix extract module for boundaries with periodic boundary conditions (!1277)
IncNavierStokesSolver:
- Add MaxMinFields filter to record the max/min at each quadrature point and output the max/min fields. (!1256)
- Fix imaginary mode in HalfModeToFourier module (!1247)
CardiacEPSolver
- Added additional parameter sets to Fenton-Karma model (!1119)
- Fix electrogram calculation in 1D/2D domains (!1285)
IncNavierStokesSolver
- Add Smoothed Profile Method (SPM) for the formulation of immersed boundaries (!1065)
- Add new filter AeroForcesSPM to compute aerodynamic forces in immersed boundaries (!1065)
- Add mask function and more baseflow parameters for the linear stability problem (!1201)
- Fix dudt in high-order pressure boundary condition (!1190)
- Add flow rate forcing with a scalar (!1026)
CompressibleFlowSolver
- Added the selective frequency damping support for the implicit solver (!!1267)
- Added vectorisation of the Interior Penalty method (!!223)
- Added a simplified implicit solver with naive preconditioner (!!1196)
- Add BRJ preconditioner to the implicit solver (!!1212)
- Fix implicit solver for Euler system (!!1252)
- Updated WallAdiabatic/WallViscous BC to accept time-dependent perturbations on the ghost state (!1248)
PulseWaveSolver
- Added viscoelasticity (!1138)
- Added empirical and power laws (!1138)
- Code tidying (!1138)
Documentation:
- Updated Windows source build instructions in user guide (!1152)
Tester
- Added test metric to check if warnings appear in output and error stream (!1225)
NekMesh
- Improved boundary layer splitting and output to CADfix (!938)
- Improve .geo reader and support 3D geometries with voids (!1031)
- Added r-adaptation code (!1109)
- Added Python bindings, change NekMeshUtils to NekMesh (!1149)
- Added pyramid element for the Star-CCM mesh (!1229)
- Added option to use absolute tolerance in peralign (!1225)
BuildSystem
- Toggle build type (!1135)
- Updated minimum required CMake version to 3.5.1 (!1152)
- Updated third party Boost version 1.71 (!1152)
- Updated third party OCE version to 0.18.3 (!1234)
v5.0.3
CompressibleFlowSolver
- Fix repeated output of u,v,w for Euler system
FieldConvert
- Fix the Filters output files numbering (!1251, !1261)
- Fix the Filters output files numbering (!1251)
- Fix 2D surfDistance calculation (!1263)
NekMesh
- Fix VTK Output for 3D meshes and support XML format (!1258)
Documentation
- Fix documentation to note restrictions on use of coupled solver (!1268) Library
- Add robustness to the read expansions (!1239)
v5.0.2
Library
- Fix bug in StdHexExp FillMode (!1192)
Documentation
- Updated Documentation to include HDF5 Mesh Output (!1230)
- Removed Ubuntu Trusty (14.04) from CI and added Focal (20.04) (!1238)
CI
- Add Debian Bullseye to CI system (!1181)
BuildSystem
- Updated third party zlib version to 1.2.9 to resolve OCE source build issue (!1227)
- Adding SolverUtils as a core library that is built by default (!1240)
v5.0.1
Library
- Fix incorrect coordinate dimension used in history point filter (!1118)
- Fix compile errors with GCC 9.x (!1108)
- Correct the Energy/Enstropy integral for the 3DH1 flow (!1132)
- Added IsRealEqual method to compare real numbers with relative tolerance. Started using it in SharedArray and in NekMesh to fix peralign-extrude tool chain (!1134)
- Fix performance of GetExp(coord) by using octree lookup (!1165)
- Fix Collection unit tests (!1160)
- Fix periodic boundary conditions with HDF5 input file (!1163)
- Fix DESTDIR issues for MacPorts (!1179)
- Fix Bodyforcing and history point filter bounds issue (!1184)
IncNavierStokesSolver
- Change the baseflow time in the Adjoint advection (!1133)
FieldConvert
- Fix OutputTecplot skipping final plane in 3DH1D (!1016)
- Fix Interppoints in 3DH1D (!1140)