Mentions légales du service

Skip to content
Tags give the ability to mark specific points in history as being important
  • 15.12
    - Bug #469: Fix several mpi bugs, most of which that occurred in the degenerate case in which one of the processor doesn't get any ghosted dof.
    - Feature #468: Hyperelasticity: produce 4 mains to represent all the combinations hyperelastic law/time schemes.
    - Feature #466-#467: Clean-up forces involved in Elastic and Hyperelastic models: it is no longer a hack to decide whether the force is surfacic or volumic, and one of each can be used at the same time. Also clean-up Lua files so that comments are really on par with latest code.
    - Feature #463: Modify the library so that Point geometric and finite elements can be used.
    - Feature #464: avoid some repeated allocations of Seldon matrices and vectors in ShapeFunctionAtQuadraturePoint.
  • list
    bef61912 · Issue tag v24.04. ·
  • v0.1
    Felisce classes have been all reworked slightly and moved into Happy Heart directories. The rework is local: a method has for instance be rewritten to be clearer, but in most cases the merits of this method has not been thoroughly called. So architecture will change a lot, as Happy Heart will grain ground against code inherited from Felisce.
  • v13.46
    Hyperelasticity updated from what was in FElisce (for instance dynamic hyperelasticity added.). InputParameterFile are more generic: up to now the one required for hyperhyperelasticity was hardcoded everywhere. Mode release has been configured and checked; new improvement on it will be to try O4 optimization flag (but it requires recompilation of libraries, so it will wait until all libraries will be recompiled for OS X Mavericks.). At last, I now use a new scheme for tag numbers: *year*.*week number*(.*index if several in a week*).
  • v13.47
    See new TAGS file for details.
  • v13.49
    - A nasty and stupid bug has been solved in Hyperelasticity: a quantity wasn't correctly initialized, leading potentially to undefined behaviour.
    - Intrusive smart pointers have been replaced by std::shared_ptr. Initially it was done in the search of the bug mentioned above, but it is in fact wiser: Yuni library pretends the virtual
    part is required, and it therefore wasn't so wise to deactivate it. But keeping it would mean paying the virtual cost anywhere... so shared_ptr at the moment; we'll see to replace them if the cost of memory is too huge. But doing it now was premature optimization.
    - Petsc wrapper: now there are two classes that wrap over Petsc's Vec and Mat. The interface is hence slightly easier, and we limit greatly potential memory leaks: Petsc functions MatDestroy and VecDestroy are now called automatically in the destructor.
    - Yuni library path has been modified in XCode project: Yuni has changed its SCM from SVN to git, and I have checked out the latest version from git. As a conequence, there is no longer a 'trunk' in the path to access the library.
  • v13.49.2
    Add the writing of solution in Medit and Ensight format. Ensight case file are not yet handled.
  • v13.49.3
    269b58d2 · Update TAGS. ·
    Get rid of entirely of Felisce ordering. Up to now, I had to resort to a dirty trick to make HappyHeart work: there was a conversion tool that gave the position in the vector of Felisce of a given geometric element. So I had to deal with 'HappyHeart ordering''and 'Felisce ordering', which was very clumsy. Now this tool has been removed, which was not easy to do: the algorithm worked in Felisce because many loops made strong assumptions on the order in the vector; for instance a quantity that should be the same (say the position in a local mesh of a geometric element) was calculated completely outside of the local mesh; it worked because some loops happen to fill the vector the same way GeometricMeshRegion did!
  • v13.50
    - Ghost are now used, limiting tremendously the need to gather data (the only remaining one is to write solution, and it will be handed in a future release).
    - RAII introduced for AO and IS mapping.
    - Definitions of the SNES functions used for hyperelasticity moved from LinearProblem.cpp to HyperelasticModel.hxx. Thus NewtonSolve() is now much more generic.
    - Replaced typedefs related to smart pointers by more explicit names that moreover respect the coding style. It 'frees' Vector name, that could be confused with Seldon's or Petsc wrapper's namesake objects.
    - There was a nasty bug resulting from the loss of Felisce ordering: the global dofs weren't correctly indexed when the geometric element were partitioned. The calcul was nonetheless correct, but at the price of efficiency: many values were fetched in the sequential array! And I would have utterly failed with my ghost vectors: data wouldn't have been reachable for all cases. This highlights the facts that Felisce internal structure is rotten: it should be the same object that holds the information both in geometric element partitioning and later when data are fetched inside.
    - Small solutions were not written when static case alone was called.
    - Petsc: instead of including petsc.h everywhere, we now target only the headers that are truly required.
  • v13.50.2
    e0a417f7 · Update TAGS. ·
    Fix to v13.50
    
    - Elasticity was not working in v13.50: a condition upon ghost mapping was too tight.
    - Work directory is now created if it doesn't exist, rather than returning an error and exiting directly.
  • v13.51
    - Creation of processor-wise GeometricMeshRegion is now much cleaner: it is the global GeometricMeshRegion object that is shrunk to a processor-wise one instead of relying on a file written on disk that was read again. As a consequence, some attributes that were duplicated (support_dof_mesh_ for UnknownVariable and mesh_ for LinearProblem) are now united; they become local as soon as the partitioning is done. Less memory is hence used: the global objects no longer exists, whereas previously they were there for the whole program (and were also used to fetch data; all these call have been replaced by processor-wise ones).
    - GeometricElement now holds a pointer to the vertice, rather than a mere index.
    - There was a remaining gather through MpiAllReduce that was completely irrelevant (it was to apply the BC, but only the local dofs were meaningful due to the structure of the matrix after renumbering).
  • v14.10
    - Static Stokes problem is implemented (it is able to reproduce Freefem result in P2/P1).
    - List of boundary conditions is now handled by DofManager rather than by LinearProblem.
    - No error now when a processor miss a combination (geometric element type, label) when boundary conditions are applied.
    - Penalisation scheme has been implemented.
    - BUG corrected: GeometricMeshRegion didn't keep correctly the count of labels in parallel case (the labels from vertice were read but not those from geometric element, which might differ).
    - The pragma system has been extended so that the compiler might be choosed in a single file (previously it worked only for clang compiler.).
    - BUG corrected: In GeometricMeshRegion, some methods weren't relevant (GeometricElement couldn't be returned as a reference as it is a pure virtual class.). Two methods implementations were also missing.
    - Refactor slightly the project (creation of a Test folder, and move the place include without warning for third party library).
  • v14.10.2
    - Documentation: coding standards added in a new folder.
    - Model: the class has been reworked so that it is closer to Verdandi counterpart. It is now CRTP-based instead of virtual.
  • v14.12
    a9746f92 · Update TAGS. ·
    - Feature #14: Refactor deeply GeometricElement: introduce a traits class GeomRefElement which will be used both for GeometricElement and for GeometricElementType (that will anyway be renamed as well).
    - PartitionHelper/PartitionGeometricElement: algorithm has been simplified and a potential problem evacuated entirely in the process.
    - Documentation: add a note about the creation of nodes and dofs.
    - Feature #1 Documentation: add a note about the different kind of elements.
    - Bug #2: some corrections in hyperelastic problem. This might or might not correct the issue; a macro can be activated to track the problem should hit arise again.
    - Feature #3: move into ThirdParty folder the wrappers to third party library. Also remove some classes that are no longer used (mostly some introduced when Felisce contribution was still important).
    - Feature #5: make the code compliant to the new standards required by the new command line tools version (which embeds clang 3.4).
    - Feature #8: the redundancy in TransientParameters has been removed: we no longer have concurrent data members time_ and iteration_; the former is now derived from the latter.
    - Feature #13: Some renaming occurred in Geometry (BasisFunction -> ShapeFunction, Node1 -> Point1, Shape -> Topology).
  • v14.13
    c45d811d · Update TAGS. ·
    - Feature #23: Complete the list of geometric elements shipped with HappyHeart.
    - Support #15: Adjust the code so that 'Vertex' and 'Coords' are correctly used throughout the code.
    - Support #15: Storage of Reference Interface has been completely modified to improve readability of the code.
    - Support #15: The Node object now gets a pointer to the related interface, and therefore to the potential Coords object.
    - Support #28: The code is now working also for a P2 mesh.
  • v14.14
    41659253 · Update TAGS. ·
    - Feature #32: Import (almost) everywhere support for all kinds of interfaces. Not completely exact as there are still some dumb tests hardcoded (for instance Nexpected_node in DofManager::CreateNodeList()); however considering Dof will soon be refactored heavily no need to ponder too much on current code.
    - Support #24: QuadraturePoint has been split: in Geometry it is now LocalCoords, used to define shape functions. QuadraturePoint itself is now defined in FiniteElement; it inherits from LocalCoords.
    - Support #16: It is now possible to write self-consistent Medit meshes in parallel.
    - Support #45: Rename correctly the project; add 1 new class in Utilities and remove another.
    - Support #42: Better handling of write problems with Libmesh/Medit.
    - Support #9(in progress): Correct some Doxygen warnings.
  • v14.2
    aaf0f46e · Update TAGS. ·
    - DofManager: Unknown, Node and Dof entirely rewritten. There is now Node and Dof objects, and the partitioning is done more properly (on the nodes rather than on the dofs; so all dofs on a same node are guaranteed to be handled by the same processor). There are no longer mappings: the Dof class gets two attributes giving the program-wise and processor-wise index.
    - Project: now search user path is set to no. It was this option that could create havoc when two files were named the same way in different directories: XCode could pick the wrong one even if there was a partial path to disambiguate.
    - GeometricElementFactory: now raw pointers are returned instead of shared ones. The reason is that we might want to use std::unique-ptr in some cases and there is no conversion from shared_ptr to  unique_ptr.
    - GeometricElementType: previously this class might use as its internal GeometricElement object the one that was given in the constructor. That's not a very good idea: it prevents the releasing of this element (as it doesn't go out of scope). Now a brand-new one is created for each GeometricElementType.
    - SurfaceReference has been renamed Label.
    - Create a folder/group problem in which Elasticity and Hyperelasticity have been moved.
    - DofBearer is now Node (there was no class beforehand, but it was often used in variable and function names).
    - Geometry: there is now a check that geometric element indexes are unique (convenient to compare two geometric elements.). This uniqueness was not enforced until now.
    - Geometry: the interface has been modified (indexes are less exposed than before, and there are much less risk to be used improperly).
    - CurrentFiniteElement: its structure has been slightly changed: there was indeed an implicit dependancy on the unknown that was completely hidden... which didn't prevent to provide methods that rely heavily on this hidden assumption! So there is now a new constructor which explicitly provide the Unknown dependancy. Following these changes, there is no longer a CurrentFiniteElement object in Unknown class (the dependancy is the other way around now).
  • v14.21
    3236a7dd · #54 Update TAGS. ·
    WARNING: Elastic and Stokes formulations are currently disabled; only hyperelastic one has been ported to the new algorithm.
    
    - Feature #54: very heavy refactoring, which modifies the way the assembling and calculation work. Now GlobalOperators have been introduced, and have the responsibility for the finite elements that act upon them. FiniteElement is a much more defined class than it was.
    - Feature #103: Petsc matrices are now built with their pattern fully defined.
    - Support #36: Now the rules to name the exceptions and their namespaces are the same everywhere.
    - Support #47: Get rid of compilation option -ftemplate-depth=10000.
    - Support #49: Clean-up in Utilities.
    - Support #50: make sure all HappyHeart includes are defined from the src folder.
    - Support #55: Introduce DofGroup and UnknownComponent (required for the transition to the new design discussed in code meetings).
    - Support #65: Dofs are now created before the partition; program-wise indexing is done at the same time as node indexing and processor-wise/ghost-wise immediately after the partitioning occurred.
    - Support #6: Remove now useless GeometricMeshRegion::work_directory_ (and its InputParameter counterpart).
    - Feature #67: new finite element classes (FiniteElement, GenericFiniteElement and LocalOperator) have been introduced and replace CurrentFiniteElement. However this is currently not very pretty as a method FiniteElement::SetLocalOperator() must absolutely be called before each calculation (otherwise invalid data would be used in calculation). The refactoring to correct this is the topic of #75.
    - Feature #75: LocalOperator has been extended and replace for instance the former ElementMatrix and ElementVector object.
    - Feature #77: Introduce fully the GlobalOperators, which took many responsabilities from LinearProblem. There are heavy refactoring in this ticket, which I unwisely didn't split in parts.
    - ... and many others defined more thoroughly in #54...
  • v14.25
    4f0b0b91 · Update TAGS file. ·
    - Feature #119: GlobalVariationalOperators are now able to support several associated matrices or vectors.
    - Feature #105/#117: Global matrices and vectors are now held by an external structure rather than by the GlobalVariationalOperators themselves.
    - Feature #91: LocalVariationalOperators now access only local informations; the extraction from global Vectors occurs earlier.
    - Feature #100: Some responsibilities of FiniteElement have been given to LocalOperator, following what was decided in code meeting. This was a good decision: much memory is now spared as each FiniteElement no longer need an additional pointer.
    - Feature #43-#110: there is now a working compilation with Scons; only remaining defect is that I managed to do it only for shared libraries. Linux compilation is foreseen but not yet activated (some options must be determined beforehand with a Linux system handy).
    - Support #101:  Rename GlobalOperator GlobalVariationalOperator.
  • v14.26
    7dc54131 · #126 Update TAGS. ·
    v 14.26:
    
    - Feature #126: Hyperelastic matrix and vectors should be handled by the same GlobalVariationalOperator
    - Design #120: Introduce UML diagrams with PlantUML for operators and nodes.
    - Bug #122: Fix the compilation issues in TestOndomaticNumbering resulting from the recent changes in architecture.