Mentions légales du service

Skip to content
Tags give the ability to mark specific points in history as being important
  • 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).
  • 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.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.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.49.2
    Add the writing of solution in Medit and Ensight format. Ensight case file are not yet handled.
  • 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.47
    See new TAGS file for details.
  • 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*).
  • 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.