# Change Log All notable changes to this project will be documented in this file. ## [3.1.0] 2020 (Codename New Horizons) - Adding GPU support for ghost_put - Adding support for CUDA 11 ### Fixed - Few details in the installation system of linear algebra for OSX ### Changed - None ## [3.0.0] 2020 (Codename Sparsity) - Upgrading all the dependencies: BOOST,PETSC,SUITESPARSE,OPENBLAS - Adding CPU and GPU sparse grids. Look at the examples SparseGrid in the forlder examples - Improving performance of GPU function remove_marked ### Fixed - Several installation bugs on PETSC installation ### Changed - Name for GoogleCharts has been changed please look at the examples ## [1.X ] End of life (Theese versions are not enymore supported) ## [2.0.0] February 2019 (Codename Elisa) ### Added - Adding GPU support (see example 1_gpu_first_step 3_molecular_dynamic_gpu 7_sph_dlb_gpu 7_sph_dlb_gpu_opt) ### Fixed - Detection of clang 10.0.0 on mac-osx mojave - In VTK binary format all 64 bit types are casted to 32 bit. Either the long/unsigned_long are bugged in Paraview we tested, either I do not understand how they work. ### Changed - The type Vcluster now is templated and the standard Vcluster is Vcluster<> Most probably you have to change in your code from Vcluster to Vcluster<> ## [1.1.1] December 2018 (Codename Poisson) ### Fixed - Detection of clang 10.0.0 on mac-osx mojave ## [1.0.X ] End of life (Theese versions are not enymore supported) ## [1.1.0] February 2018 (Condename Ring) ### Added - Interface for Multi-vector dynamic load balancing - Increaded performance for grid ghost get - Introduced forms to increase the performance of the grid iterator in case of stencil code (see example 5_GrayScott) - EMatrix wrapped eigen matrices compatibles with vector_dist_id - General tuning for high dimension vector_dist_id (up to 50 dimensions) + PS_CMA_ES (Particle-Swarm Covariant Matrix Adaptation Evolution Strategy) example in Numerics - Added Discrete element Method example (8_DEM) - Added serial_to_parallel example VCluster (2_serial_to_parallel). The example it show how to port a serial example into openfpm gradually swtiching from a serial section to a parallel section - Introduced map(LOCAL) for fast communication in case we have small movement ### Fixed - Installation/detection of PETSC - CRITICAL-BUG scalar product in combination with vector product is broken (it return 0) - Fixing 2D IO in binary for vector - Fixing 1D grid writer in ASCII mode - Fixing Intel compilation of Linear algebra ## [1.0.0] 13 September 2017 (Codename: Vortex) ### Added - Introduced getDomainIterator for Cell-list - New dynamic load balancing scheme to 7_SPH_opt (see Vector/7_SPH_opt) - Increased performance of 7_SPH_opt - Vortex in Cell example Numerics/Vortex_in_cell - Interpolation functions (see Numerics/vortex_in_cell example) - Gray-scott 3D example with stencil iterator optimization (see Grid/gray_scott_3d example) - HDF5 Check point restart for vector_dist particles (see Vector/1_HDF5_save_and_load) - Raw reader for grid (see ...) - Added setPropNames to give names to properties (Grid and Vector see Vector/0_simple) - Ghost put on grid (see Numerics/Vortex_in_Cell example) - Stencil iterators for faster stencil codes see (Test3D_stencil function in Units tests src/Grid/Iterators/grid_dist_id_iterators_unit_tests.hpp) - Algebraic multigrid solvers interface for linear systems (see Vortex in Cell example) - Added setPropNames in vector_dist see Vector/0_simple - Support for Windows with CYGWIN ### Fixed - Bug fixes in installation of PETSC - 2 Bugs in 7_SPH_opt and 7_SPH_opt error in Kernel and update for boundary particles - Bug in VTK writer binary in case of vectors - Bug in VTK writer binary: long int are not supported removing output - Bug in FDScheme in the constructor with stencil bigger than one - Bug Fixed Memory leak in petsc solver - Bug Performance bug in the grid iterator ### Changed - CAREFULL: write("output",frame) now has changed to write_frame("output",frame) write() with two arguments has a different meanings write("output",options) - getCellList and getCellListSym now return respectively CellList_gen<dim, St, Process_keys_lin, Mem_fast, shift<dim, St>> CellList<dim, St, Mem_fast, shift<dim, St>> - getIterator in CellList changed getCellIterator - Grid iterator types has changes (one additional template parameter) - FDScheme the constructor now has one parameter less (Parameter number 4 has been removed) (see Stokes_Flow examples in Numerics) - MPI,PETSC,SUPERLU,Trilinos,MUMPS,SuiteSparse has been upgraded ## [0.8.0] 28 February 2017 ### Added - Dynamic Load balancing - Added SPH Dam break with Dynamic load balancing (7_sph_dlb)(7_sph_dlb_opt) - Added automatic procedure for update ./install --update and --upgrade (From 0.8.0 version will have a long term support for bug fixing. End-of-life of 0.8.0 is not decided yet, it should be still supported for bug fixing after release 0.9.0) - Added video lessons for Dynamic load balancing (openfpm.mpi-cbg.de) (website officially open) - Added for debugging the options PRINT_STACKTRACE, CHECKFOR_POSNAN, CHECKFOR_POSINF, CHECKFOR_PROPINF, CHECKFOR_PROPNAN, SE_CLASS3. - Added the possibility to write binary VTK files using VTK_WRITER and FORMAT_BINARY see 0_simple_vector for an example ### Fixed - Installation of PETSC with MUMPS ### Changed - BOOST updated to 1.63 - Eigen updated to 3.3.7 ## [0.7.1] 28 January 2017 ### Fixed - Multiphase verlet single to all case generate overflow ## [0.7.0] 15 December 2016 ### Added - Symmetric cell-list/verlet list Crossing scheme - VCluster examples - Cell-list crossing scheme ### Fixed - CRITICAL BUG: OpenFPM has a bug handling decomposition when a processor has a disconnected domains (By experience this case has been seen on big number of processors). - Found and fixed a memory leak when using complex properties ### Changed - The file VCluster has been mooved #include "VCluster.hpp" must be changed to #include "VCluster/VCluster.hpp" BECAUSE OF THIS, PLEASE CLEAN THE OPENFPM FOLDER OTHERWISE YOU WILL END TO HAVE 2 VCLUSTER.HPP ## [0.6.0] - 5 November 2016 ### Added - Symmetric cell-list/verlet list - Multi-phase cell-list and Multi-phase cell-list - Added ghost_get that keep properties - Examples: 1_ghost_get_put it show how to use ghost_get and put with the new options 4_multiphase_celllist_verlet completely rewritten for new Cell-list and multiphase verlet 5_molecular_dynamic use case of symmetric cell-list and verlet list with ghost put 6_complex_usage It show how the flexibility of openfpm can be used to debug your program - Plotting system can export graph in svg (to be included in the paper) ### Fixed - Option NO_POSITION was untested - Regression: Examples code compilation was broken on OSX (Affect only 0.5.1) (Internal: Added OSX examples compilarion/running test in the release pipeline) - gray_scott example code (variable not initialized) ### Changes ## [0.5.1] - 27 September 2016 ### Added - ghost_put support for particles - Full-Support for complex property on vector_dist (Serialization) - Added examples for serialization of complex properties 4_Vector - improved speed of the iterators ### Fixed - Installation PETSC installation fail in case of preinstalled MPI - Miss-compilation of SUITESPARSE on gcc-6.2 - vector_dist with negative domain (Now supported) - Grid 1D has been fixed - One constructor of Box had arguments inverted. PLEASE CAREFULL ON THIS BUG float xmin[] = {0.0,0.0}; float xmax[] = {1.0,1.0}; // Box<2,float> box(xmax,xmin) BUG IT WAS xmax,xmin Box<2,float> box(xmin,xmax) <--- NOW IT IS xmin,xmax Box<2,float> box({0.0,0.0},{1.0,1.0}) <---- This constructor is not affected by the BUG ### Changed - On gcc the -fext-numeric-literals compilation flag is now mandatory ## [0.5.0] - 15 August 2016 ### Added - map communicate particles across processors mooving the information of all the particle map_list give the possibility to give a list of property to move from one to another processor - Numeric: Finite Differences discretization with matrix contruction and parallel solvers (See example ... ) - vector_dist now support complex object like Point VectorS Box ... , with no limitation and more generic object like std::vector ... (WARNING TEMPORARY LIMITATION: Communication is not supported property must be excluded from communication using map_list and ghost_get) - vector_dist support expressions (See example ...) - No limit to ghost extension (they can be arbitrary extended) - Multi-phase CellList - Hilber curve data and computation reordering for cache firndliness ### Fixed - Removed small crash for small grid and big number of processors ### Changed ### Known Bugs - On gcc 6.1 the project does not compile - Distributed grids on 1D do not work ## [0.4.0] - 26-05-2016 ### Added - Grid with periodic boundary conditions - VTK Writer for distributed vector, now is the default writer - Installation of linear algebra packages - More user friendly installation (No environment variables to add in your bashrc, installation report less verbose) ### Fixed - GPU compilation - PARMetis automated installation - Critical Bug in getCellList, it was producing Celllist with smaller spacing ### Changed ## [0.3.0] - 16-04-2016 ### Added - Molacular Dynamic example - addUpdateCell list for more optimal update of the cell list instead of recreate the CellList ### Fixed - Nothing to report ### Changed - Eliminated global_v_cluster, init_global_v_cluster, delete_global_v_cluster, substituted by create_vcluster, openfpm_init, openfpm_finalize - CartDecomposition parameter for the distributed structures is now optional - template getPos<0>(), substituted by getPos() ## [0.2.1] - 01-04-2016 ### Changed - GoogleChart name function changed: AddPointGraph to AddLinesGraph and AddColumsGraph to AddHistGraph ## [0.2.0] - 2016-03-25 ### Added - Added Load Balancing and Dynamic Load Balancing on Beta - PSE 1D example with multiple precision - Plot example for GoogleChart plotting - Distributed data structure now support 128bit floating point precision (on Beta) ### Fixed - Detection 32 bit system and report as an error - Bug in rounding off for periodic boundary condition ### Changed - Nothing to report ## [0.1.0] - 2016-02-05 ### Added - PSE 1D example - Cell list example - Verlet list example - Kickstart for OpenFPM_numeric - Automated dependency installation for SUITESPRASE EIGEN OPENBLAS(LAPACK) ### Fixed - CRITICAL BUG in periodic bondary condition - BOOST auto updated to 1.60 - Compilation with multiple .cpp files ### Changed - Nothing to report