UJ Scheme
FLOWVPM.Kernel
— TypeKernel(zeta, g, dgdr, g_dgdr, EXAFMM_P2P, EXAFMM_L2P)
Arguments
zeta::Function
: Basis function zeta(r).g::Function
: Regularizing function g(r).dgdr::Function
: Derivative of g(r).g_dgdr::Function
: Efficient evaluation of g and dgdr.
FLOWVPM.UJ_direct
— FunctionUJ_direct(pfield)
Calculates the velocity and Jacobian that the field exerts on itself by direct particle-to-particle interaction, saving U and J on the particles.
NOTE: This method accumulates the calculation on the properties U and J of every particle without previously emptying those properties.
UJ_direct(source, target)
Calculates the velocity and Jacobian that the field source
exerts on every particle of field target
, saving U and J on the particles.
NOTE: This method accumulates the calculation on the properties U and J of every particle without previously emptying those properties.
FLOWVPM.UJ_fmm
— FunctionUJ_fmm(pfield)
Calculates the velocity and Jacobian that the field exerts on itself through a fast-multipole approximation, saving U and J on the particles.
NOTE: This method accumulates the calculation on the properties U and J of every particle without previously emptying those properties.
FLOWVPM.FMM
— Type`FMM(; p::Int=4, ncrit::Int=10, theta::Real=0.5, shrink_recenter::Bool=true,
relative_tolerance::Real=1e-3, absolute_tolerance::Real=1e-6,
autotune_p::Bool=true, autotune_ncrit::Bool=true,
autotune_reg_error::Bool=true, default_rho_over_sigma::Real=1.0)`
Parameters for FMM solver.
Arguments
p
: Order of multipole expansion.ncrit
: Maximum number of particles per leaf.theta
: Neighborhood criterion. This criterion defines the distance where the far field starts. The criterion is that if θ*r < R1+R2 the interaction between two cells is resolved through P2P, where r is the distance between cell centers, and R1 and R2 are each cell radius. This means that at θ=1, P2P is done only on cells that have overlap; at θ=0.5, P2P is done on cells that their distance is less than double R1+R2; at θ=0.25, P2P is done on cells that their distance is less than four times R1+R2; at θ=0, P2P is done on all cells.shrink_recenter
: If true, shrink and recenter multipole expansions to account for nonzero particle radius.relative_tolerance
: Relative error tolerance for FMM calls.absolute_tolerance
: Absolute error tolerance fallback for FMM calls in case relative tolerance becomes too small.autotune_p
: If true, automatically adjust p to optimize performance.autotune_ncrit
: If true, automatically adjust ncrit to optimize performance.autotune_reg_error
: If true, constrain regularization error in FMM calls.default_rho_over_sigma
: Default value for ρ/σ in FMM calls (unused ifautotune_reg_error
is true).