public class RungeKuttaIntegrator extends Integrator
Integrator.METHOD
s
Constructor and Description |
---|
RungeKuttaIntegrator(ParticleSystem s)
Sets up the integrator to be used by the given particle system.
|
Modifier and Type | Method and Description |
---|---|
protected void |
allocateParticles()
Instantiates the original positions and velocities of the particles.
|
protected static Function<Particle,?> |
kApplier(java.util.Map<Particle,Vector3D> kForces,
java.util.Map<Particle,Vector3D> kVelocities,
java.util.Map<Particle,Vector3D> originalPositions,
java.util.Map<Particle,Vector3D> originalVelocities,
float deltaT)
Provides the function that applies the single increment of the particles' positions and velocities.
|
protected static Function<Particle,?> |
kFunctor(java.util.Map<Particle,Vector3D> kForces,
java.util.Map<Particle,Vector3D> kVelocities)
Provides the function capable of performing the integration.
|
RungeKuttaIntegrator |
step(float deltaT)
Performs the incrementing of the particles' positions and velocities over the given time step.
|
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.
|
public RungeKuttaIntegrator(ParticleSystem s)
s
- Particle system upon which to perform the integration.protected static final Function<Particle,?> kFunctor(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities)
kForces
- Forces to be applied to particles during integration.kVelocities
- Velocities of particles.protected static final Function<Particle,?> kApplier(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities, java.util.Map<Particle,Vector3D> originalPositions, java.util.Map<Particle,Vector3D> originalVelocities, float deltaT)
kForces
- Forces associated with the particles/kVelocities
- Velocities of the particles.originalPositions
- The original positions of the particles before integration.originalVelocities
- The original velocities of the particles before integration.deltaT
- Time step over which to move the particles.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)
k1f
- K1 force.k1v
- K1 velocity.k2f
- K2 force.k2v
- K2 velocity.k3f
- K3 force.k3v
- K3 velocity.k4f
- K4 force.k4v
- K4 velocity.oPos
- Original position.oVel
- Original velocity.deltaT
- Change in time units.protected final void allocateParticles()
public RungeKuttaIntegrator step(float deltaT)
step
in class Integrator
deltaT
- Time step over which to update the particles.