API

Index

Docs

MoM_Basics.EDGEVmINTriVsIDConstant

三角形在构建时构成第i个边的两个点为三角形中的除了第i个点的两个点,以下为索引构成第i个边的第一个点(计算边向量被 - 掉)时采用的对应点

source
MoM_Basics.EDGEVpINTriVsIDConstant

三角形在构建时构成第i个边的两个点为三角形中的除了第i个点的两个点,以下为索引构成第i个边的第二个点(计算边向量时用于减去第二个点 掉)时采用的对应点

source
MoM_Basics.AntennaArrayType
AntennaArray{FT<:Real, AT, N} <: AbstractAntennaArray

机扫阵列天线 (mechanically scanned array, MSA)、相控阵 (Phased Array)阵列天线 orient 采用的是欧拉角,参考eulerRotationMat 注意阵列初始指向由提供的天线单元合成,作为阵列只提供指向旋转。

source
MoM_Basics.AntennaArrayMethod
AntennaArray(antennas::AbstractArray{AT, N}; center = zero(MVec3D{Precison.FT}), orient = (0., 0., 0.)) where {AT, N}

初始化阵列天线,默认为方阵。

source
MoM_Basics.HexahedraInfoType
HexahedraInfo{IT<: Integer, FT<:AbstractFloat, CT<:Complex} <: VolumeCellType{IT, FT, CT}

六面体信息结构体:

hexaID      ::IT                    编号
volume      ::FT                    体积
ε           ::CT                    相对介电常数
κ           ::CT                    介质对比度
center      ::MVec3D{FT}            中心坐标
verticesID  ::MVector{8, IT}        所在节点id
vertices    ::MMatrix{3, 8, FT,24}  六面体4个角点坐标,每列为一个点
facesn̂      ::MMatrix{3, 8, FT,24}  四个面的外法向量
facesvid    ::MMatrix{3, 8, IT,24}  四个面包含的四个id
facesArea   ::MVector{6, FT}        四个面的面积(根据为unitri正负部分赋予正负号)
faces       ::Vector{Quads4Hexa{IT, FT}}    四个面的具体信息
inBfsID     ::Vector{IT}            六面体所在的基函数的ID
source
MoM_Basics.HexahedraInfoMethod
HexahedraInfo{IT, FT, CT}(hexaID::IT = zero(IT)) where {IT <: Integer, FT<:AbstractFloat, CT<:Complex}

HexahedraInfo 的默认构造函数,除了输入的编号 hexaID 外所有元素置零。

source
MoM_Basics.HexahedraMeshType
HexahedraMesh{IT, FT} <: MeshDataType

六面体网格文件,包括六面体数 hexnum、节点 node、构成六面体的节点 id 数组 hexahedras 等信息。

source
MoM_Basics.MagneticDipoleType
MagneticDipole(id = 0; Iml = 0., phase = 0., orient = zero(MVec3D{Float32}), centerlc = zero(MVec3D{Float32}), centergb = zero(MVec3D{Float32}))

精度可变的 MagneticDipole 构造函数

source
MoM_Basics.MagneticDipoleType
MagneticDipole{FT<: Real}<:AntennaType

磁偶极子天线类型。

id      ::Integer               编号
Iml     ::Complex{FT}           磁流线值
V       ::FT                    磁流线幅值
phase   ::FT                    相位
orient  ::MVec3D{FT}            指向欧拉角
centerlc::MVec3D{FT}            局部坐标下的中心位置
centergb::MVec3D{FT}            全局坐标下的中心位置
l2gRot  ::MMatrix{3, 3, FT, 9}  局部坐标到全局坐标的旋转变换矩阵
source
MoM_Basics.MagneticDipoleMethod
    MagneticDipole{FT}(
    id      ::Int32         =   zero(Int32);        # 编号
    Iml     ::CT            =   zero(CT),           # 磁流线值
    phase   ::FT            =   zero(FT),           # 相位(输入弧度(rad)单位)
    orient  ::MVec3D{FT}    =   zero(MVec3D{FT}),   # 指向欧拉角
    centerlc::MVec3D{FT}    =   zero(MVec3D{FT}),   # 局部坐标下的中心位置
    centergb::MVec3D{FT}    =   zero(MVec3D{FT}),   # 全局坐标下的中心位置
    I0S     ::FT            =   zero(FT),           # 电流环幅值
    unit                    =   :rad    ) 
    where{FT <: Real, CT <: Complex{FT}}
source
MoM_Basics.MeshNodeTriTetraHexaType
MeshNodeTriTetraHexa{IT, FT} <: MeshDataType

三角形、四面体、六面体混合网格数据类型:

geonum      ::Int           包含的所有网格元的数量
meshT       ::DataType      网格类型 单一的以其网格类型表示,混合以 VSCellType 表示
trinum      ::Int           包含的三角形数量
tetranum    ::Int           包含的四面体数量
hexanum     ::Int           包含的六面体数量
node        ::Array{FT, 2}  节点坐标数组(3*nodenum)
triangles   ::Array{IT, 2}  三角形包含的nodeid数组:(3*trinum)
tetrahedras ::Array{IT, 2}  四面体包含的nodeid数组:(4*tetranum)
hexahedras  ::Array{IT, 2}  六面体包含的nodeid数组:(6*hexanum)
source
MoM_Basics.PWCType
PWC{IT<:Integer , FT<:AbstractFloat} <: ConstBasisFunction

PWC 基函数复合类型:

bfID        ::IT            基函数编号
inGeo       ::IT            基函数所在两个四面体编号
center      ::MVec3D{FT}    基函数中心,用于八叉树分组
source
MoM_Basics.PWCMethod
PWC{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}

PWC 的默认构造函数,所有元素置零。

source
MoM_Basics.ParamsTypeType

ParamsType{FT<:AbstractFloat, CT<:Complex{FT}}

创建参数类型以方便保存仿真参数并控制精度:

frequency   ::FT        频率
ω_0         ::FT        角频率
K_0         ::FT        波数
λ_0         ::CT        波长
Jη_0divK    ::CT        常数
JK_0        ::CT        常数
k²          ::FT        常数
divJω       ::CT        常数
mk²div9     ::FT        常数
mJη_0div4πK ::CT        常数
C4divk²     ::FT        常数
JKηdiv16π   ::CT        常数
div9Jω      ::CT        常数
Rsglr       ::FT        处理奇异性的相对距离阈值
resultDir   ::String    存放结果的位置
source
MoM_Basics.ParamsTypeMethod
ParamsType{FT, CT}(frequency::FT) where{FT<:AbstractFloat, CT<:Complex{FT}}
ParamsType(frequency::FT) where {FT<:AbstractFloat}
ParamsType{FT}(frequency) where {FT<:AbstractFloat}

