using System; using System.Collections.Generic; using System.Text; using RungeKutta.Integrators; namespace RungeKutta.SimStep { class SemiExplicitEuler : 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.acceleration = acceleration; oldState.velocity += EulerStep.Integrate(timestep, oldState.acceleration); oldState.position += EulerStep.Integrate(timestep, oldState.velocity); return oldState; } public override string ToString() { return "Semi Explicit Euler"; } public int ForceEvaluations { get { return 1; } } } }