public class RungeKuttaIntegrator extends Integrator
Integrator.METHODs| 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 IntegratordeltaT - Time step over which to update the particles.