Skip to content

Input Parameters

Resolution

i_N

  • Number of outer core radial grid points.
  • Integer
  • In practice, set to somewhere between 16 and 512. For best performance, set to \(2^n\) for an integer \(n\).

i_Nic

  • Number of inner core radial grid points
  • Integer
  • Set to 1 for insulating inner core.
  • Set to \(>1\) for rotating inner core (also need to set b_rot_tstep to .true.).

i_L

  • Maximum Spherical Harmonic Degree.
  • Integer.
  • For best performance, set to \(2^n\) for integer \(n\).

i_M

  • Maximum Spherical Harmonic Order.
  • Integer.
  • Must be \(<=\text{i_L}\).
  • Set to \(2^n\) for best performance.

i_Mp

  • Azimuthal periodicity.
  • Integer
  • Used to reduce effective computational domain in azimuthal direction. Causes code to only compute every \(\text{i_Mp}^{th}\) harmonic order, so azimuthal resolution can be increased but only for e.g. a half or quarter spherical shell.

i_H

  • Total number of spherical harmonics. Set automatically by selection of i_L, i_M, and i_Mp. $$ \text{i_L}\times\text{i_M} - \frac{\text{i_Mp}\times(\text{i_M}-1)*\text{i_M}}{2} $$

i_Th

  • Number of grid points in \(\theta\) direction.
  • Set automatically from i_L, set for dealiasing.
  • \(\text{i_Th}= 3/2(\text{i_L})\).

i_Ph

  • Number of grid points in \(\phi\) direction
  • Set automatically from i_M, for dealiasing.
  • \(\text{i_Ph}= 3 \text{i_M}\).

i_KL

  • Number of adjacent points in finite difference stencil
  • default set to 3.
  • must be \(<=2\).

Non-dimensional Control parameters

d_Ra

  • Thermal Rayleigh number
  • Float
  • Generally set to \(10^3<\text{Ra}< 10^{12}\).
  • Higher Ra requires higher i_N, and possibly higher i_L, i_M.
  • Generally used as codensity buoyancy term in single component simulations, and as the thermal Ra for doubly-diffusive convection.
  • Requires b_cod_tstep to be .true. to take effect.

d_Ra_comp

d_Pr

d_Sc

d_Pm

  • Magnetic Prandtl Number.
  • Float.
  • For non-magnetic simulations, set Pm=Pr for thermal diffusive timescale, set Pm=1 for viscous diffusive timescale, or Pm=Sc for compositional diffusive timescale.

d_E

  • Ekman number.
  • Float
  • Generally set to \(10^{-6}<\text{d_E}<10^{-2}\).

d_rratio

Simulation options

b_rot_tstep

Choose whether to calculate rotation of the inner core, based on viscous and magnetic torques.

  • Boolean.
  • If set to .true., i_Nic should be greater than 1.

b_vel_tstep

Choose whether to allow the velocity field to change in time.

  • Boolean.

b_cod_tstep

Choose whether to allow the temperature field to change in time.

  • Boolean

b_comp_tstep

Choose whether to allow the composition field to change in time.

  • Boolean

b_mag_tstep

Choose whether to calculate the magnetic field. Magnetic field is set to zero if .false.. Magneto-convection can be carried out by using b_inhom_magPol.

b_boussinesq

Choose whether to use the [boussinesq] or [anelastic] approximations.

Numerical options

d_Hyp

  • traditional hyperdiffusivity.
  • generally set to small positive e.g. 0.01.
  • float.

smart_hyperdiffusion

Controls whether smart hyperdiffusion of form \(q_h^{l-l_h}\nabla^2\) is used for the velocity and temperature fields or not. If .true., controlled by ldiff and qhyper.

  • Boolean

qhyper

\(q_h\), controls how quickly smart hyperdiffusion surpresses the high spherical harmonic degree energy.

smart_hyperdiffusion must be set to .true. for this to have any effect.

ldiff

\(l_h\), controls the cutoff spherical harmonic degree for smart hyperdiffusion.

smart_hyperdiffusion must be set to .true. for this to have any effect.

Velocity Boundary Conditions

i_vel_bc

Controls the mechanical boundary conditions.

  • must be an integer between 1 and 4.
option inner boundary outer boundary
1 no-slip no-slip
2 no-slip stress-free
3 stress-free no-slip
4 stress-free stress-free

Codensity Boundary Conditions

i_cod_bc

Controls thermal boundary conditions.

If i_inhombc_C is not 1, d_qo and d_qi are replaced by codBC.cdf.inor codBC.txt.in (but setting for Fixed Flux or Fixed temperature is still used).

