NESSie.Rjasanow
NESSie.Rjasanow.ObservationPosition
— Typeabstract type ObservationPosition end
struct InPlane <: ObservationPosition end
stryct InSpace <: ObservationPosition end
Enum-like representation of the obseration point's position relative to the corresponding surface element
NESSie.Rjasanow.InPlane
— Typeabstract type ObservationPosition end
struct InPlane <: ObservationPosition end
stryct InSpace <: ObservationPosition end
Enum-like representation of the obseration point's position relative to the corresponding surface element
NESSie.Rjasanow.InSpace
— Typeabstract type ObservationPosition end
struct InPlane <: ObservationPosition end
stryct InSpace <: ObservationPosition end
Enum-like representation of the obseration point's position relative to the corresponding surface element
NESSie.Rjasanow.laplacepot
— Functionfunction laplacepot(
ptype::Type{<: PotentialType},
ξ ::AbstractVector{T},
elem ::Triangle{T},
dist ::T;
# kwargs
dat ::AbstractVector{T} = Vector{T}(undef, 9)
)
Computes the single or double layer Laplace potential of the given triangle for the given observation point ξ
. The latter needs to be projected onto the surface element plane [Rja90].
The result is premultiplied by 4π.
Arguments
dist
Distance from the originalξ
to the surface element planedat
Writable vector for internal use (pre-allocate and reuse if possible)
Return type
T
laplacepot(
ptype ::Type{<: PotentialType},
ξ ::AbstractVector{T},
x1 ::AbstractVector{T},
x2 ::AbstractVector{T},
normal::AbstractVector{T},
dist ::T;
# kwargs
dat ::AbstractVector{T} = Vector{T}(undef, 9)
)
Computes the single or double layer Laplace potential of the triangle defined by the observation point ξ
and two nodes x1
and x2
of the surface element. x2
is required to be x1
's next neighbor in counterclockwise direction. Also, ξ
needs to be projected onto the surface element plane [Rja90].
The result is premultiplied by 4π.
Arguments
normal
Unit normal vector of the surface elementdist
Distance from the originalξ
to the surface element planedat
Writable vector for internal use (pre-allocate and reuse if possible)
Return type
T
laplacepot(
::Type{<: PotentialType},
::Type{<: ObservationPosition},
sinφ1::T,
sinφ2::T,
h ::T,
d ::T
)
Computes the Laplace potential (or its normal derivative) of the triangle with the given height h
at the observation point ξ
(projected onto the surface element plane) and the sines of the angles $φ₁$ and $φ₂$ between h
and the triangle sides extending from ξ
[Rja90].
The result is premultiplied by 4π.
Arguments
d
Distance from the originalξ
to the surface element plane
Return type
T
NESSie.Rjasanow._logterm
— Function_logterm(χ2::T, sinφ::T)
Utility function to compute
\[\frac {\sqrt{1 - χ² \sin²(φ)} + \sqrt{1 - χ² \sin(φ)}} {\sqrt{1 - χ² \sin²(φ)} - \sqrt{1 - χ² \sin(φ)}}\]
Return type
T
NESSie.Rjasanow._projectξ!
— Function_projectξ!(ξ::AbstractVector{T}, elem::Triangle{T}, dist::T)
Projects ξ onto the surface element plane, overriding its previous coordinates.
Return type
Vector{T}