compute_eclipse_cylinder#

namespace saltro
namespace orbits

Functions

bool compute_eclipse_cylinder(const Eigen::Matrix<double, 3, saltro::limits::MAX_LENGTH_TRAJ> &R, const int jtime_length, Eigen::Matrix<double, 3, saltro::limits::MAX_LENGTH_TRAJ> &S)#

Compute Earth eclipse shadow using cylindrical shadow model.

Implements a cylindrical shadow model where Earth’s shadow is approximated as a cylinder perpendicular to the Sun direction. The satellite is considered in eclipse (umbra) if:

  1. The satellite is on the night side of Earth (dot product with sun direction < 0)

  2. The perpendicular distance from the satellite position to the sun direction is less than Earth’s mean radius

When a satellite is in eclipse, the Sun vector is set to zero. This model is computationally efficient and accurate for LEO altitudes.

Parameters:
  • R – Spacecraft position vectors (meters). Each column corresponds to one trajectory sample.

  • jtime_length – Number of valid trajectory samples.

  • S – Spacecraft-to-Sun vectors (meters), column-wise. Modified in-place; set to zero where spacecraft is in eclipse.

Returns:

True if the computation succeeds for all samples, false otherwise.