Tags give the ability to mark specific points in history as being important
-
v26.06
Release: v26.0663e95e17 · ·## Utilities - Support #2102: [internal] `InputData`: Change the way the `.` is handled for sections. - Support #2099: Input data: add the possibility to add a description for a section which is inside another section. - Design #2098: Input data: improve naming of methods for leaves and sections to make the code more expressive. - Design #1974: `EnumUnderlyingType` is replaced in new STL's `std::to_underlying`. ## ThirdParty - Bug #2093: Fix find/replace error in Eigen wrappers. - Support #2050: Add shared memory parallelism support for `LuaFunction`. ## Parameter - Design #2096: Refactor slightly `Solid` to make it more maintainable and expressive. - Design #2097: Change namespace of helper structs related to `Parameter`. - Design #1803: Extend `Solid` and `Fluid` parameters so that there might be several in a same model. ## Operator - Feature #2070: Hyperelasticity: Implement the Nearly Incompressible Holzapfel-Ogden constitutive law. ## Tools - CI #2107: Replace macOS CI with the new experimental macOS virtualization. - CI #2108: Provide a job which runs models to display in upcoming documentation. - CMake #2100: make the `CMAKE_OSX_DEPLOYMENT_TARGET` option a customizable one to be able to remove spurious warnings at configuration. - Guix #2094: Document how to substitute gcc with clang in Guix. - Support #1553: Close this ticket tracking C++ 20 and 23 features to add in the library. - Support #2109: Move the morefem channel from `channels.scm` to the manifests.
-
v25.53
Release: v25.53dc1e9caa · ·## Third party - Support #2090: Upgrade to Eigen 5. ## Tools - Support #2088: Python scripts for CMake: add a flag to facilitate use of CCache. - Support #2087: Provide a clean procedure to install external models. - #1923: Introduce CMake test dependencies so that `ctest` may now be run in parallel. - Documentation #2092: Document installation through Guix. - Support #2091: Handle new clang warning `Wnrvo`. - ## Miscellaneous - Support #2086: Modifications related to Guix packaging.
-
v25.45
Release: v25.45da2f7d1d · ·## Operators - Bug #1851: Fix the local QuasiIncompressibleSecondPiolaKirchhoff operator. - __Bug #2080__: Fix the global QuasiIncompressibleSecondPiolaKirchhoff operator - all `Assemble` calls didn't follow new ordering of arguments. - __Design #1853__: Remove default template parameters for local operators, and fix some unwarranted default time dependency in several global operators. - __Design #2082__: Remove time dependency parameter for `Fiber` and `FiberList`. __Design #2077__: Add an optional TimeDependencyT parameter for the AnalyticalPress InternalVariable policy. - Feature #2066: Add invariant I8. - __Design #2078__: Deal with Fiber normalization at their construction. - ## Tools - Support #2074: Add an utility script to help decipher the compilation error messages related to bad `InputData` and/or `ModelSettings` in models. - Design #2083: Move some CMake operations into `MoReFEMSettings.cmake` file so that they are propagated directly into external models. ## Miscellaneous - Support #2081: Update team name in copyright notice and other files.
-
v25.42
b675240d · ·## Operators - __Design #2075__: Refine the choice for `GlobalOperator::Assemble()` regarding `domain` argument - it is now optional and the default is to take the same as the `FEltSpace`. ## VariationalFormulation - __Design #2000__: Refactor so that a `VariationalFormulation` is defined solely for a pair or `NumberingSubset`. This simplifies considerably for the internal implementation and the calls in external models as we no longer need to fetch explicitly `NumberingSubset` for many operations (call to `Solve()`, applying boundary condition, accessing system linear algebra, etc...) ## Tools - CI #1509: Push the Docker images generated by CD of a dedicated project directly into the project registry. - Profile #2071: CTrack is now deactivated by default unless `MOREFEM_PROFILE_WITH_CTRACK` macro is set. - Support #2073: Update MoReFEM to work with ThirdPartyCompilationLibrary v25.42.
-
v25.38
Release: v25.3830e1444e · ·## ThirdParty - Design #2068: Change the default value in main constructor of `AbstractMatrix` to ensure `VecDestroy` is called in most cases. ## Operators - Design / Bug #2065: fix some inadequacies for some data structures that prevent their use with shared memory parallelism. Add an opt out mechanism for a given `GlobalVariationalOperator` / `GlobalParameterOperator` that may now not use the parallel for loop if it is not deemed thread-safe. ## Tools - Test #2063: Sonarqube: replace `sonar.login` by `sonar.token`. - Test #2062: CI: remove Valgrind test for Laplacian. - CI #2064: Fix the generated documentation Doxygen which was failing due to lack of space - multithreaded documentation is now generated for GitlabPages without the GraphViz UML graphs.
-
v25.34.1
Release: v25.34.12a80ae86 · ·**Note:** the ".1" is due to a very minor fix suggested by Sonarqube. ## Utilities - Support #2038: `Environment`: add an enum class to determine more finely what to do when environment variable already exists. ## Core - Design #2045: Make classes of `GlobalMatrixWithCoefficient` and `GlobalVectorWithCoefficient`. ## Geometry - Feature #248: Enable support for P2/Q2 geometry. ## Operators - __Feature #2029__: Introduce optional shared memory parallelism. - __Design #2033__: Render the `Domain` argument in `Assemble()` calls mandatory. - Feature #2027: Create ParameterOperator/WeightedJacobian operator. - __Design #2037__: `GlobalVariationalOperator`: add a field in the model settings to specify the `Domain` upon which `Assemble` may be called. - __Performance #2035__: In `Assemble()`, replace multiple calls to `MatSetValue` by one call to `MatSetValues`. - Support #2061: Introduce a function to ease loops over threads. ## Parameters - Design #2048: Lift ambiguity around `GetDomain()` method for `ParameterAtQuadPt` ## Variational formulation - Design #2044: `VariationalFormulation`: introduce a concept to enable a variation in number of arguments used in `ComputeTangent()` method. ## Model - Documentation #2052: Update model tutorial. ## Tools - Support #2031: Extend configure script to enable release mode with debug info. - Support #2046: Add a macro to handle `noexcept` in functions and methods with assertions. - Support #2057: CI: provide two versions of the Documentation in gitlab pages: the monothreaded and the multithreaded ones.. - Support #2055: Improve slightly new_file script so that includes are sort in `MoReFEM` and (if external model) _ProjectName_ blocks. - Support #2054: CI: handle properly the tests related to shared memory parallelism. - Documentation #2040: Doxygen: update Doxygen file and extend it so there are two generated documentations in CI: one for monothreaded and another for multithreaded. - Support #2036: Provide a mechanism to time profile the time spent in main sections of the code, using CTrack external library. ## Tests - Design #2049: Model instances in test suite: always check with 1 and 8 threads if `MOREFEM_WITH_TBB` is activated. - Design #2047: In `Model` and `ModelNoInputData` test fixtures, catch exceptions and assertions to avoid puzzling error messages. ## Miscellaneous - Bug #2051: Fix compilation with shared libraries. ## Ongoing - Performance #2032: When possible, replace `std::pow` by more efficient operations.
-
v25.34
b7549a5d · ·## Utilities - Support #2038: `Environment`: add an enum class to determine more finely what to do when environment variable already exists. ## Core - Design #2045: Make classes of `GlobalMatrixWithCoefficient` and `GlobalVectorWithCoefficient`. ## Geometry - Feature #248: Enable support for P2/Q2 geometry. ## Operators - __Feature #2029__: Introduce optional shared memory parallelism. - __Design #2033__: Render the `Domain` argument in `Assemble()` calls mandatory. - Feature #2027: Create ParameterOperator/WeightedJacobian operator. - __Design #2037__: `GlobalVariationalOperator`: add a field in the model settings to specify the `Domain` upon which `Assemble` may be called. - __Performance #2035__: In `Assemble()`, replace multiple calls to `MatSetValue` by one call to `MatSetValues`. - Support #2061: Introduce a function to ease loops over threads. ## Parameters - Design #2048: Lift ambiguity around `GetDomain()` method for `ParameterAtQuadPt` ## Variational formulation - Design #2044: `VariationalFormulation`: introduce a concept to enable a variation in number of arguments used in `ComputeTangent()` method. ## Model - Documentation #2052: Update model tutorial. ## Tools - Support #2031: Extend configure script to enable release mode with debug info. - Support #2046: Add a macro to handle `noexcept` in functions and methods with assertions. - Support #2057: CI: provide two versions of the Documentation in gitlab pages: the monothreaded and the multithreaded ones.. - Support #2055: Improve slightly new_file script so that includes are sort in `MoReFEM` and (if external model) _ProjectName_ blocks. - Support #2054: CI: handle properly the tests related to shared memory parallelism. - Documentation #2040: Doxygen: update Doxygen file and extend it so there are two generated documentations in CI: one for monothreaded and another for multithreaded. - Support #2036: Provide a mechanism to time profile the time spent in main sections of the code, using CTrack external library. ## Tests - Design #2049: Model instances in test suite: always check with 1 and 8 threads if `MOREFEM_WITH_TBB` is activated. - Design #2047: In `Model` and `ModelNoInputData` test fixtures, catch exceptions and assertions to avoid puzzling error messages. ## Miscellaneous - Bug #2051: Fix compilation with shared libraries. ## Ongoing - Performance #2032: When possible, replace `std::pow` by more efficient operations.
-
v25.15
Release: v25.159e56aebb · ·**Note:** there was something wrong with previous tag/release (reference to commit that no longer exists). I therefore re-issued it to fix this issue. ## Utilities - Support #2020: Provide a way to give a unique id available at compile-time. ## ThirdParty - Support #2004: Extend `MatrixInfo` so that it works as well for `GlobalMatrixOpResult`. - Support #2005: PETSc: add wrapper to extract nnz pattern from an existing matrix (which might be a `GlobalMatrixOpResult` for which pattern was never computed in the first place). - Support #2021: Update to latest versions of ThirdParty libraries and to std=c++23 (if gcc supports it). ## Core - Support #2017: Provide a facility `Advanced::NumberingSubsetNS::ComputeKey()` to compute a hash for two `NumberingSubset`. - Support #2011: Add a debug function to check a global matrix properly respects its `NumberingSubset`. ## Geometry - Feature #162: Provide a facility to enable union or intersection of existing `Domain`. - Documentation #2009: Write documentation for `Domain`. ## Finite element - Support #2013: `Dof`: keep information about the component to which it is related. - __Feature #2016__: Provide a new way to force connectivity between `Dof` encompassed by two pairs of (`Unknown`, `Domain`). (used in Cardiac model, where we want all displacement `Dof` of the cavity to be connected to the pressure at the closure point). - Feature #2008: Ensure newly introduced `AmalgamatedDomain` might be used to define a `FEltSpace` if it fulfills its prerequisite. ## Operators - __Support #2007__: Improve propagation of issue from `ExtractLocalDofValues()`. - Feature #2014: Introduce `NumberingSubsetInterpolator`. - Support #2012: `SubsetOrSuperset`: get rid of useless lines. ## FormulationSolver - __Design / bug #1997__: Contrary to what the interface implied, calling `Solve` methods upon different `NumberingSubset` didn't work previously. - Support #2001: `std::source_location` information is now better propagated in most methods of `VariationalFormulation`. - Support #2002: Add a `WriteVector` which generalizes slightly `WriteSolution` (which itself has been revamped). - Bug #2024: Fix a bug in the naming of output files (this was recently introduced...) ## Models - __Design #2019__: Replace the enum classes in models. - Bug #2022: Safeties were missing in models with restart mode when a non zero restart time index was given but the parallelism strategy was not `RunFromPreprocessed`, leading to possible jobs failure for restart job that provided the wrong policy. These models have been fixed and safeties have been set. - Documentation #2023: Update documentation to be up-to-date with modifications from upcoming v25.14. ## CI - Support #2003: Modify an option to work around the mpi issue that plagues too often the CI on macOS. - Support #2026: Add tag `v2025` to use new Inria shared runners. ## Tools - Support #2028: README for clang-tidy has been updated to provide a patch for some errors you may get on macOS. ## Maintainers - Support #2015: A private project has been created to check the project generated by following the model tutorial still works.
-
v24.51
Release: v24.5123a74eee · ·## Utilities - Support #1973: Add a facility to enable use of custom-made objects in `std::format`. Use it for `StrongType`. - Support #1983: Add a utilities function to generate a key for a `std::source_location`. ## Third Party - Support #1982: Provide a very thin wrapper over `Eigen::internal::set_is_malloc_allowed()` to help find where the issue happen and fix it more efficiently. - __Design #1990__: Replace several `PetscInt` by strong types; use `PetscInt` rather than `std::size_t` for strong types related to Petsc linear algebra. ## Core - Design #1993: Remove `Heart` from input data: its place is in cardiac mechanics model, not in core library. ## Finite element - Design / bug #1980: fix a bug with variants poorly used in `ForUnknownList::ComputeLocalFEltSpaceData`; redesign to avoid checking repeatedly conditions which yield always the same result. - Design / bug #1987: In `ForUnknownList`, `AllocateGradientFEltPhi` should be used only when mesh and geometric element are the same dimension ## Parameters - __Design #1989__: Remove time manager template parameter from the instances of `InitScalarParameterFromInputData`, `InitVectorialParameterFromInputData`, `InitMatricialParameterFromInputData` and `Init3DCompoundParameterFromInputData` that also provides `morefem_data` argument. ## Operators - Test #1936: Add test for visco-elasticity policy. - Bug #1975: A matrix was not properly initialized in visco-elasticity policy. - Support #1978: Remove stupid `return` in `void` methods. - Design #1977: Add PETSc wrappers for matrix initialisation with a matrix pattern and the associated values. - Support #1986: Ensure no Eigen memory allocation in the bulk of computation. ## Model - Documentation #1996: Fix the model tutorial to take into account newly introduced strong type. - Bug #1981: PETSc changed the API to deactivate the divergence check in its v3.22; this broke non linear shell model which counted on it. ## CI - CI #1995: remove Valgrind check on Stokes model as it gets stuck. ## Tools - Bug #1994: Fix errors in the `ModelSettings.cpp` file generated by `new_file.py` script.
-
v24.42
Release: v24.42ec9aaecf · ·**WARNING:** You need the [v24.27](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory/-/tags/v24.27) version of third party libraries - Eigen is now used instead of Xtensor. v24.41 is to be preferred if possible. ## Utilities - Design #1934: Broaden a bit `StrongType` generic class. - Support #1956: Use disabled-macro-expansion pragma wherever this warning is used. - Bug #1961: Fix an inaccurate exception message related to `ModelSettings::SetDescription()`. - Support #1968: Add a function to provide relative comparison of floating points. ## ThirdParty - Support #1946: Eigen: add a facility to tell whether an object is an instantiation of an `Eigen::Matrix`. - __Design #1941 - #1930__: Replace some functions that extract part of a matrix and put it in a smaller one by slicing operations. - __Design #1938__: Remove `LocalVector` and `LocalMatrix`: we leverage Eigen possibility to work on the stack when a matrix or a vector is not too big, and are therefore no longer using a unique type for local matrix or local vector. - __Support #1840__: Replace Xtensor by Eigen. ## Geometry - __Design #1933__: use a strong type for geometric element dimension. - Support #1948: Refactor slightly `SpatialPoint`. - Bug #1955: Fix `LocalCoords` operator== which could fail when both terms were close to but not quite 0. - Test #1957: Add test for `LocalCoords`. - Test #1947: Write tests related to `DistanceFromMesh`. ## FiniteElement - Support #1935: Propagate more `LocalNodeNS::index_type`. ## Parameter - Design #1942: `Parameter` must be expanded so that storage type of vector or matrix may be chosen. ## Operators - Support #1854: Remove the awkwardly named `CopyTimeDependency` utility class - `if constexpr` does it more expressively! - Support #1856: Remove dispatcher class for SecondPiolaKichhoff operator - use C++17/20 new features instead. - Design #1953: Remove `GradPhiTauOrthoTauGradPhi` and `GradPhiTauTauGradPhi` operators. - Design #1945: `GlobalParameterOperator` implementation was improved. - __Design #1937__: In `LocalOperator`: add `Eigen::internal::set_is_malloc_allowed(false);` in all computation sensitive areas.. - Test #1931 - bug #1965 : Add test for three operators (`Bidomain`, `SurfacicBidomain` and `NonlinearSource`) which have been improved in the process. - Support/Bug #1954: actually not a bug: surfacic bidomain operator didn't yield the expected result with gcc, but the reason was just related to different hash function for unordered map. Test has been loosen to check content of the matrix is really the same but sort differently. - Test #1951: Improve the `SameCauchyGreenMixedSolidIncompressibility` test so that all contributions are present. - Performance #1929: Local linear algebra: review operations and see those that could be optimized. - Bug #1963: Add missing set to 0 for content of a local Eigen matrix. - Bug #1967: invariant 1 for 2D was wrong. 2D and 1D have been added in most hyperelatic laws. ## Tools - Support #1959: Run clang-tidy 19 (new version with new diagnostics). - Support #1943: Extend new_file script to provide creation of an isolated hpp file. - Support #1928: In build, provide a way to use `-march=native`. - Documentation #1964: update the documentation to set up CI for macOS. - Support #1969: activate magic number diagnostic in clang tidy. - Support #1971: add a step in integration manager script to automatically update Sonarqube tag. ## Miscellaneous - Support #1897: Replace `static_cast<void>` by `[[maybe_unused]]` - was closed as it's done step by step whenever one file containing some is modified. - Support #1958: Improve documentation and procedure about how to set up an external model - has been refined while updating AcousticWave, Bidomain(s) and ReactionDiffusion external models. - Support #1960: Update copyright notice to use the mailing list of maintainers instead of email addresses of Jérôme and me. - Support #1962: **On develop branch** label has been renamed **On integration manager branch**. - __Support #1966__: Rename `master` branch `main`; the branch which performs full tests is now named `release-candidate`.
-
v24.24
a68b6866 · ·**WARNING:** You need the [v24.24](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory/-/tags/v24.24) version of third party libraries - Scotch 7 compiled with CMake is now used and the interface is not exactly the same as Scotch 6 compiled with make. ## Utilities - Support #1921: Introduce an helper class to mimic `static_assert(false)` (until C++ 23 supports it natively) - Support #1927: Numeric: use concept to simplify expressions and fix `DefaultEpsilon`. ## ThirdParty - __Design #1847__: Introduce strong type for ranks / processors. - __Support #1920__: Update CMake to match the naming used by Scotch's CMake installation. - Support #1918: Add static checks to ensure `double` precision is used in third party libraries. - Support #1925: Add more suppressions in Valgrind configuration files (related to Openmpi 5). ## Geometry - Design #1913: modify some namespace choices - for instance all `RefGeomEltNS` namespace has been put in `Advanced` namespace. - Bug #1924: Reading of Ensight file was buggy: the mesh labels were not properly attributed. This was the case only for Ensight meshes generated by MoReFEM (typically for restart mode). - __Design #1922__: Strong types for `MeshLabel` index. ## Finite element - Design #1917: Make GodOfDof::CreateNodes(Internal::FEltSpaceNS::MatchInterfaceNodeBearer& match_interface_node_bearer) a free function. ## Operators - Bug #1908: Fix move bug found by clang-tidy in MITC::None policy. ## Models - Bug #1919: Lua files for heat model were incorrect and restart node was actually not checked properly. ## Tools - Support #1915: Extend Sonarqube script so that is uses up MoReFEM version, and make it possible to run another branch. - Support #1914: clang-format: fine tune the options pertaining to ordering of includes. - Bug #1910: Another clang-tidy finding: two branches yield exactly the same code. - __Support #1898__: Perform clang-tidy analysis on the whole codebase, and fix or neutralize its warnings. Many changes were done during this operation; such as the introduction of new strong types related to linear algebra. - Support #1909: Remove some content from .docker ignore. ## CI - Support #1911: Introduce clang-tidy analysis in CI. ## Ongoing issues: - Support #1926: Reactivate Verrou checks. The script has been refreshed but there are still refinements to do to enable the Verrou checks properly without adding a dependency for all builds (the way to neutralize Verrou on a given block requires a `verrou.h` include)
-
v24.20.1
Release: Tag v24.20.17a8be132 · ·## 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 · ·## 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
Release: Tag v24.06911c43a8 · ·## 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
Release: Tag v24.04bef61912 · ·## 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. -
v24.03
Release: Tag v24.03e2ea1fc3 · ·## 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
Release: v23.4558320968 · ·**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
Release: v23.37a89f3fb2 · ·## 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.