physics.basic_orbital_capture ============================= .. py:module:: physics.basic_orbital_capture .. autoapi-nested-parse:: These two functions will return the radii of impact for a target object of mass M and radius R as well as it's effective cross sectional area sigma. That is to say any projectile with velocity v passing within sigma, will impact the target object with mass M. The derivation of which is given at the bottom of this file. The derivation shows that a projectile does not need to aim directly at the target body in order to hit it, as R_capture>R_target. Astronomers refer to the effective cross section for capture as sigma=π*R_capture**2. This algorithm does not account for an N-body problem. Functions --------- .. autoapisummary:: physics.basic_orbital_capture.capture_area physics.basic_orbital_capture.capture_radii Module Contents --------------- .. py:function:: capture_area(capture_radius: float) -> float Input Param: ------------ capture_radius: The radius of orbital capture and impact for a central body of mass M and a projectile moving towards it with velocity v SI units: meters | m Returns: -------- >>> capture_area(17209590691) 9.304455331329126e+20 >>> capture_area(-1) Traceback (most recent call last): ... ValueError: Cannot have a capture radius less than 0 Returned SI units: ------------------ meters*meters | m**2 .. py:function:: capture_radii(target_body_radius: float, target_body_mass: float, projectile_velocity: float) -> float Input Params: ------------- target_body_radius: Radius of the central body SI units: meters | m target_body_mass: Mass of the central body SI units: kilograms | kg projectile_velocity: Velocity of object moving toward central body SI units: meters/second | m/s Returns: -------- >>> capture_radii(6.957e8, 1.99e30, 25000.0) 17209590691.0 >>> capture_radii(-6.957e8, 1.99e30, 25000.0) Traceback (most recent call last): ... ValueError: Radius cannot be less than 0 >>> capture_radii(6.957e8, -1.99e30, 25000.0) Traceback (most recent call last): ... ValueError: Mass cannot be less than 0 >>> capture_radii(6.957e8, 1.99e30, c+1) Traceback (most recent call last): ... ValueError: Cannot go beyond speed of light Returned SI units: ------------------ meters | m