Removed 0.5mm & 1mm resolutions for 400MHz model as not valid anymore.

这个提交包含在:
Craig Warren
2023-08-30 09:25:45 +01:00
父节点 d60015d285
当前提交 3698a0a6f0

查看文件

@@ -420,12 +420,12 @@ def antenna_like_GSSI_1500(x, y, z, resolution=0.001, **kwargs):
return scene_objects return scene_objects
def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs): def antenna_like_GSSI_400(x, y, z, resolution=0.002, **kwargs):
"""Inserts a description of an antenna similar to the GSSI 400MHz antenna. """Inserts a description of an antenna similar to the GSSI 400MHz antenna.
This model represents an update to the previous model of the GSSI 400MHz This model represents an update to the previous model of the GSSI 400MHz
antenna and was created and optimised by Stadler et al. (2022) antenna and was created and optimised by Stadler et al. (2022)
in: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9686638. in: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9686638.
Can be used with 0.5mm, 1mm (default) or 2mm spatial resolution. Can be used with 2mm spatial resolution.
The external dimensions of the antenna are 300x300x178mm. The external dimensions of the antenna are 300x300x178mm.
One output point is defined between the arms of the receiver bowtie. One output point is defined between the arms of the receiver bowtie.
The bowties are aligned with the y axis so the output is the y component The bowties are aligned with the y axis so the output is the y component
@@ -451,7 +451,6 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
casesize = (0.3, 0.3, 0.178) # original casesize = (0.3, 0.3, 0.178) # original
casethickness = 0.002 casethickness = 0.002
shieldthickness = 0.002 shieldthickness = 0.002
foamsurroundthickness = 0.003
pcbthickness = 0.002 pcbthickness = 0.002
bowtiebase = 0.06 bowtiebase = 0.06
bowtieheight = 0.06 # original 0.056 bowtieheight = 0.06 # original 0.056
@@ -488,25 +487,12 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
# Coordinates of source excitation point in antenna # Coordinates of source excitation point in antenna
tx = x + 0.01 + 0.005 + 0.056, y + casethickness + 0.005 + 0.143, z + skidthickness tx = x + 0.01 + 0.005 + 0.056, y + casethickness + 0.005 + 0.143, z + skidthickness
if resolution == 0.0005:
dx = 0.0005
dy = 0.0005
dz = 0.0005
tx = x + 0.01 + 0.005 + 0.056, y + casethickness + 0.005 + 0.1435, z + skidthickness
elif resolution == 0.001:
dx = 0.001
dy = 0.001
dz = 0.001
elif resolution == 0.002:
dx = 0.002 dx = 0.002
dy = 0.002 dy = 0.002
dz = 0.002 dz = 0.002
foamsurroundthickness = 0.002 foamsurroundthickness = 0.002
metalboxheight = 0.088 metalboxheight = 0.088
tx = x + 0.01 + 0.004 + 0.056, y + casethickness + 0.005 + 0.143 - 0.002, z + skidthickness - 0.002 tx = x + 0.01 + 0.004 + 0.056, y + casethickness + 0.005 + 0.143 - 0.002, z + skidthickness - 0.002
else:
logger.exception("This antenna module can only be used with a spatial discretisation of 0.5mm, 1mm, 2mm")
raise ValueError
# Material definitions # Material definitions
absorber = gprMax.Material(er=absorberEr, se=absorbersig, mr=1, sm=0, id="absorber") absorber = gprMax.Material(er=absorberEr, se=absorbersig, mr=1, sm=0, id="absorber")
@@ -565,49 +551,6 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
scene_objects.extend((b1, b2, b3, b4, b5)) scene_objects.extend((b1, b2, b3, b4, b5))
# PCB # PCB
if resolution == 0.0005:
b6 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.018, y + casethickness + 0.005 + 0.0235, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.034 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness + pcbthickness,
),
material_id="pcb",
)
b7 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.178, y + casethickness + 0.005 + 0.0235, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.194 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness + pcbthickness,
),
material_id="pcb",
)
scene_objects.extend((b6, b7))
elif resolution == 0.001:
b6 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.018, y + casethickness + 0.005 + 0.023, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.034 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness + pcbthickness,
),
material_id="pcb",
)
b7 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.178, y + casethickness + 0.005 + 0.023, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.194 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness + pcbthickness,
),
material_id="pcb",
)
scene_objects.extend((b6, b7))
elif resolution == 0.002:
b6 = gprMax.Box( b6 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.017, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002), p1=(x + 0.01 + 0.005 + 0.017, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
p2=( p2=(
@@ -682,53 +625,6 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
scene_objects.extend((b8, b9, b10, b11, b12)) scene_objects.extend((b8, b9, b10, b11, b12))
# PCB # PCB
if resolution == 0.0005:
b13 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.018, y + casethickness + 0.005 + 0.0235, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.034 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness + pcbthickness,
),
material_id="pcb",
averaging="n",
)
b14 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.178, y + casethickness + 0.005 + 0.0235, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.194 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness + pcbthickness,
),
material_id="pcb",
averaging="n",
)
scene_objects.extend((b13, b14))
elif resolution == 0.001:
b13 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.018, y + casethickness + 0.005 + 0.023, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.034 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness + pcbthickness,
),
material_id="pcb",
averaging="n",
)
b14 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.178, y + casethickness + 0.005 + 0.023, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.194 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness + pcbthickness,
),
material_id="pcb",
averaging="n",
)
scene_objects.extend((b13, b14))
elif resolution == 0.002:
b13 = gprMax.Box( b13 = gprMax.Box(
p1=(x + 0.01 + 0.005 + 0.017, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002), p1=(x + 0.01 + 0.005 + 0.017, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
p2=( p2=(
@@ -753,201 +649,6 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
# PCB components # PCB components
# My own bowties with triangle commands # My own bowties with triangle commands
if resolution == 0.0005:
# "left" side
# extension plates
p1 = gprMax.Plate(
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.0235, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.026 + bowtiebase,
y + casethickness + 0.005 + 0.0235 + patchheight,
z + skidthickness,
),
material_id="pec",
)
p2 = gprMax.Plate(
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.204, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.026 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness,
),
material_id="pec",
)
# triangles
t1 = gprMax.Triangle(
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.0835, z + skidthickness),
p2=(x + 0.01 + 0.005 + 0.026 + bowtiebase, y + casethickness + 0.005 + 0.0835, z + skidthickness),
p3=(
x + 0.01 + 0.005 + 0.026 + (bowtiebase / 2),
y + casethickness + 0.005 + 0.0835 + bowtieheight,
z + skidthickness,
),
thickness=0,
material_id="pec",
)
t2 = gprMax.Triangle(
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.204, z + skidthickness),
p2=(x + 0.01 + 0.005 + 0.026 + bowtiebase, y + casethickness + 0.005 + 0.204, z + skidthickness),
p3=(
x + 0.01 + 0.005 + 0.026 + (bowtiebase / 2),
y + casethickness + 0.005 + 0.204 - bowtieheight,
z + skidthickness,
),
thickness=0,
material_id="pec",
)
# "right" side
p3 = gprMax.Plate(
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.0235, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.186 + bowtiebase,
y + casethickness + 0.005 + 0.0235 + patchheight,
z + skidthickness,
),
material_id="pec",
)
p4 = gprMax.Plate(
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.204, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.186 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness,
),
material_id="pec",
)
# triangles
t3 = gprMax.Triangle(
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.0835, z + skidthickness),
p2=(x + 0.01 + 0.005 + 0.186 + bowtiebase, y + casethickness + 0.005 + 0.0835, z + skidthickness),
p3=(
x + 0.01 + 0.005 + 0.186 + (bowtiebase / 2),
y + casethickness + 0.005 + 0.0835 + bowtieheight,
z + skidthickness,
),
thickness=0,
material_ID="pec",
)
t4 = gprMax.Triangle(
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.204, z + skidthickness),
p2=(x + 0.01 + 0.005 + 0.186 + bowtiebase, y + casethickness + 0.005 + 0.204, z + skidthickness),
p3=(
x + 0.01 + 0.005 + 0.186 + (bowtiebase / 2),
y + casethickness + 0.005 + 0.204 - bowtieheight,
z + skidthickness,
),
thickness=0,
material_id="pec",
)
# Edges that represent wire between bowtie halves in 1mm model
e1 = gprMax.Edge(p1=(tx[0] + 0.16, tx[1] - dy, tx[2]), p2=(tx[0] + 0.16, tx[1], tx[2]), material_id="pec")
e2 = gprMax.Edge(
p1=(tx[0] + 0.16, tx[1] + dy, tx[2]), p2=(tx[0] + 0.16, tx[1] + 2 * dy, tx[2]), material_id="pec"
)
e3 = gprMax.Edge(p1=(tx[0], tx[1] - dy, tx[2]), p2=(tx[0], tx[1], tx[2]), material_id="pec")
e4 = gprMax.Edge(p1=(tx[0], tx[1] + dy, tx[2]), p2=(tx[0], tx[1] + 2 * dy, tx[2]), material_id="pec")
scene_objects.extend((p1, p2, t1, t2, p3, p4, t3, t4, e1, e2, e3, e4))
elif resolution == 0.001:
# "left" side
# extension plates
p1 = gprMax.Plate(
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.023, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.026 + bowtiebase,
y + casethickness + 0.005 + 0.023 + patchheight,
z + skidthickness,
),
material_id="pec",
)
p2 = gprMax.Plate(
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.204, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.026 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness,
),
material_id="pec",
)
# triangles
t1 = gprMax.Triangle(
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.083, z + skidthickness),
p2=(x + 0.01 + 0.005 + 0.026 + bowtiebase, y + casethickness + 0.005 + 0.083, z + skidthickness),
p3=(
x + 0.01 + 0.005 + 0.026 + (bowtiebase / 2),
y + casethickness + 0.005 + 0.083 + bowtieheight,
z + skidthickness,
),
thickness=0,
material_id="pec",
)
t2 = gprMax.Triangle(
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.204, z + skidthickness),
p2=(x + 0.01 + 0.005 + 0.026 + bowtiebase, y + casethickness + 0.005 + 0.204, z + skidthickness),
p3=(
x + 0.01 + 0.005 + 0.026 + (bowtiebase / 2),
y + casethickness + 0.005 + 0.204 - bowtieheight,
z + skidthickness,
),
thickness=0,
material_id="pec",
)
# "right" side
p3 = gprMax.Plate(
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.023, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.186 + bowtiebase,
y + casethickness + 0.005 + 0.023 + patchheight,
z + skidthickness,
),
material_id="pec",
)
p4 = gprMax.Plate(
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.204, z + skidthickness),
p2=(
x + 0.01 + 0.005 + 0.186 + bowtiebase,
y + casethickness + 0.005 + 0.204 + patchheight,
z + skidthickness,
),
material_id="pec",
)
# triangles
t3 = gprMax.Triangle(
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.083, z + skidthickness),
p2=(x + 0.01 + 0.005 + 0.186 + bowtiebase, y + casethickness + 0.005 + 0.083, z + skidthickness),
p3=(
x + 0.01 + 0.005 + 0.186 + (bowtiebase / 2),
y + casethickness + 0.005 + 0.083 + bowtieheight,
z + skidthickness,
),
thickness=0,
material_id="pec",
)
t4 = gprMax.Triangle(
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.204, z + skidthickness),
p2=(x + 0.01 + 0.005 + 0.186 + bowtiebase, y + casethickness + 0.005 + 0.204, z + skidthickness),
p3=(
x + 0.01 + 0.005 + 0.186 + (bowtiebase / 2),
y + casethickness + 0.005 + 0.204 - bowtieheight,
z + skidthickness,
),
thickness=0,
material_id="pec",
)
# Edges that represent wire between bowtie halves in 1mm model
e1 = gprMax.Edge(p1=(tx[0] + 0.16, tx[1] - dy, tx[2]), p2=(tx[0] + 0.16, tx[1], tx[2]), material_id="pec")
e2 = gprMax.Edge(
p1=(tx[0] + 0.16, tx[1] + dy, tx[2]), p2=(tx[0] + 0.16, tx[1] + 2 * dy, tx[2]), material_id="pec"
)
e3 = gprMax.Edge(p1=(tx[0], tx[1] - dy, tx[2]), p2=(tx[0], tx[1], tx[2]), material_id="pec")
e4 = gprMax.Edge(p1=(tx[0], tx[1] + dy, tx[2]), p2=(tx[0], tx[1] + 2 * dy, tx[2]), material_id="pec")
scene_objects.extend((p1, p2, t1, t2, p3, p4, t3, t4, e1, e2, e3, e4))
elif resolution == 0.002:
# "left" side # "left" side
# extension plates # extension plates
p1 = gprMax.Plate( p1 = gprMax.Plate(
@@ -1098,20 +799,6 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
w2 = gprMax.Waveform(wave_type="gaussian", amp=0, freq=excitationfreq, id="my_zero_wave") w2 = gprMax.Waveform(wave_type="gaussian", amp=0, freq=excitationfreq, id="my_zero_wave")
scene_objects.append(w2) scene_objects.append(w2)
if resolution == 0.001 or resolution == 0.0005:
if src_type == "transmission_line":
tl2 = gprMax.TransmissionLine(
polarisation="y",
p1=(tx[0] + 0.16, tx[1], tx[2]),
resistance=receiverresistance,
waveform_id="my_zero_wave",
)
scene_objects.append(tl2)
elif src_type == "voltage_source":
r1 = gprMax.Rx(p1=(tx[0] + 0.16, tx[1], tx[2]), id="rxbowtie", outputs="Ey")
scene_objects.append(r1)
elif resolution == 0.002:
if src_type == "transmission_line": if src_type == "transmission_line":
tl2 = gprMax.TransmissionLine( tl2 = gprMax.TransmissionLine(
polarisation="y", polarisation="y",