Tutorials (1)

Loading data

The Obliqua package comes with with several tidal heating modules. Each modules can be excessed through one cohensive function. Depending on which module you want to use Obliqua requires different input parameters. In order to get started, several data files are included, these can be used in combination with the different functions. First we shall show how to load these data files.

The data files are stored in the /path/to/Obliqua/res folder, and are of type JSON. They have following structure

{
  "omega": "Float",
  "axial": "Float",
  "ecc": "Float",
  "sma": "Float",
  "S_mass": "Float",
  "density": "[Array]",
  "radius": "[Array]",
  "visc": "[Array]",
  "shear": "[Array]",
  "bulk": "[Array]",
  "phi": "[Array]",
  "ncalc": "Int"
}

Depending on which module is being used the following parameters need to be provided.

Table of inputs
Inputsolid-phasesolid-phase + mush interfaceliquid-phaseDescriptionSymbol
omega✔️✔️✔️Orbital Frequency$\omega$
axial✔️Axial Frequency$\Omega$
ecc✔️✔️✔️Eccentricity$\epsilon$
sma✔️Semi major axis$a$
S_mass✔️Stellar mass$M_\star$
density✔️✔️✔️Density profile$\rho$
radius✔️✔️✔️Radii$r$
visc✔️✔️✔️Viscosity profile$\eta$
shear✔️✔️Shear profile$\mu$
bulk✔️✔️Solid Bulk Modulus$\kappa_s$
phi✔️Melt Fraction profile (porosity)$\phi$
ncalc✔️✔️Resolution$n_\text{calc}$

It is important to note that the radius array contains the radial values at the boundaries of the spherical shells that make up the planetary mantle, whilst the density, visc, shear, bulk, and phi arrays contain the mean of these in the spherical shells. As such it follows that there are $N+1$ values in the radius array, and $N$ values in thedensity, visc, shear, bulk, and phi arrays, where $N$ is the number of spherical shells. Please do not confuse ncalc with $N$, since the former expands the number of layers through interpolation, whereas the latter is the initial resolution of the data.

For now the user is provided with four different functions, they are given below. The most simple way to use these functions is as follows. First let's test if the provided data is compatible.

using Obliqua

# location of data files
RES_DIR = "/path/to/Obliqua/res"

# test data validity using included data file
ok = load.load_interior("$RES_DIR/interior_data/test_mantle.json", true)

if ok
    print("Pass")
else
    print("Fail")
end

Next, let's load the data from the data file.

# use the relevant load function
omega, ecc, rho, radius, visc, shear, bulk, ncalc = load.load_interior("$RES_DIR/interior_data/test_mantle.json", false)


Obliqua.load.load_interiorFunction
load_interior(fname::String)

Load interior structure + tidal parameters from a JSON file.

The JSON file must contain:

{
    "density": [...],
    "radius": [...],
    "visc": [...],
    "shear": [...],
    "bulk": [...],
    "omega": value,
    "ecc": value,
    "ncalc": value
}

Returns (if verify=false):

(omega, ecc, rho, radius, visc, shear, bulk, ncalc)
source
Obliqua.load.load_interior_fullFunction
load_interior_full(fname::String; verify::Bool=false)

Load the full interior structure and orbital configuration for a body including solid rheology and orbital parameters from a JSON file.

This is the most complete loader, intended for models that require:

  • solid rheology,
  • orbital forcing,
  • stellar properties,
  • numerical resolution control.

The JSON file must contain:

{
    "density": [...],
    "radius": [...],
    "visc": [...],
    "shear": [...],
    "bulk": [...],
    "omega": value,
    "axial": value,
    "ecc": value,
    "sma": value,
    "S_mass": value,
    "ncalc": value
}

If verify=true, the function performs internal consistency and basic physical sanity checks and returns a Bool.

Returns (if verify=false):

(omega, axial, ecc, sma, S_mass, rho, radius, visc, shear, bulk, ncalc)
source
Obliqua.load.load_interior_liquidFunction
load_interior_liquid(fname::String; verify::Bool=false)

Load interior structure + orbital parameters for a fully liquid body from a JSON file.

The JSON file must contain:

{
    "density": [...],
    "radius": [...],
    "visc": [...],
    "omega": value,
    "axial": value,
    "ecc": value,
    "sma": value,
    "S_mass": value
}

If verify=true, the function performs basic consistency and physical checks and returns a Bool.

Returns (if verify=false):

(omega, axial, ecc, sma, S_mass, rho, radius, visc)
source
Obliqua.load.load_interior_mushFunction
load_interior_mush(fname::String; verify::Bool=false)

Load interior structure + tidal parameters for a solid body with a mush layer from a JSON file.

The JSON file must contain:

{
    "density": [...],
    "radius": [...],
    "visc": [...],
    "shear": [...],
    "bulk": [...],
    "phi": [...],
    "omega": value,
    "ecc": value,
    "ncalc": value
}

If verify=true, the function performs basic consistency and physical checks and returns a Bool.

Returns (if verify=false):

(omega, ecc, rho, radius, visc, shear, bulk, phi, ncalc)
source
Obliqua.load.load_interior_mush_fullFunction
load_interior_mush_full(fname::String; verify::Bool=false)

Load the full interior structure and orbital configuration for a body including solid rheology and orbital parameters from a JSON file.

This is the most complete loader, intended for models that require:

  • solid rheology,
  • orbital forcing,
  • stellar properties,
  • numerical resolution control.

The JSON file must contain:

{
    "density": [...],
    "radius": [...],
    "visc": [...],
    "shear": [...],
    "bulk": [...],
    "phi": [...],
    "omega": value,
    "axial": value,
    "ecc": value,
    "sma": value,
    "S_mass": value,
    "ncalc": value
}

If verify=true, the function performs internal consistency and basic physical sanity checks and returns a Bool.

Returns (if verify=false):

(omega, axial, ecc, sma, S_mass, rho, radius, visc, shear, bulk, phi, ncalc)
source