TidalPy.structures.orbit package
Submodules
TidalPy.structures.orbit.base module
- class TidalPy.structures.orbit.base.OrbitBase(star: StarWorld = None, tidal_host: BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld = None, tidal_bodies: BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld | List[BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld] = None, star_host: bool = False, host_tide_raiser: BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld = None, make_copies: bool | str = False, initialize: bool = True)[source]
Bases:
TidalPyClassOrbitBase class Contains attributes and methods to track the orbit of multiple TidalPy world_types.
Orbits allow TidalPy world_types to communicate with one another and for tides to be calculated.
Assumptions
- All TidalPy orbits currently assume no interaction between tidal bodies or the orbit’s star. The only interaction
that is permitted is between a single tidal body and the orbit’s tidal host (which could be the star).
- all_objects
- all_tidal_world_orbit_index_by_name
- all_tidal_world_orbit_index_by_instance
- tidal_objects
- tidal_host
- star
- star_host
- eccentricities
- semi_major_axes
- orbital_frequencies
- orbital_periods
- host_tide_raiser
- universal_time
See also
TidalPy.orbit.PhysicsOrbit- add_star(star_world: StarWorld, is_tidal_host: bool = False, run_update: bool = True)[source]
Add a star to the orbit. This star may or may not be the tidal host.
Stars that are not tidal hosts are only used only for insolation calculations.
- Parameters:
star_world (StarWorld) – TidalPy star instance to be added to the orbit.
is_tidal_host (bool = False) – If True, then the star will be added as a tidal world as well.
run_update (bool = True) – If True, the orbit’s update_orbit method will be called after the world has been added.
- add_tidal_host(tidal_host: BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld, run_update: bool = True)[source]
Add a new tidal host to the orbit, in order from closest to host to farthest away.
This is a convenience wrapper to OrbitBase.add_tidal_world
- Parameters:
tidal_host (AllWorldType) – TidalPy world instance to be added to orbit.
run_update (bool = True) – If True, the orbit’s update_orbit method will be called after the world has been added.
- add_tidal_world(tidal_world: BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld, is_tidal_host: bool = False, run_update: bool = True)[source]
Add a new tidal world to the orbit, in order from closest to host to farthest away.
- Parameters:
tidal_world (AllWorldType) – TidalPy world instance to be added to orbit.
is_tidal_host (bool = False) – If true, then additional checks will be done to ensure proper functionality.
run_update (bool = True) – If True, the orbit’s update_orbit method will be called after the world has been added.
- property all_objects: List[BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld]
An iterable list of all world-like instances reinit in this Orbit class.
- property all_tidal_world_orbit_index_by_instance: Dict[BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld, int]
Dictionary of tidal world orbit locations stored by their TidalPy class instance.
- property all_tidal_world_orbit_index_by_name: Dict[str, int]
Dictionary of tidal world orbit locations stored by their name.
- class_name = 'base'
- clear_state(clear_all: bool = True, clear_specific: str | int | BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld = None, clear_world_state: bool = False)[source]
Clears the orbital information for a world or all world_types without destroying the orbit instance.
- Parameters:
clear_all (bool = True) – If True, all world’s orbital state properties will be cleared.
clear_specific (BadWorldSignatureType = None) – If not None, then only a specific world’s state properties will be cleared.
clear_world_state (bool = False) – If True, then a call will be made to a specific (or all if clear_all == True) world’s clear_state method.
- static days2rads(days: FloatArray) FloatArray[source]
Convert days (period) to radians/sec (frequency)
Wrapper for TidalPy.tools.conversions.days2rads
- Parameters:
days (FloatArray) – Orbital or Spin Period in [days]
- Returns:
frequency – Orbital or Spin frequency in [rad s-1]
- Return type:
FloatArray
- dissipation_changed(world_signature: str | int | BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld) bool[source]
Tidal dissipation has changed on the provided world. Make any necessary changes.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
- property eccentricities
A list of all the tidal object instances’ orbital eccentricity relative to the tidal host.
- get_eccentricity(world_signature: str | int | AllWorldType, for_stellar_orbit: bool = False) FloatArray[source]
Provided a world’s signature, this method will retrieve its orbital eccentricity.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
for_stellar_orbit (bool = False) –
- If True, then the tidal host’s orbital parameters will be returned. Generally this is not desired as tides
only care about the tide raiser’s orbit (think of the Moon’s orbit around the Earth). However, calculations like insolation heating require the stellar distance which, for a non star_host orbit, require the tidal host orbital parameters.
- Returns:
eccentricity – Orbital eccentricity relative to the tidal host.
- Return type:
FloatArray
- get_orbital_frequency(world_signature: str | int | AllWorldType, for_stellar_orbit: bool = False) FloatArray[source]
Provided a world’s signature, this method will retrieve its orbital frequency [rad s-1].
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
for_stellar_orbit (bool = False) –
- If True, then the tidal host’s orbital parameters will be returned. Generally this is not desired as tides
only care about the tide raiser’s orbit (think of the Moon’s orbit around the Earth). However, calculations like insolation heating require the stellar distance which, for a non star_host orbit, require the tidal host orbital parameters.
- Returns:
orbital_motion – Orbital mean motion relative to the tidal host [rad s-1].
- Return type:
FloatArray
- get_orbital_period(world_signature: str | int | AllWorldType, for_stellar_orbit: bool = False) FloatArray[source]
Provided a world’s signature, this method will retrieve its orbital eccentricity [days].
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
for_stellar_orbit (bool = False) –
- If True, then the tidal host’s orbital parameters will be returned. Generally this is not desired as tides
only care about the tide raiser’s orbit (think of the Moon’s orbit around the Earth). However, calculations like insolation heating require the stellar distance which, for a non star_host orbit, require the tidal host orbital parameters.
- Returns:
orbital_period – Orbital period relative to the tidal host [days].
- Return type:
FloatArray
- get_semi_major_axis(world_signature: str | int | AllWorldType, for_stellar_orbit: bool = False) FloatArray[source]
Provided a world’s signature, this method will retrieve its orbital semi_major_axis [m].
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
for_stellar_orbit (bool = False) –
- If True, then the tidal host’s orbital parameters will be returned. Generally this is not desired as tides
only care about the tide raiser’s orbit (think of the Moon’s orbit around the Earth). However, calculations like insolation heating require the stellar distance which, for a non star_host orbit, require the tidal host orbital parameters.
- Returns:
semi_major_axis – Orbital semi-major axis relative to the tidal host [m].
- Return type:
FloatArray
- get_stellar_distance(world_signature: str | int | AllWorldType) FloatArray[source]
Get the orbital distance between a world of interest and the star (used for insolation calculations)
- If the tidal host is a star then this will simply wrap the world’s semi-major axis getter. For a non-star host,
then we assume that the world will share its stellar distance with its tidal host. For example, Io’s solar flux is largely determined by Jupiter’s orbit, not Io’s orbit around Jupiter.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
- Returns:
stellar_distance – Distance between desired world and the star [m]
- Return type:
FloatArray
- get_stellar_eccentricity(world_signature: str | int | AllWorldType) FloatArray[source]
- Get the orbital eccentricity relative between a world of interest and the star
(used for insolation calculations)
- If the tidal host is a star then this will simply wrap the world’s eccentricity getter. For a non-star host,
then we assume that the world will share its stellar orbit with its tidal host. For example, Io’s solar flux is largely determined by Jupiter’s orbit, not Io’s orbit around Jupiter.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
- Returns:
stellar_eccentricity – Eccentricity of the orbit between the desired world and the star
- Return type:
FloatArray
- get_tidal_host(world_signature: str | int | BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld)[source]
Get the tidal host of a tidal world.
If this is called for the tidal host, it will return whatever has been set as the host_tide_raiser.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
- property host_tide_raiser: BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld
This pointer is used to set which tidal body is currently being used as the host body’s tide raiser.
- orbit_changed(specific_world: str | int | BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld = None, orbital_freq_changed: bool = False, eccentricity_changed: bool = False)[source]
The orbit of a specific world has changed. Make any necessary updates.
- Parameters:
specific_world (WorldSignatureType) – The signature of the world who’s spin and/or orbit changed.
orbital_freq_changed (bool = False) – If True, then the world’s orbital frequency changed.
eccentricity_changed (bool = False) – If True, then the world_types’ eccentricity changed.
- property orbital_frequencies
A list of all the tidal object instances’ orbital motion relative to the tidal host.
- orbital_motion2semi_a(world_signature: str | int | AllWorldType, orbital_motion: FloatArray, set_stellar_orbit: bool = False) FloatArray[source]
Providing a world’s signature and a orbital motion, this method will calculate the world’s semi-major axis.
This is largely a convenience wrapper around TidalPy.tools.conversions.orbital_motion2semi_a.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
orbital_motion (FloatArray) – The world’s orbital mean motion relative to the tidal host [rad s-1].
set_stellar_orbit (bool = False) –
- If True, the set method will allow orbital information to be stored for the tidal host (generally not
dont). The star’s mass will be used for orbital distance / frequency calculations. self.star_host must be set to False.
- Returns:
semi_major_axis – The world’s orbital semi-major axis relative to the tidal host [m].
- Return type:
FloatArray
- property orbital_periods
A list of all the tidal object instances’ orbital period relative to the tidal host.
- static rads2days(frequency: FloatArray) FloatArray[source]
Convert radians/sec (frequency) to days (period)
Wrapper for TidalPy.tools.conversions.rads2days
- Parameters:
frequency (FloatArray) – Orbital or Spin frequency in [rad s-1]
- Returns:
days – Orbital or Spin Period in [days]
- Return type:
FloatArray
- reinit(initial_init: bool = False, reinit_worlds: bool = False, run_update: bool = True)[source]
Reinitialize various orbit properties.
- Parameters:
initial_init (bool = False) – Is set to True for the first time the reinit method is called.
reinit_worlds (bool = False) – If True, calls to each world’s reinit will be made.
run_update (bool = True) – If True, then the orbit’s update_orbit method will be called.
- semi_a2orbital_motion(world_signature: str | int | AllWorldType, semi_major_axis: FloatArray, set_stellar_orbit: bool = False) FloatArray[source]
Providing a world’s signature and a semi-major axis, this method will calculate the world’s orbital motion.
This is largely a convenience wrapper around TidalPy.tools.conversions.semi_a2orbital_motion.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
semi_major_axis (FloatArray) – The world’s orbital semi-major axis relative to the tidal host [m].
set_stellar_orbit (bool = False) –
- If True, the set method will allow orbital information to be stored for the tidal host (generally not
dont). The star’s mass will be used for orbital distance / frequency calculations. self.star_host must be set to False.
- Returns:
orbital_motion – The world’s orbital mean motion relative to the tidal host [rad s-1].
- Return type:
FloatArray
- property semi_major_axes
A list of all the tidal object instances’ orbital semi-major axis relative to the tidal host.
- set_eccentricity(world_signature: str | int | AllWorldType, eccentricity: FloatArray, called_from_orbit: bool = False, set_stellar_orbit: bool = False)[source]
Set the eccentricity for a world with the provided signature.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
eccentricity (FloatArray) – New orbital eccentricity for this world.
called_from_orbit (bool = False) –
- Flag for if this method was called from an OrbitBase method. This avoids repeated calls to the
OrbitBase.update_orbit() method.
set_stellar_orbit (bool = False) –
- If True, the set method will allow orbital information to be stored for the tidal host (generally not
done). The star’s mass will be used for orbital distance / frequency calculations. self.star_host must be set to False.
- set_host_tide_raiser(tide_raiser: str | int | BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld)[source]
Set the pointer used by the orbit class to find which body is currently raising tides on the host world.
- Parameters:
tide_raiser (WorldSignatureType) –
- Signature (instance, orbital location, or name) of the tidal body that is currently raising tides on the
host.
The tidal body must be added to the orbit before it can be set as the host’s tide raiser.
- set_orbital_frequency(world_signature: str | int | AllWorldType, orbital_frequency: FloatArray, called_from_orbit: bool = False, set_stellar_orbit: bool = False)[source]
Set the mean orbital motion for a world with the provided signature.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
orbital_frequency (FloatArray) – New orbital frequency for this world [rad s-1].
called_from_orbit (bool = False) –
- Flag for if this method was called from an OrbitBase method. This avoids repeated calls to the
OrbitBase.update_orbit() method.
set_stellar_orbit (bool = False) –
- If True, the set method will allow orbital information to be stored for the tidal host (generally not
done). The star’s mass will be used for orbital distance / frequency calculations. self.star_host must be set to False.
- set_orbital_period(world_signature: str | int | AllWorldType, orbital_period: FloatArray, called_from_orbit: bool = False, set_stellar_orbit: bool = False)[source]
Set the mean orbital period for a world with the provided signature.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
orbital_period (FloatArray) – New mean orbital period for this world [days].
called_from_orbit (bool = False) –
- Flag for if this method was called from an OrbitBase method. This avoids repeated calls to the
OrbitBase.update_orbit() method.
set_stellar_orbit (bool = False) –
- If True, the set method will allow orbital information to be stored for the tidal host (generally not
done). The star’s mass will be used for orbital distance / frequency calculations. self.star_host must be set to False.
- set_semi_major_axis(world_signature: str | int | AllWorldType, semi_major_axis: FloatArray, called_from_orbit: bool = False, set_stellar_orbit: bool = False)[source]
Set the semi-major axis for a world with the provided signature.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
semi_major_axis (FloatArray) – New orbital semi-major axis for this world [m].
called_from_orbit (bool = False) –
- Flag for if this method was called from an OrbitBase method. This avoids repeated calls to the
OrbitBase.update_orbit() method.
set_stellar_orbit (bool = False) –
- If True, the set method will allow orbital information to be stored for the tidal host (generally not
done). The star’s mass will be used for orbital distance / frequency calculations. self.star_host must be set to False.
- set_state(world_signature: str | int | AllWorldType, eccentricity: FloatArray = None, semi_major_axis: FloatArray = None, orbital_frequency: FloatArray = None, orbital_period: FloatArray = None, call_orbit_change: bool = True, set_stellar_orbit: bool = False, set_by_world: bool = False)[source]
Set the orbital state for a world with the provided signature.
This largely wraps the other orbit setter methods.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
eccentricity (FloatArray) – New orbital eccentricity for this world.
semi_major_axis (FloatArray) – New orbital semi-major axis for this world [m].
orbital_frequency (FloatArray) – New orbital frequency for this world [rad s-1].
orbital_period (FloatArray) – New mean orbital period for this world [days].
call_orbit_change (bool = True) – Flag for if this method should call the orbit_changed() method.
set_stellar_orbit (bool = False) –
- If True, the set method will allow orbital information to be stored for the tidal host (generally not
dont). The star’s mass will be used for orbital distance / frequency calculations. self.star_host must be set to False.
set_by_world (bool = False) – If False, then orbit will call the world_types orbit_spin_changed() method.
- set_states(world_signatures: List[str | int | AllWorldType], eccentricities: List[FloatArray] = None, semi_major_axes: List[FloatArray] = None, orbital_frequencies: List[FloatArray] = None, orbital_periods: List[FloatArray] = None, call_orbit_change: bool = True, set_stellar_orbit: bool = False, set_by_world: bool = False)[source]
Set the orbital state for multiple worlds (provided as a list of signatures).
This largely wraps the other orbit setter methods.
- Parameters:
world_signatures (List[WorldSignatureType]) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
eccentricities (List[FloatArray]) – New orbital eccentricity for this world.
semi_major_axes (List[FloatArray]) – New orbital semi-major axis for this world [m].
orbital_frequencies (List[FloatArray]) – New orbital frequency for this world [rad s-1].
orbital_periods (List[FloatArray]) – New mean orbital period for this world [days].
call_orbit_change (bool = True) – Flag for if this method should call the orbit_changed() method.
set_stellar_orbit (bool = False) –
- If True, the set method will allow orbital information to be stored for the tidal host (generally not
dont). The star’s mass will be used for orbital distance / frequency calculations. self.star_host must be set to False.
set_by_world (bool = False) – If False, then orbit will call the world_types orbit_spin_changed() method.
- set_stellar_distance(world_signature: str | int | AllWorldType, distance: FloatArray)[source]
Set the orbital distance between a world of interest and the star (used for insolation calculations)
- If the tidal host is a star then this will simply wrap the world’s semi-major axis setter. For a non-star host,
then we assume that the world will share its stellar distance with its tidal host. For example, Io’s solar flux is largely determined by Jupiter’s orbit, not Io’s orbit around Jupiter.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
distance (FloatArray) – New stellar distance from the desired world to the host star [m].
- set_stellar_eccentricity(world_signature: str | int | AllWorldType, eccentricity: FloatArray)[source]
Set the orbital eccentricity between a world of interest and the star (used for insolation calculations)
- If the tidal host is a star then this will simply wrap the world’s eccentricity setter. For a non-star host,
then we assume that the world will share its stellar distance with its tidal host. For example, Io’s solar flux is largely determined by Jupiter’s orbit, not Io’s orbit around Jupiter.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
eccentricity (FloatArray) – New stellar eccentricity between the desired world to the host star [m].
- property star_host: bool
A flag for if the star is acting as the tidal host.
- property tidal_host: BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld
A reference to the orbit’s tidal host world.
- property tidal_objects: List[BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld]
An iterable list of all tidal world instances reinit in this Orbit class.
This differs from Orbit.all_objects in that it excludes the star (unless the star is the tidal host)
- property time
Wrapper for OrbitBase.universal_time
- property universal_time: FloatArray
Time used in integration studies as well as for calculating radiogenic heating in all tidal world_types.
- world_signature_to_index(world_signature: str | int | BaseWorld | TidalWorld | GasGiantWorld | StarWorld | LayeredWorld | GasGiantLayeredWorld, return_tidal_host: bool = False)[source]
Convert’s a world’s signature to the orbital index which is used for tracking various parameters.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
return_tidal_host (bool = False) –
- If True, then the tidal host’s orbital index will be returned. Generally this is not desired as tides
only care about the tide raiser’s orbit (think of the Moon’s orbit around the Earth). However, some calculations (e.g., insolation heating) require the stellar distance which, for a non star_host orbit, require the tidal host orbital parameters.
- Returns:
world_orbit_index – The index of the world within the orbit’s tidal_objects list.
- Return type:
int
TidalPy.structures.orbit.physics module
- class TidalPy.structures.orbit.physics.PhysicsOrbit(star: StarWorld = None, tidal_host: AllWorldType = None, tidal_bodies: AllWorldType | List[AllWorldType] = None, star_host: bool = False, host_tide_raiser: AllWorldType = None, make_copies: bool | str = False, initialize: bool = True)[source]
Bases:
OrbitBasePhysicsOrbit class Contains attributes and methods to track the orbit of multiple TidalPy world_types. Also contains attributes and methods
used to calculate various physics for the world_types stored within. This includes: tidal heating, tidal evolution, insolation heating, etc.
Orbits allow TidalPy world_types to communicate with one another and for tides to be calculated.
Assumptions
See also
TidalPy.orbit.OrbitBase- add_star(star_world: StarWorld, is_tidal_host: bool = False, run_update: bool = True)[source]
Add a star to the orbit. This star may or may not be the tidal host.
Stars that are not tidal hosts are only used only for insolation calculations.
- Parameters:
star_world (StarWorld) – TidalPy star instance to be added to the orbit.
is_tidal_host (bool = False) – If True, then the star will be added as a tidal world as well.
run_update (bool = True) – If True, the orbit’s update_orbit method will be called after the world has been added.
- add_tidal_world(tidal_world: AllWorldType, is_tidal_host: bool = False, run_update: bool = True)[source]
Add a new tidal world to the orbit, in order from closest to host to farthest away.
- Parameters:
tidal_world (AllWorldType) – TidalPy world instance to be added to orbit.
is_tidal_host (bool = False) – If true, then additional checks will be done to ensure proper functionality.
run_update (bool = True) – If True, the orbit’s update_orbit method will be called after the world has been added.
- calculate_insolation(world_signature: WorldSignatureType, set_insolation_in_world: bool = True)[source]
Calculate the insolation heating received by a world with the provided signature.
- The star-world separation (semi-major axis) and eccentricity are used to estimate the orbit-averaged
insolation heating received at the surface of the target world. If the star is the host of the system then the target world’s semi-major axis and eccentricity will be used. Otherwise the tidal host’s parameters will be used.
- The actual method used to make the calculation is stored in the target world’s equilibrium_insolation_func.
It is set by the world’s user-provided configuration—the only difference between the models is how they handle an eccentric orbit.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
set_insolation_in_world (bool = True) – If True, method will make a call to the world’s set_insolation method.
- calculate_orbital_derivatives(world_signature: WorldSignatureType)[source]
Calculate and set the orbital time derivatives for a world with the provided signature.
- Method will automatically check if a dual-body dissipation model can be used. If not then a single body
dissipation will be used.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
- class_name = 'physics'
- dissipation_changed(world_signature: WorldSignatureType) bool[source]
Tidal dissipation has changed on the provided world. Make any necessary changes.
- property eccentricity_time_derivatives: List[FloatArray]
Derivative of eccentricity with respect to time stored for each tidal world (only effects due to tides are considered)
- get_eccentricity_time_derivative(world_signature: WorldSignatureType) FloatArray[source]
Provided a world’s signature, this method will retrieve its derivative of eccentricity with respect to time.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
- Returns:
eccentricity_time_derivative – Derivative of eccentricity with respect to time [s-1]
- Return type:
FloatArray
- get_orbital_motion_time_derivative(world_signature: WorldSignatureType) FloatArray[source]
- Provided a world’s signature, this method will retrieve its derivative of the orbital mean motion with
respect to time.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
- Returns:
orbital_motion_time_derivative – Derivative of the orbital mean motion with respect to time [m s-1]
- Return type:
FloatArray
- get_semi_major_axis_time_derivative(world_signature: WorldSignatureType) FloatArray[source]
- Provided a world’s signature, this method will retrieve its derivative of semi-major axis with
respect to time.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
- Returns:
semi_major_axis_time_derivative – Derivative of the semi-major axis with respect to time [m s-1]
- Return type:
FloatArray
- orbit_changed(specific_world: WorldSignatureType = None, orbital_freq_changed: bool = False, eccentricity_changed: bool = False)[source]
The orbit of a specific world has changed. Make any necessary updates.
- Parameters:
specific_world (WorldSignatureType) – The signature of the world who’s spin and/or orbit changed.
orbital_freq_changed (bool = False) – If True, then the world’s orbital frequency changed.
eccentricity_changed (bool = False) – If True, then the world_types’ eccentricity changed.
- property orbital_motion_time_derivatives: List[FloatArray]
Derivative of orbital mean motion with respect to time stored for each tidal world (only effects due to tides are considered)
- property semi_major_axis_time_derivatives: List[FloatArray]
Derivative of semi-major axis with respect to time stored for each tidal world (only effects due to tides are considered)
- set_stellar_distance(world_signature: WorldSignatureType, distance: FloatArray)[source]
Set the orbital distance between a world of interest and the star (used for insolation calculations)
- If the tidal host is a star then this will simply wrap the world’s semi-major axis setter. For a non-star host,
then we assume that the world will share its stellar distance with its tidal host. For example, Io’s solar flux is largely determined by Jupiter’s orbit, not Io’s orbit around Jupiter.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
distance (FloatArray) – New stellar distance from the desired world to the host star [m].
- set_stellar_eccentricity(world_signature: WorldSignatureType, eccentricity: FloatArray)[source]
Set the orbital eccentricity between a world of interest and the star (used for insolation calculations)
- If the tidal host is a star then this will simply wrap the world’s eccentricity setter. For a non-star host,
then we assume that the world will share its stellar distance with its tidal host. For example, Io’s solar flux is largely determined by Jupiter’s orbit, not Io’s orbit around Jupiter.
- Parameters:
world_signature (WorldSignatureType) –
- A signature used to distinguish one tidal world from another. This could be its name,
orbital location index, or the instance of an initialized TidalPy world.
eccentricity (FloatArray) – New stellar eccentricity between the desired world to the host star [m].
- property tidally_active_worlds: List[TidalWorldType]
List of world_types stored in orbit that are tidally active.