Viscous Scheme
FLOWVPM.ViscousScheme — Type`ViscousScheme{R}`Type declaring viscous scheme.
Implementations must have the following properties: * nu::R : Kinematic viscosity.
FLOWVPM.Inviscid — TypeInviscid()Creates an inviscid scheme with zero kinematic viscosity.
FLOWVPM.CoreSpreading — TypeCoreSpreading(nu, sgm0, zeta::Tzeta=zeta_fmm; <keyword arguments>)Creates a core spreading viscous scheme with the given parameters.
Arguments
nu::Real Kinematic viscosity.sgm0::Real Core size after reset.zeta::Function = zeta_fmmBasis function evaluation method.beta::Real = 1.5Maximum core size growth σ/σ_0.itmax::Int = 15Maximum number of RBF iterations.tol::Real = 1e-3RBF interpolation tolerance.iterror::Bool = trueThrow error if RBF didn't converge.verbose::Bool = falseVerbose on RBF interpolation.v_lvl::Int = 2Verbose printing tab level.debug::Bool = falsePrint verbose for debugging.rbf::Function = rbf_conjugategradientRBF function.rr0s::Array{R, 1} = zeros(R, 3)Initial field residuals.rrs::Array{R, 1} = zeros(R, 3)Current field residuals.prev_rrs::Array{R, 1} = zeros(R, 3)Previous field residuals.pAps::Array{R, 1} = zeros(R, 3)pAp product.alphas::Array{R, 1} = zeros(R, 3)Alpha coefficients.betas::Array{R, 1} = zeros(R, 3)flags::Array{Bool, 1} = zeros(Bool, 3)
FLOWVPM.ParticleStrengthExchange — TypeParticleStrengthExchange(nu; <keyword arguments>)Creates a particle strength exchange viscous scheme with the given parameters.
Arguments
nu::Real Kinematic viscosity.recalculate_vols::Bool = trueWhether to recalculate particle volumes.
FLOWVPM.rbf_conjugategradient — FunctionRadial basis function interpolation of Gamma using the conjugate gradient method. This method only works on a particle field with uniform smoothing radius sigma.
See 20180818 notebook and https://en.wikipedia.org/wiki/Conjugategradientmethod#Theresultingalgorithm