输入频率创建仿真参数实例。

source
MoM_Basics.PlaneWaveType
PlaneWave{FT<:Real}<:ExcitingSource

平面波源:

θ   ::FT            球坐标角度θ
ϕ   ::FT            球坐标角度ϕ
α   ::FT            波极化方向相对于 θhat_source 绕K̂_v旋转的角度
f   ::FT            波频率
V   ::FT            波激励幅度
E_v ::SVec3D{FT}    入射波电场极化矢量
k̂   ::SVec3D{FT}    入射波波矢向量

默认构造函数:

PlaneWave{FT}(θ::FT, ϕ::FT, α::FT, V::FT = one(FT))
source
MoM_Basics.PlaneWaveMethod
PlaneWave{FT}(θ, ϕ, α, V = one(FT)) where {FT}

类型自动转换的 PlaneWave 构造函数。

source
MoM_Basics.Quads4HexaType
Quads4Hexa{IT<: Integer, FT<:AbstractFloat} <: SurfaceCellType{IT, FT}

单个构成六面体的四边形信息:

isbd        ::Bool                  是否在体区域边界,
δκ          ::Complex{FT}           介质对比度变化量,
vertices    ::MMatrix{3, 4, FT, 12} 四边形 4 个角点坐标,每列为一个点,
edgel       ::MVector{4, FT}        四个边长,
edgev̂       ::MMatrix{3, 4, FT, 12} 四个边的单位指向向量,
edgen̂       ::MMatrix{3, 4, FT, 12} 四个边的单位外法向量。

合理安排位置后,四个基函数的自由端即为四边形四个点的顺序。

source
MoM_Basics.Quads4HexaMethod
(q::Quads4Hexa)(u::FT, v::FT) where {FT}

计算六面体边界四边形在局部坐标 (u, v) 下的点。

source
MoM_Basics.Quads4HexaMethod
Quads4Hexa{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}

Quads4Hexa的默认构造函数,默认为边界,其它所有元素置零。

source
MoM_Basics.RBFType
RBF{IT<:Integer , FT<:AbstractFloat} <: LinearBasisFunction

屋顶基函数 (Rooftop basis function, RBF) 基函数复合类型:

isbd        ::Bool              是否为边界元即半基函数,布尔类型
bfID        ::IT                基函数编号,整形
inGeo       ::MVector{2, IT}    基函数所在两个六面体编号(半基函数为1个,赋值成一样的两个),长度为2的向量数组
inGeoID     ::MVector{2, IT}    基函数在两个六面体中的局部编号(半基函数为1个,赋值成一样的两个),取值1:4,长度为2的向量数组
center      ::MVec3D{FT}        基函数中心,用于八叉树分组
source
MoM_Basics.RBFMethod
RBF{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}

RBF 的默认构造函数,所有元素置零。

source
MoM_Basics.RWGType
RWG{IT<:Integer , FT<:AbstractFloat} <: LinearBasisFunction

RWG基函数复合类型:

isbd        ::Bool              是否为边界元即半基函数,布尔类型
bfID        ::IT                基函数编号,整形
edgel       ::FT                基函数边长,浮点型
inGeo       ::MVector{2, IT}    基函数所在两个三角形编号(半基函数为1个,赋值成一样的两个),长度为2的向量数组
inGeoID     ::MVector{2, IT}    基函数在两个上面三角形中的局部编号(半基函数为1个,赋值成一样的两个),取值1:3,长度为2的向量数组
center      ::MVec3D{FT}        基函数中心,用于八叉树分组
source
MoM_Basics.RWGMethod
RWG{IT, FT}()where {IT <: Integer, FT<:AbstractFloat}

RWG 的默认构造函数,默认非面的边界,所有元素置零。

source
MoM_Basics.SWGType

SWG 基函数复合类型参数解释:

isbd        ::Bool              是否为边界元即半基函数
bfID        ::IT                基函数编号,整形
inGeo       ::MVector{2, IT}    基函数所在两个四面体编号(半基函数为1个,赋值成一样的两个),长度为2的向量数组
inGeoID     ::MVector{2, IT}    基函数在两个四面体中的局部编号(半基函数为1个,赋值成一样的两个),取值1:4,长度为2的向量数组
center      ::MVec3D{FT}        基函数公共面中心,用于八叉树分组
source
MoM_Basics.SWGMethod
SWG{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}

SWG 的默认构造函数,所有元素置零。

source
MoM_Basics.SimulationParamsTypeType
SimulationParamsType

非数值仿真参数信息:

resultDir   ::String        结果文件夹路径
ieT         ::Symbol        积分方程类型,包括 EFIE, MFIE, CFIE等
meshfilename::String        网格文件名称
meshunit    ::Symbol        网格文件单位
SHOWIMAGE   ::Bool          根是否要在前端显示图片
discreteVar ::String        离散的体未知量类型,支持位移电流 `"D"` 或等效电流 `"J"`
sbfT        ::Symbol        面基函数类型,目前仅支持 `:RWG`
vbfT        ::Symbol        体基函数类型,目前支持 `:SWG, :RBF, :PWC`
recordMem   ::Bool          是否记录内存信息
source
MoM_Basics.SimulationParamsTypeMethod
SimulationParamsType(;ieT::Symbol=:EFIE, meshfilename::String = "", meshunit::Symbol = :mm, 
SHOWIMAGE = true, discreteVar = "D", sbfT = :RWG, vbfT = :nothing)

SimulationParamsType 的默认构造函数。

source
MoM_Basics.TetrahedraInfoType
TetrahedraInfo{IT<: Integer, FT<:AbstractFloat, CT<:Complex} <: VolumeCellType{IT, FT, CT}

四面体信息结构体:

