org.gicentre.utils.network.traer.physics

## Class SettlingRungeKuttaIntegrator

- java.lang.Object
- - org.gicentre.utils.network.traer.physics.Integrator
  - - org.gicentre.utils.network.traer.physics.RungeKuttaIntegrator
    - - org.gicentre.utils.network.traer.physics.SettlingRungeKuttaIntegrator

-     public class SettlingRungeKuttaIntegrator
      extends RungeKuttaIntegrator

  Class capable of performing a settling Runge Kutta integration. Compared to the Euler integrators this one is slower but is more stable. This version can be forced to stabalise after a given settling period.
  Version:
    3.4, 5th February, 2016.
  Author:
    Carl Pearson, Jeffrey Traer Bernstein and minor modifications by Jo Wood.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.gicentre.utils.network.traer.physics.Integrator

      `Integrator.METHOD`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_SETTLING_AGE` Default settling age (50).

    - ### Fields inherited from class org.gicentre.utils.network.traer.physics.Integrator

      `s`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SettlingRungeKuttaIntegrator(ParticleSystem s)` Sets up the integrator to be used by the given particle system.
    `SettlingRungeKuttaIntegrator(ParticleSystem s, int settlingAge)` Creates the integrator to be applied to the given particle system with the given settling age.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Function<Particle,?>` | `updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.

    - ### Methods inherited from class org.gicentre.utils.network.traer.physics.RungeKuttaIntegrator

      `allocateParticles, kApplier, kFunctor, step`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_SETTLING_AGE

          public static final int DEFAULT_SETTLING_AGE

      Default settling age (50).
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SettlingRungeKuttaIntegrator

          public SettlingRungeKuttaIntegrator(ParticleSystem s,
                                              int settlingAge)

      Creates the integrator to be applied to the given particle system with the given settling age.
      Parameters:
        `s` - Particle system to be associated with this integrator.
        `settlingAge` - Age in timestep units over which the system is to stabalise.

    - #### SettlingRungeKuttaIntegrator

          public SettlingRungeKuttaIntegrator(ParticleSystem s)

      Sets up the integrator to be used by the given particle system.
      Parameters:
        `s` - Particle system upon which to perform the integration.

  - ### Method Detail

    - #### updater

          protected Function<Particle,?> updater(java.util.Map<Particle,Vector3D> k1f,
                                                 java.util.Map<Particle,Vector3D> k1v,
                                                 java.util.Map<Particle,Vector3D> k2f,
                                                 java.util.Map<Particle,Vector3D> k2v,
                                                 java.util.Map<Particle,Vector3D> k3f,
                                                 java.util.Map<Particle,Vector3D> k3v,
                                                 java.util.Map<Particle,Vector3D> k4f,
                                                 java.util.Map<Particle,Vector3D> k4v,
                                                 java.util.Map<Particle,Vector3D> oPos,
                                                 java.util.Map<Particle,Vector3D> oVel,
                                                 float deltaT)

      Provides the function that updates the particles in the system.
      Overrides:
        `updater` in class `RungeKuttaIntegrator`
      Parameters:
        `k1f` - K1 forces.
        `k1v` - K1 velocities.
        `k2f` - K2 forces.
        `k2v` - K2 velocities.
        `k3f` - K3 forces.
        `k3v` - K3 velocities.
        `k4f` - K4 forces.
        `k4v` - K4 velocities.
        `oPos` - Original position.
        `oVel` - Original velocity.
        `deltaT` - Change in time units.
      Returns:
        Function that updates the particle positions.