-
v21.16def99555 · ·
## 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.
-
v20.27c2fad6a7 · ·
_Note:_ this release requires the version [v20.24](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory/-/tags/v20.24) of third party libraries: a new test about a PETSc wrapper fail with PETSc 3.12 (with a message the functionality is missing for a given type of matrix) but works as expected with 3.13. ## Model - two step parallelism - Feature #1443: Two step parallelism now works - but currently you still need to prepare the data in parallel. - Bug #1522: Mesh constructor from prepartitioned data was poorly implemented and was not working as expected for higher order. - Feature #1531: Adapt FromVertexMatching operator to two step parallelism ## Operators - Feature #1520 Implement a utility operator to write out local quadrature points into global coordinates. ## Geometry - Design #1528: Go back to using shared_ptr for Coords. - Bug #1526: The geometric elements related to boundary conditions were not properly kept during the reduction process in a parallel run. ## Core - Support #1524: Remove most of the mandatory fields in input data. ## Utilities - Support #1537: Add a create_if_necessary behaviour for FilesystemNS::Directory, and clarify ignore one. - Support #1538: Use optional instead of unique_ptr for behaviour in FilesystemNS::Directory constructor, which makes a much leaner interface. - Support #1539: Add tests for functions defined in Utilities::String - and modify slightly ConvertCharArray() to make it pass the test (one line was undue...). - Support #1540 Add a Split() utility function for strings. ## ThirdParty - Support #1532 Petsc wrapper: Refactor slightly the possible viewers to add more safety and enable reloading a matrix from a file - Feature #1533: Add a PETSc wrapper around MatEqual. - __Design #1535__: For PETSc Matrix And Vector, Internal() is no longer const. - __Design #1536__: Remove MatrixOperations that were half baked and not used (to my knowledge). ## PostProcessing - Bug #1519: The case of an Unknown present in several NumberingSubset was not properly foreseen. ## CI - Support #1523: Replace the Alpine Docker image by a Fedora one. - Support #1272 - #1534 Reactivate tests that were manual ones and were never updated after the test toochain was introduced (respectively about input data and PETSc matrix operations). - Support #1525: Apply #1524 to PETSc VectorIO test: it no longer uses up a Model under the hood - instead a much lighter ToyModel class is used - and this class inherits from nothing. - Support #1542: If a branch name includes 'nobuild', the build_and_test and check_warnings stages are skipped. - Support #1541: Some modifications to make the analysis tools work properly (Valgrind test will nonetheless be in orange: the new version of one of the library (probably Openmpi) gets a tiny memory leak (8o...) that I can't suppress due to a lack of information. ## ModelInstances - Support #1530: Reduce the number of time iterations in hyperelastic model. ## Miscellaneous - Bug #1527 In configure_cmake.py script, use the intended third party libraries (previously it was always the one chosen for release mode that was used). - Support #1528: Modifications related to the upgrade of most of the third-party librairies (tag v20.24](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory/-/tags/v20.24) of [ThirdPartyCompilationFctory](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory) ).
-
v20.1742fccab6 · ·
## Geometry - Bug #1516: In interfaces.hhdata file, the convention was not the same for Vertex and other interfaces. - __Support #1515:__ Clean-up interfaces.hhdata and prepare it for two steps parallelism. The _interfaces.hhdata_ files in external models need to be updated. ## Operators - Feature #1506 Separate time schemes for the penalization law used by the QuasiIncompressibleSecondPiolaKirchhoffStressTensor. - Bug #1517: Fix StrongType used for the incompressible version of the SecondPiolaKirchhoffOperator. ## Ongoing tickets - Feature #1443: Implement two-step parallelism. ### CI - Support #1518 CI Investigate Openmpi issue in Docker. A fix has been tried but we can't be sure it is enough hence the ongoing status.
-
v20.104b33a69a · ·
## Utilities - Feature #1507: Enable strong types, which enable disambiguation on otherwise similar prototypes and help make the code much clearer. ## Third Party - __Feature #1504__: Replace Boost filesystem by STL filesystem. You therefore need a very recent compiler... ## Variational Formulation - __Feature #1505__: Refactoring concerning non linear solve: update to PETSc 3.12 underlined issues both from my side (assumptions that were not guaranteed by PETSc API) and theirs (line search strategy changed with no notice). It is now both cleaner and more robust, but API needs to be adapted in all external models. ## CI - Feature #1510: Creation of Docker images has been removed and is now delegated to a [dedicated project](https://gitlab.inria.fr/MoReFEM/CoreLibrary/generatedockerimages). The rationale is that we want to automate this, and it was complicated as MoReFEM already uses up CI pipeline.
-
v19.48eb27a2cc · ·
- Bug #1498 - #1292: Fix remaining warnings, and a stupid bug I inroduced in visco-elasticity in the conversion from Seldon to Xtensor. - Bug #1499: Improve the exception handling within SNESSolve: previously if an exception was thrown inside the static functions provided to SNES, the exceptions were not caught properly and the program exited poorly.
-
v19.450fe8856d · ·
__Warning:__ You need to update third party libraries to [v19.42](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory/-/tags/v19.42): Xtensor dependencies are now added there, and TClap library has been put there rather than kept inside MoReFEM. __Note:__ due to an issue on M3DIDIM server, Redmine is not available at the time these lines are written, hence the limited precision of the modified content. ## Operators - Feature #1418: Introduce microsphere operator. - Feature #20: In Second Piola Kirchhoff operator, introduce the possibility to check whether an element was inverted. Such a check is commanded through an option in the input data file. ## Utilities / ThirdParty - Feature #1494: Introduce new header files to handle pragma warnings. The idea is to avoid repeating conditions such as considering a warning only for a compiler (or worse, a given version of that compiler). - __Feature #1292__: Replace Seldon by Xtensor for the linear algebra of local operators. - Bug #1485: LuaFunction: destructor was not properly written and induced a memory leak, - __Design #1492__: Remove Tclap from the library (it now must be installed outside of it). ## CI - Feature #177 - #1489: Add Valgrind memcheck analysis for the embedded models and one test. - Documentation #1497: Generate through GitlabPages the Doxygen documentation of the code (wasn't possible previously for projects in Gitlab groups). - Feature #1490: Add Sonarqube in CI analysis; it synthetizes the results of [Cppcheck](http://cppcheck.sourceforge.net/), [RATS](https://security.web.cern.ch/security/recommendations/en/codetools/rats.shtml), [ClangStaticAnalysis](https://clang-analyzer.llvm.org/) and the [Sonar scanner for C++ by the community](https://github.com/SonarOpenCommunity/sonar-cxx). - Documentation #1495: Update README concerning CI - _Standby_: Feature #1497: Add Verrou flaoting-point checks in CI. There is an issue to set it up properly for all VMs (current Docker image works properly on only half the VMs of the project). ## Miscellaneous - Support #1498: Various fixes that appeared while upgrading the external models to this version of MoReFEM API.
-
v19.365faaebd7 · ·
## Utilities - __Design #1480__ Introduce a Directory class which handles properly and in one place the different behaviour that might be expected. The former ways to create/remove/check existence of directories still exist but have been moved into Advanced namespace; the proper way now should be to use the new class. - Design #1477 - Support #1181: For output directories, add the possibility to query the user to ask whether a former directory should be overwritten or not. - Support #1482: Introduce a utility function to generate a random string (for tests). - Support #1479: Introduce a GracefulExit exception which should be handled in the main by an EXIT_SUCCESS return code. - Support #1474: InputData: add a constexpr test to check whether a given item is present or not. - Bug #1475: Improve the error message when unbalanced braces in the input file. ## Core - __Feature #1476__: MoReFEMData: introduce a new template parameter which specifies the type of program (model or test). - Support #1478: MoReFEMData: use helper functions to make the constructor clearer. ## Models - Feature #1259 - #1303: The non linear membrane operator is now fully validated with and without a pretension. ## External tools - Support #1484: Doxygen: Fix the warnings of advanced and basic Doxyfiles, and add them to CI. - Support #1483: Update Doxyfiles to Doxygen 1.8.16 (and fix the new warnings in the code). ## Ongoing tickets - Feature #1443: Introduce a two step parallelism run to make better use of memory (and it's a step to restart as well). Mesh may be reloaded completely from pre-partitioned data.
-
v19.30e4e468fe · ·
## Utilities - Bug #1468: LuaOptionFile wasn't robust enough and couldn't interpret some files if two closing braces were on the same line. The facility to identify entry keys has been entirely rewritten and seems to work in any case (I did my best to write all the edge cases I could think of in the test suite). - Support #1470 - Feature #279: Refactor PrintContainers facilities: there are now only two functions (one for tuple and another for other containers). Policies aere provided to handle the different cases (including associative containers). - Support #1469: One of the policy mentioned in #1470 enables to print content of a container of std::variant (provided the types within the variant are printable). - Support #1467: Following #1432, there is no need to keep track of the LuaOptionFile used to interpret input data file. ## Core - Feature #1466: Separate RAII initialization of PETSc and Mpi from the rest of MoReFEMData. Thus several InputData may be initialized within a single program. - Feature #1465: Add the possibility to write down the content of InputData. Will be used in #1443 - Feature #1315: Implement the possibility to update correctly all the comments of a Lua file (consequence of #1465). Lua files of embedded models have been updated with this new functionality. ## Tests - Bug #1461: Due to a git mishap, test about PetscVectorIO was buggy (the fix to the bug was unwittingly overwritten...) - Bug #1464: A test (Utilities/Now) could fail due to racing condition. ## Documentation - Documentation #1459: Move the introduction talks in a [separate project](https://gitlab.inria.fr/MoReFEM/CoreLibrary/introductiontalks.git). - Support #1471: Work around a Doxygen issue (on VM only): three warnings appear for no reason (a function signature is truncated and thus Doxygen can't connect the dot with the provided parameter). ## External tools - Feature #1460: Reintroduce proper way to generate easily Docker images of MoReFEM. - Feature #1463: Add configure_cmake_external_model.py to the MoReFEM installation. - Bug #1462: Add in PreCacheFile the values of CMAKE_C_COMPILER and CMAKE_CXX_COMPILER.
-
v19.29016a7a1f · ·
## Outputs - Feature #1422: Offers the possibility to write results in binary. Petsc vector has been extended to enable reload of those values (see ThirdParty tickets below). - __Feature #1421__: Changing the output directory so that each processor writes in its own folder and add an optional timestamp. _Note:_ the compatibility break here concerns tests and Ensight outputs. ## Utilities / ThirdParty - Feature #1453 PetscVector: enrich the way a vector can be built with more reloading from files. - Bug #1455: Vector::InitFromSequentialFile didn't work due to filler lines in Matlab format. - Bug #1452: Reloading Petsc Vector didn't work as expected. - Support #1451: PetscVector::AreEqual now also investigates the ghosts. - __Design #1454__: PetscVector: modify the API of some methods to be more in line with the rest of the library. ## Core - __Design #1456__: MoReFEMData: remove the awkward option to provide an additional subdirectory. ## Geometry: - Bug #1445: Bug corrected in WriteMedit: ghosts were also required in the conversion array! - Bug #1448: Mesh::AreVolumesBuilt() implementation was faulty. - Bug #1449: Way of computing number of vertices, edges, faces and volume after processor reduction has been improved. - Bug #1450: Exception about interface not built was not properly handled. ## FiniteElement - Design #1458: GodOfDof: modifying the underlying structure behind GetOutputDirectoryForNumberingSubset(). ## Test - Support #1272: Convert the FromVertexMatching test to activate it in the test suite. - Support #1457: Set the timeout for each test. - Bug #1442: Gitlab-CI: the warning check for macOS failed as an alpine Docker image was assumed and a shell runner was actually used ## Scripts - Bug #1447: init_morefem.py script didn't work in macOS due to bad module path. ## XCode - Support #1446: XCode class template: use C++ 17 namespace liberality to avoid many indenting stages.
-
v19.27.24657415c · ·
## Utilities - Documentation #1435: Update the automatic comments in Lua input file following #1431 changes, ## CI - Support #1437: In Yaml files, add explicit dependencies. Previously they were forgotten, and all artifacts were downloaded. - Support #1436: Do not run CI pipeline for master. In our workflow, master is modified only when a new tag is issued, and there is no need to run twice the same identical pipeline (once for tag and once for master branch). ## Models - Bug #1438: In hyperelastic model, wrong sign affected to the TransientSource operator in the rhs computation. ## PostProcessing - Bug #1441: Robustify the function in charge of writing Ensight output for a given unknown so that there can't be lines with more than 6 values. ## Compilation / CMake / XCode - Support #1439: Address some warnings that appeared with gcc 8 (and that weirdly didn't appear when I validated the previous tag). - Bug #1434: CMake install was not properly updated and libmeshb includes were not found due to this mistake in external models. - Bug #1440: Fix a bug in release config file (wrong path for libmeshb library).
-
v19.2799067a30 · ·
## Utilities - __Support #1432__: Change the way Lua function is implemented (for the sake of #1431). In your existing models, you will have to change the definition of Lua functions in your input data file: it should be within a string block (just add '[[' before the function and ']]' after). - Support #1431: InputData: modify interface so that variant may be used in a vector - Support #1430: Introduce a mechanism to know whether a class gets a member of a given name or not. ## Geometry - __Support #1427__: Update from Libmesh6 to Libmesh7. Now Libmesh 7 is no longer embedded (the reason Libmesh6 was - missing include guard therefore added manually - has been solved in Libmesh 7, so there are no reason not to handle it as any other third party library.) ## Operators - Bug #1415: ScalarDivVectorial and Stokes operators were flawed: a Seldon overflow could occur due to an index issue. - Support #1425: Make sure that cache misses are kept to a minimum in local variational operators. ## FiniteElement - Support #1424:UnknownManager: replace an assert by an exception in debug mode to help developer's work. ## Models - Support #1413: Add test about Stokes model with two separate operators. ## Compilation - Support #1433: Update the code to compile gracefully with latest clang. - __Support #1305__: std::optional is now also supported with recent AppleClang; so remove the macro that might point to Boost counterpart which is now never used. - __Support #1330__: Same as #1305 for std::variant. ## Tests - Bug #1414: CheckIdenticalFiles and CompareEnsightFiles were deeply flawed: reference files were compared to themselves! ## PostProcessing - Bug #1412 A line was unduly commented in the generation of the geo file. ## Miscellaneous - Bug #1420: I used to unduly believe operator<< overloads should be put in namespace std. - Support #1428: Replace dispatchers by more modern (C++ 17) facilities (mostly if constexpr).
-
v19.16c97bb784 · ·
**WARNING**: You will need to reinstall Boost from ThirdPartyCompilationFactory: new version of MoReFEM uses up Boost.Test in its installed version, which was not provided previously. ## ThirdParty - Support #1401: Update MoReFEM to the latest versions of the third-party libraries. ## Geometry - Design #1405: In Mesh class, clarify the use of GetIndex() or GetPositionInCoordsList(). - Support #1403: Add a test on compatibility of Ensight and Medit formats. ## Operators - Design #1408: Rename ActiveStressPolicy InternalVariablePolicy as it will be used soon to describe non active contributions. - Feature #1381: Add coefficients with a spatial dependency representing a fiber density. ## Gitlab-CI - Feature #1398: Switch from Catch2 to Boost.Test to handle tests. - Support #1410: Introduce a script to generate Yaml files. - Documentation #1406: Add a note about the installation on shell runners on macOS. ## CMake - Feature #1407: Robustify the compilation of static/shared libraries - Support #1404: Provide a new Yaml file with tags, hence speeding up the builds by increasing dramatically the chances a cache is already present on the VM picked up to perform the job. - Support #1409: Stop installing tests (through `make install` or `ninja install` for instance). ## Post-processing - Bug #1399: Ensight output didn't always place correctly the dofs when a MoReFEM output was translated into Ensight format (the errors appeared when some vertices of the mesh were left unused). ## Miscellaneous - Support #1396: Fix warnings that appeared after upgrade to XCode 10.2 (and AppleClang compiler). ## Ongoing tickets - Support #1272: Add DomainListInCoords test in the test suite (it was an old school test previously).
-
v19.134b1b9d14 · ·
## Gitlab-CI - Feature #1360: Introduce gitlab-ci. - Documentation #1393: Update CI documentation: Jenkins related pages are removed and newly introduced Gitlab-CI is properly explained. ## Scripts - Feature #1390: Add script to analyze Doxygen log and return the relevant warnings. - Feature #1383 Create a script to analyse compilation log and extract whether there were warnings. - Bug #1382: Script to set up CMake was not correct. - Support #1394: SourceLists.cmake: add a comment inside the file to indicate it's automatically generated. - Support #1198: Clean-up Python scripts. ## Geometry - Bug #1392: Ensight expects "vector per node" and not "vectorial per node". - Support #1389: Deal properly with the exception added in GeometricElt constructor from stream. ## FiniteElement - Design #1388: In Dof class, make the methods that set the id private. ## Doxygen - Support #1395: Mathjax is now used to render formula in Doxygen documentation. - Documentation #1385: Fix partially Doxygen warnings that appeared with more recent versions of Doxygen (others too time-consuming to solve will be filtered out by a script). ## Models - Documentation #1370: Write a tutorial describing step by step how to implement elastic model. ## Miscellaneous - Support #1391: Remove warnings from libmesh6. - Support #1384: Add two warnings to exclude for clang builds. - Support #1351: Update to XCode 10 on macOS 10.14.