-
v16.50d8abed1d · ·
- Design #1062: Revert #1039 about include convention: XCode was lost and unable to track the lines of warnings and errors in header files. So HappyHeart no longer appear explicitly in include names; ticket in Redmine explains how to proceed nonetheless to solve the issue Gautier met. - Support #859: Utilities: add a function to concatenate several files. Ongoing tickets: - Documentation #9: Many missing Doxygen comments fixed; only Utilities, ThirdParty, Core/InputParameter, PostProcessing still harbor Doxygen warnings (I let aside the elephant in the room: ModelInstances will require a huge amount of work if we want it to cpmply as well). - Design #1064: Start the reflexion on the splitting of InputParameterList: values that shouldn't be modified by the end user should not appear in the input parameter file. - Feature #1022: Rewrite of Poromechanics in progress; 2x2 is now running but there is a bug to find in the monolithic system (doesn't behave as a Newton).
-
v16.498ce0c85b · ·
- Feature #1052: Extend FromVertexMatching interpolator to make it work with higher orders (P1b, P2, etc...). - Feature #1049: Parameter should rely upon Domain rather than GeometricMeshRegion. This enables a consistency check whenever a value is required: we may check whether a call within a GeometricElt is valid or not. - Feature #591 - #1035: Extend TransientSource so that it may handle scalar case without hack. New scheme has been properly deployed to replace hack used formerly. - Feature #1025: Extend GlobalParameterOperator to enable their use with time dependent parameters at quadrature point (this was announced in previous tag but the branch was actually not included). - Feature #505: Monolithic Stokes: write post processing to split velocity and pressure in solution. - Support #1053: Add a test to check FromVertexMatching (was very useful to implement and check #1052). - Support #1047: Modify slightly SCons build to enable clang static analyzer. - Support #1045: Add a new field in SCons so that several builds may exist for the same compiler. - Support #1032: Make more generic the default SnesFunction and SnesJacobian. - Support #995: Add a macro within which there are additional checks for nan and inf values. - Support #1056: Improve Python integration script (previous version didn’t work with keywords “COMPILER” and “COMPILER_DIRECTORY”). - Support #1059: Adapt AcousticWave model to conform to #1035 (acoustic wave could use either a scalar or a vectorial unknown; new interface required compile-time decision and therefore to templatize both possibilities and create two different executables). - Bug #1054: Interface::SetVertexCoordsList doesn't yield a consistent ordering. This was a very nasty bug, which undermined completely for instance the high order as faces were not oriented consistently. - Bug #1050: Fix ScalarParameterFromFile. - Bug #1044: Fix gcc issues. - Design: #1039: Modify HappyHeart include convention so that HappyHeart appears inside. The reason for this is that it eases considerably its use in another program; for instance now Gautier may create in M3DISIM-HappyHeart a directory ModelInstances without risking a conflict with HappyHeart internal structure. Ongoing tickets: - Documentation #9: Add and improve Doxygen comments, especially for OperatorInstances (all Doxygen warnings have been fixed there). - Support #859: Many minor fixes, especially to ensure all configurations are compiled correctly. Important: - Poromechanics is currently not running correctly; we're still in the middle of #1022. However a tag was really due for quite some time now given some important modifications (especially #1049, #1054 and #1039). It is acceptable only because Poromechanics has not yet been delivered and is still marked as in development.
-
v16.4288a4a06f · ·
Parameters/Parameter operator tickets: - Feature #959: Simplify greatly interface of Parameters (e.g. ParameterAtDof now rather than ParameterAtDof::type...) and document more properly time policy. - Feature #1025: Extend GlobalParameterOperator to enable its use on Parameter with a non None time policy. - Profile #700: Enable construction of a ParameterAtQuadraturePoint from a ParameterAtDof (the former is much more efficient at runtime, in the case values do not change). - Support #1027: Remove construction of local2global in GlobalParameterOperator. - Support #1026: Refactor the directories/libraries for Operators and Parameters: they are now split in half with so-called OperatorInstances and ParameterInstances defined both once Operators and Parameters are defined. Doing so breaks any circular definition issue we might have. - Support #1029: Replace ParameterAtDof by ParameterAtQuadraturePoint in FiberList (using what was introduced in #700). - Support #995: Add a macro HAPPY_HEART_CHECK_NAN_AND_INF within which there are additional checks for nan and inf values. Others: - Support #878: Rewrite header guards as a Python script (the C++ version was cumbersone as it required part of Utilities to compile, which could lead to a chicken and egg issue during refactoring. Moreover, it relied heavily upon Yuni library which I hope to remove when C++ 17 provides filesystem operations). Ongoing tickets: - Documentation #9: Clean all Doxygen warnings in Parameters, ParameterInstances. In progress for Operators.
-
v16.4083f603e5 · ·
- Feature #1002 - #1004: Add a clean support for linear and non-linear solve failure: now in case of failure there is a message that gives away the cause of the issue (as provided by Petsc). - Feature #996: Improve Ensight support. - Support #1020: In instance of GlobalVariationalOperators, DoComputeProcessorWiseLocal2Global is no longer a constructor argument. It is actually the operator itself which 'knows' whether it needs processor-wise local2global; in many models the constructor value was incorrectly set to yes, thus using lots of memory for unused data. - Support #1018: Change template parameter of ApplyEssentialBoundaryCondition so that call is more user-friendly. - Support #1012 - Bug #1013 - Bug #1014: Improve the implementation of Solver class, especially the parallel support. - Support #1011: Now by default TimeKeeper only tracks the overall time of the program; a macro must be invoked to write more stuff in the file. - Support #1009: Mesh dimension is no longer a constructor argument for operators. - Support #999: Main EnsightOutput executable has been removed; now there is a tailored-one in each model instance. A XCode template has been added to provide the skeleton of the main file. - Support #989: Update XCode project to XCode 8. - Support #987: Add more informations in AssertNumericalValues. - Support #984: Clarify usage of MatSetValues. - Support #985: Complete an assert to explain how to make available local->global in an Operator prior to a call to ExtractLocalDofValues(). - Bug #1021: Fix the slight numerical discrepancy that appeared in developments since last tag (introduced by #1014). - Bug #1019: Fix a poor stop condition in metaprogramming for PrintTuple, that made gcc compilation fail. - Bug #1107: Movemesh wasn't protected enough in case of two FEltSpace on its numbering subset. Poromechanics specific tickets: - Feature #1001: Rewrite slightly hyperelastic contribution so that any vanilla law can be provided and expanded with fluidmass contribution. - Feature #991: Write a proper 3D case. - Feature #988: Add penalization porosity term. - Feature #967: Add the movement of the mesh. - Feature #962: Real operators are now used rather than the so-called 'analyticalPressure' ones. The approximate formula is now used solely for quadrature points for which the denominator would otherwise be zero. - Feature #990: Reintroduce so-called 'beta' (in Freefem script) contribution. - Support #993: Write the post processing. - Support #992: Prepare the relevant outputs. - Bug #998: Initial porosity was actually present twice in the input parameter file, with two different names Ongoing tickets: - Support #9: Improve and complete comments (for Operators mostly). - Support #887: Refactor files and namespaces. - Support #859: Minor modifications that don't deserve their own ticket.
-
v16.36b6cf47ef · ·
- Feature #820: A first draft of Poromechanics is now complete. #960 has spawn many tickets for improvements required before it may be moved outside of its current 'UnderDevelopment' directory. - Feature #964, #965, #979 and support #968, #978, #980: first batch of #960 tickets to improve and extend poromechanics. - Feature #981: Introduce TetraP1b finite element. - Feature #976: Make several Petsc vector methods and functions automatically call UpdateGhosts(). It proved to be tedious to make sure it was properly called at every step in models, so now it's reverted: it's automatically called but might be bypassed if the developer knows what he is doing (for instance if there is a MatMult which result is immediately modified by a AXPY it can be safely bypassed). - Support #972: Add a mechanics to provide GlobalVector for temporary usage without having to reallocate them. This is much safer than what I did previously. - Support #955: QuadratureRulePerTopology should be given by value copy rather than by move constructor in operators. - Bug #982: Correct a bug in debug function AssertMatrixRespectPattern() that occurred sometimes in parallel. Also rewrite slightly VertexMatching interpolator to fix another parallel bug. - Profile #913: Add dev tool in UpdateGhosts() to check whether a call is actually required.
-
v16.32e6bf12b8 · ·
- Bug #954: Indexing of Volume was faulty when several meshes were involved. Ongoing tickets: - Feature #820: Poromechanics dH loops done; iteration indexes cleant-up to ease comparison with Freefem counterpart. - Support #9: Improve and complete comments (for Geometry mostly).
-
v16.294aca6949 · ·
- Feature #950: In VariationalFormulation, extend the interface of ApplyBoundaryCondition to enable both pseudo-elimination and penalization. - Support #951: Improve interface of ShellMatrix. - Bug #949: A recent change in LocalVariational operator Crtp was not correctly reported in GlobalParametersOperators (not featured in current integration tests). - Bug #952: Fix a bug in Singleton destruction sequence (that was already seen and clumsily fixed in #739 and #740). Ongoing tickets: - Feature #820: Poromechanics Gmres loop dH in progress. Note: In integration test, Stokes failed in parallel in both debug and release mode with gcc. The problem is not consistent: it occurs only during some runs, while the other yield the expected result. It is likely to be related to the versions of third party librairies used with gcc; a ticket (#953) has been opened to investigate it.
-
v16.25.37a117f70 · ·
- Feature #945: In SecondPiolaKirchhoffTensor, hyperelastic laws are now stored by reference rather than policy and may be shared with some other parts of the code (required in Poromechanics). Their instantiation is now much more prominent within Operators library: it is no longer hidden within LocalVariationalOperatorInstances. Ongoing tickets: - #820 Poromechanics: implicit step fluid is done; solid step has been begun but currently yields stupid results.
-
v16.25.2eccdd971 · ·
- Bug fix on #938: PseudoNormalManager::Destroy() should not be called if it is not instantiated in the first place.
-
v16.25fe9c9b48 · ·
- Feature #938: Implement first draft of pseudo-normals (to be continued in #946...) - Feature #943: Implement distance function. Ongoing tickets: - #9 Add missing Doxygen comments.
-
v16.23bfee3a27 · ·
- Feature #922: Hyperelastic laws might now be used outside pof hyperelastic operator (and so are invariants and Cauchy-Green tensors). - Feature #919: PostProcessing: create a new executable that enable visualization by Ensight for high order for quadragular meshes (we mimic the case of a Q1 modal on a much finer mesh). It's likely this works only for a Model in sequential at the moment. - Support #936: Provide a convertor for matrices from HappyHeart to Freefem. This convertor is quite crude and not very user-friendly, but nonetheless very handy to debug the code. It works properly for 2D case with P1 and P1b element so far; additional case will be added when the need arises. - Support #932: Clean-up of Assembling(). - Support #929: Add a new compile mode (alongside 'debug' and 'release') for callgrind which provides debug symbols on a release compilation. - Support #923: Add in Filesystem a function File::Copy() than handles correctly autocopy. - Support #920: GeometricMeshManager: new unique id might now be called out of Create() method. - Support #939: Replace the Lua files used for acoustic wave model in integration tests. - Bug #937: In post-processing, only the dofs located on vertex were correctly loaded. - Bug #934: Coefficients of ScalarDivVectorial were inverted. - Bug #925: In post-processing, if a Model was used the output directory was deleted in the call to InputParameterFile. - Bug #924: GeometricMeshRegion::GetGeometricEltPtr() was not functional (it wasn't used anywhere anyway...); it has been replaced by GetGeometricEltFromIndex(), with a comment saying it should be avoided when performances are at stake (it is used currently in PostProcessing only). - Bug #921: A change from v16.18.2 made models with Ensight mesh fail. Ongoing tickets: - #820 Implicit fluid step: the variational formulation involving matrix ((m, v, p), (m, v, p)) now yields the correct result. - #9 Update Doxygen comments.
-
v16.18.258e50cd4 · ·
- Bug #911: Fix an important bug in SubsetOrSuperset that could lead to wrong results when several numbering subsets were defined in the same FEltSpace. - Support #914: Add a more direct constructor in GeometricMeshRegion, for the need of Federica and Sebastien I. This constructor takes directly the list of Coords and GeomElt rather than assuming it's provided in a file. GeometricMeshRegion object must be created through the GeometricMeshRegionManager dedicated Create() method. - Support #915: QuadratureRulePerTopology is now given by copy value rather than by move assignment. - Support #916 Rename more accurately RefFEltSpace into RefLocalFEltSpace. - Bug #917: Fix a bug introduced in #909 (poorly written assert in Gauss formula computation). Ongoing tickets: - Feature #820: Fix parallel code in Poromechanics (UpdateGhosts() was missing in several locations, and #911 was found as well).
-
v16.18fec83e61 · ·
- Support #907: Minor fixes to issues found during the test phase of the ta, during which I ran the integration test for the first time in a while. Running thse tests will now be part of the standard procedure before releasing any tag. - Support #909: Gauss formula for quadrature points were lifted from Ondomatic (which itself took them from another code) and therefore lacked the usual debug safeties provided by HappyHeart. This led to a bug tricky to identify while using new quadrature rules for hexahedra; so asserts have been added to avoid such a time loss should another bug be hidden there. - Feature #904: Extend time dependancy of Parameter so that it now may be given from an input file rather than by a functor. Currently the input file must give time-dependant values for eacjh time step considered; in the future extrapolation shall be introduced (probably as an policy). - Feature #900: Refactor quadrature rules so that they are now stored at FEltSpace level. Each GlobalVariationalOperator may supersede them with its own through an optional constructor argument. - Support #902: Secure the use of AXPY for matrices: previously default argument assumed X and Y follows the same pattern, which could lead to bugs if that is not the case. So now it is an explicit template argument not defaulted. - Bug #903: Fix a computation that overestimated in parallel the number of processor-wise interfaces (to put in a nutshell ghosted were counted as processor-wise). Ongoing tickets: - Feature #820: Poromechanics: implicit step fluid a bit further (and AXPY bug corrected - see #902).
-
v16.1764a5a46b · ·
- Bug #899: Wrappers/Petsc: the options to reuse matrices in MatMatMult type operations were poorly implemented. - Feature #898: Finite elements given by Spectral should use different quadrature rules (expands what was begun in #896). - Support #897: In Geometry, Local2Global has been rewritten to avoid copy by value. - Bug #896 - bug #335: Fix the shape functions for Spectral finite elements. Ongoing tickets: - Design #887: Files in Geometry have been reorganized deeply; however the work is still in progress concerning the renaming of namespaces following Advanced/Internal convention.
-
v16.155be6d490 · ·
- Bug #894 - #891: NodeBearerList was not correctly computed during reduction in parallel. This bug was there for a long time but impacted only models with certain kinds of interpolators (so only poromechanics was concerned...) - Feature #885: Expand Scalar div Vectorial to handle more cases. - Support #888 Petsc: introduce a wrapper over MatMatMultNumeric and MatMatMultSymbolic. - Support #890: Write a function that checks a matrix really respect its expected pattern. - Support #892: Add SNESConvergenceTestFunction in SNES. - Bug #893: Coords: an assert for operator== was completely off - Support #886: Interpolator: FromVertexMatching interface has been simplified. - Feature #885: Expand ScalarDivVectorial to handle more cases in both Operators library and Poromechanics model (which defines its own version of the operator). Ongoing tickets: - Documentation #9 - Design #882: FormulationSolver, Core and Domain in Geometry have been cleant-up a bit. - Feature #820: Implement poromechanics model - part T11 of the implicit fluid matrix has been computed (with difficulty due to #891).
-
v16.14566c0eb4 · ·
- Feature #860: Cardiac law implemented, no longer in UnderDevelopment directory. - Support #850: Add Matlab scripts. - Bug #880: Poromechanics code was not working in parallel. - Bug #879: In Poromechanics, porosity was evaluated on the wrong god of dof. It is now properly evaluated on the solid one and only then interpolated to the fluid one. Ongoing tickets: - Documentation #9: Finite element and Model Doxygen documentation is cleant-up. - Design #882: Clean-up use of namespace for FiniteElement and Model modules. - Feature #820: Implement poromechanics model.
-
v16.13be3aed1c · ·
- Feature #873: Add the possibility of a decoupled time dependency in Parameter (and hence in TransientSource). - Feature #875: Extend ParameterAtDof so it might encompass several finite element spaces (one per dimension at most). - Documentation #9: Fix all Doxygen warnings in FElt library. - Bug #870: Fix huge bug in GeometricMeshRegion::GetSubsetGeometricEltList(), which produced ill-defined range of subset of geometric elements of a given dimension. - Support #869: Make all tests work again and add them in the integration tests procedure. - Support #872: VariationalFormulation: Rename the AllocateGlobalMatrix() and AllocateGlobalVector() methods to avoid ambiguity with namesake functions.
-
v16.12dbe51396 · ·
- Feature #867: Write P1 -> P1b interpolator (and its opposite one for the sake of tests...) - Documentation #9: Improve Doxygen documentation (still in progress...) - Feature #866: New operator for Parameters.
-
v16.117e7535e5 · ·
- Feature #820: Still in progress: Poromechanics. - Bug #862: In XCode project, Ops and Seldon were poorly located if HappyHeart was installed in an unusual place. - Feature #861: Integration of a sibling git repository that deals with development internal to M3DISIM team. Main repository provides utilities to set it up immediately, but may also work finely without this other repository. - Support #858: Replace method ExtractFEltValuesFrom() by free function ExtractLocalDofValues(), which also works in cases the former didn't (for instance when dealing with a different unknown than the one considered in the current operator).
-
v16.10c2be221a · ·
- Feature #782: Add fiber contribution in the stresses. - Feature #802: Acoustic wave model. - Support #857: Main programs should return EXIT_FAILURE if they stop through an exception. - Bug #856: EnsightOutput has been rewritten to work with environment variable HAPPY_HEART_RESULT_DIR. - Bug #855: Safeties in FiberList were not trapping some cases (such as fiber list too big for the mesh).