Quadrature
Quadrature points
NESSie.QuadraturePoints
— Typeabstract type QuadraturePoints{T <: AbstractFloat} end
Abstract base type for all sets of quadrature points
NESSie.QuadPts2D
— Typestruct QuadPts2D{T} <: QuadraturePoints{T}
num ::Int # number of points
x ::Vector{T} # x values
y ::Vector{T} # y values
weight::Vector{T} # weights
end
Quadrature points and weights for triangles
NESSie.QuadPts3D
— Typestruct QuadPts3D{T} <: QuadraturePoints{T}
num ::Int # number of points
x ::Vector{T} # x values
y ::Vector{T} # y values
z ::Vector{T} # z values
weight::Vector{T} # weights
end
Quadrature points and weights for tetrahedra
Quadrature points on elements
NESSie.ElementQuad
— Typeabstract type ElementQuad{T <: AbstractFloat} end
Abstract base type for quadrature points on specific elements
NESSie.TriangleQuad
— Typestruct TriangleQuad{T} <: ElementQuad{T}
elem ::Triangle{T} # given element
qpts ::Matrix{T} # quadrature points on the element
weights::Vector{T} # weights for the quadrature points
end
Quadrature points on a specific surface triangle, including weights.
Special constructors
julia TriangleQuad(elem::Triangle{T})
` Computes quadrature points and weights for the given triangle.
Generators
NESSie.quadraturepoints
— Functionquadraturepoints(::Type{Tetrahedron{Float64}})
quadraturepoints(::Type{Tetrahedron{Float32}})
quadraturepoints(::Type{Triangle{Float64}})
quadraturepoints(::Type{Triangle{Float32}})
Generator function for quadrature points:
Return type
QuadPts2D
or QuadPts3D
Laplace potential
NESSie.Rjasanow.laplacecoll
— Functionlaplacecoll(
ptype::Type{<: PotentialType},
ξ ::AbstractVector{T},
elem ::AbstractVector{Triangle{T}};
# kwargs
dat ::AbstractVector{T} = Vector{T}(undef, 12)
)
Analytical solution for the single or double layer Laplace potential for a given triangle and observation point ξ
[Rja90].
Arguments
dat
Writable vector for internal use (pre-allocate and reuse if possible)
The result is premultiplied by 4π.
Return type
Void
NESSie.Rjasanow.laplacecoll!
— Functionlaplacecoll!(
ptype ::Type{<: PotentialType},
dest ::AbstractVector{T},
elements::AbstractVector{Triangle{T}},
Ξ ::AbstractVector{Vector{T}},
fvals ::AbstractVector{T}
)
laplacecoll!(
ptype ::Type{<: PotentialType},
dest ::AbstractMatrix{T},
elements::AbstractVector{Triangle{T}},
Ξ ::AbstractVector{Vector{T}}
)
Analytical solution for the single or double layer Laplace potential for a given list of triangles and observation points Ξ
[Rja90].
The first version of this function uses a vector as destination dest
, where each element represents the dot product of the corresponding coefficient matrix row and the fvals
vector.
The result is premultiplied by 4π.
Return type
Void
Yukawa potential
NESSie.Radon.regularyukawacoll
— Functionregularyukawacoll(
::Type{<: PotentialType},
ξ ::AbstractVector{T},
elem ::Union{Triangle{T}, TriangleQuad{T}},
yukawa::T
)
Computes the regular part of the single or double layer Yukawa potential (that is, Yukawa minus Laplace) using a seven-point Radon cubature [Rad48] for a given triangle and observation point ξ
.
The result is premultiplied by 4π.
If you need to call this method repeatedly for the same surface triangle, you should consider passing the elem
parameter as TriangleQuad
object to avoid expensive recomputations.
Arguments
yukawa
Exponent of the Yukawa operator's fundamental solution
Return type
Void
NESSie.Radon.regularyukawacoll!
— Functionregularyukawacoll!(
::Type{<: PotentialType},
dest ::AbstractVector{T},
elements::AbstractVector{Triangle{T}},
Ξ ::AbstractVector{Vector{T}},
yukawa ::T,
fvals ::AbstractVector{T}
)
regularyukawacoll!(
::Type{<: PotentialType},
dest ::AbstractMatrix{T},
elements::AbstractVector{Triangle{T}},
Ξ ::AbstractVector{Vector{T}},
yukawa ::T
)
Computes the regular part of the single or double layer Yukawa potential (that is, Yukawa minus Laplace) using a seven-point Radon cubature [Rad48] for a given list of triangles and observation points Ξ
.
The first version of this function uses a vector as destination dest
, where each element represents the dot product of the corresponding coefficient matrix row and the fvals
vector.
The result is premultiplied by 4π.
Arguments
yukawa
Exponent of the Yukawa operator's fundamental solution
Return type
Void