CHANGELOG.md 9.37 KB
Newer Older
Pietro Incardona's avatar
Pietro Incardona committed
1 2 3
# Change Log
All notable changes to this project will be documented in this file.

incardon's avatar
incardon committed
4 5 6 7 8 9 10 11 12 13
## [2.0.0] December 2018

### Added

- Adding GPU support (see example 3_molecular_dynamic_gpu)

### Changed

- The type Vcluster now is templated and the standard Vcluster is Vcluster<>

incardon's avatar
incardon committed
14
## [1.1.0] February 2018
incardon's avatar
incardon committed
15 16 17 18

### Added

- Interface for Multi-vector dynamic load balancing
incardon's avatar
incardon committed
19 20
- 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)
incardon's avatar
incardon committed
21
- EMatrix wrapped eigen matrices compatibles with vector_dist_id
incardon's avatar
incardon committed
22
- 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
incardon's avatar
incardon committed
23
- Added Discrete element Method example (8_DEM)
incardon's avatar
incardon committed
24 25
- 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
incardon's avatar
incardon committed
26
- Introduced map(LOCAL) for fast communication in case we have small movement
incardon's avatar
incardon committed
27 28 29 30

### Fixed

- Installation/detection of PETSC
incardon's avatar
incardon committed
31
- CRITICAL-BUG scalar product in combination with vector product is broken (it return 0)
incardon's avatar
incardon committed
32 33
- Fixing 2D IO in binary for vector
- Fixing 1D grid writer in ASCII mode
34
- Fixing Intel compilation of Linear algebra
incardon's avatar
incardon committed
35

36
## [1.0.0] 13 September 2017 (Codename: Vortex)
incardon's avatar
incardon committed
37 38 39

### Added
- Introduced getDomainIterator for Cell-list
incardon's avatar
incardon committed
40
- New dynamic load balancing scheme to 7_SPH_opt (see Vector/7_SPH_opt)
41 42
- Increased performance of 7_SPH_opt
- Vortex in Cell example Numerics/Vortex_in_cell
43
- Interpolation functions (see Numerics/vortex_in_cell example)
incardon's avatar
incardon committed
44
- Gray-scott 3D example with stencil iterator optimization (see Grid/gray_scott_3d example)
incardon's avatar
incardon committed
45
- HDF5 Check point restart for vector_dist particles (see Vector/1_HDF5_save_and_load) 
46
- Raw reader for grid (see ...)
incardon's avatar
incardon committed
47 48 49
- 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)
50 51
- Algebraic multigrid solvers interface for linear systems (see Vortex in Cell example)
- Added setPropNames in vector_dist see Vector/0_simple
52
- Support for Windows with CYGWIN
incardon's avatar
incardon committed
53 54

### Fixed
incardon's avatar
incardon committed
55
- Bug fixes in installation of PETSC
56
- 2 Bugs in 7_SPH_opt and 7_SPH_opt error in Kernel and update for boundary particles
incardon's avatar
incardon committed
57 58
- Bug in VTK writer binary in case of vectors
- Bug in VTK writer binary: long int are not supported removing output
incardon's avatar
incardon committed
59 60
- Bug in FDScheme in the constructor with stencil bigger than one
- Bug Fixed Memory leak in petsc solver
incardon's avatar
incardon committed
61
- Bug Performance bug in the grid iterator
incardon's avatar
incardon committed
62

incardon's avatar
incardon committed
63
### Changed
incardon's avatar
incardon committed
64 65
- CAREFULL: write("output",frame) now has changed to write_frame("output",frame)
            write() with two arguments has a different meanings write("output",options)
incardon's avatar
incardon committed
66 67 68 69
-  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>>
    
70
- getIterator in CellList changed getCellIterator
incardon's avatar
incardon committed
71 72
- 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)
incardon's avatar
incardon committed
73
- MPI,PETSC,SUPERLU,Trilinos,MUMPS,SuiteSparse has been upgraded
74

incardon's avatar
incardon committed
75
## [0.8.0] 28 February 2017
incardon's avatar
incardon committed
76 77 78

