using System; using System.Collections.Generic; using System.Text; using RungeKutta.Integrators; namespace RungeKutta.SimStep { class EulerMethod : SimStepper { public State Integrate(State oldState, float timestep, ODEs.ODE ode) { return Integrate(oldState, timestep, ode.EvaluateForceAtState(oldState)); } public State Integrate(State oldState, float timestep, float acceleration) { oldState.position += EulerStep.Integrate(timestep, oldState.velocity); oldState.velocity += EulerStep.Integrate(timestep, acceleration); oldState.acceleration = acceleration; return oldState; } public int ForceEvaluations { get { return 1; } } public override string ToString() { return "Euler's Method"; } } }