Don't use these...
EikonalSolvers
EikonalSolvers.bilinear_interp — Methodbilinear_interp(
f::AbstractMatrix{Float64},
grd::EikonalSolvers.AbstractGridEik2D,
xyzpt::AbstractVector{Float64};
outputcoeff
) -> Any
Bilinear interpolation.
EikonalSolvers.calc2diagDttD — Methodcalc2diagDttD(
vecD::EikonalSolvers.VecSPDerivMat,
tt::Vector{Float64},
onsrccols::Vector{Bool}
) -> Tuple{EikonalSolvers.VecSPDerivMat, SparseArrays.SparseMatrixCSC{Float64, Int64}}
Calculates the following maintaining the sparse structure: 2 * diag(D * tt) * Dr
EikonalSolvers.calc_dus_dsr — Methodcalc_dus_dsr(
lambda_coarse::AbstractArray{Float64},
velcart_coarse::Array{Float64, N},
∂ψ_∂u_s::AbstractVector{Float64},
srcboxpar_coarse,
grd::EikonalSolvers.AbstractGridEik,
xyzsrc::Vector{Float64}
) -> Any
Calculates the derivative of the misfit function with respect to the traveltime at the initial points around the source ("onsrc").
EikonalSolvers.calcgradsomesrc — Methodcalcgradsomesrc(
vel::Array{Float64, N},
xyzsrc::AbstractMatrix{Float64},
coordrec::AbstractVector{Matrix{Float64}},
grd::EikonalSolvers.AbstractGridEik,
stdobs::AbstractVector{Vector{Float64}},
pickobs1::AbstractVector{Vector{Float64}},
whichgrad::Symbol,
extrapars::ExtraParams
) -> Tuple{Any, Any, Float64}
Calculate the gradient for some requested sources
EikonalSolvers.calcprojttfmmord — Methodcalcprojttfmmord(
ttime::AbstractArray{Float64, N},
grd::EikonalSolvers.AbstractGridEik,
idxconv::EikonalSolvers.MapOrderGridFMM,
coordrec::AbstractArray{Float64}
) -> Any
Projection operator P containing interpolation coefficients, ordered according to FMM order.
EikonalSolvers.calcttpt_2ndord! — Methodcalcttpt_2ndord!(
fmmvars::EikonalSolvers.FMMVars2D,
vel::Matrix{Float64},
grd::EikonalSolvers.AbstractGridEik2D,
ij::StaticArraysCore.MVector{2, Int64},
codeD::StaticArraysCore.MVector{2, <:Integer}
) -> Any
Compute the traveltime at a given node using 2nd order stencil where possible, otherwise revert to 1st order. Two-dimensional Cartesian or spherical grid.
EikonalSolvers.calcttpt_2ndord! — Methodcalcttpt_2ndord!(
fmmvars::EikonalSolvers.FMMVars3D,
vel::Array{Float64, 3},
grd::EikonalSolvers.AbstractGridEik3D,
ijk::StaticArraysCore.MVector{3, Int64},
codeD::StaticArraysCore.MVector{3, <:Integer}
) -> Any
Compute the traveltime at a given node using 2nd order stencil where possible, otherwise revert to 1st order. Three-dimensional Cartesian or spherical grid.
EikonalSolvers.distribsrcs — Methoddistribsrcs(nsrc::Integer, nw::Integer) -> Any
Calculate how to subdivide the sources among workers for parallel jobs.
EikonalSolvers.findclosestnode_sph — Methodfindclosestnode_sph(
r::Float64,
θ::Float64,
rinit::Float64,
θinit::Float64,
Δr::Float64,
Δθ::Float64
) -> Tuple{Int64, Int64}
Find closest node on a 2D grid to a given point in spherical/polar coordinates.
EikonalSolvers.findclosestnode_sph — Methodfindclosestnode_sph(
r::Float64,
θ::Float64,
φ::Float64,
rinit::Float64,
θinit::Float64,
φinit::Float64,
Δr::Float64,
Δθ::Float64,
Δφ::Float64
) -> Tuple{Int64, Int64, Int64}
Find closest node on a 3D grid to a given point in spherical coordinates.
EikonalSolvers.findenclosingbox — Methodfindenclosingbox(
grd::EikonalSolvers.AbstractGridEik,
xyzsrc::AbstractVector
) -> AbstractMatrix{<:Int64}
Find closest node on a grid to a given point.
EikonalSolvers.gaussian_kernel — MethodGaussian kernel for smoothing
EikonalSolvers.isonbord — Methodisonbord(
ib::Int64,
jb::Int64,
n1::Int64,
n2::Int64
) -> Tuple{Bool, Bool}
Test if point is on borders of 2D domain.
EikonalSolvers.isonbord — Methodisonbord(
ib::Int64,
jb::Int64,
kb::Int64,
nx::Int64,
ny::Int64,
nz::Int64
) -> Tuple{Bool, Bool}
Test if point is on borders of a 3D domain.
EikonalSolvers.setcoeffderiv! — Methodsetcoeffderiv!(
D::EikonalSolvers.VecSPDerivMat,
status::Array,
irow::Integer,
idxconv::EikonalSolvers.MapOrderGridFMM,
codeDeriv_orig::Matrix{Int64},
allcoeff::EikonalSolvers.CoeffDerivatives,
ijkpt::AbstractVector,
colinds::AbstractVector{Int64},
colvals::AbstractVector{Float64},
idxperm::AbstractVector{Int64},
nptsfixedtt::Integer;
axis,
simtype
)
Set the coefficients (elements) of the derivative matrices in the x and y directions.
EikonalSolvers.smoothgradient — MethodSmooth gradient for arrays of any dimensions.EikonalSolvers.smoothimg — MethodSmooth an array of any dimensionEikonalSolvers.sourceboxloctt! — Methodsourceboxloctt!(
fmmvars::EikonalSolvers.AbstractFMMVars,
vel::Array{Float64, N},
srcpos::AbstractVector,
grd::EikonalSolvers.AbstractGridEik
)
Define the "box" of nodes around/including the source.
EikonalSolvers.tracerays_singlesrc — Methodtracerays_singlesrc(
grd::EikonalSolvers.AbstractGridEik,
ttime::Array{Float64, N},
srccoo::AbstractVector,
coordrec::Matrix{Float64};
steplen
)
Ray tracing utility. Given a traveltime grid and source and receiver positions, trace the rays.
EikonalSolvers.trilinear_interp — Methodtrilinear_interp(
f::AbstractArray{Float64, 3},
grd::EikonalSolvers.AbstractGridEik3D,
xyzpt::AbstractVector{Float64};
outputcoeff
) -> Any
Trinilear interpolation.
EikonalSolvers.ttFMM_core! — MethodttFMM_core!(
fmmvars::EikonalSolvers.AbstractFMMVars,
vel::Array{Float64, N},
grd::EikonalSolvers.AbstractGridEik,
adjvars::Union{Nothing, EikonalSolvers.AbstractAdjointVars};
fmmvars_coarse,
adjvars_coarse,
srcrefvars
)
Higher order (2nd) fast marching method in 2D using traditional stencils on regular grid.
EikonalSolvers.ttforwsomesrc — Methodttforwsomesrc(
vel::Array{Float64, N},
coordsrc::Matrix{Float64},
coordrec::Vector{Matrix{Float64}},
grd::EikonalSolvers.AbstractGridEik,
extrapars::ExtraParams;
returntt
) -> Union{Tuple{Vector{Array{Float64}}, Vector{Vector{Float64}}}, Vector{Vector{Float64}}}
Compute the forward problem for a group of sources.
EikonalSolvers.uniform_kernel — MethodUniform kernel for smoothing
Binary heap(s)
EikonalSolvers.BinHeaps — ModuleBinary heaps (min/max)
IMPORTANT: make sure the handle is unique!
Check is commented out because it slows things down...Exports
EikonalSolvers.BinHeaps.BinHeapMax — Typestruct BinHeapMaxFields
Nmax::Int64Nh::Base.RefValue{Int64}nodes::Vector{Float64}handles::Vector{Int64}idxhan::Vector{Int64}
EikonalSolvers.BinHeaps.BinHeapMin — Typestruct BinHeapMinFields
Nmax::Int64Nh::Base.RefValue{Int64}nodes::Vector{Float64}handles::Vector{Int64}idxhan::Vector{Int64}
EikonalSolvers.BinHeaps.build_maxheap! — Methodbuild_maxheap!(
values::Vector{Float64},
Nmax::Integer,
handles::Vector{Int64}
) -> EikonalSolvers.BinHeaps.BinHeapMax
EikonalSolvers.BinHeaps.build_minheap! — Methodbuild_minheap!(
values::Vector{Float64},
Nmax::Integer,
handles::Vector{Int64}
) -> EikonalSolvers.BinHeaps.BinHeapMin
EikonalSolvers.BinHeaps.index_leftchild — Methodindex_leftchild(i::Integer) -> Any
EikonalSolvers.BinHeaps.index_parent — Methodindex_parent(i::Integer) -> Any
EikonalSolvers.BinHeaps.index_rightchild — Methodindex_rightchild(i::Integer) -> Any
EikonalSolvers.BinHeaps.init_maxheap — Methodinit_maxheap(
Nmax::Integer
) -> EikonalSolvers.BinHeaps.BinHeapMax
EikonalSolvers.BinHeaps.init_minheap — Methodinit_minheap(
Nmax::Integer
) -> EikonalSolvers.BinHeaps.BinHeapMin
EikonalSolvers.BinHeaps.insert_maxheap! — Methodinsert_maxheap!(
h::EikonalSolvers.BinHeaps.BinHeapMax,
val::Float64,
handle::Int64
)
EikonalSolvers.BinHeaps.insert_minheap! — Methodinsert_minheap!(
h::EikonalSolvers.BinHeaps.BinHeapMin,
val::Float64,
handle::Int64
)
EikonalSolvers.BinHeaps.max_heapify! — Methodmax_heapify!(
h::EikonalSolvers.BinHeaps.BinHeapMax,
i::Int64
)
EikonalSolvers.BinHeaps.pop_maxheap! — Methodpop_maxheap!(
h::EikonalSolvers.BinHeaps.BinHeapMax
) -> Tuple{Int64, Float64}
EikonalSolvers.BinHeaps.pop_minheap! — Methodpop_minheap!(
h::EikonalSolvers.BinHeaps.BinHeapMin
) -> Tuple{Int64, Float64}
EikonalSolvers.BinHeaps.swap_nodes_heap! — Methodswap_nodes_heap!(
h::Union{EikonalSolvers.BinHeaps.BinHeapMax, EikonalSolvers.BinHeaps.BinHeapMin},
p::Integer,
q::Integer
)
EikonalSolvers.BinHeaps.topval_heap — Methodtopval_heap(
h::Union{EikonalSolvers.BinHeaps.BinHeapMax, EikonalSolvers.BinHeaps.BinHeapMin}
) -> Tuple{Float64, Int64}
EikonalSolvers.BinHeaps.update_node_maxheap! — Methodupdate_node_maxheap!(
h::EikonalSolvers.BinHeaps.BinHeapMax,
val::Float64,
handle::Int64
)
EikonalSolvers.BinHeaps.update_node_minheap! — Methodupdate_node_minheap!(
h::EikonalSolvers.BinHeaps.BinHeapMin,
val::Float64,
handle::Int64
)