tetraID     ::IT                    编号
volume      ::FT                    体积
ε           ::CT                    相对介电常数
κ           ::CT                    介质对比度
center      ::MVec3D{FT}            中心坐标
verticesID  ::MVector{4, IT}        所在节点id
vertices    ::MMatrix{3, 4, FT, 12} 四面体4个角点坐标,每列为一个点
facesn̂      ::MMatrix{3, 4, FT, 12} 四个面的外法向量
facesvid    ::MMatrix{3, 4, IT, 12} 四个面包含的三个id
facesArea   ::MVector{4, FT}        四个面的面积(根据为unitri正负部分赋予正负号)
faces       ::Vector{Tris4Tetra{IT, FT}}    四个面的具体信息
inBfsID     ::Vector{IT}            四面体所在的基函数的ID
source
MoM_Basics.TetrahedraInfoMethod
TetrahedraInfo{IT, FT, CT}(hexaID::IT = zero(IT)) where {IT <: Integer, FT<:AbstractFloat, CT<:Complex}

TetrahedraInfo 的默认构造函数,除了输入的编号 tetraID 外所有元素置零。

source
MoM_Basics.TetrahedraMeshType
HexahedraMesh{IT, FT} <: MeshDataType

四面体网格文件,包括四面体数 tetranum、节点 node、构成四面体的节点 id 数组 tetrahedras 等信息。

source
MoM_Basics.TriangleInfoType
TriangleInfo{IT<: Integer, FT<:AbstractFloat} <: SurfaceCellType{IT, FT}

三角形信息结构体:

triID       ::IT                    编号
area        ::FT                    面积
verticesID  ::MVector{3, IT}        所在节点id
vertices    ::MMatrix{3, 3, FT, 9}  三角形3个角点坐标,每列为一个点
center      ::MVec3D{FT}            中心坐标
facen̂       ::MVec3D{FT}            面的外法向量
edgel       ::MVec3D                三边长
edgev̂       ::MMatrix{3, 3, FT, 9}  三个边的指向向量
edgen̂       ::MMatrix{3, 3, FT, 9}  三个边的外法向量
inBfsID     ::MVector{3, IT}        三角形所在的三个基函数的ID

合理安排位置后,三个基函数的自由端即为三角形三个点的顺序。

source
MoM_Basics.TriangleInfoMethod
TriangleInfo{IT, FT}(triID::IT = zero(IT)) where {IT <: Integer, FT<:AbstractFloat}

TriangleInfo 的默认构造函数,除了输入的编号 triID 外所有元素置零。

source
MoM_Basics.TriangleMeshType
TriangleMesh{IT, FT} <: MeshDataType

三角形网格文件,包括三角形数 trinum、节点 node、构成三角形的节点 id 数组 triangles 等信息。

source
MoM_Basics.Tris4TetraType
TriangleInfo{IT<: Integer, FT<:AbstractFloat} <: SurfaceCellType{IT, FT}

构成四面体的三角形信息结构体:

isbd        ::Bool                  是否在边界上
δκ          ::Complex{FT}           面两侧介质对比度差值
vertices    ::MMatrix{3, 3, FT, 9}  三角形3个角点坐标,每列为一个点
edgel       ::MVec3D{FT}            三边长
edgev̂       ::MMatrix{3, 3, FT, 9}  三个边的指向向量
edgen̂       ::MMatrix{3, 3, FT, 9}  三个边的外法向量

合理安排位置后,三个基函数的自由端即为三角形三个点的顺序。

source
MoM_Basics.Tris4TetraMethod
Tris4Tetra{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}

Tris4Tetra 的默认构造函数,默认在边界上,其它所有元素置零。

source
MoM_Basics.VecCart2SphereMatType
VecCart2SphereMat{T} <: FieldVector{3, Vec3D{T}}

矢量坐标系(直角 → 球)转换矩阵

r_hat   ::  Vec3DCart{T}    r 方向的单位向量
θ_hat   ::  Vec3DCart{T}    θ 方向的单位向量
ϕ_hat   ::  Vec3DCart{T}    ϕ 方向的单位向量
source
MoM_Basics.r̂θϕInfoMethod
r̂θϕInfo{FT}(rvec::AbstractVector{FT}) where {FT<:Real}

输入直角坐标角度 rvec 构造 r̂θϕInfo 实例。

source
MoM_Basics.r̂θϕInfoMethod
r̂θϕInfo(θ::FT = zero(FT), ϕ::FT = zero(FT)) where {FT<:Real}
r̂θϕInfo(θ::∠Info{FT}, ϕ::∠Info{FT}) where {FT<:Real}
r̂θϕInfo(θ::FT, ϕ::∠Info{FT}) where {FT<:Real}
r̂θϕInfo(θ::∠Info{FT}, ϕ::FT) where {FT<:Real}

r̂θϕInfo 的构造函数 输入角度 θϕ 构造 r̂θϕInfo 实例。

source
MoM_Basics.θϕInfoMethod
θϕInfo{FT}(rvec::AbstractVector{FT}) where {FT<:Real}

输入直角坐标角度 rvec 构造 θϕInfo 实例。

source
MoM_Basics.θϕInfoMethod
θϕInfo{FT}(θ::FT = zero(FT), ϕ::FT = zero(FT)) where {FT<:Real}
θϕInfo(θ::FT, ϕ::FT) where {FT<:Real}
θϕInfo{FT}(θ::∠Info{FT}, ϕ::∠Info{FT}) where {FT<:Real}
θϕInfo{FT}(θ::FT, ϕ::∠Info{FT}) where {FT<:Real}
θϕInfo{FT}(θ::∠Info{FT}, ϕ::FT) where {FT<:Real}

输入角度 θϕ 构造 θϕInfo 实例。

source
Base.:*Method
Base.:*(c2smat::VecCart2SphereMat{FT}, vec3D::Vec3D{T}) where {T<:Number, FT<:AbstractFloat}

重载 * 函数以计算向量在球坐标下的各个分量

source
MoM_Basics.add_phase!Method
add_phase!(md::MagneticDipole{FT}, phase) where {FT <: Real}

为磁偶极 md 附加相位 phase

source
MoM_Basics.antennaArrayFunction
antennaArray(arysize, aryorient, dgap = Tuple(fill(Params.λ_0/2, length(arysize)));
sourceConstructer, sourceT, sourceorientlc[, orientunit=:rad, coefftype = :uniform, arycenter = zero(MVec3D{Precision.FT})])

提供快捷的阵列构建函数。注意此处输入的阵列、单元指向必须为指定的欧拉角 (ZXZ) eulerRotationMat

source
MoM_Basics.areaMethod
area(vertices::Vararg{T, 3}) where {T}

计算三个点vertices组成的三角形面积。