### Added
- Dynamic Load balancing
incardon's avatar
incardon committed
79
- Added SPH Dam break with Dynamic load balancing (7_sph_dlb)(7_sph_dlb_opt)
80 81
- 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)
incardon's avatar
incardon committed
82
- Added video lessons for Dynamic load balancing (openfpm.mpi-cbg.de)
83 84 85 86 87 88
  (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  
incardon's avatar
incardon committed
89 90 91 92

### Changed
- BOOST updated to 1.63
- Eigen updated to 3.3.7
93

incardon's avatar
incardon committed
94
## [0.7.1] 28 January 2017
95 96 97

### Fixed
- Multiphase verlet single to all case generate overflow
incardon's avatar
incardon committed
98

incardon's avatar
incardon committed
99 100 101 102 103
## [0.7.0] 15 December 2016

### Added
- Symmetric cell-list/verlet list Crossing scheme
- VCluster examples
incardon's avatar
incardon committed
104
- Cell-list crossing scheme
incardon's avatar
incardon committed
105 106

### Fixed
107
- CRITICAL BUG: OpenFPM has a bug handling decomposition when a processor has a disconnected domains
108
                (By experience this case has been seen on big number of processors).
incardon's avatar
incardon committed
109
- Found and fixed a memory leak when using complex properties
110

incardon's avatar
incardon committed
111
### Changed
incardon's avatar
incardon committed
112 113
- 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
incardon's avatar
incardon committed
114 115

## [0.6.0] - 5 November 2016
incardon's avatar
incardon committed
116 117 118 119 120 121 122 123 124

### 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
125
- Plotting system can export graph in svg (to be included in the paper)
incardon's avatar
incardon committed
126

127
 
incardon's avatar
incardon committed
128 129
### Fixed
- Option NO_POSITION was untested
incardon's avatar
incardon committed
130
- Regression: Examples code compilation was broken on OSX (Affect only 0.5.1)
incardon's avatar
incardon committed
131
              (Internal: Added OSX examples compilarion/running test in the release pipeline)
incardon's avatar
incardon committed
132 133
- gray_scott example code (variable not initialized)

incardon's avatar
incardon committed
134 135 136 137

### Changes


incardon's avatar
incardon committed
138
## [0.5.1] - 27 September 2016
139 140

### Added
Pietro Incardona's avatar
Pietro Incardona committed
141
- ghost_put support for particles
142 143
- Full-Support for complex property on vector_dist (Serialization)
- Added examples for serialization of complex properties 4_Vector
incardon's avatar
incardon committed
144
- improved speed of the iterators
145 146

### Fixed
147
- Installation PETSC installation fail in case of preinstalled MPI
Pietro Incardona's avatar
Pietro Incardona committed
148
- Miss-compilation of SUITESPARSE on gcc-6.2
149
- vector_dist with negative domain (Now supported)
Pietro Incardona's avatar
Pietro Incardona committed
150
- Grid 1D has been fixed
incardon's avatar
incardon committed
151 152 153 154 155 156 157
- 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
158 159

### Changed
incardon's avatar
incardon committed
160
- On gcc the -fext-numeric-literals compilation flag is now mandatory
161 162

## [0.5.0] - 15 August 2016
163 164

### Added
165 166 167 168 169 170 171 172
- 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
173 174

### Fixed
175
- Removed small crash for small grid and big number of processors
176 177 178

### Changed

Pietro Incardona's avatar
Pietro Incardona committed
179 180 181 182
### Known Bugs

- On gcc 6.1 the project does not compile
- Distributed grids on 1D do not work
183 184


Pietro Incardona's avatar
Pietro Incardona committed
185
## [0.4.0] - 26-05-2016
186 187 188

### Added
- Grid with periodic boundary conditions
Pietro Incardona's avatar
Pietro Incardona committed
189
- VTK Writer for distributed vector, now is the default writer
Pietro Incardona's avatar
Pietro Incardona committed
190
- Installation of linear algebra packages
Pietro Incardona's avatar
Pietro Incardona committed
191
- More user friendly installation (No environment variables to add in your bashrc, installation report less verbose)
192 193 194

### Fixed
- GPU compilation
Pietro Incardona's avatar
Pietro Incardona committed
195
- PARMetis automated installation
Pietro Incardona's avatar
Pietro Incardona committed
196
- Critical Bug in getCellList, it was producing Celllist with smaller spacing
197 198 199 200 201

### Changed


## [0.3.0] - 16-04-2016
202 203

### Added
Pietro Incardona's avatar
Pietro Incardona committed
204
- Molacular Dynamic example
Pietro Incardona's avatar
Pietro Incardona committed
205
- addUpdateCell list for more optimal update of the cell list instead of recreate the CellList
206 207 208 209 210 211 212

### Fixed
- Nothing to report

### Changed
- Eliminated global_v_cluster, init_global_v_cluster, delete_global_v_cluster, 
  substituted by 
Pietro Incardona's avatar
Pietro Incardona committed
213
  create_vcluster, openfpm_init, openfpm_finalize
Pietro Incardona's avatar
Pietro Incardona committed
214 215
- CartDecomposition parameter for the distributed structures is now optional
- template getPos<0>(), substituted by getPos()
216

217
## [0.2.1] - 01-04-2016
Pietro Incardona's avatar
Pietro Incardona committed
218 219 220 221

### Changed
- GoogleChart name function changed: AddPointGraph to AddLinesGraph and AddColumsGraph to AddHistGraph

Pietro Incardona's avatar
Pietro Incardona committed
222
## [0.2.0] - 2016-03-25
223
### Added
Pietro Incardona's avatar
Pietro Incardona committed
224
- Added Load Balancing and Dynamic Load Balancing on Beta
225 226 227 228 229 230
- 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
Pietro Incardona's avatar
Pietro Incardona committed
231
- Bug in rounding off for periodic boundary condition
232 233 234 235

### Changed
- Nothing to report

Pietro Incardona's avatar
Pietro Incardona committed
236
## [0.1.0] - 2016-02-05
Pietro Incardona's avatar
Pietro Incardona committed
237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
### 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

Pietro Incardona's avatar
Pietro Incardona committed
253 254


Pietro Incardona's avatar
Pietro Incardona committed
255

Pietro Incardona's avatar
Pietro Incardona committed
256