Skip to content

Parcels v2.1.1: a Lagrangian Ocean Analysis tool for the petascale age

Choose a tag to compare

@delandmeterp delandmeterp released this 09 Oct 14:37
6bcdac9

Parcels v2.1.1 builds on previous versions v2.0.0. The major changes of v2.1.1 are:

[Note that v2.1.1 comes after a botched release of v2.1.0]

  1. Parcels has a parallel MPI version! While working on multiple processors, the particles are spread over the processors for an efficient integration. (#625). See https://oceanparcels.org#parallel_install for instructions on how to install.
  2. For an efficient loading of the Fieldset, the Field objects are now loaded by chunks, controlled by the parameter field_chunksize (#632). This results in lower memory usage and faster simulation. It is also a fundamental part of the parallel implementation, since for low number of particles per processor, the computation time is dominated by the loading of the data. A more efficient parallel version will be dynamically balancing the particles between the processors such to minimise the number of chunks loaded per processor. See this document for further background on the implementation.
  3. An efficient writing of the particleset. For a quicker export of the data, particles are now dumped into npy files during simulation. The pickles are gathered into one single file at the end of the simulation. (#614)
  4. A proper management of particle.dt modified by the kernel. If the kernel modifies particle.dt, the kernel will automatically be restarted with the updated dt. If you want to simply updates the dt for next kernel call, use particle.update_next_dt(new_dt). (#657)
  5. New particles can now be added to the ParticleSet only via a temporary ParticleSet object. This enables a proper control of the particle.id in parallel (#629)
  6. Field.gradient() function is not available anymore. This functionality was providing spurious results on curvilinear grids and was conflicting with the use of chunked fields. Users can still obtain easily an accurate field gradient (see example proposed in #633)
  7. Using the time_periodic flag in FieldSet creation now requires the length of the period (#659)
  8. Numerous bug fixes

Note that Parcels v2.1.1 is the last version to officially support Python 2.7. While all functionalities currently work with both Python 2 and 3, new development and code dependencies will progressively lead to incompatibility with Python 2. We strongly advice the users to switch to Python 3.