TidalPy.structures package

Subpackages

Submodules

TidalPy.structures.physical module

physical.py - Physical object base class

This module contains the base python class for physical objects (layers, planets, stars, etc.).

class TidalPy.structures.physical.PhysicalObjSpherical(config: dict)[source]

Bases: ConfigHolder

PhysicalObjSpherical Class contains attributes and functionality used for objects such as planets or layers that are spherical shell.

Assumptions

Assumes spherical geometry.

property M

Alias of PhysicalObjSpherical.mass [kg]

property R

Alias of PhysicalObjSpherical.radius [m]

property V

Alias of PhysicalObjSpherical.volume [m3]

property beta: float

Alias of PhysicalObjSpherical.beta_outer

This is the beta used in tidal calculations

Assumptions

We have assumed that the beta generally needed is the beta at the surface of a layer/world.

property beta_inner: float

Physical Object’s Beta Parameter - Inner side of Object

Beta is related to the object’s radius, bulk density, and gravitational acceleration.

\[eta = R\]

ho g

PhysicalObjSpherical.beta_middle PhysicalObjSpherical.beta

property beta_middle: float

Physical Object’s Beta Parameter - Middle of Object

Beta is related to the object’s radius, bulk density, and gravitational acceleration.

\[eta = R\]

ho g

PhysicalObjSpherical.beta PhysicalObjSpherical.beta_inner

property beta_outer: float

Physical Object’s Beta Parameter - at Surface

Beta is related to the object’s radius, bulk density, and gravitational acceleration.

\[eta = R\]

ho g

PhysicalObjSpherical.beta_middle PhysicalObjSpherical.beta_inner

property densities

Alias of PhysicalObjSpherical.density_slices [kg m-3]

property density_bulk: float

Physical Object’s Bulk Density [kg m-3]

property density_inner: float

Density at the Inner Edge of the Object [kg m3]

property density_middle: float

Density at the Middle of the Object [kg m3]

property density_outer: float

Density at the Outer Edge / Surface of the Object [kg m3]

property density_slices: ndarray

Physical Object’s Density Slices (bottom to top) [kg m3]

property depths: ndarray

Physical Object’s Depth Slices (bottom to top) [m]

property dx

Alias of PhysicalObjSpherical.thickness [m]

property g

Alias of PhysicalObjSpherical.gravity_outer [m s-2]

property gravities

Alias of PhysicalObjSpherical.gravity_slices [m s-2]

property gravity_inner: float

Acceleration due to Gravity at the Inner Edge of the Object [m s-2]

property gravity_middle: float

Acceleration due to Gravity at the Outer Edge / Surface of the Object [m s-2]

property gravity_outer: float

Acceleration due to Gravity at the Outer Edge / Surface of the Object [m s-2]

property gravity_slices: ndarray

Physical Object’s Acceleration due to Gravity Slices (bottom to top) [m s-2]

property gravity_surf: float

Alias of PhysicalObjSpherical.gravity_outer

property gravity_surface

Alias of PhysicalObjSpherical.gravity_outer [m s-2]

property mass: float

Physical Object’s Mass [kg]

property mass_below: float

mass of the layer below) [kg]

Type:

