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_fmm
Basis function evaluation method.beta::Real = 1.5
Maximum core size growth σ/σ_0.itmax::Int = 15
Maximum number of RBF iterations.tol::Real = 1e-3
RBF interpolation tolerance.iterror::Bool = true
Throw error if RBF didn't converge.verbose::Bool = false
Verbose on RBF interpolation.v_lvl::Int = 2
Verbose printing tab level.debug::Bool = false
Print verbose for debugging.rbf::Function = rbf_conjugategradient
RBF 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 = true
Whether 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