Revolutionizing the Way Data Moves Through Space with Ansys Simulation – Webinar

Ever since NASA began its race to space, U.S. technology companies have searched for solutions to solve a variety of challenges designed to push us further in our exploration of the stars. Whether the purpose is for space travel or for launching satellites that track weather patterns, space innovation is gaining momentum. One of the most critical challenges we are trying to solve is how to optimize communication with moving spacecrafts. Tucson Arizona’s FreeFall Aerospace has an answer; developing unique antenna systems for both space and ground use.

When working to develop this technology, FreeFall ran into a number of roadblocks due to limitations in its engineering software tool-set. The company was able to bypass these hurdles and successfully optimize development thanks to the introduction of Ansys HFSS, a specialized 3D electromagnetic software used for designing and simulating high-frequency electronic products such as antennas, antenna arrays, RF/microwave components, and much more. Because of the speed of this tool and its ability to solve multiple simulation challenges in different domains, FreeFall is able to make design changes more quickly and with better data.

Join PADT’s Lead Electromagnetics Engineer Michael Griesi and President of FreeFall, Doug Stetson for a discussion on Ansys electromagnetics offerings, and how FreeFall is able to take advantage of them for their unique application.

Register Here

If this is your first time registering for one of our Bright Talk webinars, simply click the link and fill out the attached form. We promise that the information you provide will only be shared with those promoting the event (PADT).

You will only have to do this once! For all future webinars, you can simply click the link, add the reminder to your calendar and you’re good to go!

Efficient and Accurate Simulation of Antenna Arrays in Ansys HFSS

Unit-cell in HFSS

HFSS offers different method of creating and simulating a large array. The explicit method, shown in Figure 1(a) might be the first method that comes to our mind. This is where you create the exact CAD of the array and solve it. While this is the most accurate method of simulating an array, it is computationally extensive. This method may be non-feasible for the initial design of a large array. The use of unit cell (Figure 1(b)) and array theory helps us to start with an estimate of the array performance by a few assumptions. Finite Array Domain Decomposition (or FADDM) takes advantage of unit cell simplicity and creates a full model using the meshing information generated in a unit cell. In this blog we will review the creation of unit cell. In the next blog we will explain how a unit cell can be used to simulate a large array and FADDM.

Fig. 1 (a) Explicit Array
Fig. 1 (b) Unit Cell
Fig. 1 (c) Finite Array Domain Decomposition (FADDM)

In a unit cell, the following assumptions are made:

  • The pattern of each element is identical.
  • The array is uniformly excited in amplitude, but not necessarily in phase.
  • Edge affects and mutual coupling are ignored
Fig. 2 An array consisting of elements amplitude and phases can be estimated with array theory, assuming all elements have the same amplitude and element radiation patterns. In unit cell simulation it is assumed all magnitudes (An’s) are equal (A) and the far field of each single element is equal.

A unit cell works based on Master/Slave (or Primary/Secondary) boundary around the cell. Master/Slave boundaries are always paired. In a rectangular cell you may use the new Lattice Pair boundary that is introduced in Ansys HFSS 2020R1. These boundaries are means of simulating an infinite array and estimating the performance of a relatively large arrays. The use of unit cell reduces the required RAM and solve time.

Primary/Secondary (Master/Slave) (or P/S) boundaries can be combined with Floquet port, radiation or PML boundary to be used in an infinite array or large array setting, as shown in Figure 3.

Fig. 3 Unit cell can be terminated with (a) radiation boundary, (b) Floquet port, (c) PML boundary, or combination of them.

To create a unit cell with P/S boundary, first start with a single element with the exact dimensions of the cell. The next step is creating a vacuum or airbox around the cell. For this step, set the padding in the location of P/S boundary to zero. For example, Figure 4 shows a microstrip patch antenna that we intend to create a 2D array based on this model. The array is placed on the XY plane. An air box is created around the unit cell with zero padding in X and Y directions.

Fig. 4 (a) A unit cell starts with a single element with the exact dimensions as it appears in the lattice
Fig. 4 (b) A vacuum box is added around it

You notice that in this example the vacuum box is larger than usual size of quarter wavelength that is usually used in creating a vacuum region around the antenna. We will get to calculation of this size in a bit, for now let’s just assign a value or parameter to it, as it will be determined later. The next step is to define P/S to generate the lattice. In AEDT 2020R1 this boundary is under “Coupled” boundary. There are two methods to create P/S: (1) Lattice Pair, (2) Primary/Secondary boundary.

Lattice Pair

The Lattice Pair works best for square lattices. It automatically assigns the primary and secondary boundaries. To assign a lattice pair boundary select the two sides that are supposed to create infinite periodic cells, right-click->Assign Boundary->Coupled->Lattice Pair, choose a name and enter the scan angles. Note that scan angles can be assigned as parameters. This feature that is introduced in 2020R1 does not require the user to define the UV directions, they are automatically assigned.

Fig. 5 The lattice pair assignment (a) select two lattice walls
Fig. 5 (b) Assign the lattice pair boundary
Fig. 5 (c) After, right-click and choosing assign boundary > choose Lattice Pair
Fig. 5 (d) Phi and Theta scan angles can be assigned as parameters


Primary/Secondary boundary is the same as what used to be called Master/Slave boundary. In this case, each Secondary (Slave) boundary should be assigned following a Primary (Master) boundary UV directions. First choose the side of the cell that Primary boundary. Right-click->Assign Boundary->Coupled->Primary. In Primary Boundary window define U vector. Next select the secondary wall, right-click->Assign Boundary->Couple->Secondary, choose the Primary Boundary and define U vector exactly in the same direction as the Primary, add the scan angles (the same as Primary scan angles)

Fig. 6 Primary and secondary boundaries highlights.

Floquet Port and Modes Calculator

Floquet port excites and terminates waves propagating down the unit cell. They are similar to waveguide modes. Floquet port is always linked to P/S boundaries. Set of TE and TM modes travel inside the cell. However, keep in mind that the number of modes that are absorbed by the Floquet port are determined by the user. All the other modes are short-circuited back into the model. To assign a Floquet port two major steps should be taken:

Defining Floquet Port

Select the face of the cell that you like to assign the Floquet port. This is determined by the location of P/S boundary. The lattice vectors A and B directions are defined by the direction of lattice (Figure 7).

Fig. 7 Floquet port on top of the cell is defined based on UV direction of P/S pairs

The number of modes to be included are defined with the help of Modes Calculator. In the Mode Setup tab of the Floquet Port window, choose a high number of modes (e.g. 20) and click on Modes Calculator. The Mode Table Calculator will request your input of Frequency and Scan Angles. After selecting those, a table of modes and their attenuation using dB/length units are created. This is your guide in selecting the height of the unit cell and vaccume box. The attenation multiplied by the height of the unit cell (in the project units, defined in Modeler->Units) should be large enough to make sure the modes are attenuated enough so removing them from the calcuatlion does not cause errors. If the unit cell is too short, then you will see many modes are not attenuated enough. The product of the attenuatin and height of the airbox should be at least 50 dB. After the correct size for the airbox is calcualted and entered, the model with high attenuation can be removed from the Floquet port definition.

The 3D Refinement tab is used to control the inclusion of the modes in the 3D refinement of the mesh. It is recommended not to select them for the antenna arrays.

Fig. 8 (Left) Determining the scan angles for the unit cell, (Right) Modes Calculator showing the Attenuation

In our example, Figure 8 shows that the 5th mode has an attenuation of 2.59dB/length. The height of the airbox is around 19.5mm, providing 19.5mm*2.59dB/mm=50.505dB attenuation for the 5th mode. Therefore, only the first 4 modes are kept for the calculations. If the height of the airbox was less than 19.5mm, we would need to increase the height so accordingly for an attenuation of at least 50dB.

Radiation Boundary

A simpler alternative for Floquet port is radiation boundary. It is important to note that the size of the airbox should still be kept around the same size that was calculated for the Floquet port, therefore, higher order modes sufficiently attenuated. In this case the traditional quarter wavelength padding might not be adequate.

Fig. 9 Radiation boundary on top of the unit cell

Perfectly Matched Layer

Although using radiation boundary is much simpler than Floquet port, it is not accurate for large scan angles. It can be a good alternative to Floquet port only if the beam scanning is limited to small angles. Another alternative to Floquet port is to cover the cell by a layer of PML. This is a good compromise and provides very similar results to Floquet port models. However, the P/S boundary need to surround the PML layer as well, which means a few additional steps are required. Here is how you can do it:

  1. Reduce the size of the airbox* slightly, so after adding the PML layer, the unit cell height is the same as the one that was generated using the Modes Calculation. (For example, in our model airbox height was 19mm+substrte thickness, the PML height was 3mm, so we reduced the airbox height to 16mm).
  2. Choose the top face and add PML boundary.
  3. Select each side of the airbox and create an object from that face (Figure 10).
  4. Select each side of the PML and create objects from those faces (Figure 10).
  5. Select the two faces that are on the same plane from the faces created from airbox and PML and unite them to create a side wall (Figure 10).
  6. Then assign P/S boundary to each pair of walls (Figure 10).

*Please note for this method, an auto-size “region” cannot be used, instead draw a box for air/vacuum box. The region does not let you create the faces you need to combine with PML faces.

Fig. 10 Selecting two faces created from airbox and PML and uniting them to assign P/S boundaries

The advantage of PML termination over Floquet port is that it is simpler and sometimes faster calculation. The advantage over Radiation Boundary termination is that it provides accurate results for large scan angles. For better accuracy the mesh for the PML region can be defined as length based.

Seed the Mesh

To improve the accuracy of the PML model further, an option is to use length-based mesh. To do this select the PML box, from the project tree in Project Manager window right-click on Mesh->Assign Mesh Operation->On Selection->Length Based. Select a length smaller than lambda/10.

Fig. 11 Using element length-based mesh refinement can improve the accuracy of PML design

Scanning the Angle

In phased array simulation, we are mostly interested in the performance of the unit cell and array at different scan angles. To add the scanning option, the phase of P/S boundary should be defined by project or design parameters. The parameters can be used to run a parametric sweep, like the one shown in Figure 12. In this example the theta angle is scanned from 0 to 60 degrees.

Fig. 12 Using a parametric sweep, the scanned patterns can be generated

Comparing PML and Floquet Port with Radiation Boundary

To see the accuracy of the radiation boundary vs. PML and Floquet Port, I ran the simulations for scan angles up to 60 degrees for a single element patch antenna. Figure 13 shows that the accuracy of the Radiation boundary drops after around 15 degrees scanning. However, PML and Floquet port show similar performance.

Fig. 13 Comparison of radiation patterns using PML (red), Floquet Port (blue), and Radiation boundary (orange).

S Parameters

To compare the accuracy, we can also check the S parameters. Figure 14 shows the comparison of active S at port 1 for PML and Floquet port models. Active S parameters were used since the unit cell antenna has two ports. Figure 15 shows how S parameters compare for the model with the radiation boundary and the one with the Floquet port.

Fig. 14 Active S parameter comparison for different scan angles, PML vs. Floquet Port model.
Fig. 15 Active S parameter comparison for different scan angles, Radiation Boundary vs. Floquet Port model.


The unit cell definition and options on terminating the cell were discussed here. Stay tuned. In the next blog we discuss how the unit cell is utilized in modeling antenna arrays.

Defining Antenna Array Excitations with Nested-If Statements in HFSS

HFSS offers various methods to define array excitations. For a large array, you may take advantage of an option “Load from File” to load the magnitude and phase of each port. However, in many situations you may have specific cases of array excitation. For example, changing amplitude tapering or the phase variations that happens due to frequency change. In this blog we will look at using the “Edit Sources” method to change the magnitude and phase of each excitation. There are cases that might not be easily automated using a parametric sweep. If the array is relatively small and there are not many individual cases to examine you may set up the cases using “array parameters” and “nested-if”.

In the following example, I used nested-if statements to parameterize the excitations of the pre-built example “planar_flare_dipole_array”, which can be found by choosing File->Open Examples->HFSS->Antennas (Fig. 1) so you can follow along. The file was then saved as “planar_flare_dipole_array_if”. Then one project was copied to create two examples (Phase Variations, Amplitude Variations).

Fig. 1. Planar_flare_dipole_array with 5 antenna elements (HFSS pre-built example).

Phase Variation for Selected Frequencies

In this example, I assumed there were three different frequencies that each had a set of coefficients for the phase shift. Therefore, three array parameters were created. Each array parameter has 5 elements, because the array has 5 excitations:

A1: [0, 0, 0, 0, 0]

A2: [0, 1, 2, 3, 4]

A3: [0, 2, 4, 6, 8]

Then 5 coefficients were created using a nested_if statement. “Freq” is one of built-in HFSS variables that refers to frequency. The simulation was setup for a discrete sweep of 3 frequencies (1.8, 1.9 and 2.0 GHz) (Fig. 2). The coefficients were defined as (Fig. 3):

E1: if(Freq==1.8GHz,A1[0],if(Freq==1.9GHz,A2[0],if(Freq==2.0GHz,A3[0],0)))

E2: if(Freq==1.8GHz,A1[1],if(Freq==1.9GHz,A2[1],if(Freq==2.0GHz,A3[1],0)))

E3: if(Freq==1.8GHz,A1[2],if(Freq==1.9GHz,A2[2],if(Freq==2.0GHz,A3[2],0)))

E4: if(Freq==1.8GHz,A1[3],if(Freq==1.9GHz,A2[3],if(Freq==2.0GHz,A3[3],0)))

E5: if(Freq==1.8GHz,A1[4],if(Freq==1.9GHz,A2[4],if(Freq==2.0GHz,A3[4],0)))

Please note that the last case is the default, so if frequency is none of the three frequencies that were given in the nested-if, the default phase coefficient is chosen (“0” in this case).

Fig. 2. Analysis Setup.

Fig. 3. Parameters definition for phase varaitioin case.

By selecting the menu item HFSS ->Fields->Edit Sources, I defined E1-E5 as coefficients for the phase shift. Note that phase_shift is a variable defined to control the phase, and E1-E5 are meant to be coefficients (Fig. 4):

Fig. 4. Edit sources using the defined variables.

The radiation pattern can now be plotted at each frequency for the phase shifts that were defined (A1 for 1.8 GHz, A2 for 1.9 GHz and A3 for 2.0 GHz) (Figs 5-6):

 Fig. 5. Settings for radiation pattern plots.

Fig. 6. Radiation patten for phi=90 degrees and different frequencies, the variation of phase shifts shows how the main beam has shifted for each frequency.

Amplitude Variation for Selected Cases

In the second example I created three cases that were controlled using the variable “CN”. CN is simply the case number with no units.

The variable definition was similar to the first case. I defined 3 array parameters and 5 coefficients. This time the coefficients were used for the Magnitude. The variable in the nested-if was CN. That means 3 cases and a default case were created. The default coefficient here was chosen as “1” (Figs. 7-8).

A1: [1, 1.5, 2, 1.5, 1]

A2: [1, 1, 1, 1, 1]

A3: [2, 1, 0, 1, 2]

E1: if(CN==1,A1[0],if(CN==2,A2[0],if(CN==3,A3[0],1)))*1W

E2: if(CN==1,A1[1],if(CN==2,A2[1],if(CN==3,A3[1],1)))*1W

E3: if(CN==1,A1[2],if(CN==2,A2[2],if(CN==3,A3[2],1)))*1W

E4: if(CN==1,A1[3],if(CN==2,A2[3],if(CN==3,A3[3],1)))*1W

E5: if(CN==1,A1[4],if(CN==2,A2[4],if(CN==3,A3[4],1)))*1W

Fig. 7. Parameters definition for amplitude varaitioin case.

Fig. 8. Exciation setting for amplitude variation case.

Notice that CN in the parametric definition has the value of “1”. To create the solution for all three cases I used a parametric sweep definition by selecting the menu item Optimetrics->Add->Parametric. In the Add/Edit Sweep I chose the variable “CN”, Start: 1, Stop:3, Step:1. Also, in the Options tab I chose to “Save Fields and Mesh” and “Copy geometrically equivalent meshes”, and “Solve with copied meshes only”. This selection helps not to redo the adaptive meshing as the geometry is not changed (Fig. 9). In plotting the patterns I could now choose the parameter CN and the results of plotting for CN=1, 2, and 3 is shown in Fig. 10. You can see how the tapering of amplitude has affected the side lobe level.

Fig. 9. Parameters definition for amplitude varaitioin case.

 Fig. 10. Radiation patten for phi=90 degrees and different cases of amplitude tapering, the variation of amplitude tapering has caused chagne in the beamwidth and side lobe levels.


The drawback of this method is that array parameters are not post-processing variables. This means changing them will create the need to re-run the simulations. Therefore, it is needed that all the possible cases to be defined before running the simulation.

If you would like more information or have any questions please reach out to us at

All Things ANSYS 045: Using Simulation to Disrupt the RF Antenna Industry


Published on: August 26th, 2019
With: Eric Miller & Stefan O’Dougherty

In this episode, your host and Co-Founder of PADT, Eric Miller is joined by Stefan O’Dougherty of FreeFall Moving Data to discuss the use of ANSYS simulation tools to drive the design of their unique RF antenna concept.

To learn more about FreeFall and see their product in action, click the link below and view the Wired article discussed in the interview portion of today’s episode:

If you would like to learn more about what’s available in the latest release of ANSYS HFSS check out PADT’s webinar on the subject here:

If you have any questions, comments, or would like to suggest a topic for the next episode, shoot us an email at we would love to hear from you!



“Equation Based Surface” for Conformal and Non-Planar Antenna Design

ANYSY HFSS provides many options for creating non-planar and conformal shapes. In MCAD you may use shapes such as cylinders or spheres, and with some steps, you can design you antennas on various surfaces. In some applications, it is necessary to study the effect of curvatures and shapes on the antenna performance. For example for wearable antennas it is important to study the effect of bending, crumpling and air-gap between antenna and human body.

Equation Based Surface

One of the tools that HFSS offers and can be used to do parametric sweep or optimization, is “Draw equation based surface”. This can be accessed under “Draw” “Equation Based Surface” or by using “Draw” tab and choosing it from the banner (Fig. 1)

Fig. 1. (a) Select Draw -> Equation Based Surface
Fig. 1. (b) click on the icon that is highlighted

Once this is selected the Equation Based Surface window that opens gives you options to enter the equation with the two variables (_u, _v_) to define a surface. Each point of the surface can be a function of (_u,_v). The range of (_u, _v) will also be determined in this window. The types of functions that are available can be seen in “Edit Equation” window, by clicking on “…” next to X, Y or Z (Fig. 2). Alternatively, the equation can be typed inside this window. Project or Design Variables can also be used or introduced here.

Fig. 2. (a) Equation Based Surface window
Fig. 2. (b) Clikc on the “…” next to X and see the “Edit Equation: window to build the equation for X

For example an elliptical cylinder along y axis can be represented by:

This equation can be entered as shown in Fig. 3.

Fig. 3. Elliptical surface equation

Variation of this equation can be obtained by changing variables R1, R2, L and beta. Two examples are shown in Fig. 4.

Fig. 4. Elliptical surface equation

Application of Equation Based Surface in Conformal and Non-Planar Antennas

To make use of this function to transfer a planar design to a non-planar design of interest, the following steps can be taken:

  • Start with a planar design. Keep in mind that changing the surface shape can change the characteristics of the antenna. It is a good idea to use a parameterized model, to be able to change and optimize the dimensions after transferring the design on a non-planar surface. As an example we started with a planar meandered line antenna that works around 700MHz, as shown in Fig. 5. The model is excited by a wave port. Since the cylindrical surface will be built around y-axis, the model is transferred to a height to allow the substrate surface to be made (Fig 5. b)
Fig. 5. Planar meandered antenna (a) on xy plane, (b) moved to a height of 5cm
  • Next, using equation based surface, create the desired shape and with the same length as the planar substrate. Make sure that the original deisgn is at a higher location. Select the non-planar surface. Use Modeler->Surface->Thicken Sheet … and thicken the surface with the substrate thickenss. Alternatively, by choosing “Draw” tab, one can expand the Sheet dropdown menu and choose Thicken Sheet. Now select the sheet, change the material to the substrate material.
Fig. 6. Thicken the equation based surface to generate the substrate
  • At this point you are ready to transfer the antenna design to the curved surface. Select both traces of the antenna and the curved substrate (as shown in Fig. 7). Then use Modeler->Surface->Project Sheet…, this will transfer the traces to the curved surface. Please note that the original substrate is still remaining. You need not delete it.
Fig. 7. Steps for transferring the design to the curved surface (a)

Fig. 7. Steps for transferring the design to the curved surface (b)

Fig. 7. Steps for transferring the design to the curved surface (c)
  • Next step is to generate the ground plane and move the wave port. In our example design we have a partial ground plane. For ground plane surface we use the same method to generate an equation based surface. Please keep in mind that the Z coordinate of this surface should be the same as substrate minus the thickness of the substrate. (If you thickened the substrate surface to both sides, this should be the height of substrate minus half of the substrate thickness). Once this sheet is generate assign a Perfect E or Finite Conductivity Boundary (by selecting the surface, right click and Assign Boundary). Delete the old planar ground plane.
Fig. 8. Non-planar meandered antenna with non-planar ground

Wave Port Placement using Equation Based Curve

A new wave port can be defined by the following steps:

  • Delete the old port.
  • Use Draw->Equation Based Curve. Mimicking the equation used for ground plane (Fig. 9).
Fig. 9. Use Equation Based Curve to start a new wave port (a) Equation Based Curve definition window (b) wave pot terminal created using equation based curve and sweep along vector
  • Select the line from the Model tree, select Draw->Sweep->Along Vector. Draw a vector in the direction of port height. Then by selecting the SweepAlongVector from Model tree and double clicking, the window allows you to set the correct size of port height and vector start point (Fig. 10).
  • Assign wave port to this new surface.
Fig. 10. Sweep along vector to create the new wave port location

Similar method can be used to generate (sin)^n or (cos)^n surfaces. Some examples are shown in Fig. 11. Fig. 11 (a) shows how the surface was defined.

Fig. 11. (a) Equation based surface definition using “cos” function, (b), (c), & (d) three different surfaces generated by this equation based surface.

Effect of Curvature on Antenna Matching

Bending a substrate can change the transmission line and antenna impedance. By using equation based port the change in transmission line impedance effect is removed. However, the overall radiation surface is also changed that will have effects on S11. The results of S11 for the planar design, cylindrical design (Fig. 8), cos (Fig. 11 b), and cos^3 (Fig. 11 c) designs are shown in Fig. 12. If it is of interest to include the change in the transmission line impedance, the port should be kept in a rectangular shape.

Fig. 12. Effect of curvature on the resonance frequency.

Equation based curves and surfaces can take a bit of time to get used to but with a little practice these methods can really open the door to some sophisticated geometry. It is also interesting to see how much the geometry can impact a simple antenna design, especially with today’s growing popularity in flex circuitry. Be sure to check out this related webinar  that touches on the impact of packaging antennas as well. If you would like more information on how these tools may be able to help you and your design, please let us know at

You can also click here to download a copy of this example.

How to Accelerate & Simplify your Antenna Impedance Matching Network Design – Webinar

Don’t miss this informative presentation – Secure your spot today!
Register Here

If this is your first time registering for one of our Bright Talk webinars, simply click the link and fill out the attached form. We promise that the information you provide will only be shared with those promoting the event (PADT).

You will only have to do this once! For all future webinars, you can simply click the link, add the reminder to your calendar and you’re good to go!