source
MoM_Basics.areaMethod
area(vertices::Vararg{T, 3}) where {T}

计算四个点vertices组成的四边形面积。

source
MoM_Basics.boundaryRBFMethod
boundaryRBF(h::vertices::Vararg{T, 8}) where {T}

重载面的提取顺序以匹配屋顶基函数 (RBF) 在六面体中的面按

\[u=1, u=0, v = 1, v = 0, w = 1, w = 0 \]

的顺序排列。

source
MoM_Basics.cart2sphereMatMethod
cart2sphereMat(θϕ::θϕInfo{FT}) where{FT<:Real}
cart2sphereMat(θ::FT, ϕ::FT) where{FT<:Real}

计算矢量坐标系(直角 → 球)转换矩阵。

source
MoM_Basics.constructFloat2IndexDictMethod
constructFloat2IndexDict(floats::AbstractVector{FT}) where {FT<:AbstractFloat}

构建有序(从小到大)浮点数为键,值为该组数构成的的二重字典,字典值为键的二维数组的线性坐标

source
MoM_Basics.distMethod
dist(pa::AbstractVector{FT}, pb::AbstractVector{FT})::FT where {FT<:AbstractFloat}
dist(pa::Vec3D{FT}, pb::Vec3D{FT})::FT where {FT<:AbstractFloat}
dist(pa::Vec3D{FT})::FT where {FT<:AbstractFloat}

计算两点之间距离,比使用norm函数更高效。

source
MoM_Basics.eulerRMat2αβγMethod
eulerRMat2αβγ(l2gMat)

通过局部坐标到全局坐标的旋转矩阵 l2gMat 计算欧拉角。 旋转矩阵按绕 “z轴” → “x轴” → “z轴”的顺序,分别旋转 α, β, γ 度得到,本函数计算对应的三个角度 α, β, γ

source
MoM_Basics.eulerRotationMatMethod
eulerRotationMat(α::FT, β::FT, γ::FT, unit::Symbol) where{FT<:Real}

根据坐标旋转的欧拉角计算旋转矩阵, 定义旋转顺序为: “滚动” → “俯仰” → “偏航”, 即按绕 “z轴” → “x轴” → “z轴”的顺序,分别旋转 α, β, γ 度 Wikipedia-Euler_angles 输入: α, β, γ, 旋转角度信息 unit: 输入角度值单位,默认为 :rad,可选 :deg 输出: rotMat :: SMatrix{3, 3, FT}, 坐标旋转矩阵 rotMat * vec 将 vec 从局部坐标转换回全局坐标

source
MoM_Basics.eulerRotationMatMethod
eulerRotationMat(θ::FT, ϕ::FT, unit::Symbol) where{FT<:AbstractFloat}

计算转到给定指向 θ, ϕ 处的旋转矩阵,旋转一步到位,不发生自旋。

source
MoM_Basics.eulerRotationMatMethod
eulerRotationMat(axis::Vec3D{FT}, θ::FT, unit::Symbol) where{FT<:Real}

