FastMultipole
Documentation for FastMultipole.
FastMultipole.ElementFastMultipole.MultiTreeFastMultipole.d2rdx2FastMultipole.direct!FastMultipole.drdxFastMultipole.fmm!FastMultipole.unsort!
FastMultipole.Element — Typetype ::ElementInstances of ::Element contain the following properties:
position: a vector of length 3 describing the Cartesian coordinates of the element positionstrength: a vector of length 4 whose first index describes the source potential, and whose final 3 indices represent the vector sourcepotential: a vector of length 4 whose first index is the scalar potential, and whose final 3 indices represent a vector potentialvelocity: a vector of length 3 describing the induced velocity, obtained as the negative gradient of the scalar potential plus curl of the vector potentialjacobian: a 3x4 matrix containing the concatenated spatial Jacobians of the scalar and vector potentialshessian: a 3x3x3 array containing the spatial Hessian of the vector potential
FastMultipole.MultiTree — Typebodies[indexlist] is the same sort operation as performed by the tree sortedbodies[inverseindexlist] undoes the sort operation performed by the tree
FastMultipole.d2rdx2 — Methoddrk/dxidx_j
FastMultipole.direct! — Methoddirect!(elements)Direct calculation of induced potential (no FMM acceleration).
FastMultipole.drdx — Methoddrj/dxi
FastMultipole.fmm! — Methodfmm!(target_systems, source_systems; kwargs...)Apply all interactions of source_systems acting on target_systems using the fast multipole method. Assumes compatibility functions have been overloaded for both source and target systems.
Arguments
target_systems: either- a system object for which compatibility functions have been overloaded, or
- a tuple of system objects for which compatibility functions have been overloaded
source_systems: either- a system object for which compatibility functions have been overloaded, or
- a tuple of system objects for which compatibility functions have been overloaded
Optional Arguments
expansion_order::Int: the expansion order to be usedn_per_branch_source::Int: maximum number of bodies fromsource_systemsallowed in a leaf-level branchn_per_branch_target::Int: maximum number of bodies fromtarget_systemsallowed in a leaf-level branchmultipole_acceptance_criterion::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
FastMultipole.unsort! — MethodUndoes the sort operation performed by the tree.