# Antenna models¶

This section provides some example models of antennas. Each example comes with an input file which you can download and run.

## Wire dipole antenna model¶

antenna_wire_dipole_fs.in

This example demonstrates a model of a half-wavelength wire dipole antenna in free space. It is a balanced antenna and it’s characteristics are well known from theory [BAL2005]. The length of the dipole is 150mm with a 1mm gap between the arms.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #title: Wire antenna - half-wavelength dipole in free-space #domain: 0.050 0.050 0.200 #dx_dy_dz: 0.001 0.001 0.001 #time_window: 60e-9 #waveform: gaussian 1 1e9 mypulse #transmission_line: z 0.025 0.025 0.100 73 mypulse ## 150mm length #edge: 0.025 0.025 0.025 0.025 0.025 0.175 pec ## 1mm gap at centre of dipole #edge: 0.025 0.025 0.100 0.025 0.025 0.101 free_space #geometry_view: 0.020 0.020 0.020 0.030 0.030 0.180 0.001 0.001 0.001 antenna_wire_dipole_fs f 

The wire is modelled using the #edge command which specifies properties of the edge of the Yee cell. The antenna is fed using the #transmission_line command. The one-dimensional transmission line model virtually attaches to the dipole at the gap between the arms. The antenna has an input resistance $$Z_{in} = 73~\Omega$$ specified in the #transmission_line command, and uses a Gaussian waveform with a centre frequency of 1GHz. A time window of 60ns is used: firstly, to give enough time for the response to decay down to zero; and secondly, to allow a reasonable resolution (17MHz) for calculating antenna parameters that involve taking a FFT ($$\Delta f=1/T$$ where $$\Delta f$$ is the frequency bin spacing and $$T$$ is the time window).

Time histories of voltage and current values in the transmission line are saved to the output file. These are documented in the output file section. These parameters are useful for calculating characteristics of the antenna such as the input impedance or S-parameters. gprMax includes a Python module (in the tools package) to help you view the input impedance and admittance and s11 parameter from an antenna model fed using a transmission line. Details of how to use this module is given in the tools section.

### Results¶

You can view the results (see Output data and tools sections) using the command:

python -m tools.plot_antenna_params user_models/antenna_wire_dipole_fs.out


Fig. 36 shows time histories and frequency spectra of the incident and total (incident + reflected) voltages and currents in the transmission line. Fig. 37 shows the input admittance and impedance (resistance and reactance), and s11 parameter of the half-wavelength wire dipole. Fig. 38 shows a more detailed view of these parameters. The s11 parameter shows that the first resonance of the antenna is at 950MHz. Depending on the radius of the wire, the length of the dipole for first resonance is about $$l=0.47\lambda$$ to $$0.48\lambda$$. The thinner the wire the closer the resonance is to $$0.48\lambda$$ [BAL2005]. In this case, with a first resonance of 950MHz and a length of 150mm, $$l/\lambda=0.475$$. The input impedance is $$Z_{in} = 72.8 + j1~\Omega$$. If $$l/\lambda=0.5$$ then the theoretical input impedance would be $$Z_{in} = 73 + j42.5~\Omega$$. The reactive (imaginery) part associated with the input impedance of a dipole is a function of its length.

Fig. 39 demonstrates the increased frequency resolution ($$\Delta f = 1.4~MHz$$) when an even longer time window (700ns) is used.

## Bowtie antenna model¶

antenna_like_MALA_1200_fs.in

This example demonstrates how to use one of the built-in antenna models in a simulation. Using a model of an antenna rather than a simple source, such as a Hertzian dipole, can improve the accuracy of the results of a simulation for many situations. It is especially important when the target is in the near-field of the antenna and there are complex interactions between the antenna and the environment. The simulation uses the model of an antenna similar to a MALA 1.2GHz antenna.

 1 2 3 4 5 6 7 8 9 #title: MALA 1.2GHz 'like' antenna in free-space #domain: 0.264 0.189 0.220 #dx_dy_dz: 0.001 0.001 0.001 #time_window: 6e-9 #python: from user_libs.antennas.MALA import antenna_like_MALA_1200 antenna_like_MALA_1200(0.132, 0.095, 0.100, 0.001) #end_python: 

The antenna model is loaded from a Python module and inserted into the input file just like another geometry command. The arguments for the antenna_like_MALA_1200 function specify its (x, y, z) location as 0.132m, 0.095m, 0.100m using a 1mm spatial resolution. In this example the antenna is the only object in the model, i.e. the antenna is in free space. More information on using the built-in antenna models can be found in the Python section.

### Results¶

When the simulation is run two geometry files for the antenna are produced along with an output file which contains a single receiver (the antenna output). You can view the results (see Output data and tools sections) using the command:

python -m tools.plot_Ascan user_models/antenna_like_MALA_1200_fs.out --outputs Ey


Fig. 41 shows the time history of the y-component of the electric field from the receiver bowtie of the antenna model (the antenna bowties are aligned with the y axis).

## B-scan with a bowtie antenna model¶

cylinder_Bscan_GSSI_1500.in

This example demonstrates how to create a B-scan with an antenna model. The scenario is purposely simple to illustrate the method. A metal cylinder of diameter 20mm is buried in a dielectric half-space which has a relative permittivity of six. The simulation uses the model of an antenna similar to a GSSI 1.5GHz antenna.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #title: B-scan from a metal cylinder buried in a dielectric half-space with a GSSI 1.5GHz 'like' antenna #domain: 0.480 0.148 0.235 #dx_dy_dz: 0.001 0.001 0.001 #time_window: 6e-9 #material: 6 0 1 0 half_space #box: 0 0 0 0.480 0.148 0.170 half_space #cylinder: 0.240 0 0.080 0.240 0.148 0.080 0.010 pec #python: from user_libs.antennas.GSSI import antenna_like_GSSI_1500 antenna_like_GSSI_1500(0.105 + current_model_run * 0.005, 0.074, 0.170, 0.001) #end_python: geometry_view: 0 0 0 0.480 0.148 0.235 0.001 0.001 0.001 cylinder_GSSI_1500 n 

The antenna must be moved to a new position for every single A-scan (trace) in the B-scan. In this example the B-scan distance will be 270mm with a trace every 5mm, so 54 model runs will be required.

python -m gprMax cylinder_Bscan_GSSI_1500.in -n 54


The total number of runs for a model as well as the number of the current run of the model are stored and can be accessed in Python as number_model_runs and current_model_run. The current_model_run can be used to move the position of the antenna for every run of the model as shown in Line 13. The antenna will be moved 5mm in the x direction for every new run of the model.

Note

If you are moving an antenna model within a simulation, e.g. to generate a B-scan, you should ensure that the step size you choose is a multiple of the spatial resolution of the simulation. Otherwise when the position of antenna is converted to cell coordinates the geometry maybe altered.

### Results¶

After merging the A-scans into a single file you can now view an image of the B-scan using the command see Output data and tools sections:

python -m tools.plot_Bscan user_models/cylinder_Bscan_GSSI_1500_merged.out Ey


Fig. 43 shows the B-scan (of the Ey field component). The initial part of the signal (~1-2 ns) represents the direct wave from transmitter to receiver. Then comes a hyperbolic response from the metal cylinder.