计算天线阵按给定任意轴 axis, 旋转 θ` 角度的旋转矩阵。

source
MoM_Basics.eulerZunitMethod
eulerZunit(α::FT, β::FT, γ::FT, unit::Symbol) where{FT<:Real}

计算给定欧拉角局部坐标 z 轴在全局坐标中的位置单位向量。

source
MoM_Basics.getBFTfromCellTMethod

根据网格元(如三角形、四边形、四面体、六面体等)获取基函数信息用于快速计算当前单元采用的基函数

source
MoM_Basics.getCellsBFsFromFileNameMethod
getCellsBFsFromFileName(meshFileName; meshUnit = MeshUnit, sbfT = :RWG, vbfT = :nothing)

通过文件名 meshFileName 直接读取网格元、创建基函数信息。

source
MoM_Basics.getCellsFromFileNameMethod
getCellsFromFileName(meshFileName; meshUnit = MeshUnit, sbfT = :RWG, vbfT = :nothing)

通过文件名 meshFileName 直接读取网格元。

source
MoM_Basics.getFreeVIDFromGQ3DIDMethod
getFreeVIDFromGQ3DID(GQ3DID::NTuple{3, Int}, i::Integer)

得到第 i 个面所在的基函数的 正常高斯求积 下,三维坐标为 GQ3DID 的高斯求积点的 “自由端$r₀$” 的序号。

source
MoM_Basics.getFreeVIDFromGQ3DIDSSglrMethod
getFreeVIDFromGQ3DIDSSglr(GQ3DID::NTuple{3, Int}, i::Integer)

得到第 i 个面所在的基函数的 处理超奇异性时,三维坐标为 GQ3DID 的高斯求积点的 “自由端$r₀$” 的序号。

source
MoM_Basics.getFreeVIDFromGQ3DIDSglrMethod
getFreeVIDFromGQ3DIDSglr(GQ3DID::NTuple{3, Int}, i::Integer)

得到第 i 个面所在的基函数的 处理奇异性时,三维坐标为 GQ3DID 的高斯求积点的 “自由端$r₀$” 的序号。

source
MoM_Basics.getFreeVnsMethod
getFreeVns(hexa::HexahedraInfo, i::Integer)

得到六面体 hexai 个所在的基函数的 所有自由端( $r₀$ )。 该面定义为 $uvw$ 坐标中某值为 $1(0)$ 的面, 自由端应定义为在该面的 $uvw$ 坐标中,将该值赋值为 $0(1)$ 时计算得到的点 如 $u = 1$ 的面为六面体的第 $(2,6,7,3)$ 个点构成的面,$r₀$$uvw$ 坐标为 $(0, v, w)$ 的点,此点等同于 $u = 0$ 的面的四边形的参数坐标为 (v, w) 的点 在构造 RBF 时面按照 按 $u=1, u=0, v = 1, v = 0, w = 1, w = 0$ 的顺序排列, 因此函数根据输入的面的序号进行计算。

source
MoM_Basics.getFreeVnsSSglrMethod
getFreeVnsSSglr(hexa::HexahedraInfo, i::Integer)

得到六面体 hexa 处理超奇异性时第 i 个所在的基函数的 所有自由端( $r₀$ )。 定义详见getFreeVns

source
MoM_Basics.getFreeVnsSglrMethod
getFreeVns(hexa::HexahedraInfo, i::Integer)

得到六面体 hexa 处理奇异性时第 i 个所在的基函数的 所有自由端( $r₀$ )。 定义详见getFreeVns

source
MoM_Basics.getGQPHexaMethod
getGQPHexa(hexa::HexahedraInfo, ii::IT) where {IT <: Integer}
getGQPHexa(hexa::HexahedraInfo)

计算 hexa 正常求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPHexaSSglrMethod
getGQPHexaSSglr(hexa::HexahedraInfo, ii::IT) where {IT <: Integer}
getGQPHexaSSglr(hexa::HexahedraInfo)

计算 hexa 处理超奇异性求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPHexaSglrMethod
getGQPHexaSglr(hexa::HexahedraInfo, ii::IT) where {IT <: Integer}
getGQPHexaSglr(hexa::HexahedraInfo)

计算 hexa 处理奇异性求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPQuadMethod
getGQPQuad(quad::Quads4Hexa, ii::IT) where {IT <: Integer}
getGQPQuad(quad::Quads4Hexa)

计算 quad 正常求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPQuadSSglrMethod
getGQPQuadSSglr(quad::Quads4Hexa, ii::IT) where {IT <: Integer}
getGQPQuadSSglr(quad::Quads4Hexa)

计算 quad 处理超奇异性的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPQuadSglrMethod
getGQPQuadSglr(quad::Quads4Hexa, ii::IT) where {IT <: Integer}
getGQPQuadSglr(quad::Quads4Hexa)

计算 quad 处理奇异性的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPTetraMethod
getGQPTetra(tetra::TetrahedraInfo, i::IT) where {IT <: Integer}
getGQPTetra(tetra::TetrahedraInfo)

计算 tetra 正常求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPTetraSglrMethod
getGQPTetraSglr(tetra::TetrahedraInfo, i::IT) where {IT <: Integer}
getGQPTetraSglr(tetra::TetrahedraInfo)

计算 tetra 处理奇异性求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPTriMethod
getGQPTri(tri::TriangleInfo, i::IT) where {IT <: Integer}
getGQPTri(tri::TriangleInfo)

计算 tri 正常求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPTriMethod
getGQPTri(tri::Tris4Tetra, i::IT) where {IT <: Integer}
getGQPTri(tri::Tris4Tetra)

计算 tri 正常求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPTriSglrMethod
getGQPTriSglr(tri::TriangleInfo, i::IT) where {IT <: Integer}
getGQPTriSglr(tri::TriangleInfo)

计算 tri 处理奇异性求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getGQPTriSglrMethod
getGQPTriSglr(tri::Tris4Tetra, i::IT) where {IT <: Integer}
getGQPTriSglr(tri::Tris4Tetra)

计算 tri 处理奇异性求积的第 i 个或所有高斯求积坐标。

source
MoM_Basics.getHexasInfoMethod
getHexasInfo(hexameshData::HexahedraMesh{IT, FT}, VolumeBFType::Symbol) where{IT, FT}

根据六面体网格信息 hexameshData 和体基函数类型 VolumeBFType 生成网格信息向量 hexasInfo 和基函数信息向量 bfsInfo

source
MoM_Basics.getMeshDataMethod
getMeshData(meshFileName::String; meshUnit=:mm)

读取文件中的节点坐标、三角形点、四面体点、六面体点

source
MoM_Basics.getNodeElemsMethod
getNodeElems(::Val{:DAT}, pathname::ST; FT::Type{T}=Precision.FT, meshUnit = :m) where {ST <: AbstractString,T<:AbstractFloat}

读取 .dat 格式的自定义项目文件。

source
MoM_Basics.getNodeElemsMethod
getNodeElems(::Val{:NAS}, pathname::ST; FT::Type{T}=Precision.FT, meshUnit = :mm) where {ST <: AbstractString,T<:AbstractFloat}

读取 .nas 文件中的节点坐标、三角形点、四面体点、六面体点。

source
MoM_Basics.getNodeElemsMethod
getNodeTriTetraHexaVtk(pathname::ST; FT::Type{T}=Precision.FT, meshUnit = :m) where {ST <: AbstractString,T<:AbstractFloat}

读取 .vtk 文件中的节点坐标、三角形点、四面体点、六面体点(目前不支持六面体)。

source
MoM_Basics.getTetrasInfoMethod
getTetrasInfo(tetrameshData::TetrahedraMesh{IT, FT}, VolumeBFType::Symbol) where{IT, FT}

根据四面体网格信息 tetrameshData 和体基函数类型 VolumeBFType 生成网格信息向量 tetrasInfo 和基函数信息向量 bfsInfo

source
MoM_Basics.getTriangleInfoMethod
getTriangleInfo(trianglemeshData::TriangleMesh{IT, FT}) where{IT, FT}

根据网格信息 trianglemeshData 生成三角形信息 trianglesInfo 、RWG基函数信息 rwgsInfo

source
MoM_Basics.globalObs2LocalObsMethod
globalObs2LocalObs(r̂θϕs_obs::Matrix{r̂θϕInfo{FT}}, l2gRot::StaticMatrix{3,3, FT}) where {FT}

根据全局观测空间角度信息 r̂θϕs_obs 计算给定局部至全局坐标旋转矩阵 l2gRot 下局部坐标的观测空间角度信息。

source
MoM_Basics.globalrvec2LocalMethod
globalrvec2Local(rvecglobal::Vec3D{T}, l2gRot::StaticMatrix{3,3, FT}, r0InGlobal::Vec3D{FT}) where {T<:Number, FT<:Real}

计算全局向量 rvecglobal 在给定局部至全局坐标旋转矩阵 l2gRot 下的局部坐标,局部坐标的原点在全局坐标的 r0InGlobal 处。

source
MoM_Basics.globalrvec2LocalMethod
globalrvec2Local(rvecglobal::Vec3D{T}, l2gRot::StaticMatrix{3,3, FT}) where {T<:Number, FT<:Real}

计算全局向量 rvecglobal 在给定局部至全局坐标旋转矩阵 l2gRot 下的局部坐标。

source
MoM_Basics.globalrvec2LocalMethod
globalrvec2Local(rvecsglobal::Matrix{T}, l2gRot::StaticMatrix{3,3, FT}, r0InGlobal::Vec3D{FT}) where {T<:Number, FT<:Real}

计算全局向量组成的矩阵 rvecsglobal 在给定局部至全局坐标旋转矩阵 l2gRot 下的局部坐标,局部坐标的原点在全局坐标的 r0InGlobal 处。

source
MoM_Basics.globalrvec2LocalMethod
globalrvec2Local(rvecsglobal::Matrix{T}, l2gRot::StaticMatrix{3,3, FT}) where {T<:Number, FT<:Real}

计算全局向量组成的矩阵 rvecsglobal 在给定局部至全局坐标旋转矩阵 l2gRot 下的局部坐标。

source
MoM_Basics.greenfuncMethod
greenfunc(R::T) where {T<:AbstractFloat}
greenfunc(pa::Vec3D{T}, pb::Vec3D{T}) where {T<:AbstractFloat}
greenfunc(pa::AbstractVector{T}, pb::AbstractVector{T}) where {T<:AbstractFloat}
greenfunc(R::T, k::T) where {T<:AbstractFloat}
greenfunc(pa::Vec3D{T}, pb::Vec3D{T}, k::T) where {T<:AbstractFloat}

计算归一化自由空间格林函数 $g(R) = exp^{-1im*K_0*R}/R$

source
MoM_Basics.inputBasicParametersMethod
inputBasicParameters(;frequency::FT = 1e8, ieT::Symbol = :EFIE, CFIEα::FT = 0.6,
meshfilename::String = SimulationParams.meshfilename) where {FT<:AbstractFloat}

输入频率参数 frequency,修改其它仿真参数的函数; 积分方程类型参数 ieT,修改计算过程中采用的积分方程; CFIE混合系数 CFIEα、网格文件名 meshfilename

source
MoM_Basics.localObs2GlobalObsMethod
localObs2GlobalObs(r̂θϕs_obs::Matrix{r̂θϕInfo{FT}}, l2gRot::StaticMatrix{3,3, FT}) where {FT}

根据局部观测空间角度信息 r̂θϕs_obs 计算给定局部至全局坐标旋转矩阵 l2gRot 下全局坐标的观测空间角度信息。

source
MoM_Basics.localrvec2GlobalMethod
localrvec2Global(rvecslocal::Vec3D{T}, l2gRot::StaticMatrix{3,3, FT}, r0InGlobal::Vec3D{FT}) where {T<:Number, FT<:Real}

计算局部向量 rveclocal 在给定局部至全局坐标旋转矩阵 l2gRot 下的全局坐标,局部坐标的原点在全局坐标的 r0InGlobal 处。

source
MoM_Basics.localrvec2GlobalMethod
localrvec2Global(rvecslocal::Vec3D{T}, l2gRot::StaticMatrix{3,3, FT}) where {T<:Number, FT<:Real}

计算局部向量 rveclocal 在给定局部至全局坐标旋转矩阵 l2gRot 下的全局坐标。

source
MoM_Basics.localrvec2GlobalMethod
localrvec2Global(rvecslocal::Matrix{T}, l2gRot::StaticMatrix{3,3, FT}, r0InGlobal::Vec3D{FT}) where {T<:Number, FT<:Real}

计算局部向量组成的矩阵 rvecslocal 在给定局部至全局坐标旋转矩阵 l2gRot 下的全局坐标,局部坐标的原点在全局坐标的 r0InGlobal 处。

source
MoM_Basics.localrvec2GlobalMethod
localrvec2Global(rvecslocal::Matrix{T}, l2gRot::StaticMatrix{3,3, FT}) where {T<:Number, FT<:Real}

计算局部向量组成的矩阵 rvecslocal 在给定局部至全局坐标旋转矩阵 l2gRot 下的全局坐标。

source
MoM_Basics.modiParams!Method
modiParams!(   frequency, ω_0, K_0, λ_0, JKη_0, Jη_0divK, JK_0,
                    k², divJω, mk²div9, mJη_0div4πK, 
                    C4divk², JKηdiv16π, div9Jω, Rsglr, CFIEα)

输入所有参数修改仿真参数的实例。

source
MoM_Basics.modiSimulationParams!Method
modiSimulationParams!(;ieT::Symbol=SimulationParams.ieT, 
meshfilename::String = SimulationParams.meshfilename, 
meshunit = SimulationParams.meshunit,
SHOWIMAGE = SimulationParams.SHOWIMAGE,
discreteVar = SimulationParams.discreteVar
)

ieT ::Symbol, 积分方程类型,包括 EFIE, MFIE, CFIE等

source
MoM_Basics.nodes2PolesMethod
nodes2Poles(nodes::Matrix{FT}) where {FT}

将球面散点 nodes 转化为角度信息实例 r̂θϕInfo 数组。

source
MoM_Basics.radiationDirectionCoeffMethod

radiationDirectionCoeff(md::MagneticDipole{FT}, θϕ::θϕInfo{FT}) where {FT<:Real}

计算方向性系数:$D_m(θ, ϕ) = 4π U_m(θ, ϕ)/P_{rad}$

source
MoM_Basics.radiationIntegralL0Method
radiationIntegralL0(md::MagneticDipole, θϕ::θϕInfo{FT}) where {FT<:Real}

磁偶极子的远场辐射积分计算函数,注意 θϕ 为偶极子的局部坐标。

source
MoM_Basics.radiationIntensityU_mMethod
radiationIntensityU_m(md::MagneticDipole{FT}, θϕ::θϕInfo{FT}) where {FT<:Real}

计算磁流源的辐射强度函数 $U_m(θ, ϕ) = \frac{Y_0}{8λ_0²}(|L_θ|² + |L_ϕ|²)$

source
MoM_Basics.radiationPowerMethod
radiationPower(md::MagneticDipole{FT}) where {FT<:Real}

计算辐射功率。 $P_{rad} = ∫∫ U(θ, ϕ)sinθ dθdϕ$ 对磁偶极子可直接在源缝表面积分: $P_{rad} = ∫∫ |E(r)|²/(2η₀) dxdy$

source
MoM_Basics.record_CellInfoFunction
record_CellInfo(io::IO = Core.stdout; ntri = 0, ntetra = 0, nhexa = 0)
record_CellInfo(meshData; io::IO = Core.stdout)

io 中记录网格单元数量 ntri, ntetra, nhexa

source
MoM_Basics.rwgbfConstructerTrianglesInfoModifiers!Method
rwgbfConstructerTrianglesInfoModifiers!(trianglemeshData::TriangleMesh, trianglesInfo::Vector{TriangleInfo{IT, FT}}) where {IT<:Integer, FT<:AbstractFloat}

此函数采用排序算法,将每个边的两个点、在三角形中的对点、三角形、基函数等属性信息放在一个大数组中, 通过对不同的属性排序(如按边所在点随数组排序即可将边相同的点放在一起),即可得到基函数分组信息,以此可构造RWG基函数。 函数完成以下功能:

  1. 构造基函数类型实例数组(类似结构化数组)rwgsInfo记录基函数相关信息,并作为返回值;
  2. 写入三角形类型实例数组trianglesInfo中关于基函数的信息。
source
MoM_Basics.saveSimulationParamsMethod
saveSimulationParams(;meshfilename::String = SimulationParams.meshfilename, 
sbfT::Symbol = SimulationParams.sbfT, vbfT::Symbol = SimulationParams.vbfT)

保存仿真参数到结果文件中。

source
MoM_Basics.selectFreeVnIDMethod
selectFreeVnID(uvw::AbstractVector{FT}, i::Integer) where {FT}

根据 $uvw$ 计算得到第 i 个面所在的基函数的 正常高斯求积 时 “自由端( $r₀$ )” 的序号。

source
MoM_Basics.selectFreeVnSSglrIDMethod
selectFreeVnSSglrID(uvw::AbstractVector{FT}, i::Integer) where {FT}

根据 $uvw$ 得到第 i 个面所在的基函数的 处理超奇异性 求积时 “自由端( $r₀$ )” 的序号。

source
MoM_Basics.selectFreeVnSglrIDMethod
selectFreeVnSglrID(uvw::AbstractVector{FT}, i::Integer) where {FT}

根据 $uvw$ 得到第 i 个面所在的基函数的 处理奇异性 求积时 “自由端( $r₀$ )” 的序号。

source
MoM_Basics.setGeosPermittivity!Method
setGeosPermittivity!(geosInfo::AbstractVector{VT}, εᵣ::CT = 1.0(1+0im)) where {VT<:TriangleInfo, CT<:Complex}

设置三角形网格介电常数,目前为空派发以方便体面积分方程计算中的多重派发。

source
MoM_Basics.setGeosPermittivity!Method
setGeosPermittivity!(geosInfo::AbstractVector{VT}, εᵣ::CT = 1.0(1+0im)) where {VT<:VSCellType, CT<:Complex}
setGeosPermittivity!(geosInfo::AbstractVector{VT}, εᵣs::T) where {VT<:VSCellType, T<:AbstractVector}
setGeosPermittivity!(geosInfo::AbstractVector{VT}, εᵣ::CT = 1.0(1+0im)) where {VT<:AbstractVector, CT<:Complex}

设置四面体、六面体的介电常数 εᵣ ,并同时设置介质对比度,修改此函数以得到对应的数据。

source
MoM_Basics.setHexaCoor!Method
setHexaCoor!( hexasInfo::Vector{HexahedraInfo{IT, FT, CT}}, hexaMeshData::HexahedraMesh{IT, FT}) where {IT<:Integer, FT<:AbstractFloat, CT<:Complex}

在预分配好的六面体数组 hexasInfo 里写入 hexaMeshData 中对应的六面体编号、点坐标、中心位置数据。

source
MoM_Basics.setHexaParam!Method
setHexaParam!(hexasInfo::Vector{HexahedraInfo{IT, FT, CT}}) where {IT<:Integer, FT<:AbstractFloat, CT<:Complex}

计算六面体体积、面外法向量、面积,并写入 hexasInfo

source
MoM_Basics.setQuad4Hexas!Method
setQuad4Hexas!(hexameshData::HexahedraMesh{IT, FT}, hexasInfo::Vector{HexahedraInfo{IT, FT, CT}}, ::Val{:PWC}) where {IT, FT, CT}

计算构成六面体的所有四边形,并将这些信息写入六面体 hexasInfo,给分片常数 (PWC) 基函数赋值。

source
MoM_Basics.setQuad4Hexas!Method
setQuad4Hexas!(hexameshData::HexahedraMesh{IT, FT}, hexasInfo::Vector{HexahedraInfo{IT, FT, CT}}, ::Val{:RBF}) where {IT, FT, CT}

计算构成六面体的所有四边形,并写入六面体 hexasInfo,给屋顶基函数 (RBF) 基函数赋值。

source
MoM_Basics.setTetraCoor!Method
setHexaCoor!( tetrasInfo::Vector{TetrahedraInfo{IT, FT, CT}}, tetraMeshData::TetrahedraMesh{IT, FT}) where {IT<:Integer, FT<:AbstractFloat, CT<:Complex}

在预分配好的四面体数组 tetrasInfo 里写入 tetraMeshData 中对应的四面体编号、点坐标、中心位置数据。

source
MoM_Basics.setTetraParam!Method
setTetraParam!(tetrasInfo::Vector{TetrahedraInfo{IT, FT, CT}}) where {IT<:Integer, FT<:AbstractFloat, CT<:Complex}

计算四面体体积、面外法向量、面积,并写入 tetrasInfo

source
MoM_Basics.setTriParam!Method
setTriParam!(triangleInfo::TriangleInfo)

计算三角形边长、边外法向量、面法向量、面积,直接写入 triangleInfo

source
MoM_Basics.setTriangles4Tetras!Method
setTriangles4Tetras!(tetrameshData::TetrahedraMesh{IT, FT}, tetrasInfo::Vector{TetrahedraInfo{IT, FT, CT}}, ::Val{:PWC}) where {IT, FT, CT}

计算构成四面体的所有三角形,并将这些信息写入四面体 tetrasInfo,给分片常数 (PWC) 基函数赋值。

source
MoM_Basics.setTriangles4Tetras!Method
setTriangles4Tetras!(tetrameshData::TetrahedraMesh{IT, FT}, tetrasInfo::Vector{TetrahedraInfo{IT, FT, CT}}, ::Val{:SWG}) where {IT, FT, CT}

计算构成四面体的所有三角形,并将这些信息写入四面体 tetrasInfo,给 SWG 基函数赋值。

source
MoM_Basics.setTricoor!Method
setTricoor!( trianglesInfo::Vector{TriangleInfo{IT, FT}}, TriangleMeshData::TriangleMesh{IT, FT}) where {IT<:Integer, FT<:AbstractFloat}

在预分配好的三角形数组 trianglesInfo 里写入 TriangleMeshData 中对应的三角形编号、点坐标、中心位置数据。

source
MoM_Basics.setdiffArray!Function
setdiffArray!(ary[, dim = 1])

将阵列天线 arydim 方向一半单元设置为反相位,从而实现差方向图。

source
MoM_Basics.setδκ!Method
setδκ!(hexasInfo::AbstractVector{HexahedraInfo{IT, FT, CT}}) where {IT<:Integer, FT<:Real, CT<:Complex{FT}}

设置六面体网格信息 hexasInfo 中每个面上的介质对比度差值。

source
MoM_Basics.setδκ!Method
setδκ!(geosInfo::AbstractVector{VT}) where {VT<:VolumeCellType}

设置体网格信息 geosInfo 中每个面上的介质对比度差值。

source
MoM_Basics.sincmathMethod
sincmath(x::T) where{T<:Number}

Julia 自带 [sinc] 函数计算的是归一化辛格函数:

$sinc(x) = sin(πx)/(πx)$

此处借用 sinc,定义数学领域的非归一化 sinc 函数,即计算:

$sin(x)/x$

source
MoM_Basics.sourceEfieldMethod
sourceEfield(ary::AT, rvec::AbstractVector{FT}) where {FT<:Real,  AT<:AbstractAntennaArray}

计算天线阵列 ary 在全局坐标下给定位置 rvec 处的电场。

source
MoM_Basics.sourceEfieldMethod
sourceEfield(md::MagneticDipole{FT}, r_observe::Vec3D{FT};  r_coortype::Symbol=:C) where {FT<:Real}

计算磁偶极 md 在全局坐标下给定位置 rvec 处的电场。

source
MoM_Basics.sourceEfieldMethod
sourceEfield(sources::Vector{ST}, rvec::AbstractVector{FT}) where {FT<:Real, ST<:ExcitingSource}

计算源向量 sources 在全局坐标下给定位置 rvec 处的远场电场。

source
MoM_Basics.sourceFarEfieldMethod
sourceFarEfield(ary::AT, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real, AT<:AbstractAntennaArray}

计算天线阵列 ary 在全局坐标下给定方向 r̂θϕ 的远场电场。

source
MoM_Basics.sourceFarEfieldMethod
sourceFarEfield(md::MagneticDipole{FT}, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real}

计算磁偶极 md 在全局坐标下给定方向 r̂θϕ 的远场电场。

source
MoM_Basics.sourceFarEfieldMethod
sourceFarEfield(sources::Vector{ST}, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real, ST<:ExcitingSource}

计算源向量 sources 在全局坐标下给定方向 r̂θϕ 的远场电场。

source
MoM_Basics.sourceLocalEfieldMethod
sourceLocalEfield(ary::AT, rvec::AbstractVector{FT}) where {FT<:Real,  AT<:AbstractAntennaArray}

计算天线阵列 ary 在阵列局部坐标下给定位置 rvec 处的电场。

source
MoM_Basics.sourceLocalEfieldMethod
sourceLocalEfield(md::MagneticDipole{FT}, r_observe::Vec3D{FT};  r_coortype::Symbol=:C) where {FT<:Real}

计算磁偶极 md 在磁偶极局部坐标给定位置 rvec 处的电场。

source
MoM_Basics.sourceLocalFarEfieldMethod
sourceLocalFarEfield(ary::AT, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real, AT<:AbstractAntennaArray}

计算天线阵列 ary 在阵列坐标下给定方向 r̂θϕ 的远场电场。

source
MoM_Basics.sourceLocalFarEfieldMethod
sourceLocalFarEfield(md::MagneticDipole{FT}, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real}

计算磁偶极 md 在磁偶极局部坐标下给定方向 r̂θϕ 的远场电场。

source
MoM_Basics.sphere2cartMethod
sphere2cart(coor_sphere::AbstractVector{T}) where T<:Real
sphere2cart(coor_sphere...)
sphere2cart(r::T, θϕ::θϕInfo{T}) where T<:Real

将球坐标 coor_sphere 转换到直角坐标。

source
MoM_Basics.update_orient!Method
update_orient!(ary::AT; aryorient, sourceorientlc[, orientunit = :rad]) where {AT<:AbstractAntennaArray}

通过机械旋转更新天线阵列 ary 的阵列指向为 aryorient,天线单元指向为 sourceorientlc,指向角单位为 orientunit

source
MoM_Basics.update_orient!Method
update_orient!(md::MagneticDipole{FT}, orient, unit = :rad) where {FT <: Real}

更新磁偶极 md 指向为 orient

source
MoM_Basics.volumeMethod
volume(vertices::Vararg{T, 4}) where {T}

计算四个点vertices组成的四面体体积。

source
MoM_Basics.volumeMethod
volume(vertices::Vararg{T, 8}) where {T}

计算八个点vertices组成的六面体体积。

source
MoM_Basics.@clockMacro
clock(message, ex)

将表达式 ex 的运行时间以 message 为键保存在字典 timer 中。

source
MoM_Basics.TaylorWins.taylorwinMethod
taylorwin(L::IT, nbar = 4, sll = -30) where {IT<:Integer}

TAYLORWIN Taylor window.

TAYLORWIN(N) returns an N-point Taylor window in a column vector.

TAYLORWIN(N,nbar) returns an N-point Taylor window with nbar nearly constant-level sidelobes adjacent to the mainlobe. nbar must be an integer greater than or equal to one.

TAYLORWIN(N,nbar,sll) returns an N-point Taylor window with sll maximum sidelobe level in dB relative to the mainlobe peak. sll must be a negative value, e.g., -30 dB.

nbar should satisfy nbar >= 2*A^2+0.5, where A is equal to acosh(10^(-sll/20))/pi, otherwise the sidelobe level specified is not guaranteed. If nbar is not specified it defaults to 4. sll defaults to -30 dB if not specified.

EXAMPLE This example generates a 64-point Taylor window with 4 sidelobes adjacent to the mainlobe that are nearly constant-level, and a peak sidelobe level of -35 dB relative to the mainlobe peak.

w = taylorwin(64,5,-35); wvtool(w);

See also CHEBWIN.

Copyright 2005-2018 The MathWorks, Inc.

References: [1] Carrara, Walter G., Ronald M. Majewski, and Ron S. Goodman, Spotlight Synthetic Aperture Radar: Signal Processing Algorithms, Artech House, October 1, 1995. [2] Brookner, Eli, Practical Phased Array Antenna Systems, Artech House, Inc., 1991, pg. 2-51.

source