API reference
Basic structs
FastIsostasy.ComputationDomain
— TypeComputationDomain
Return a struct containing all information related to geometry of the domain and potentially used parallelism.
FastIsostasy.PhysicalConstants
— TypePhysicalConstants
Return a struct containing important physical constants.
FastIsostasy.MultilayerEarth
— TypeMultilayerEarth
Return a struct containing all information related to the radially layered structure of the solid Earth and its parameters.
Missing docstring for RefGeoState
. Check Documenter's build log for details.
FastIsostasy.GeoState
— TypeGeoState
Return a mutable struct containing the geostate which will be updated over the simulation.
FastIsostasy.PrecomputedFastiso
— TypePrecomputedFastiso
Return a struct containing all the pre-computed terms needed for the forward integration of the model.
FastIsostasy.SuperStruct
— TypeSuperStruct
Return a struct containing all the other structs needed for the forward integration of the model.
Missing docstring for FastisoResults
. Check Documenter's build log for details.
Mechanics
FastIsostasy.ice_load
— Functionice_load(c::PhysicalConstants{T}, H::T)
Compute ice load based on ice thickness.
FastIsostasy.fastisostasy
— Functionfastisostasy()
Main function. List of all available solvers here.
FastIsostasy.init_superstruct
— Functioninit_superstruct()
Init a SuperStruct
containing all necessary fields for forward integration in time.
Missing docstring for forward_isostasy
. Check Documenter's build log for details.
Missing docstring for init_results
. Check Documenter's build log for details.
Missing docstring for forwardstep_isostasy!
. Check Documenter's build log for details.
FastIsostasy.dudt_isostasy!
— Functiondudt_isostasy!()
Update the displacement rate dudt
.
Missing docstring for simple_euler!
. Check Documenter's build log for details.
Missing docstring for apply_bc
. Check Documenter's build log for details.
Missing docstring for compute_elastic_response
. Check Documenter's build log for details.
Sea-level
FastIsostasy.update_geostate!
— Functionupdate_geostate!(sstruct::SuperStruct, u::Matrix, H_ice::Matrix)
Update the ::GeoState
computing the current geoid perturbation, the sea-level changes and the load columns for the next time step of the isostasy integration.
FastIsostasy.update_geoid!
— Functionupdate_geoid!(sstruct::SuperStruct)
Update the geoid of a ::GeoState
by convoluting the Green's function with the load change.
FastIsostasy.get_loadchange
— Functionget_loadchange(sstruct::SuperStruct)
Compute the load change compared to the reference configuration after Coulon et al. 2021. Difference to Coulon: HERE WE SCALE WITH CORRECTION FACTOR FOR PROJECTION!
FastIsostasy.get_geoidgreen
— Functionget_geoidgreen(sstruct::SuperStruct)
Return the Green's function used to compute the changes in geoid.
Reference
Coulon et al. 2021.
FastIsostasy.update_loadcolumns!
— Functionupdate_loadcolumns!(sstruct::SuperStruct, u::XMatrix, H_ice::XMatrix)
Update the load columns of a ::GeoState
.
FastIsostasy.update_sealevel!
— Functionupdate_sealevel!(sstruct::SuperStruct)
Update the sea-level ::GeoState
by adding the various contributions.
Reference
Coulon et al. (2021), Figure 1.
FastIsostasy.update_slc!
— Functionupdate_slc!(sstruct::SuperStruct)
Update the sea-level contribution of melting above floatation, density correction and potential ocean volume.
Reference
Goelzer et al. (2020), eq. (12).
FastIsostasy.update_V_af!
— Functionupdate_V_af!(sstruct::SuperStruct)
Update the ice volume above floatation.
Reference
Goelzer et al. (2020), eq. (13). Note: we do not use eq. (1) as it is only a special case of eq. (13) that does not allow a correct representation of external sea-level forcings.
FastIsostasy.update_slc_af!
— Functionupdate_slc_af!(sstruct::SuperStruct)
Update the sea-level contribution of ice above floatation.
Reference
Goelzer et al. (2020), eq. (2).
FastIsostasy.update_V_pov!
— Functionupdate_V_pov!(sstruct::SuperStruct)
Update the potential ocean volume.
Reference
Goelzer et al. (2020), eq. (14). Note: we do not use eq. (8) as it is only a special case of eq. (14) that does not allow a correct representation of external sea-level forcinsstruct.geostate.
FastIsostasy.update_slc_pov!
— Functionupdate_slc_pov!(sstruct::SuperStruct)
Update the sea-level contribution associated with the potential ocean volume.
Reference
Goelzer et al. (2020), eq. (9).
FastIsostasy.update_V_den!
— Functionupdate_V_den!(sstruct::SuperStruct)
Update the ocean volume associated with the density correction.
Reference
Goelzer et al. (2020), eq. (10).
FastIsostasy.update_slc_den!
— Functionupdate_slc_den!(sstruct::SuperStruct)
Update the sea-level contribution associated with the density correction.
Reference
Goelzer et al. (2020), eq. (11).
Parameter inversion
Utils
FastIsostasy.years2seconds
— Functionyears2seconds(t::Real)
Convert input time t
from years to seconds.
FastIsostasy.seconds2years
— Functionseconds2years(t::Real)
Convert input time t
from seconds to years.
FastIsostasy.m_per_sec2mm_per_yr
— Functionm_per_sec2mm_per_yr(dudt::Real)
Convert displacement rate dudt
from $ m \, s^{-1} $ to $ mm \, \mathrm{yr}^{-1} $.
FastIsostasy.matrify_vectorconstant
— Functionmatrify_vectorconstant(x, N)
Generate a vector of constant matrices from a vector of constants.
Missing docstring for matrify_constant
. Check Documenter's build log for details.
FastIsostasy.get_r
— Functionget_r(x::T, y::T) where {T<:Real}
Get euclidean distance of point (x, y) to origin.
FastIsostasy.meshgrid
— Functionmeshgrid(x, y)
Return a 2D meshgrid spanned by x, y
.
FastIsostasy.dist2angulardist
— Functiondist2angulardist(r::Real)
Convert Euclidean to angular distance along great circle.
Missing docstring for sphericaldistance
. Check Documenter's build log for details.
Missing docstring for scalefactor
. Check Documenter's build log for details.
FastIsostasy.latlon2stereo
— Functionlatlon2stereo(lat, lon, lat0, lon0)
Compute stereographic projection (x,y) for a given latitude lat
longitude lon
, reference latitude lat0
and reference longitude lon0
. Optionally one can provide lat::AbstractMatrix
and lon::AbstractMatrix
if the projection is to be computed for the whole domain. Note: angles must be provided in degrees! Reference: John P. Snyder (1987), p. 157, eq. (21-2), (21-3), (21-4).
FastIsostasy.stereo2latlon
— Functionstereo2latlon(x, y, lat0, lon0)
Compute the inverse stereographic projection (lat, lon)
based on Cartesian coordinates (x,y)
and for a given reference latitude lat0
and reference longitude lon0
. Optionally one can provide x::AbstractMatrix
and y::AbstractMatrix
if the projection is to be computed for the whole domain. Note: angles must be para elloprovided in degrees!
Convert stereographic (x,y)-coordinates to latitude-longitude. Reference: John P. Snyder (1987), p. 159, eq. (20-14), (20-15), (20-18), (21-15).
FastIsostasy.get_rigidity
— Functionget_rigidity(t::T, E::T, nu::T) where {T<:AbstractFloat}
Compute rigidity D
based on thickness t
, Young modulus E
and Poisson ration nu
.
Missing docstring for get_effective_viscosity
. Check Documenter's build log for details.
Missing docstring for get_differential_fourier
. Check Documenter's build log for details.
Missing docstring for get_viscosity_ratio
. Check Documenter's build log for details.
Missing docstring for three_layer_scaling
. Check Documenter's build log for details.
FastIsostasy.loginterp_viscosity
— Functionloginterp_viscosity(tvec, layer_viscosities, layers_thickness, pseudodiff)
Compute a log-interpolator of the equivalent viscosity from provided viscosity fields layer_viscosities
at time stamps tvec
.
Missing docstring for hyperbolic_channel_coeffs
. Check Documenter's build log for details.
Missing docstring for get_greenintegrand_coeffs
. Check Documenter's build log for details.
Missing docstring for build_greenintegrand
. Check Documenter's build log for details.
FastIsostasy.get_elasticgreen
— Functionget_elasticgreen(Omega, quad_support, quad_coeffs)
Integrate load response over field by using 2D quadrature with specified support points and associated coefficients.
FastIsostasy.get_quad_coeffs
— Functionget_quad_coeffs(T, n)
Return support points and associated coefficients with specified Type for Gauss-Legendre quadrature.
FastIsostasy.quadrature1D
— Functionquadrature1D(f, n, x1, x2)
Compute 1D Gauss-Legendre quadrature of f
between x1
and x2
based on n
support points.
Missing docstring for quadrature2D
. Check Documenter's build log for details.
Missing docstring for get_normalized_lin_transform
. Check Documenter's build log for details.
Missing docstring for normalized_lin_transform
. Check Documenter's build log for details.
FastIsostasy.kernelpromote
— Functionkernelpromote(X, arraykernel)
Promote X to the kernel (Array
or CuArray
) specified by arraykernel
.