Private Documentation
Documentation for GridPotentialFlow.jl
's private interface.
See the Internals section of the manual for internal package docs covering all submodules.
Contents
Index
GridPotentialFlow.ConstrainedIBPoisson
GridPotentialFlow.IBPoisson
GridPotentialFlow.SteadyRegularizedIBPoisson
GridPotentialFlow.UnsteadyRegularizedIBPoisson
GridPotentialFlow._computeδΓandψ₀!
GridPotentialFlow.getpositions
GridPotentialFlow.getregularizededges
GridPotentialFlow.getregularizededges
GridPotentialFlow.getstrengths
GridPotentialFlow.setpositions!
GridPotentialFlow.setstrengths!
Private Interface
GridPotentialFlow.ConstrainedIBPoisson
— Typestruct ConstrainedIBPoisson{Nb, TU, TF} <: GridPotentialFlow.AbstractPotentialFlowSystem{TU}
Defines an immersed boundary Poisson system with a single type of constraints on the bound vortex sheet strength.
Fields
ibp::GridPotentialFlow.IBPoisson
: ibp: Immersed boundary poisson inner system that solves for the streamfunction and bound vortex sheet strength, given a streamfunction boundary condition on immersed boundary points.B₁ᵀ₂cols::Vector
: B₁ᵀ₂cols: Columns of the second partition of the B₁ᵀ matrix for the outer system.B₂₂rows::Vector
: B₂₂rows: Rows of the second partition of the B₂ matrix for the outer system.Soutfact::Union{Float64, LinearAlgebra.Factorization}
: Soutfact: Factorized version of the Schur complement for the outer system._f_buf::Any
: Buffers_ψ₀_buf::Vector{Float64}
_sol_buf::GridPotentialFlow.IBPoissonSolution
GridPotentialFlow.IBPoisson
— Typestruct IBPoisson{TU, TF} <: GridPotentialFlow.AbstractPotentialFlowSystem{TU}
Defines an immersed boundary Poisson system that solves for the streamfunction and bound vortex sheet strength, given a streamfunction boundary condition on immersed boundary points.
Fields
L::Laplacian
: L: Discrete Laplacian.R::RegularizationMatrix
: R: Regularization operator.E::InterpolationMatrix
: E: Interpolation operator.Sfact::LinearAlgebra.LU
: Sfact: factorized version of the Schur complement._A⁻¹r₁::Any
: Buffers_B₁ᵀf::Any
_f_buf::Any
GridPotentialFlow.SteadyRegularizedIBPoisson
— Typestruct SteadyRegularizedIBPoisson{Nb, Ne, TU, TF} <: GridPotentialFlow.AbstractPotentialFlowSystem{TU}
Defines an immersed boundary Poisson system with constraints on the bound vortex sheet strength that regularize up to one edge per body.
Fields
cibp::GridPotentialFlow.ConstrainedIBPoisson
: cibp: Constrained immersed boundary Poisson system.one_vec::Vector
: one_vec: Array of vectors with the i-th entry of the j-th vector equal to one if i is an index of the points that belong to the j-th body and zero otherwise.e_vec::Vector
: e_vec: Array of unit vectors with the inner product of the k-th unit vector and vortex sheet strength equal to the value of the vortex sheet strength at the k-th edge.f₀::Any
: f₀: Unregularized bound vortex sheet strength due to a uniform unit boundary condition for the streamfunction on all immersed bodies.f₀_vec::Vector
: f₀_vec: Array of vectors with the i-th entry of the j-th vector equal to f₀[i] if i is an index of the points that belong to the j-th body and zero otherwise.
GridPotentialFlow.UnsteadyRegularizedIBPoisson
— Typestruct UnsteadyRegularizedIBPoisson{Nb, Ne, TU, TF} <: GridPotentialFlow.AbstractPotentialFlowSystem{TU}
Defines an immersed boundary Poisson system that, in addition to solving for the streamfunction and bound vortex sheet strength, solves for N point vortex strengths to satisfy N constraints on the bound vortex sheet strength that regularize specified edges.
Fields
ibp::GridPotentialFlow.IBPoisson
: ibp: Immersed boundary poisson inner system with re-scaled regularization operator that solves for the streamfunction and bound vortex sheet strength, given a streamfunction boundary condition on immersed boundary points.one_vec::Vector
: one_vec: Array of vectors with the i-th entry of the j-th vector equal to one if i is an index of the points that belong to the j-th body and zero otherwise.e_vec::Vector
: e_vec: Array of unit vectors with the inner product of the i-th unit vector and vortex sheet strength equal to the value of the vortex sheet strength at the i-th edge.vidx_vec::Vector{Vector{Int64}}
: vidx_vec: Array of vectors with the i-th vector containing the indices of the vortices that are shedded from the i-th body.f₀::Any
: f₀: Unregularized vortex sheet strength due to a uniform unit boundary condition for the streamfunction on all immersed bodies.f₀_vec::Vector
: f₀_vec: Array of vectors with the i-th entry of the j-th vector equal to f₀[i] if i is an index of the points that belong to the j-th body and zero otherwise.f̃₀_vec::Vector
: f̃₀_vec: Array of unregularized bound vortex sheet strengths, obtained using the re-scaled regularization operator, with the i-th entry the bound vortex sheet strength due to a uniform unit boundary condition for the streamfunction on the i-th immersed body and zero everywhere else.f̃_vec::Vector
: f̃vec: Array of unregularized bound vortex sheet strengths, obtained using the re-scaled regularization operator, with the i-th entry the bound vortex sheet strength due to the i-th vorticity field in `dvec` and a zero boundary condition for the streamfunction on all bodies.Γ₀::Float64
: Γ₀: The circulation of the of the bound vortex sheet strength f₀.d_vec::Vector
: d_vec: Array of vorticity fields with the i-th entry the vorticity field due to the i-th point vortex that is used for regularizing the edges with its strength set to one and the other point vortex strengths set to zero.activef̃lim_vec::Vector{Float64}
: activef̃lim_vec: Array of f̃ values that are used as the right-hand side for the constraints on f̃ when solving the system. These values are chosen by comparing the unconstrained f̃ from the inner system to the limits provided inrhs
toldiv!
and selecting the limit that is exceeded or setting it toInf
if no limit is exceeded.Sout::Matrix{Float64}
: Sout: Schur complement for the outer system._TU_buf::Any
: Buffers_f_buf::Any
_r₂_buf::Vector{Float64}
_y_buf::Vector{Float64}
GridPotentialFlow._computeδΓandψ₀!
— Method_computeδΓandψ₀!(sol, sys, rhs, sheddingedges)
Computes the vortex strengths for the edges sheddingedges
and ψ₀ values and stores them in the δΓ_vec
and ψ₀
fields of sol
. If there are edges that are not in sheddingedges
, their corresponding vortex strengths are set to zero.
GridPotentialFlow.getpositions
— Methodgetpositions(vl::StructArrays.StructArray{Vortex}) -> Any
Returns the positions of all point vortices in the StructArray
vl
as VectorData
.
GridPotentialFlow.getregularizededges
— Methodgetregularizededges(
b::AbstractVector{PotentialFlowBody},
i::Int64
) -> Any
Returns the indices in the global set of surface point data of the regularized points of body i
in b
.
GridPotentialFlow.getregularizededges
— Methodgetregularizededges(
b::AbstractVector{PotentialFlowBody}
) -> Vector{Int64}
Returns the indices in the global set of surface point data of all regularized points in b
.
GridPotentialFlow.getstrengths
— Methodgetstrengths(
vl::StructArrays.StructArray{Vortex}
) -> ScalarData{_A, T} where {_A, T<:Number}
Returns the strengths of all point vortices in the StructArray
vl
as ScalarData
.
GridPotentialFlow.setpositions!
— Methodsetpositions!(
vl::StructArrays.StructArray{Vortex},
xnew,
ynew
) -> Any
Sets the x
and y
fields of the point vortices in the StructArray
vl
to the entries of xnew
and ynew
, respectively.
GridPotentialFlow.setstrengths!
— Functionsetstrengths!(
vl::StructArrays.StructArray{Vortex},
Γnew
) -> Any
setstrengths!(
vl::StructArrays.StructArray{Vortex},
Γnew,
idx
) -> Any
Sets the Γ
field of the point vortices in the StructArray
vl
to the entries of Γnew
.