Mass below this structure (for worlds

Type:

this is zero; for layers

property mass_below_slices: ndarray

Mass Below each Slice of the Physical Object [kg]

property mass_slices: ndarray

Mass of each Slice within the Physical Object [kg]

property masses

Alias of PhysicalObjSpherical.mass_slices [kg]

property mid_slice_index: int

The Slice Index Closest to (Radius - Thickness / 2)

property moi: FloatNone

Physical Object’s Moment of Inertia [kg m^2]

This may either be a measured moment of inertia, or one that is calculate using a more rigorous

method than moi_ideal. In TidalPy this is usually set by BurnMan calculations.

property moi_factor: float

Physical Object’s Moment of Inertia Factor [unitless]

\[C_{ ext{f} } = C / C_{ ext{Ideal} }\]
C may either be a measured moment of inertia, or one that is calculate using a more rigorous

method than moi_ideal.

property moi_ideal: float

Physical Object’s Moment of Inertia (for an Ideal Sphere or Spherical Shell) [kg m^2]

\[C_{ ext{Ideal} } = (2 / 5) * M * (R^5 - R_{ ext{Inner} }^5) / (R^3 - R_{ ext{Inner} }^3)\]

Assumptions

Spherical Geometry

property num_slices: int

Number of Slices cut into the Physical Object

These are used for the calculation of pressures, gravities, etc. so that more accurate values can be found for

e.g., pressure_inner, gravity_inner, etc.

property pressure_above: float

Pressure above this structure (surface pressure, or pressure from overlying layers) [Pa]

property pressure_inner: float

Pressure at the Inner Edge of the Object [Pa]

property pressure_middle: float

Pressure at the Middle of the Object [Pa]

property pressure_outer: float

Pressure at the Outer Edge / Surface of the Object [Pa]

property pressure_slices: ndarray

Physical Object’s Pressure Slices (bottom to top) [Pa]

property pressures

Alias of PhysicalObjSpherical.pressure_slices [Pa]

property radii: ndarray

Physical Object’s Radius Slices (bottom to top) [m]

property radius: float

Physical Object’s Outer Radius [m]

property radius_inner: float

Physical Object’s Inner Radius [m]

property radius_middle: float

Physical Object’s Middle Radius [m]

“middle” is defined by the object’s thickness / 2

property radius_outer

Alias of PhysicalObjSpherical.radius [m]

reinit(initial_init: bool = False)[source]

Reinitialize the physical object by pulling in any potentially new configurations

Parameters:

initial_init (bool = False) – Set to True for the first time an instance is created.

property sa_slices: ndarray

Physical Object’s Surface Area Slices (bottom to top) [m2]

set_geometry(radius: float, mass: float, thickness: float = None, mass_below: float = 0.0, update_state_geometry: bool = True, build_slices: bool = True)[source]

Calculates and sets the object’s physical parameters based on user provided input.

Assumptions

Spherical Geometry

param radius:

Outer radius of object [m]

type radius:

float

param mass:

Mass of object [kg]

type mass:

float

param thickness:

Thickness of the object [m]

type thickness:

float = None

param mass_below:

Mass below this object (only applicable for shell-like structures) Used in gravity and pressure calculations

type mass_below:

float = 0.

param update_state_geometry:

Update the class’ state geometry

type update_state_geometry:

bool = True

param build_slices:

If True, method will attempt to calculate gravities, densities, etc. for each slice.

type build_slices:

bool = True

set_static_pressure(pressure_above: float = None, build_slices: bool = True)[source]

Sets the static pressure for the physical structure.

Static here indicates that this is not a dynamic pressure used in many calculations. The static pressure can

be used in place of the dynamic pressure, but that is not always the case.

Parameters:
  • pressure_above (float = None) –

    Pressure above this structure. If this is a layer, then it is the pressure at the base of the overlying

    layer. If it is the upper-most layer or a world, then it may be the surface pressure.

  • build_slices (bool = True) – If True, method will find the pressure at each slice of the physical object.

property surface_area

Alias of PhysicalObjSpherical.surface_area_outer [m2]

property surface_area_inner: float

Physical Object’s Inner Surface Area [m-2]

property surface_area_middle: float

Physical Object’s Middle Surface Area [m-2]

“middle” is defined by the object’s thickness / 2

property surface_area_outer: float

Physical Object’s Outer Surface Area [m-2]

property surface_areas

Alias of PhysicalObjSpherical.sa_slices [m2]

property temperature_inner: float

Temperature at the Inner Edge of the Object [K]

property temperature_outer: float

Temperature at the Outer Edge / Surface of the Object [K]

property thickness: float

Physical Object’s Thickness [m]

property volume: float

Physical Object’s Volume [m^3]

property volume_slices: ndarray

Physical Object’s Volume Slices (bottom to top) [m3]

property volumes

Alias of PhysicalObjSpherical.volume_slices [m3]