Library

The following is the exhaustive list of the API available to users, accompanied by explanations.

Module Index

Detailed API

Union of complex types

In the following type and function list, there will be mentions of the type AbstractArray{T}. This T is described as :

T<:Union{ComplexF64,ComplexF32}

For every function signature that includes T, it is specified as such.

GilaElectromagnetics.GlaExtInfType
GlaExtInf

Information for mapping between general source and target volumes.

Fields

  • minScl::NTuple{3,Rational}: Common minimum cell size (in units of wavelength).
  • trgDiv::NTuple{3,Integer}: Divisions in each cartesian index of source volume.
  • srcDiv::NTuple{3,Integer}: Divisions in each cartesian index of target volume.
  • trgCel::NTuple{3,Integer}: Cells in a target partition.
  • srcCel::NTuple{3,Integer}: Cells in a source partition.
  • trgPar::CartesianIndices: Identification of volume partition with grid offsets in target volume.
  • srcPar::CartesianIndices: Identification of volume partition with grid offsets in source volume.
source
GilaElectromagnetics.GlaExtInfMethod
GlaExtInf(trgVol::GlaVol, srcVol::GlaVol)::GlaExtInf

Constructor for `GlaExtInf, a memory structure for translating between distinct grid layouts. Treats grid mismatch.

Arguments

  • trgVol::GlaVol: Target volume definition, see GlaVol.
  • srcVol::GlaVol: Source volume definition, see GlaVol.
source
GilaElectromagnetics.GlaKerOptType
GlaKerOpt

Green function operator assembly and kernel operation options.

Fields

  • frqPhz::Number: Multiplicative scaling factor allowing for complex frequencies.
  • intOrd::Integer: Gauss-Legendre integration order for cells in contact.
  • adjMod::Bool: Flip between operator and operator adjoint.
  • devMod::Union{Bool,Array{<:Bool,1}}: Boolean vector representing activation of GPUs
  • numTrd::Union{Tuple{},NTuple{3,Integer}}: Number of threads to use when running GPU kernels.
  • numBlk::Union{Tuple{},NTuple{3,Integer}}: Number of threads to use when running GPU kernels.
source
GilaElectromagnetics.GlaKerOptMethod
GlaKerOpt(devStt::Bool)

Simplified GlaKerOpt constructor where default parameters are given depending on the GPU activation.

Arguments

  • devStt::Bool: Whether to activate the GPU (true) or CPU (false).
source
GilaElectromagnetics.GlaOprType
GlaOpr(cel::NTuple{3, Int}, scl::NTuple{3, Rational}, 
org::NTuple{3, Rational}=(0//1, 0//1, 0//1); 
useGpu::Bool=false, setTyp::DataType=ComplexF64)::GlaOpr

Construct a self Green operator.

Arguments

  • cel::NTuple{3, Int}: The number of cells in each dimension.
  • scl::NTuple{3, Rational}: The size of each cell in each dimension (in units of wavelength).
  • org::NTuple{3, Rational}=(0//1, 0//1, 0//1): The origin of the volume in each dimension (in units of wavelength).
  • useGpu::Bool=false: Whether to use the GPU (true) or CPU (false).
  • setTyp::DataType=ComplexF64: The element type of the operator. Must be a subtype of Complex.
source
GilaElectromagnetics.GlaOprMethod
GlaOpr(celSrc::NTuple{3, Int}, sclSrc::NTuple{3, Rational}, 
orgSrc::NTuple{3, Rational}, celTrg::NTuple{3, Int}, 
sclTrg::NTuple{3, Rational}, orgTrg::NTuple{3, Rational}; 
useGpu::Bool=false, setTyp::DataType=ComplexF64)::GlaOpr

Construct an external Green's operator.

Arguments

  • celSrc::NTuple{3, Int}: The number of cells in each dimension of the source volume.
  • sclSrc::NTuple{3, Rational}: The size of each cell in each dimension of the source volume (in units of wavelength).
  • orgSrc::NTuple{3, Rational}: The origin of the source volume in each dimension (in units of wavelength).
  • celTrg::NTuple{3, Int}: The number of cells in each dimension of the target volume.
  • sclTrg::NTuple{3, Rational}: The size of each cell in each dimension of the target volume (in units of wavelength).
  • orgTrg::NTuple{3, Rational}: The origin of the target volume in each dimension (in units of wavelength).
  • useGpu::Bool=false: Whether to use the GPU (true) or CPU (false).
  • setTyp::DataType=ComplexF64: The element type of the operator. Must be a subtype of Complex.
source
GilaElectromagnetics.GlaOprMemType
GlaOprMem

Storage structure for a Green's function operator.

Fields

  • cmpInf::GlaKerOpt: Computation information, settings and kernel options, see GlaKerOpt.
  • trgVol::GlaVol: Target volume of Green function.
  • srcVol::GlaVol: Source volume of Green function.
  • mixInf::GlaExtInf: Information for matching source and target grids, see GlaExtInf.
  • dimInf::NTuple{3,Integer}: Dimension information for Green function volumes, host side.
  • egoFur::AbstractArray{<:AbstractArray{T},1}: Unique Fourier transform data for circulant Green function.
  • fftPlnFwd::AbstractArray{<:AbstractFFTs.Plan,1}: Forward Fourier transform plans.
  • fftPlnRev::AbstractArray{<:AbstractFFTs.ScaledPlan,1}: Reverse Fourier transform plans.
  • phzInf::AbstractArray{<:AbstractArray{T},1}: Phase vector for splitting Fourier transforms.
source
GilaElectromagnetics.GlaOprMemMethod
  GlaOprMem(cmpInf::GlaKerOpt, trgVol::GlaVol,
srcVol::Union{GlaVol,Nothing}=nothing, 
egoFur::Union{AbstractArray{<:AbstractArray{T}},
Nothing}=nothing)::GlaOprMem

Prepare memory for Green's function operator. When called with a single GlaVol, or identical source and target volumes, yields the self construction.

Arguments

  • cmpInf::GlaKerOpt: Computation information, settings and kernel options, see GlaKerOpt.
  • trgVol::GlaVol: Target volume or self volume definition.
  • srcVol::Union{GlaVol,Nothing}=nothing: Source volume for external construction.
  • egoFur::Union{AbstractArray{<:AbstractArray{T}},Nothing}=nothing): Unique Fourier transform data for Green's function.
source
GilaElectromagnetics.GlaVolType
  GlaVol(cel::Array{<:Integer,1}, celScl::NTuple{3,Rational}, 
org::NTuple{3,Rational}, grdScl::NTuple{3,Rational}=celScl)::GlaVol

Constructor for Gila Volumes.

Arguments

  • cel::Array{<:Integer,1}: Array of the number of cells in each dimension of the volume.
  • celScl::NTuple{3,Rational}: The size of each cell in each dimensions of the volume (in units of wavelength).
  • org::NTuple{3,Rational}: The origin of the volume in each dimension (in units of wavelength).
  • grdScl::NTuple{3,Rational}=celScl: Spatial location of the center of each cell contained in the volume.
source
GilaElectromagnetics.GlaVolType
GlaVol

Basic spatial memory structure for a volume.

Fields

  • cel::NTuple{3,Integer}: Tuple of cells in rectangular prism.
  • scl::NTuple{3,Rational}: Relative side length of a cuboid voxel (cell) compared to the wavelength.
  • org::NTuple{3,Rational}: Center position of the domain.
  • grd::Array{<:StepRange,1}: Spatial location of the center of each cell contained in the volume.
source
GilaElectromagnetics.egoOpr!Method
  egoOpr!(egoMem::GlaOprMem, 
actVec::AbstractArray{T})::AbstractArray{T}

Applies the electric Green function to actVec (polarisation current density), returning the output vector field. actVec is internally modified by egoOpr! to reduce needed allocation.

Arguments

  • egoMem::GlaOprMem - The memory for Green's function operator.
  • actVec::AbstractArray{T} The tensor representing the polarisation current density, where the first three indices represent 3D coordinates, and the fourth the density at the given coordinate.
source
GilaElectromagnetics.glaSzeMethod
glaSze(op::GlaOpr, dim::Int)

Returns the size of the input/output arrays for a GlaOpr in tensor form in a specified dimension.

Arguments

  • op::GlaOpr: The operator to check.
  • dim::Int: The index of the dimension to check.
source
GilaElectromagnetics.glaSzeMethod
glaSze(opr::GlaOpr)

Returns the size of the input/output arrays for a GlaOpr in tensor form.

Arguments

  • op::GlaOpr: The operator to check.
source
GilaElectromagnetics.isadjointMethod
isadjoint(opr::GlaOpr)

Checks if the operator is the adjoint of the Green's operator.

Arguments

  • opr::GlaOpr: The operator to check.

Returns

  • true if the operator is the adjoint, false otherwise.
source
GilaElectromagnetics.isexternaloperatorMethod
  isexternaloperator(opr::GlaOpr)

Checks if the operator is an external Green's operator.

Arguments

  • opr::GlaOpr: The operator to check.

Returns

  • true if the operator is an external Green's operator, false otherwise.
source
GilaElectromagnetics.isselfoperatorMethod
isselfoperator(opr::GlaOpr)

Checks if the operator is a self Green's operator.

Arguments

  • opr::GlaOpr: The operator to check.

Returns

  • true if the operator is a self Green's operator, false otherwise.
source