Skip to content

v4 ParticleSet feature discussion #2034

@fluidnumerics-joe

Description

@fluidnumerics-joe

The ParticleSet.execute method advances all particles in the ParticleSet through time by repeatedly applying a given kernel function (e.g., AdvectionRK4) until a specified endtime or runtime is reached. It also handles:

  • Releasing new particles (repeat)
  • Writing particle output
  • Running interaction kernels (if provided)
  • Invoking custom kernels
  • Advancing the fieldset time index appropriately

Currently, the time step size dt can be float, timedelta, or np.timedelta64 and can be positive (forward in time) or negative (backward in time)

The duration of the execution in "model-time" is set either by endtime or runtime (both cannot be provided at the same time). The endtime is the model time while runtime is the amount of time in the model that passes relative to the time at the start of ParticleSet.execute

File output frequency is controlled by outputdt. While there is a standard file output for the particle set, users can optionally write Field data to file.

Particle-particle interactions can be handled by setting the pyfunc_inter argument.

While I suspect we will want all of these features in v4 of Parcels, I want to get a discussion started around what features we want to start with so that we can incrementally incorporate some of the changes we've made for time management and evaluation in fields and fieldsets.

I would propose that we initially focus on (pre v4alpha)

  • shifting all time data to be timedelta or datetime objects
  • invoking existing advection and time stepping kernels
  • managing file IO for particle sets

This would cover a good deal of use cases and would allow us to quickly get some demonstrations together for using the new UxGrid and XGrid classes with Field and FieldSet.

Is the list of features above complete ? Are there other items we want to consider for v4alpha ?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Backlog

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions