## Corrugated Horn Antenna Tutorial for openEMS

How to use openEMS. Discussion on examples, tutorials etc

Moderator: thorsten

PaulUK
Posts: 81
Joined: Wed 28 Oct 2015, 14:23

### Corrugated Horn Antenna Tutorial for openEMS

I have written a tutorial called, A Comprehensive Corrugated Horn Generator and Simulation with openEMS. It is based on the article "Design of Corrugated Horns: A Primer" that appeared in the IEEE Antennas and Propagation Magazine in 2005 and can be found on the internet. References included in the document.

The tutorial describes the generation of various mode converters and horn profiles with options to choose any of them from within the script. The complete simulation setup is described in (hopefully) enough detail to be useful to simulate other types of horn antenna.

The script will plot the S11 reflection of the horn and a number of farfield plots, including cross polarization and 3D plots. The E-field is plot on two orthogonal planes. Best of all is a plot showing the phi=45 degree farfield along with equivalent simulation results from CST and HFSS and the results are extremely close to one another.

The simulation can take quite a long time to run, so reduce the mesh to 15 cells per wavelength if you are in a hurry. I could not get symmetry planes to work properly yet, but if I do, this would be an ideal example for their use. If anyone has had success using PEC and PMC symmetry planes, please let me know. I hope that you will find this tutorial useful.

Edit: I made a minor addition to the tutorial pdf, adding an alternative way to calculate the horn geometry, see last page of the document.

Latest update 16th August 2020, minor typos corrected.
Comparison of results between openEMS, CST and HFSS
Hyperbolic Corrugated Horn Comparison CST HFSS.png (46.45 KiB) Viewed 12238 times
Attachments
Corrugated Horn openEMS Tutorial.zip
Corrugated Horn openEMS Tutorial 16_08_2020
3D Farfield with Horn
Horn.png (292.78 KiB) Viewed 12237 times
Last edited by PaulUK on Sun 16 Aug 2020, 20:33, edited 1 time in total.

wettersat
Posts: 9
Joined: Fri 05 Jun 2020, 12:25
Contact:

### Re: Corrugated Horn Antenna Tutorial for openEMS

Paul, thanks for this helpful tutorial.

I am a little confused. Is the definition of the mesh.x really correct?

BC = {'PML_8' 'PML_8' 'PML_8' 'PML_8' 'PML_8' 'PML_8'}; % boundary conditions
FDTD = SetBoundaryCond(FDTD, BC);

% Calculate lambda/4 at lowest frequency to use as distance to nf2ff surfaces
lambda_max = c0/f_start/unit/4;

% Create fixed lines for the simulation box, structure and port

or should the "9" be inside the brackets because we speak about 9 cells/layer for MPL_8 and not about 9 mm.
Gerald, OE2IGL
http://wettersat.bplaced.net

PaulUK
Posts: 81
Joined: Wed 28 Oct 2015, 14:23

### Re: Corrugated Horn Antenna Tutorial for openEMS

Thanks for pointing this out. It may be that the 9 can be left out all together, but I will check this once I get some time and get the computer set up again (I'm setting up after moving at the moment).

It may well be an error but if so, it should have no impact on the meshing where it's important. If so I will correct and repost the file.

Thank you,
Paul

Hale_812
Posts: 173
Joined: Fri 13 May 2016, 02:54

### Re: Corrugated Horn Antenna Tutorial for openEMS

I think, adding PML after the model and mesh is generated is a correct way. Calculating pml during mesh generation always creates troubles.

I prefer making a model first, with an array of important structural nodes.
Optimize the nodelist by removing duplicate nodes, and coordinate points within minimal threshold.
For this I create envelope functions of basic object functions, making both steps in one call.

Then synthesize a smoothed mesh basing on those nodes.
Optimize the mesh by removing really excessive coordinate points.

... This logic worked for me many times when examining big horn pulse shooting problems, secondary arrays (especially with many nonuniform elements) and RCS/scattering problems.

//It would be great if basic object functions export these node coordinates upon geometry CSX generation for using in the mesh automatically, without figuring each vertice on your own. I mean, it is easy to get vertices of simple box. But when you apply a translation/rotation, it requires unnecessary bloated code.

PaulUK
Posts: 81
Joined: Wed 28 Oct 2015, 14:23

### Re: Corrugated Horn Antenna Tutorial for openEMS

wettersat wrote:
Mon 15 Jun 2020, 16:55

or should the "9" be inside the brackets because we speak about 9 cells/layer for MPL_8 and not about 9 mm.
Hello Gerald,
I had a look at this and yes, the "9" would have been distance rather than mesh lines. However, as luck would have it the max_res was just over 1mm for 20 cells/wavelength so 9 cells are approximately 9mm in this particular case and is probably why I missed it. I have corrected the document and script and added 9*max_res in positive and negative x axis and in the z axis. This is not critical for this type of antenna but I stick to the rule of thumb anyway. I will replace the files in this thread soon if no other issues are found and when I do I will make a note of the change in the posting.

wettersat
Posts: 9
Joined: Fri 05 Jun 2020, 12:25
Contact:

### Re: Corrugated Horn Antenna Tutorial for openEMS

Hello Paul
Thanks, then it is clear.

I found a typo in the middle of page 36.
"-wgl-10 is the location" -> -wgl+10
Here it is correct mesh.z = [-wgl-lambda_max-9 -wgl-1 -wgl -wgl+10 0 len(1:2:z_number) length+2*lambda_max+9
];
Gerald, OE2IGL
http://wettersat.bplaced.net

PaulUK
Posts: 81
Joined: Wed 28 Oct 2015, 14:23

### Re: Corrugated Horn Antenna Tutorial for openEMS

wettersat wrote:
Thu 18 Jun 2020, 15:35
Hello Paul
Thanks, then it is clear.

I found a typo in the middle of page 36.
"-wgl-10 is the location" -> -wgl+10
Here it is correct mesh.z = [-wgl-lambda_max-9 -wgl-1 -wgl -wgl+10 0 len(1:2:z_number) length+2*lambda_max+9
];
It is indeed +10 not -10. Thank you for pointing that out. That's another one to correct.