Example #1
0
StateVector LagrangianPropagator::PropagateStateVector(const StateVector& stateVector, double mu, const Time& timeDelta)
{
   // Compute frequently used variables
   const auto& R1 = stateVector.position;
   const auto& V1 = stateVector.velocity;
   const double seconds = timeDelta.Seconds();
   const double sqrtMu = sqrt(mu);
   const double r0 = R1.norm();
   const double v0 = V1.norm();
   const double rdotv = R1.dot(V1);

   // Compute the universal variable results
   auto results = CalculateUniversalVariable(r0, v0, rdotv, seconds, mu);

   // Compute the Lagrange coefficients
   auto coeff = CalculateLagrangeCoefficients(r0, seconds, sqrtMu, results);

   // Compute the final cartesian vectors
   Vector3d R2 = coeff.f    * R1 + coeff.g    * V1;
   Vector3d V2 = coeff.fDot * R1 + coeff.gDot * V1;

   return StateVector(R2, V2);
}
Example #2
0
   StateVector StateVector::makeXYZ(double x, double y, double z, double trk, double gs, double vs, double t){
		Vect3 s = Vect3::makeXYZ(x,"nm",y,"nm",z,"ft");
		Velocity v = Velocity::makeTrkGsVs(trk,gs,vs);
		return StateVector(s,v,t);
	}