Type tree
FastIsostasy is organized around a handful of small abstract type hierarchies (one per concern: domains, mantle rheology, sea-level contributions, ice-loading schemes, ...) rather than one big class tree. The snippet below walks the module with AbstractTrees.jl and prints every such hierarchy, so that this page stays in sync with the source instead of being maintained by hand.
using FastIsostasy, AbstractTrees, InteractiveUtils
AbstractTrees.children(T::Type) = subtypes(T)
roots = filter(names(FastIsostasy; all = true)) do name
isdefined(FastIsostasy, name) || return false
obj = getfield(FastIsostasy, name)
obj isa Type && isabstracttype(obj) && supertype(obj) === Any
end
roots = sort(unique(getfield.(Ref(FastIsostasy), roots)); by = string)
for root in roots
print_tree(root)
endAbstractAdjustmentContribution
AbstractBC
├─ NoBC
└─ OffsetBC
AbstractBCSpace
├─ ExtendedBCSpace
└─ RegularBCSpace
AbstractBSL
├─ CombinedBSL{T} where T<:AbstractFloat
├─ ConstantBSL{T} where T<:AbstractFloat
├─ ConstantOceanSurfaceBSL{T, R} where {T<:AbstractFloat, R<:(ReferenceBSL{T, I} where I<:TimeInterpolation0D{T})}
├─ ImposedBSL{T, R} where {T<:AbstractFloat, R<:(ReferenceBSL{T, I} where I<:TimeInterpolation0D{T})}
├─ PiecewiseConstantBSL{T, R} where {T<:AbstractFloat, R<:(ReferenceBSL{T, I} where I<:TimeInterpolation0D{T})}
└─ PiecewiseLinearOceanSurfaceBSL{T, R} where {T<:AbstractFloat, R<:(ReferenceBSL{T, I} where I<:TimeInterpolation0D{T})}
AbstractBSLUpdate
├─ ExternalBSLUpdate
└─ InternalBSLUpdate
AbstractCalibration
AbstractCompressibility
AbstractDensityContribution
AbstractDiffMode
├─ AdjointMode
└─ TangentMode
AbstractDomain
├─ GlobalDomain
└─ RegionalDomain
AbstractEncoding
├─ AutoEncoding{T} where T<:AbstractFloat
├─ EOFEncoding{T} where T<:AbstractFloat
├─ Test1Encoding{T} where T<:AbstractFloat
├─ Test2Encoding
└─ VariationalAutoEncoding{T} where T<:AbstractFloat
AbstractFFTBackend
├─ ComplexFFTBackend
└─ RealFFTBackend
AbstractIceThickness
├─ ExternallyUpdatedIceThickness
└─ TimeInterpolatedIceThickness
AbstractIntegrator
├─ BS3Integrator
├─ EulerIntegrator
├─ RKCIntegrator
└─ Tsit5Integrator
AbstractInversion
├─ IceLoadInversion
└─ ParameterInversion
AbstractLayering
├─ EqualizedLayering{T} where T<:AbstractFloat
├─ FoldedLayering{T} where T<:AbstractFloat
├─ ParallelLayering{T} where T<:AbstractFloat
└─ UniformLayering{T} where T<:AbstractFloat
AbstractLithosphere
├─ LaterallyConstantLithosphere
├─ LaterallyVariableLithosphere
└─ RigidLithosphere
AbstractLithosphereColumn
├─ CompressibleLithosphereColumn
└─ IncompressibleLithosphereColumn
AbstractLoss
└─ DefaultLoss
AbstractMantle
├─ RelaxedMantle
├─ RigidMantle
├─ TransientCreepMantle
└─ ViscousMantle
AbstractObservable
├─ BarystaticContributionObservable
├─ HorizontalDisplacementRateObservable
├─ RelativeSeaLevelObservable
├─ VerticalUpliftObservable
└─ VerticalUpliftRateObservable
AbstractRegOrder
├─ Order0
└─ Order1
AbstractRegTarget
├─ FieldTarget
├─ SurfaceTarget
└─ ThetaTarget
AbstractRegularization
├─ DecodedBounds
└─ TikhonovReg
AbstractSeaSurface
├─ ImposedSeaSurface
├─ LaterallyConstantSeaSurface
└─ LaterallyVariableSeaSurface
AbstractSealevelLoad
├─ InteractiveSealevelLoad
└─ NoSealevelLoad
AbstractTransition
├─ SharpTransition
└─ SmoothTransition
AbstractViscosityLumping
AbstractVolumeContribution
BoundedQuantity
├─ LithoDensity
├─ Log10Viscosity
└─ UpperMantleDensity
AbstractBarystaticContribution
AbstractIntegratorState
├─ RKCIntegratorState
└─ TableauIntegratorState
AbstractOutputCrop
├─ AsymetricOutputCrop
└─ PaddedOutputCrop
AbstractSedimentThickness
├─ ExternallyUpdatedSedimentThickness
└─ TimeInterpolatedSedimentThickness
AbstractState
├─ CurrentState
└─ ReferenceState
ParameterReduction