migflow.time_integration

migflow.time_integration.iterate(fluid, particles, dt, min_nsub=1, contact_tol=1e-08, external_particles_forces=None, fixed_grains=False, after_sub_iter=None, max_nsub=None, check_residual_norm=-1, use_predictor_corrector=True)

Migflow solver: the solver type depends on the fluid and particles given as arguments.

Parameters
  • fluid – fluid structure

  • particles – particles structure

  • dt (float) – time step

  • min_nsub (int) – minimal nsub for the particles iterations

  • contact_tol (float) – tolerance for the contact solver

  • external_particles_forces (Optional[ndarray]) – vector of external forces applied on the particles

  • fixed_grains (bool) – boolean variable specifying if the grains are fixed in the fluid

  • after_sub_iter (Optional[callable]) – callback to execute once a sub iteration has been made

  • max_nsub (Optional[int]) – maximum number of times the time step can be further split if conergence is not reached

  • check_residual_norm (float) – check if the fluid solver has converged to the specified norm

  • use_predictor_corrector (bool) – boolean variable specifying if the predictor-corrector scheme is used

Raises
  • ValueError – fluid and particles cannot be both None

  • ValueError – external_particles_forces must have shape (number of particles,dimension)

migflow.time_integration.predictor_corrector_iterate(fluid, particles, dt, min_nsub=1, contact_tol=1e-08, external_particles_forces=None, alpha=0.5, after_sub_iter=None, max_nsub=None, check_residual_norm=-1)

Predictor-corrector scheme to solve fluid and grains.

Parameters
  • fluid – fluid structure

  • particles – particles structure

  • dt (float) – time step

  • min_nsub (int) – minimal nsub for the particles iterations

  • contact_tol (float) – tolerance for the contact solver

  • external_particles_forces (Optional[ndarray]) – external forces applied on the particles

  • alpha (float) – parametre of the predictor-corrector scheme [alpha*f(n)+(1-alpha)*f(n+1)]

  • after_sub_iter (Optional[callable]) – callback to execute once a sub iteration has been made

  • max_split – maximum number of times the time step can be further split if convergence is not reached

  • check_residual_norm (float) – check if the fluid solver has converged to the specified norm