Hello,
I’m trying to implement a code that performs a maneuver centered around each of the nodes. What I do at the moment is propagate the orbit using a logged NodeDetector.withHandler(ContinueOnEvent())
to identify the time instants when the nodes are crossed and use these two dates to define the maneuvers as:
for event in logger.getLoggedEvents():
date = event.getDate().shiftedBy(-duration/2)
firing = ConstantThrustManeuver(date, duration, thrust, isp, direction)
propagator.addForceModel(firing)
stateNow = propagator.propagate(initDate.shiftedBy(tSpan))
My question is this: is there a way to avoid to propagate twice the orbit (one to identify the nodes and the other to actually apply the maneuvers)? I was looking at EventBasedManeuverTriggers
but I think this would allow me to create a maneuver that starts as the node gets crossed, and not centered around the node. Is there a way to avoid the double propagation?