option inner boundary outer boundary
1 \(T=1\) \(T=0\)
2 \(T=1\) \(\partial T/\partial r =\) d_qo
3 \(\partial T/\partial r =\) d_qi \(T=0\)
4 \(\partial T/\partial r =\) d_qi \(\partial T/\partial r =\) d_qo

i_inhombc_C

option description
1 Homogeneous boundary conditions
2 Inhomogeneous boundary conditions, loaded from codBC.cdf.in
3 Inhomogeneous boundary conditions, loaded from codBC.txt.in

d_qo

Flux on outer core temperature boundary.

  • Float
  • normalised such that should be set to \(\leq 0\) for convection
  • ignored if i_inhombc_C is 2 or 3.

d_qi

Flux on inner core temperature boundary.

  • Float
  • normalised such that should be set to \(\leq 0\) for convection
  • ignored if i_inhombc_C is 2 or 3.

i_source_load

Where internal heat source is read in from:

option description
1 Uniform, set by d_source
2 load from codBC.cdf.in
3 load from codS.txt.in

d_source

Uniform internal heat source. Only used if i_source_load = 1. For radially varying internal heat source, see options 2 and 3 of i_source_load.

Composition Boundary Conditions

i_comp_bc

Controls compositional boundary conditions.

If i_inhombc_comp is not 1, d_qo_comp and d_qi_comp are replaced by compBC.cdf.in or compBC.txt.in (but setting for Fixed Flux or Fixed Composition is still used).

option inner boundary outer boundary
1 \(\xi=1\) \(\xi=0\)
2 \(\xi=1\) \(\partial \xi/\partial r =\) d_qo_comp
3 \(\partial \xi/\partial r =\) d_qi_comp \(\xi=0\)
4 \(\partial \xi/\partial r =\) d_qi_comp \(\partial \xi/\partial r =\) d_qo_comp

i_inhombc_comp

option description
1 Homogeneous boundary conditions
2 Inhomogeneous boundary conditions, loaded from compBC.cdf.in
3 Inhomogeneous boundary conditions, loaded from compBC.txt.in

d_qo_comp

Flux on outer core composition boundary.

  • Float
  • normalised such that should be set to \(\leq 0\) for convection
  • ignored if i_inhombc_comp is 2 or 3.

d_qi_comp

Flux on inner core composition boundary.

  • Float
  • normalised such that should be set to \(\leq 0\) for convection
  • ignored if i_inhombc_comp is 2 or 3.

i_source_comp_load

Where internal composition source is read from.

option description
1 Uniform, set by d_source_comp
2 load from compBC.cdf.in
3 load from compS.txt.in

d_source_comp

Uniform internal composition source. Only used if i_source_comp_load = 1. For radially varying internal composition source, see options 2 and 3 of i_source_comp_load.

Magnetic Field Boundary Conditions

b_inhom_magPol

  • Boolean

Toggle to specify whether to determine custom magnetic boundary conditions. If true, the poloidal magnetic field boundaries are read in from mag_PolBC.txt.in. At least one of b_fixed_at_outer or b_fixed_at_inner must be set to .true..

b_fixed_at_outer

  • Boolean

Determine whether poloidal magnetic at outer boundary is set by mag_PolBC.txt.in. b_inhom_magPol must be .true. for this to have any effect.

b_fixed_at_inner

  • Boolean

Determine whether poloidal magnetic at inner boundary is set by mag_PolBC.txt.in. b_inhom_magPol must be .true. for this to have any effect.

Code outputs

i_save_rate_1

  • integer

How often savestates should be written out. Written out every i_save_rate_1 timesteps

i_save_rate_2

  • integer

How often time-series data should be written out. Written out every i_save_rate_2 timesteps

i_save_rate_3

  • integer

How often spectra and profiles should be written out. Written out every i_save_rate_3 timesteps

Code stopping criteria

i_maxstep

  • integer

Stop the code after i_maxstep timesteps. Set to \(\lt 0\) to set no limit.

d_cpuhours

  • float

Number of hours to run for. Decimal parts of hours are allowed, e.g. to run for thirty minutes. set to 0.5d0.

Code Start time

d_time

  • float

What is the in-simulation start time, in magnetic diffusion time units. Set to \(\lt 0\) to take this time from the statefile instead.

Timestep control

d_timestep

  • float

Specify a fixed timestep in magnetic diffusion time units. Set to \(\lt 0\) to use automatic time step control.

i_time_step_control

d_courant

d_dterr

d_corr_upper

d_corr_lower

d_implicit