Spherical Shell Geometry
The GeoDynamoShell module provides shell-specific domain setup.
Overview
CMB (Core-Mantle Boundary)
╱ ╲
╱ Outer Core (Fluid) ╲
╱ ┌─────────────────────┐ ╲
│ │ │ │
│ │ ICB (Inner Core │ │
│ │ Boundary) │ │
│ │ │ │
╲ └─────────────────────┘ ╱
╲ ╱
╲__________________________╱Shell geometry simulates fluid dynamics between two concentric spherical boundaries—like Earth's outer core.
Shell Geometry API
GeoDynamo.GeoDynamoShell.ShellConfig — Type
ShellConfigAlias for SHTnsKitConfig, re-exported under a shell-specific name for clarity when working in spherical-shell geometry (inner radius > 0). It carries the spherical-harmonic transform plans, parallel layout, and buffers.
GeoDynamo.GeoDynamoShell.create_shell_pencils — Function
create_shell_pencils(cfg::ShellConfig; optimize=true)Create a shell-oriented pencil decomposition using the core topology helper.
GeoDynamo.GeoDynamoShell.create_shell_radial_domain — Function
create_shell_radial_domain(nr; radius_ratio=0.35, radial_bandwidth=4) -> RadialDomainCreate a radial domain suitable for a spherical shell. This is a thin wrapper over GeoDynamo.create_radial_domain.
GeoDynamo.GeoDynamoShell.create_shell_velocity_fields — Function
create_shell_velocity_fields(T, cfg::ShellConfig; nr)GeoDynamo.GeoDynamoShell.create_shell_temperature_field — Function
create_shell_temperature_field(T, cfg::ShellConfig; nr)GeoDynamo.GeoDynamoShell.create_shell_composition_field — Function
create_shell_composition_field(T, cfg::ShellConfig; nr)GeoDynamo.GeoDynamoShell.create_shell_magnetic_fields — Function
create_shell_magnetic_fields(T, cfg::ShellConfig; nr_oc, nr_ic)GeoDynamo.GeoDynamoShell.apply_shell_composition_boundaries! — Method
apply_shell_composition_boundaries!(comp_field, boundary_set; time=0)GeoDynamo.GeoDynamoShell.apply_shell_temperature_boundaries! — Method
apply_shell_temperature_boundaries!(temp_field, boundary_set; time=0)Wrapper around core boundary application for shell geometry.
GeoDynamo.GeoDynamoShell.create_shell_hybrid_composition_boundaries — Method
create_shell_hybrid_composition_boundaries(inner_spec, outer_spec, cfg::ShellConfig; precision=Float64)Create composition boundaries for shell geometry. Dispatches to appropriate function based on spec types:
- Both Tuple: fully programmatic boundaries
- String + Tuple: hybrid (one from file, one programmatic)
- Both String: both from files
GeoDynamo.GeoDynamoShell.create_shell_hybrid_temperature_boundaries — Method
create_shell_hybrid_temperature_boundaries(inner_spec, outer_spec, cfg::ShellConfig; precision=Float64)Create temperature boundaries for shell geometry. Dispatches to appropriate function based on spec types:
- Both Tuple: fully programmatic boundaries
- String + Tuple: hybrid (one from file, one programmatic)
- Both String: both from files
GeoDynamo.GeoDynamoShell.create_shell_physical_field — Method
create_shell_physical_field(T, cfg::ShellConfig, domain::GeoDynamo.RadialDomain, pencil)GeoDynamo.GeoDynamoShell.create_shell_spectral_field — Method
create_shell_spectral_field(T, cfg::ShellConfig, domain::GeoDynamo.RadialDomain, pencil)GeoDynamo.GeoDynamoShell.create_shell_vector_field — Method
create_shell_vector_field(T, cfg::ShellConfig, domain::GeoDynamo.RadialDomain, pencils)