NESSie.Rjasanow

NESSie.Rjasanow.ObservationPositionType
abstract 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

source
NESSie.Rjasanow.InPlaneType
abstract 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

source
NESSie.Rjasanow.InSpaceType
abstract 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

source
NESSie.Rjasanow.laplacepotFunction
function 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].

Note

The result is premultiplied by 4π.

Arguments

  • dist Distance from the original ξ to the surface element plane
  • dat Writable vector for internal use (pre-allocate and reuse if possible)

Return type

T

source
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].

Note

The result is premultiplied by 4π.

Arguments

  • normal Unit normal vector of the surface element
  • dist Distance from the original ξ to the surface element plane
  • dat Writable vector for internal use (pre-allocate and reuse if possible)

Return type

T

source
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].

Note

The result is premultiplied by 4π.

Arguments

  • d Distance from the original ξ to the surface element plane

Return type

T

source
NESSie.Rjasanow._logtermFunction
_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

source
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}

source