Skip to content
Snippets Groups Projects
Forked from Nektar / Nektar
115 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
To find the state of this project's repository at the time of any of these versions, check out the tags.
CHANGELOG.md 77.88 KiB

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 and clang-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 with std::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 to std::filesystem (!1674)
  • Use [[deprecated]] attribute (!1682)
  • Fix QuadExp::v_ComputeTraceNormals(!1685)
  • Replace boost::thread with std::thread (!1687)
  • Replace boost::math::tgamma by std::tgamma(!1686)
  • Remove #include <boost/math/special_functions/fpclassify.hpp> header (!1686)
  • Replace boost::regex with std::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)