Mentions légales du service

Skip to content
Tags give the ability to mark specific points in history as being important
  • v24.20.1
    7a8be132 · Issue v24.20.1 ·
    Release: Tag v24.20.1
    ## ThirdParty
    
    - Bug #1892: `Wrappers::Petsc::Vector` and `Wrappers::Petsc::Matrix` move constructors were faulty (default ones weren't good enough and presented a risk of double deletion).
    - Support #1890: A name information has been added when a `GlobalVector` or a `GlobalMatrix` is created; this might be rather helpful while investigating some types of PETSc issues.
    - __Support #1896__: PETSc: add higher level functions to perform global linear algebra operations that performs `NumberingSubset` checks.
    - Design #1907: Remove `AbstractMatrix::GetGhosts()`.
    - __Design #1889__: PETSc: investigate the behaviour of some matrix operations and make it easier to use.
    
    ## Core
    
    - Design #1893: There is now a singleton that is used to store information extracted from command line flags (needed by #1890).
    - Design #1904: Make more explicit the very specific constructors used for `GlobalMatrix` and `GlobalVector` in `SnesInterface`
    - __Design #1906__: Linear algebra: minor renaming operation.
    
    ## Tests
    
    - Support #1891: A facility to create `NumberingSubset` more easily for simple tests has been added.
    - Support #1894: Test library: change the base dependency for the basic test tools library.
    
    ## Tools
    
    - Support #1902: Make clang-format style file appear explicitly in ExternalTools directory.
    - Documentation #1905: Doxygen: remove basic and advanced documentations.
    - Bug #1909: Remove some content from .docker ignore to accommodate some files that are required by `install` command.
    
    ## CI
    
    - Support #1900: CI: reactivate macOS.
    
    ## Scripts
    
    - Support #1899: Provide a script `Scripts/Tools/generate_automated_blocks_content_in_source_files.py` in charge of filling automatically pre-allocated blocks in source files.
    This may be used to fill copyright notice, Doxygen group information and header guards. The previous script in charge of header guards has been discontinued.
    - Bug #1903: Fix poorly located assert in `UpdateLuaFile` executables.
    - Support #1901: Provide a Python script to create new source files.
  • v24.20
    7669afed · Issue tag v24.20. ·
    ## ThirdParty
    
    - Bug #1892: `Wrappers::Petsc::Vector` and `Wrappers::Petsc::Matrix` move constructors were faulty (default ones weren't good enough and presented a risk of double deletion).
    - Support #1890: A name information has been added when a `GlobalVector` or a `GlobalMatrix` is created; this might be rather helpful while investigating some types of PETSc issues.
    - __Support #1896__: PETSc: add higher level functions to perform global linear algebra operations that performs `NumberingSubset` checks.
    - Design #1907: Remove `AbstractMatrix::GetGhosts()`.
    - __Design #1889__: PETSc: investigate the behaviour of some matrix operations and make it easier to use.
    
    ## Core
    
    - Design #1893: There is now a singleton that is used to store information extracted from command line flags (needed by #1890).
    - Design #1904: Make more explicit the very specific constructors used for `GlobalMatrix` and `GlobalVector` in `SnesInterface`
    - __Design #1906__: Linear algebra: minor renaming operation.
    
    ## Tests
    
    - Support #1891: A facility to create `NumberingSubset` more easily for simple tests has been added.
    - Support #1894: Test library: change the base dependency for the basic test tools library.
    
    ## Tools
    
    - Support #1902: Make clang-format style file appear explicitly in ExternalTools directory.
    - Documentation #1905: Doxygen: remove basic and advanced documentations.
    
    ## CI
    
    - Support #1900: CI: reactivate macOS.
    
    ## Scripts
    
    - Support #1899: Provide a script `Scripts/Tools/generate_automated_blocks_content_in_source_files.py` in charge of filling automatically pre-allocated blocks in source files.
    This may be used to fill copyright notice, Doxygen group information and header guards. The previous script in charge of header guards has been discontinued.
    - Bug #1903: Fix poorly located assert in `UpdateLuaFile` executables.
    - Support #1901: Provide a Python script to create new source files.
  • v24.06
    911c43a8 · Issue tag v24.06. ·
    Release: Tag v24.06
    ## Utilities/Core
    
    - Design #1886: `MoReFEMData`: refactor slightly by moving some content to the parent abstract class - thus enabling to share some functionalities with `MoReFEMDataTest` (that has been moved from Core to Test)
    - __Design #1885__: `InputData`: remove the facilities that are no longer in use now that `ModelSettings` is also present; `ExtractLeafFromInputDataOrModelSettings` have been renamed simply `ExtractLeaf`.
    - Design #1884: Alter the conditions that checks at compile time whether there is an item in `InputData` tuple.
    
    ## Operators
    
    - Bug #1883: Mishap in v24.03: fix for hyperelastic contribution to Second Piola Kirchhoff operator in #1857 was not properly integrated. Tests have been added for more hyperelastic laws.
    - Profiling #1882: Hyperelasticity policy: introduce a check upon (double) factors to avoid computing local matrices that are afterwards multiplied by zero.
    
    ## Tools
    
    - Bug #1881: Update Python scripts to heed new warning that appeared with Python 3.12 (and that will become a full-fledged error in 3.13).
    
    ## Miscellaneous
    
    - Documentation #1887: The licence should be referenced directly in the README.
    - Support #1881: Update Python scripts to heed new warning.
  • v24.04
    bef61912 · Issue tag v24.04. ·
    Release: Tag v24.04
    ## Utilities
    
    - Support #1875: Tuple: add a facility to deduce the type of concatenated tuples
    
    ## Core
    
    - __Design #1878__: `TimeManager` assumed that data such as the finishing time of a model was necessarily handled by the
    input data file. While it is a logical choice for models, in tests it is rather helpful not to have to define
    a Lua file at all; it has therefore been expanded to enable reading these values from `model_settings`. This
    changed implied to change few functions signatures as `model_settings` was not accessible in all cases the
    initialisation of a `TimeManager` may occur.
    - __Design #1864__: In input data, make `NumberingSubset::DoMoveMesh` an optional field. If not present the section
    might be empty; `static_assert` have been added to explain it when it happens.
    
    ## Operators
    
    - Test #1874: ReactionDiffusion: add tests for the three laws handled so far by the library (they were not working n v24.03 and it was not seen in CoreLibrary)
    
    ## VariationalFormulation
    
    - __Design #1877__: VariationalFormulation constructor arguments have been modified:
        * `time_manager`no longer appears, as it is covered by `morefem_data`.
        * `morefem_data` is no longer const, and following coding standards has therefore been moved at the end of the argument list.
    
    ## Miscellaneous
    
    - __Design #1879__: There were inconsistencies for the relative ordering of `ModelSettings` and `InputData`, both in
    template arguments and in functions / methods arguments. Now the choice is to always put `ModelSettings`
    first, except in the very specific case in which a template function may derive implicitly `ModelSettings`
    but not `InputData` from the function / method arguments.
  • list
    bef61912 · Issue tag v24.04. ·
  • v24.03
    e2ea1fc3 · Issue tag v24.03. ·
    Release: Tag v24.03
    ## Utilities
    
    - Bug #1846: Refactor slightly `OptionFile` so that keys with digits inside may be accepted.
    - Support #1865: Introduce dedicated exceptions for `Directory`, and add `source_location` argument in all constructors.
    - Support #1867: Introduce an `Assertion` class in debug mode when we want more information than the ones provided by an `assert`.
    - Documentation #1868: Add wiki note about error handling (that also explains `Assertion` class introduced in #1867).
    
    ## ThirdParty
    
    - Design #1871: A quick check on wrappers was performed after an avoidable memory allocation was spotted for `Vector::GetValue()`; no other such blunder were found. Unit tests related to `Petsc::Vector` have been added and documentation of some methods has been slightly improved.
    - Design #1872: `Petsc::Vector::UpdateGhosts()` behaviour has been modified: when applied on a non ghosted vector it just doesn nothing (prior to this issue the behaviour was up to PETSc and was not the same for sequential and mpi without ghost).
    
    ## Core
    
    - Design #1859 - #1866 - #1852: Make `TimeManager` leaner, with as much as possible work put at compile time. It is now part of `MoReFEMData` class.
    
    ## FiniteElement
    
    - Bug #1837: Take properly into account the `NumberingSubset` information in `NodeBearer` connectivity for a parallel run: for advanced models two `NodeBearer` may be connected for a given `NumberingSubset` but not for another.
    
    ## Operators
    
    - Bug #1857: There were bugs in `ComputeChainRule` for hyperelastic laws that have been solved by Jérôme. Tests have been expanded to cover them.
    
    ## Tests / CI
    
    - Bug #1870: Now when there are differences between obtained and expected values for global linear algebra enough digits are printed for these values.
    - Support #1869: Add `interruptible` for CI jobs.
    
    ## Tooling
    
    - Bug #1835: Script count_number_of_lines now yield properly a different output depending whether tests and embedded
    models are included or not.
    - Support #1844: Add two suppressions for Valgrind related to two PETSc functions. Lots of new ones appeared when in CI I upgraded the third party libraries to Openmpi 5 and have been tackled by a complete overhaul of Openmpi related suppression file.
    
    ## Miscellaneous
    
    - Bug #1862: Various small fixes found while updating `CardiacMechanics` model
    
    ## Onjoing issues.
    
    - Bug #1837: Investigate the initialization issue in parallel found in the CardiacMechanics model. Probably fully solved but the `CardiacMechanics` model must be updated to work with this MoReFEM release before closing it.
    - Design #1855: Script header guards: Stop deleting the headline comment with \file and Doxygen groups information. Fully done but the issue encompass other improvements for this script that are not yet tackled.
    - Support #1615: Fix code smells found by Sonarqube.
    
    ## In standby
    
    - Support #1858: gcc wrongfully doesn't support properly concepts in template template parameters. A macro has been introduced to circumvent this until gcc is working as expected.
  • v23.45
    58320968 · Issue tag v23.45 ·
    Release: v23.45
    **Warning:** Make sure to use very recent compilers (XCode 15 for Apple Clang for instance) - #1686 was a long standing issue that was a long time in standby waiting for support for a new C++ 20 feature that is at last here.
    
    ## Utilities
    
    - __Support #1686__: Use C++ 20 `std::source_location` rather than macros __FILE__ and __LINE__.
    - Support #1841: Introduce a macro to avoid repetition when using C++ 20 `requires`.
    
    ## Operators
    
    - __Support #1821__: Refactor Hyperelastic laws and invariant management.
    
    ## CI
    
    - Support #1843: CI - Update Doxygen-related jobs (more recent Doxygen used and few filters added).
    
    ## Tooling
    
    - Bug #1845: Fix issues found by Sonarqube for release v23.45. Also suppress two new memory leaks from third party.
  • v23.37
    a89f3fb2 · Issue tag v23.37. ·
    Release: v23.37
    ## Utilities
    
    - __Design #1796__: InputData: separate fields that are truly modifiable by the end user and those that should be set up by the model author.
    - Design #1826: Refine #1796 by putting `ModelSettings` in `MoReFEMData` rather than in `Model`.
    - Design #1811: Refactor slightly creation of default Lua file if none was found on root processor
    - Bug #1798: `TupleIteration::ActIfTaggedSection` wasn't working as expected in an edge case... but it has been removed entirely in the course of #1796.
    - Documentation #1804: Create a Wiki explaining the input data, reflecting state following #1796.
    - Test #1832: Add a test about IndexOf for a tuple; make it work for an empty tuple as well.
    
    ## ThirdParty
    
    - __Design #1800__: Fix API changes from third party libraries (mostly PETSc). One of the most annoying is that PETSc has "merged" two macros values - so most recent versions of PETSc with MoReFEM prior to this fix won't compile as a template specialization upon PETSc macro value will be found twice.
    - Support #1797: Add some error values checks in a Slepc test to please clang static analysis.
    
    ## Core
    
    - Design #1808: Define a specific `TimeManager` policy for static models.
    - __Design #1807__: TransientSource in Lua files has been renamed: VectorialTransientSource or ScalarTransientSource.
    - __Design #1806__: Remove `Name` leaf  in `BoundaryCondition` section.
    - Design #1805: InputData: replace the `Impl` namespaces used so far by the more usual `Internal` one.
    - __Design #1750__: Make `MoReFEMData` a concept to reduce the risk of mishap with `InputData` (which is a component of `MoReFEMData`)
    - Design #1822: Modify `MoReFEMData` slightly so that it might be defined without a `InputData` Lua file.
    
    ## Geometry
    
    - Design #1810: Move `CreateMeshDataDirectory()` from `Model` into `Geometry`.
    
    ## Parameter
    
    - Design #1831: Modify `Parameter` initialization facilities so that it works whatever the repartition of related input data leaves between `InputData` and `ModelSettings` objects.
    
    ## OperatorInstances
    
    - Support / Test #1819: Slight refactoring of hyperelastic laws, with writing of new tests for them. This ticket has been expanded in #1820 and #1821, to be handled in next release.
    
    ## FormulationSolver
    
    - Bug #1705 (fix forgotten case in previous release): Also neutralize parallel Mumps for gcc compiler on macOS.
    
    ## Model
    
    - Documentation #1827 - #1717: Update the model tutorial to be up-to-date with new code. Move it in the Wiki directory.
    
    ## Post-processing
    
    - __Support #1801__: `MainEnsightOutput` now takes the model as template argument, not just the `InputData`.
    
    ## Tooling
    
    - __Design #1809__: CMake: modify dependencies of post-processing or test libraries.
    - Design #1813: Use CMake WHOLE_ARCHIVE option instead of the manual one used so far to deal with proper symbol retention in static libraries.
    - Support #1814: Add some warnings exclusion options for third-party that appeared with g++ 13.
    - Support #1812: Deactivate entirely new clang warning `-Wunsafe-buffer-usage` (bajillions of false positives, included in innocuous lines).
    - Support #1834: Add a script to help the integration manager they didn't forget to mention a ticket somewhere (on Gitlab, in commits or in Changelog).
    
    ## Miscellaneous
    
    - __Support #1815__: Various slight refactorings throughout the code.
    - Support #1816: Inline all namespaces, this making the code more readable.
  • v23.11.2
    56a75c6e · Issue tag v23.11.2. ·
    Release: v23.11.2
    # v23.11.2
    
    - Bug #1795: One include directory was not properly propagated when using `configure_cmake_external_model.py`, the script to install external models.
    - Support #0: Update `HelpToUpgrade.md` file to reflect some evolutions that were forgotten in v23.11 and v23.11.1.
    
    # From v23.11.1
    
    ## ThirdParty
    
    - Bug #1794: Fix Valgrind issues (which were not related to the library itself).
    
    # From v23.11
    
    Tests for this version require an up-to-date [installation of third party libraries](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory) (v23.10): they introduce a solver that was not installed by previous releases.
    
    ## Utilities
    
    - __Design #1755__: Refactor `InputData` to make the code more straightforward (most of it was written before the niceties I used in the refactroring were introduced in the language).
    - __Design #1771__: Filesystem: substitute environment variables in the constructor directly
    - Bug #1773: Robustify the handling of trailing slash for `FilesystemNS::Directory` objects.
    - Support #1759: provide a `tuple_element_with_fallback` utility which is a bit more forgiving than `std::tuple_element` which provides directly a compilation error in case specified index is invalid. This is solely to help in some metaprogramming edge cases - most of the time keep you should keep using `std::tuple_element`!
    - Design #1760: C++20 Concepts were introduced with this release; some implementation choices were made in the context of this ticket (using `Concept` namespace for instance - we will reevaluate later if this is the most adapted way to mark them or not).
    - Support #1761: add a policy to add quotes to each element for `PrintContainer` utility.
    - Support #1770: Filesystem: add a function to check whether a directory is inside another or not.
    - Support #1779: Extend and rename `ReadSimpleBinaryFile` and add more safeties.
    - __Design #1780__: Extend `InputData` to offer the possibility to extract a subsection and to interact directly with a section. Also place this and `ExtractLeaf()` directly in MoReFEM namespace.
    - __Support #1784__: Rename `InputDataNS::Extract` `InputDataNS::ExtractLeaf`.
    
    ## ThirdParty
    
    - Support #1757: choose smallest eigenvalues first by default in Slepc wrapper.
    - Bug - Documentation #1758: Slepc was not properly taken into account when generating Doxygen documentation.
    - Bug #1769: Despite a comment warning not to forget it, a data attribute was added in `Wrappers::Petsc::Vector` some time ago but the copy operator and the `Swap` function were not updated accordingly.
    - Documentation #1778: Doxygen dox files have been slightly modified to enable inclusing of links to the documentation in the Documentation/Wiki directory.
    - Test #1767: Enrich PetscVectorIO test by adding some cases which weren't covered.
    - Design #1775: Slepc: extend the API to enable choice of underlying solver.
    - Design #730: Use a faactory th handle the different possible solvers for PETSc.
    - Bug #1790: Update `UpdateLua` facilities to make them work with recent changes.
    - Support #1786: Use include-what-you-use version 0.19 on the codebase.
    - Support #1785: Add optional support for external dependencies in PETSc (solvers Mumps, SuiteSparse and SuperLU_dist).
    - Support #1789 Solver: add an attribute to tell whether the solver supports parallel run or not.
    - Support #1793: Update Valgrind suppression files.
    
    ## Core
    
    - Design #1764: Move the interpreter of `TimeIterationFile` from `PostProcessing` to `Core`. The reason is that I needed it for restart (see #1745).
    - __Design #1762__: Modify the class so that we are absolutely sure no output may be overriden by mistake.
    - __Bug / Design #1763__: Modify the interface of `VariableTimeStep` policy; expand greatly the cases checked in the tests.
    
    ## Geometry
    
    - Design #1756: slight refactoring for topology and orientations.
    
    ## FiniteElement
    
    - Design #1788: Use same naming for boundary condition namespace everywhere.
    
    ## FormulationSolver
    
    - Design #1776: Refactor unreasonable `VariationalFormulation::InitializeVectorSystemSolution()` interface which two overloads didn't encompass the same functionalities.
    - Support #1781: In Snes class, remove `SNESConvergedReason Snes::GetSnesConvergenceReason()` which is already covered by much cleaner methods
    
    ## Model
    
    - Feature #1745 - #1746 - #1747: Implement restart mode.
    - Documentation #1774: Write a wiki entry for restart mode.
    - Feature #1791: Add an option to generate the Lua file without the comments explaining each field.
    
    ## Tests
    
    - Support #1564: Rationalize the output directories used by tests and model instances so that it is straightforward to track which directory is related to a given test.
    - Design #1765: Change the way tests are called in CMake to make it more concise, less error prone... and less puzzling for a newcomer!
    
    ## ModelInstances
    
    - Design #1777: Use the same naming convention everywhere (no prefix for `VariationalFormulation` and `Model` - namespaces already do the job).
    
    ## Still in progress
    
    - Feature #248: A warning now tells explicitly that P2/Q2 geometric elements aren't supported yet.
    - Design #1787: Better error handling when some data from the input file aren't correct.
    - Support #1783: Add support for more solvers from PETSc.
  • v23.11.1
    c0a248bc · Issue tag v23.11.1. ·
    # v23.11.1
    
    ## ThirdParty
    
    - Bug #1794: Fix Valgrind issues (which were not related to the library itself).
    
    # And from v23.11:
    
    Tests for this version require an up-to-date [installation of third party libraries](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory) (v23.10): they introduce a solver that was not installed by previous releases.
    
    ## Utilities
    
    - Design #1755: Refactor `InputData` to make the code more straightforward (most of it was written before the niceties I used in the refactroring were introduced in the language).
    - __Design #1771__: Filesystem: substitute environment variables in the constructor directly
    - Bug #1773: Robustify the handling of trailing slash for `FilesystemNS::Directory` objects.
    - Support #1759: provide a `tuple_element_with_fallback` utility which is a bit more forgiving than `std::tuple_element` which provides directly a compilation error in case specified index is invalid. This is solely to help in some metaprogramming edge cases - most of the time keep you should keep using `std::tuple_element`!
    - Design #1760: C++20 Concepts were introduced with this release; some implementation choices were made in the context of this ticket (using `Concept` namespace for instance - we will reevaluate later if this is the most adapted way to mark them or not).
    - Support #1761: add a policy to add quotes to each element for `PrintContainer` utility.
    - Support #1770: Filesystem: add a function to check whether a directory is inside another or not.
    - Support #1779: Extend and rename `ReadSimpleBinaryFile` and add more safeties.
    - __Design #1780__: Extend `InputData` to offer the possibility to extract a subsection and to interact directly with a section. Also place this and `ExtractLeaf()` directly in MoReFEM namespace.
    - __Support #1784__: Rename `InputDataNS::Extract` `InputDataNS::ExtractLeaf`.
    
    ## ThirdParty
    
    - Support #1757: choose smallest eigenvalues first by default in Slepc wrapper.
    - Bug - Documentation #1758: Slepc was not properly taken into account when generating Doxygen documentation.
    - Bug #1769: Despite a comment warning not to forget it, a data attribute was added in `Wrappers::Petsc::Vector` some time ago but the copy operator and the `Swap` function were not updated accordingly.
    - Documentation #1778: Doxygen dox files have been slightly modified to enable inclusing of links to the documentation in the Documentation/Wiki directory.
    - Test #1767: Enrich PetscVectorIO test by adding some cases which weren't covered.
    - Design #1775: Slepc: extend the API to enable choice of underlying solver.
    - Design #730: Use a faactory th handle the different possible solvers for PETSc.
    - Bug #1790: Update `UpdateLua` facilities to make them work with recent changes.
    - Support #1786: Use include-what-you-use version 0.19 on the codebase.
    - Support #1785: Add optional support for external dependencies in PETSc (solvers Mumps, SuiteSparse and SuperLU_dist).
    - Support #1789 Solver: add an attribute to tell whether the solver supports parallel run or not.
    - Support #1793: Update Valgrind suppression files.
    
    ## Core
    
    - Design #1764: Move the interpreter of `TimeIterationFile` from `PostProcessing` to `Core`. The reason is that I needed it for restart (see #1745).
    - __Design #1762__: Modify the class so that we are absolutely sure no output may be overriden by mistake.
    - __Bug / Design #1763__: Modify the interface of `VariableTimeStep` policy; expand greatly the cases checked in the tests.
    
    ## Geometry
    
    - Design #1756: slight refactoring for topology and orientations.
    
    ## FiniteElement
    
    - Design #1788: Use same naming for boundary condition namespace everywhere.
    
    ## FormulationSolver
    
    - Design #1776: Refactor unreasonable `VariationalFormulation::InitializeVectorSystemSolution()` interface which two overloads didn't encompass the same functionalities.
    - Support #1781: In Snes class, remove `SNESConvergedReason Snes::GetSnesConvergenceReason()` which is already covered by much cleaner methods
    
    ## Model
    
    - Feature #1745 - #1746 - #1747: Implement restart mode.
    - Documentation #1774: Write a wiki entry for restart mode.
    - Feature #1791: Add an option to generate the Lua file without the comments explaining each field.
    
    ## Tests
    
    - Support #1564: Rationalize the output directories used by tests and model instances so that it is straightforward to track which directory is related to a given test.
    - Design #1765: Change the way tests are called in CMake to make it more concise, less error prone... and less puzzling for a newcomer!
    
    ## ModelInstances
    
    - Design #1777: Use the same naming convention everywhere (no prefix for `VariationalFormulation` and `Model` - namespaces already do the job).
    
    ## Still in progress
    
    - Feature #248: A warning now tells explicitly that P2/Q2 geometric elements aren't supported yet.
    - Design #1787: Better error handling when some data from the input file aren't correct.
    - Support #1783: Add support for more solvers from PETSc.
  • v23.11
    984106ae · Issue tag v23.11. ·
    Tests for this version require an up-to-date [installation of third party libraries](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory) (v23.10): they introduce a solver that was not installed by previous releases.
    
    ## Utilities
    
    - Design #1755: Refactor `InputData` to make the code more straightforward (most of it was written before the niceties I used in the refactroring were introduced in the language).
    - __Design #1771__: Filesystem: substitute environment variables in the constructor directly
    - Bug #1773: Robustify the handling of trailing slash for `FilesystemNS::Directory` objects.
    - Support #1759: provide a `tuple_element_with_fallback` utility which is a bit more forgiving than `std::tuple_element` which provides directly a compilation error in case specified index is invalid. This is solely to help in some metaprogramming edge cases - most of the time keep you should keep using `std::tuple_element`!
    - Design #1760: C++20 Concepts were introduced with this release; some implementation choices were made in the context of this ticket (using `Concept` namespace for instance - we will reevaluate later if this is the most adapted way to mark them or not).
    - Support #1761: add a policy to add quotes to each element for `PrintContainer` utility.
    - Support #1770: Filesystem: add a function to check whether a directory is inside another or not.
    - Support #1779: Extend and rename `ReadSimpleBinaryFile` and add more safeties.
    - __Design #1780__: Extend `InputData` to offer the possibility to extract a subsection and to interact directly with a section. Also place this and `ExtractLeaf()` directly in MoReFEM namespace.
    - __Support #1784__: Rename `InputDataNS::Extract` `InputDataNS::ExtractLeaf`.
    
    ## ThirdParty
    
    - Support #1757: choose smallest eigenvalues first by default in Slepc wrapper.
    - Bug - Documentation #1758: Slepc was not properly taken into account when generating Doxygen documentation.
    - Bug #1769: Despite a comment warning not to forget it, a data attribute was added in `Wrappers::Petsc::Vector` some time ago but the copy operator and the `Swap` function were not updated accordingly.
    - Documentation #1778: Doxygen dox files have been slightly modified to enable inclusing of links to the documentation in the Documentation/Wiki directory.
    - Test #1767: Enrich PetscVectorIO test by adding some cases which weren't covered.
    - Design #1775: Slepc: extend the API to enable choice of underlying solver.
    - Design #730: Use a faactory th handle the different possible solvers for PETSc.
    - Bug #1790: Update `UpdateLua` facilities to make them work with recent changes.
    - Support #1786: Use include-what-you-use version 0.19 on the codebase.
    - Support #1785: Add optional support for external dependencies in PETSc (solvers Mumps, SuiteSparse and SuperLU_dist).
    - Support #1789 Solver: add an attribute to tell whether the solver supports parallel run or not.
    - Support #1793: Update Valgrind suppression files.
    
    ## Core
    
    - Design #1764: Move the interpreter of `TimeIterationFile` from `PostProcessing` to `Core`. The reason is that I needed it for restart (see #1745).
    - __Design #1762__: Modify the class so that we are absolutely sure no output may be overriden by mistake.
    - __Bug / Design #1763__: Modify the interface of `VariableTimeStep` policy; expand greatly the cases checked in the tests.
    
    ## Geometry
    
    - Design #1756: slight refactoring for topology and orientations.
    
    ## FiniteElement
    
    - Design #1788: Use same naming for boundary condition namespace everywhere.
    
    ## FormulationSolver
    
    - Design #1776: Refactor unreasonable `VariationalFormulation::InitializeVectorSystemSolution()` interface which two overloads didn't encompass the same functionalities.
    - Support #1781: In Snes class, remove `SNESConvergedReason Snes::GetSnesConvergenceReason()` which is already covered by much cleaner methods
    
    ## Model
    
    - Feature #1745 - #1746 - #1747: Implement restart mode.
    - Documentation #1774: Write a wiki entry for restart mode.
    - Feature #1791: Add an option to generate the Lua file without the comments explaining each field.
    
    ## Tests
    
    - Support #1564: Rationalize the output directories used by tests and model instances so that it is straightforward to track which directory is related to a given test.
    - Design #1765: Change the way tests are called in CMake to make it more concise, less error prone... and less puzzling for a newcomer!
    
    ## ModelInstances
    
    - Design #1777: Use the same naming convention everywhere (no prefix for `VariationalFormulation` and `Model` - namespaces already do the job).
    
    ## Still in progress
    
    - Feature #248: A warning now tells explicitly that P2/Q2 geometric elements aren't supported yet.
    - Design #1787: Better error handling when some data from the input file aren't correct.
    - Support #1783: Add support for more solvers from PETSc.
  • v22.47
    417d569c · Issue tag v22.47. ·
    Release: Release v22.47
    ## Operators
    
    - Design #1682: `GlobalVariationalOperator` class is now in Advanced namespace rather than in Internal.
    
    ## Geometry
    
    - Documenttion #1719: Clarify the GeometricElt::GetIndex() method.
    
    ## Utilities
    
    - Support #1514: introduce a syntactic sugar facility to create smart pointers in factory classes.
    - Support #1562: Remove HAS_MEMBER macro and use instead a concept requirement.
    - Support #1743: Remove `IsNumber()` utility which is already covered by `std::isfinite`.
    
    ## ThirdParty
    
    - Support #1749: Introduce support for Slepc library.
    - __Support #1751__: Modify in the CMake pre-cache script the path to PETSc and Slepc libraries to reflect the new way those are installed (more [here](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory/-/issues/18)).
    - Support #1752: PETSc: provide an initializer for matrices that do not require to set sizes, for the sake of LoadBinary(). This is mostly for tests - in the context of implementing the models the already existing methods are more adequate.
    
    ## Miscellaneous
    
    - Support #1740: run codespell over the codebase and the Markdown files.
    - Documentation #1741: fix Doxygen warnings.
    - Support #1748: fix new compilation warnings following libraries and compilers upgrades.
    - Support #1753: Remove cloc script - now user must install it locally.
    - Support #1754: Refresh the count_number_of_lines.py script to cover more files (not just most of the content of 'Sources' directory but also the scripts, CMake files, Markdown files and so forth...)
  • v22.37
    ed942ed1 · Issue tag v22.37. ·
    Release: Tag v22.37
    ## Utilities
    
    - Test #1683: Add tests for numeric utilities.
    - Support #1685: Introduce a facility to use around `std::pow`.
    - Support #1687: Add `Wreserved-identifier` in clang warnings.
    - Support #1690: Add `Wdiv-by-zero` in warnings.
    - Support #1691: Create a script to ease the use of IWYU.
    - __Support #1692__: Improve the use of `std::filesystem`, which should help to use MoReFEM on Windows environments.
    - Test #1693: Rewrite NowAsString test.
    - Design #1699: Modify the way unique ids are stored.
    - Support #1722: Generalize NumericNS::AreEqual to also handle `LocalVector` and `LocalMatrix`.
    - Support #1732: Create a facility to create vectors of StrongTypes.
    - __Design #1731__: Extend UniqueId Crtp to enable using strong types instead of `std::size_t`, and apply it in the case of `Domain`.
    
    ## ThirdParty
    
    - Feature #1704: Add support to SuperLU_dist solver.
    - Bug #1709: Petsc: SetUniformValue() and few other Set methods for `Vector` class didn't properly call UpdateGhosts().
    - Support #1725: Few modifications due to update of third party libraries and compilers
    
    ## Geometry
    
    - Design #1651: Change the ordering convention for the Q2 geometric nodes.
    - Bug #1678: `FromCoordsMatching` test for P2 was buggy: there was a typo and we were comparing an object to itself. Fixing that made the test fail; but this test was in fact assuming something incorrect (namely that the `Coords` constituting an `Interface` were sort the same way for all ranks).
    - Bug #1700: Identify clearly when there is an issue with registration within `GeometricEltFactory`.
    
    ## Operators
    
    - __Feature #1660__: Add a policy to chose the interpolation rule for the tying points in the Shell operator.
    - Feature #1664 - #1586: Implement shell operator.
    - Test #1680: Add tests for MITC4 and MITC9.
    - Support #1681: Add a facility to easily access a local operator.
    - Feature #1586: Implement SecondPiolaKirchhoff operator in local coordinates.
    
    ## Parameters
    
    - __Design / Bug #1708__: Change the convention of Parameter::TimeDependency NtimesModified.
    - Documentation #1721: Improve documentation for the 'domain' argument in Parameter constructor.
    - __Design #1724 - #1718__: Refactor Parameter and add tests to ensure all intended features (noticeably vectorial and
    matricial 'Parameter').
    - __Design #1723__: `LuaFunction` policy was messy to use and has been overhauled and better documented.
    - Design #1726: Value sub structure for input data file now relies more on its underlying Nature.
    - Test #1727: Remove TestMoReFEMDataParameter, which is much better covered with new tests introduced in #1724.
    
    ## Model
    
    - Support #1695 / Bug #1697: add a safety in debug mode to ensure Model::Initialize() is called at most once per Model.
    - __Test #1705__: Replace Mumps by SuperLU_dist in test models.
    - Bug #1706: Fix small issues that prevented proper use of MainUpdateLuaFile executables.
    - Support #1698: Enable the possibility not to define a TimeManager in a Model.
    
    ## Build / IDE
    
    - __Design #1566__: XCode project is now to be generated by CMake if you want to use that IDE. The former hand-made project has been removed (was too painful to handle properly in Git, and was not necessarily up-to-date due to some MoReFEM devs using others IDEs).
    - __Bug #1713__: Fix the XCode templates that were no longer recognized properly with XCode 13. This ticket impacts even non XCode users: the minimum CMake version required has been updated as I needed very recent CMake features.
    
    ## CI / Tests
    
    - __Support #1696__: streamline more code in the Test/Tools subdirectory.
    - Support #1701: Remove linter stage in CI/CD.
    - Support #1707: Transform old tests into ones handled in the test suite. Some were completely overhauled.
    - Support #1710: Add tags to match the new shared runners in Inria Gitlab
    - Support #1735: Update Sonarqube settings in scripts to reflect changes in the new version deployed on sonarqube.inria.fr
    
    ## Tools
    
    - Design #1688: Switch to C++ 20 in compilation version.
    - Support #1689: Fix gcc compilation warnings.
    - Support #1694: Update IWYU configuration file.
    - Support #1711: Update Doxygen script to filter out false positives yielded by latest version
    - Documentation #1715: Overhaul the README in the project (some informations there were outdated). Also clarify the conventions to activate or deactivate some of the jobs in CI.
    - Support #1712: Deactivate deprecated clang warning.
    - Support #1734: Fix compilation issues with gcc 12.
    - Documentation #1730: Document how to use include-what-you-use facility (Wwich is expected to be done mostly by the integration manager so you shouldn't bother).
    - Support #1736: Scripts: make header guards installation independant
    - Documentation #1737: Introduce a file "HelpToUpgrade.md" which lists the changes from one version of MoReFEM to another
    - Bug #1739: Fix the wrong behaviour when the policy about overwriting output directory is 'ask'.
    
    ## Still in progress
    
    - Feature #248: Enable P2/Q2 geometry.
    - Feature #1664: Implement shell operator. Lots of work has already been done but the feature is not entirely reliable yet.
    - Support #1679: Update SetMovemeshData() for P2 Geometry.
    - Documentation #1717: Update the ModelTutorial. The work is done but I don't want to close it until someone unfamiliar with MoReFEM hasn't used it and provided feedback.
    - Support #1738: Set up again Sonarqube - some parts of the configuration was lost during major upgrade of Sonarqube server
  • v21.31
    79e9d184 · Issue tag v21.31. ·
    Release: Tag v21.31
    ## ThirdParty
    
    - Feature #1666: Add a function to symmetrize a `LocalMatrix` which left-up part is filled.
    - Support #1674: Add new files to disable locally -Wunused-member-function and -Wunused-function warnings.
    
    ## Core
    
    - Bug #1668: some inadequate entries in the Lua input file triggered an assert rather than an exception.
    - Support #1671: Add a function which returns the ParallelismStrategy from a MoReFEMData.
    - __Feature #1673__: InputData: extend `CoordsMatchingFile` (formerly `InterpolationFile`) so that there may be several in the Lua file.
    
    ## FiniteElement
    
    - Bug #1667: Fix an assert that was triggered when several boundary conditions were involved for a same `GeometricElt`.
    - Design #1672: Modify the way `GodOfDof` are initialized within a `Model`: instead of creating them sequentially, create each of them in parallel layer by layer. The way `NodeBearer` needed for `FromCoordsMatching` interpolator is thus much less clunky and #1669 wasn't working with the old way to build them.
    - Feature #1670: Internal: add a utility to find a `FEltSpace` without knowing the `GodOfDof`.
    
    ## Operator
    
    - Feature #1669: Extend CoordsMatching interpolator so that interpolator may be defined in both directions.
    
    ## Miscellaneous
    
    - Bug #1663: XCodeConfig: remove the link to libmpi_cxx, removed from the third party libraries required for v21.27.
    - Design #1665: Add throughout the code compile-time tests to check whether `parent` alias is truly a parent.
  • v21.27
    bb7ddd1f · Issue tag v21.27. ·
    Release: Tag v21.27
    Needs ThirdPartyCompilationFactory [v21.27.2](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory/-/releases/v21.27.2) - as Scotch is now expected in place of Parmetis.
    
    ## ThirdParty
    
    - __Support #1634__: Replace Parmetis by PT-Scotch.
    - Design #1661: Remove reference to Openmpi C++ binding.
    - Design #1662: Put back librt dependency.
    
    ## FormulationSolver
    
    - __Design #1658__: VariationalFormulation: SupplInit() should take a MoReFEMData rather than an InputData
    
    ## Operators
    
    - Support #1654: Add a test about UpdateCauchyGreenTensor operator.
    - Design #1659: Passing the list of `Unknown` by a const reference was dangerous.
    
    ## Miscellaneous
    
    - Support #1655: Extend UpdateLuaFile so that it may now work even if in the first read the fields present in the file do not match the tuple (previously you had to put them there manually, and the program would add the adequate comments).
    - Support #1656: More renaming for `input_parameter_data`.
  • v21.22
    93ab7604 · Issue tag v21.22. ·
    Release: Tag v21.22
    ## Utilities
    
    - Support #1637: Add new skill "Divisible" for StrongTypes.
    - Design #1639: Strong type constructors are now `constexpr`.
    - __Design #1640__: Strong types are now used for component-related integers.
    - __Design #1641__: Most of the `unsigned int` in the code have been replaced by `std::size_t`.
    - __Design #1625__: Strong-type for LocalNode index.
    - __Design #1619__: Rename `ExtractParameter`, `ExtractPathParameter`and `SectionOrParameter` to avoid using `Parameter` in it.
    
    ## ThirdParty
    
    - Support #1643 Petsc: add a new viewer introduced in v3.15.
    - Bug #1644: Add a new dependency to librt in Linux for the sake of libmeshb.
    
    ## Geometry
    
    - Support #1638: `ComputeJacobian()` was refactored.
    
    ## Operators
    
    - __Design #1632__: Refactor heavily `FromCoordsMatching` to limit vastly the amount of data required for prepartitioned data case.
    
    ## Models
    
    - __Design #1646__: Change the template parameter used in the `MainEnsightOutput` function.
    
    ## Tests
    
    - Support #1631: Tests: Simplify the passing of Lua file to a main (thus limiting the number of main to write).
    - Support #1636: Update TypeName test to reflect new output from compiler.
    
    ## CI
    
    - Bug #1642: There was a bug in some CI scripts that stemmed from a bug in latest official Fedora image; a patch was applied to circumvent it.
    - Bug #1648: Robustify the script that interprets Valgrind log - it didn't support previously numbers written in american format with comma separators for thousands.
    - Support #1647: Extend the interpret_valgrind_log.py file so that it may be used directly (for debug purpose only).
    - Support #1649: More Valgrind warnings suppressed.
    - Support #1650: Remove linux tags in yaml (in the transition of using shared runners, which cause much less hassle in maintainance).
    
    ## Miscellaneous
    
    - Support #1635: Deal with new warnings from AppleClang.
    
    ## Clean-up of issues
    
    On the 22th of April 2021 I iterate through the issues and some were not properly closed:
    
    - Feature #1473: Introduce the Input Data "Parallelism" which tells the parallelism policy to use
    - Support #1549: Coords storage in Interface was too brittle.
    - Bug #1399: Ensight Output issue that was solved long ago but left opened for feedback.
  • v21.16
    def99555 · Issue v21.16. ·
    Release: Tag v21.16
    ## Utilities
    
    - Bug #1621: StrongType::Addable didn't work if one of theargument was constant.
    - Support #1622: StrongType: introduce a facility to determinate whether a class is a strong type or not.
    - Support #1623: StrongType: extend Comparable to encompass all the operators.
    - Support #1627: Numeric: extend IsZero to also work in integral types (for metaprogramming purposes).
    
    ## ThirdParty
    
    - Support #1626: MatrixPattern: add a functionality to visualize it.
    
    ## Geometry
    
    - Design #1628: Interface: decommission GetVertexCoordsIndexList().
    - Support #1629: Interface: make OrderCoordsList a free function.
    
    ## FiniteElement
    
    - Support #1620: Use StrongType for NodeBearer program-wise index.
    
    ## Operators
    
    - Feature #1577: Refactor FromVertexMatching interpolator, so that it works with the Dof initialized after the reduction (it was broken in v20.52).
    
    ## Test / CI
    
    - Bug #1614: LuaOptionFile: redundancy test was working for wrong reasons...
    - Support #1616: create sa new stage for IWYU and clang-format.
    
    ## PostProcessing
    
    - Bug #1618: Post processing bug when more than one unknown solution is written.
  • v21.06
    7e2e7fb4 · Issue tag v21.06. ·
    Release: v21.06
  • v21.02
    23ff0e4d · Issue tag v21.02. ·
    Release: v21.02
  • v20.52
    29a0348d · Issue tag v20.52. ·
    Release: v20.52