func NewHeun(y *data.Synced, torqueFn func(bool) *data.Synced, postStep func(*data.Slice), dt, multiplier float64, time *float64) *Heun { util.Argument(dt > 0 && multiplier > 0) m := y.Mesh() dy0 := NewSlice(3, m) return &Heun{newSolverCommon(dt, multiplier, time), y, dy0, torqueFn, postStep} }