Skip to content

PanelSrp

Defined in: panel_srp.rs:26

pub struct PanelSrp

Attitude-dependent solar radiation pressure model using flat surface panels.

Implements LoadModel to produce both translational acceleration and SRP torque from per-panel radiation forces. For the SpacecraftShape::Sphere variant, the cr and area are read from the shape itself.

Per-panel force (simplified per panel):

F_panel = -P_sr × Cr × A × cos(θ) × (AU/r_sun)² × ŝ [N]

where θ is the angle between the panel normal and the Sun direction, and ŝ is the unit vector from the satellite toward the Sun.

fn panels(panels: [Vec<super::SurfacePanel>](https://doc.rust-lang.org/std/vec/struct.Vec.html)) -> Self

Create a panel-based (attitude-dependent) SRP model from surface panels.


fn for_earth(shape: SpacecraftShape) -> Self

Create an SRP model for Earth orbit with cylindrical Earth shadow.

For the SpacecraftShape::Sphere variant, cr and area come from the shape. For SpacecraftShape::Panels, each panel carries its own cr.


fn new(shape: SpacecraftShape) -> Self

Create an SRP model without shadow.


fn with_shadow_body(self, radius: f64) -> Self

Set or override the shadow body radius (builder pattern).