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: TidalPyClass

OrbitBase 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: StarWorld

A reference to the orbit’s star.

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: OrbitBase

PhysicsOrbit 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.