Reference (7)
Tidal potentials
Tidal Dissipation
To determine the total tidal heating, Obliqua loops over all $(n,m,k)$ pairs and calculates heating rates based on general eccentric expressions. While the model currently assumes co-planarity (precluding obliquity tides), it fully accounts for eccentricity through Hansen coefficients.
Tidal Potential and Normalization
For every triplet $(n, m, k)$, we calculate the Hansen coefficient $X_k^{-(n+1),m}(e)$ and the normalization factor $A_{n,m,k}$:
\[A_{n,m,k} = 2\sqrt{\frac{4\pi}{2n+1}\frac{(n-m)!}{(n+m)!}} P_n^m(0) X_k^{-(n+1),m}(e)\]
(When Obliqua's adaptive mode enumeration restricts the loop to $m \geq 0$ to exploit the $\pm m$ symmetry of the problem, it applies additional $m=0$ correction factors to the implementation of this sum so that the $m=0$ terms are not double-counted. Those factors are a bookkeeping detail of that loop-restriction optimization, not part of the definition of $A_{n,m,k}$ itself, and are omitted here.)
The associated tidal potential $U_{n,m,k}$ is defined as:
\[U_{n,m,k} = \frac{GM}{a} \left(\frac{R}{a}\right)^n A_{n,m,k}(e)\]
Heating Rates
The "black box" tidal models return an unnormalized heating profile $\tilde{H}(r, \sigma)$. To obtain the physical heating profile $H(r, \sigma)$ at a specific forcing frequency $\sigma$, we scale the output by the square of the tidal potential:
\[H(r, \sigma) = \tilde{H}(r, \sigma) \times |U_{n,m,k}|^2\]
The global heating rate $H(\sigma)$ for a given frequency is determined using the imaginary part of the tidal Love number $k_n(\sigma)$:
\[H(\sigma) = \text{prefactor} \times (-\text{Im}[k_n(\sigma)]) \times |U_{n,m,k}|^2\]
where the energy dissipation prefactor is:
\[\text{prefactor} = \frac{(2n + 1)R}{8\pi G} \sigma\]
Spectral Summation
Since the tidal forcing consists of a discrete set of frequencies, the total heating is determined by summing across the forcing frequency domain:
- Radial Heating Profile: $H(r) = \sum_{\sigma} H(r, \sigma)$
- Total Global Heating: $H = \sum_{\sigma} H(\sigma)$
Consistency Check: The volume integration of the radial profile $H(r)$ should match the global heating rate $H$, provided the surface load Love number $k'_n(\sigma)$ remains small compared to unity ($k'_n \ll 1$).
Outputs for Orbital Dynamics
In addition to the heating rates, Obliqua returns the complex tidal Love numbers $k_n(\sigma)$ and their corresponding forcing frequencies $\sigma$. these are required for calculating tidal torques and the long-term orbital evolution of the system.
Function Documentation
Obliqua.run_tides — Function
run_tides(omega, axial, ecc, sma, S_mass, rho, radius, visc, shear, bulk, bulkd, phi, perm, cfg)Compute the tidal heating profile of a planetary interior considering solid and fluid layers.
Arguments
omega::prec: Orbital frequency of the body.axial::prec: Axial (spin) frequency of the body.ecc::Float64: Orbital eccentricity.sma::Float64: Semi-major axis of the orbit.S_mass::Float64: Mass of the central body (e.g., star) inducing tides.rho::Array{prec,1}: Radial density profile of the planet, from core to surface.radius::Array{prec,1}: Radial positions of layers, from core to surface.visc::Array{prec,1}: Viscosity profile of the planet.shear::Array{prec,1}: Shear modulus profile of the solid layers.bulk::Array{prec,1}: Bulk modulus profile of the solid layers.bulkd::Array{prec,1}: Drained bulk modulus profile of the fluid layers.phi::Array{prec,1}: Porosity profile of the fluid layers.perm::Array{prec,1}: Permeability profile of the fluid layers.cfg::Dict: Configuration parameters from dictionary.
Returns
power_prf::Array{Float64,1}: Radial profile of tidal heating (W/m³).power_blk::Float64: Total tidal power integrated over the interior (W).nmk::Array{Tuple{Int,Int,Int},1}: List of tidal modes (n, m, k) considered in the calculation.σ_range::Array{Float64,1}: Frequencies at which the Love numberk_nwas evaluated.Hansen::Array{Float64,1}: Hansen coefficients corresponding to the tidal modes.knms_total::Array{ComplexF64,1}: Complex Love numberk_nfor the planet.