double eval() const { switch (deriv) { case 0: return (rp | nhat) - ( Sigma + wallnHatPosition()); case 1: return (vp | nhat) - velnHatWall(); case 2: return Delta * Omega * Omega * std::cos(Omega * t); default: M_throw() << "Invalid access"; } }
double F_firstDeriv() const { return (vp | nhat) - velnHatWall(); }
Vector wallVelocity() const { return nhat * velnHatWall(); }
virtual bool test_root() const { return (((vp | nhat) - velnHatWall()) * ((rp | nhat) - wallnHatPosition())) > 0; }