Mentions légales du service

Skip to content
Tags give the ability to mark specific points in history as being important
  • 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.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.7.2
    - FiniteElement: a Private class named FetchBlockHelper has been created; it is in charge of calculating the submatrix for a pair unknown/component. The user no longer has to bother with block index: he can manipulate irectly unknowns
    and components. As a bonus, a part of the code that was duplicated between ElementVector and ElementMatrix has disappeared in the process.
  • v14.7
    - 2 problem variables: some bugs have been tracked down with the help of the Stokes problem (not fully implemented yet). Parmetis call for instance was bugged: it kept unduly the self-connexion nodes.
    - Cleaning-up of the interfaces: some indirections have been cut, and implementation details have been moved into Private namespace. Edge and Face are now derived from a CRTP class instead of being a typedef over instantiated template class (which was problematic for instance to generate Doxygen documentation).
    - Use decltype with UninitializedIndex() whenever possible (code more flexible to type change).
    - Most std::size_t have been replaced by unsigned int.
    - Unknowns must now correctly specified to the LinearProblem and Model through a template parameter (previously it was hardcoded as displacement no matter what).
    - Lm5 wrappers moved from geometry to Utilities::Wrappers.
    - Utilities: move Seldon-related functions into Wrappers.
    - Bug correction: in LinearProblem::SetBoundaryConditionList() the value read from the input parameter file was not correct (the size of a vector was read rather than its content).
    - Bug correction: in LinearProblem::AssignTimeConstantBoundaryCondition(), the values weren't correctly assigned for the second condition.
    - FiniteElement was constructed many many times, while it could be entirely avoided. I am in the process of reducing the number of such objects actually built.
    - SNES: when KSP solve is used, there is now a print on screen that gives the residual and the number of iterations.
    - BoundaryCondition: while refactoring is still due, some has been done to avoid too heavy index handling (à la Felisce).
    - Utilities/Petsc: create a Viewer RAII class, and use it to add new view functionalities for matrix and vector.
  • v14.3
    167bc374 · Update TAGS for new tag. ·
    - XCode project has been updated to work with third party libraries recompiled for OS X Mavericks.
    - Keyword final added to many classes.
    - Geometry: Node has been rechristened Point.
    - DofManager: redundant attribute that list in a vector all dofs has been added. It eases the interface when you want to iterate upon all dofs.
  • 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).
  • 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.