| |
Computational
electromagnetics
Updated July 12,
2007
Click here
to go to our main computer-aided design page
Click here
to go to our EM analysis software page
Computational electromagnetics
(CEM)
Maxwell's Equations are the basis
of all electromagnetics (see Mr. Maxwell in our Microwave
Hall of Fame!) The propagation of all electromagnetic radiation,
from hard X-rays to ultra-low frequency radio waves, is governed
by this system of equations. Most electrical engineers learn just
enough theoretical electromagnetics to realize that they never,
ever want to solve E&M problems analytically. In practice, analytical
and semi-analytical solutions to Maxwell's Equations are only available
in the simplest possible cases - situations like simple striplines,
or plane waves scattering off of spheres.
The moment you move away from
the very simplest designs, analytical methods become mostly useless.
In order to predict what even a simple antenna or waveguide will
do, you almost always have to simulate.
In a world where a wafer fabrication
run takes 6 months and costs a couple of million dollars, there
is a huge incentive to be able to accurately predict the behavior
of structures without having to build and test them. This is, not
unexpectedly, big business, and there are lots of commercial codes
out there that solve Maxwell's Equations. Each code has different
capabilities and limitations; each has different strengths and weaknesses,
and choosing the right electromagnetics codes is a key step in making
your project a success.
There are several different ways
of simulating Maxwell's Equations.
The gold standard for electromagnetic modeling is 3D simulation
of the full 6-vector Maxwell's Equations. Packages that do this
tend to be very expensive, because this is a very difficult computation
to perform. This kind of computation is absolutely essential in
many situations, particularly for modeling structures that are larger
than perhaps 1/10 wavelength, where structures cannot be treated
as lumped elements. Certainly in
the regime where the structure is on the order of 1/4 wavelength
or larger, such 3D electromagnetics codes are absolutely essential.
As frequencies increase, true 3D electromagnetic simulation becomes
more and more important. Problems that contain multiple wavelengths
and need to be simulated in three dimensions can rapidly become
so computationally challenging that they take days to solve on a
modern workstation.
There are many ways to simplify
the computations used in the simulation of Maxwell's Equations.
Simplified methods, though often much faster and able to handle
much more complex structures than full 3D electromagnetic tools,
must be treated with some caution. You need to be sure that the
simplifications being applied are valid for the device you're trying
to model. If you use a tool that assumes that all of your currents
are in-plane to simulate a structure where critical current paths
are out-of-plane, your results will often be misleading - the solution
can be fully converged, but just not represent the physics of what's
really going on in your device. There's always a balance to be struck
between accuracy and speed, both in choosing algorithms and in choosing
settings for your simulation runs.
Some of the most common simplifications
that can be made include (speaking in the broadest possible terms):
- Quasi-planar - assume
that the structures are planar, in some cases with isolated exceptions
for vias. Some of these software packages are limited to infinitely
thin metal models, which have problems in predicting the losses
associated with real metal absorption. Others integrate thick
metal models to get around these issues.
- 2D - Assume that structures
are translationally invariant in one dimension. This greatly simplifies
computations, but is rarely a valid assumption for designing real
devices. However, using 2D simulators is often a powerful way
to develop intuition quickly for how a system behaves and to understand
trends, even if the specific numbers that come out are not always
relevant.
- Physical optics/shooting
and bouncing rays/ray tracing - In the regime where the structures
are substantially larger than the wavelength of the radiation
that's being bounced off of them, methods that use these approaches
are often very advantageous. These methods generally fail to account
for phase and diffraction effects, and are often incapable of
dealing with resonances within the structures being modeled.
- Poisson's equation
- Solve for quasi-static, low-frequency behavior of electromagnetic
systems. This is often an excellent approximation in the regime
where the entire device being designed is less than 1/10 of a
wavelength at the frequency of interest - provided of course that
the structure does not have a long internal path length, such
as a spiral inductor.
- 3D electromagnetics
- The gold standard for finding solutions to Maxwell's Equations.
Because of the complexity of this type of calculation, these simulations
can be quite slow. Also, they are often limited in the complexity
of the structures that can be simulated, because a dense grid
of points is usually necessary for accurate results. Methods include
finite difference, finite element, boundary element, method of
moments, and several others. Different methods are best adapted
for different situations.
Computational methods and packages
for 3D solution of Maxwell's equations
Maxwell's Equations are a linear
system. A lot of work has gone into coming up with clever ways to
solve large linear systems using computers. The different methods
for simulating Maxwell's Equations basically boil down to different
ways of looking at the mathematics of representing this system of
linear equations on a computer.
In general, computational methods
are divided into explicit and implicit methods. Implicit methods
are ones where a linear system representing the problem domain is
directly solved through an iterative method. The most common methods
of this class will give solutions in the frequency domain, and the
solutions are refined by increasing mesh density for better accuracy.
As the mesh becomes denser, the solution becomes better and better;
in the limit as the mesh becomes infinitely dense, the solution
should converge to a perfect solution of Maxwell's Equations.
Because implicit methods depend
on inverting a matrix, they generally are limited in terms of the
size of the domains they can solve by available memory on your computer
- for instance, 3D finite element packages are usually limited to
solving problems with less than ½ million grid points on
a modern personal computer. When you consider that you want at least
15 grid points per wavelength (and often far more) in most cases
for reasonable accuracy, and that 500,000 grid points evenly distributed
in three dimensions only gives about 80 points on a side of a box,
you realize that these methods have sharp limitations for multi-wavelength
problems. With finite-element methods this is somewhat alleviated
by the fact that the grid can conform to structures, but the grid
still needs a minimum density of points to represent the radiation
and the structures.
One of the most popular computational
methods for solving problems too large to handle in finite element
packages is FDTD (finite difference time domain), which gets around
having to invert a large linear system by instead mimicking Maxwell's
Equations in the time domain. By implementing a uniform mesh, the
overhead associated with storing the location of each point is eliminated
(though there are conformal FDTD methods that try to split the difference),
allowing order-of-magnitude increases in the size of domains that
can be solved, compared to finite-element approaches. The cost for
this is that FDTD methods are far harder to use than finite-element
approaches - the analysis of the data to deconvolve behavior as
a function of frequency can be nontrivial, and numerical stability
is not always assured. In general, it requires a couple of years
of experience to get really reliable results out of 3D FDTD methods,
even with modern packages.
Other methods include MoM (method
of moments), which depends on a Fourier decomposition of the structures
to be simulated, and BEM (boundary element method) which uses a
surface mesh rather than a volumetric mesh.
Hardware accelerations
One of the newest trends in the
CEM community is the development of hardware-accelerated software
packages. Some vendors have implemented their core algorithms using
custom fast-programmable gate arrays, and claim speedups as a result.
Others have taken advantage of the enormous computational power
available in graphical processing units to speed up their computations.
Many vendors are offering distributed computing as an option for
their software - often this consists of simply farming out different
problems to different machines. This kind of distribution, which
is trivial to implement, must be distinguished from distributing
a single problem across many machines in order to deal with larger
domains or speed up single computations.
It is very important, in evaluating
the speed of these accelerated methods, to ensure that they work
well for the problems that you care about solving. Some vendors
will claim '100X' speedups, but when you look at the raw speed you
realize that they're 100X only in only a very narrow class of cases,
or that they are comparing against some specific academic code whose
performance is not all that good to start with. Make sure that you
understand exactly where performance claims come from and that you
are confident that the software will perform well for your specific
type of problem. After all, these codes aren't cheap, and you don't
want to get stuck explaining to your boss why you need to buy yet
another piece of CEM code, because the first one is a dog! You really
don't want the price to come out of your bonus.
Links to computational electromagnetic
analysis vendors:
Here's a list of suppliers that
have computational EM capabilities. Yikes! We never knew there were
so many CEM vendors!
http://eesof.tm.agilent.com/products/?sec=pd
www.ansoft.com
www.ansys.com
www.appwave.com
www.bay-technology.com/
www.cfdrc.com/
www.cst.com
www.emphotonics.com
www.feko.co.za/
www.integratedsoft.com/
www.lumerical.com
www.remcom.com
www.sonnetsoftware.com
www.vectorfields.com
Buying CEM software:
There are several questions you
will want to answer when selecting CEM software:
1) What problem do you want to
solve?
Different codes will cope better or worse with different kinds of
problems. If you're trying to do a simple low-speed PCB layout,
you probably don't need the newest, fastest, most expensive piece
of 3D high frequency code. If you're building complicated antenna
feed structures or trying to determine detailed radar scattering
cross sections, you probably need a high-end 3D code.
2) What codes will handle my
problem?
Generate some test problems. Pick out some problems that represent
the kinds of things you want to be able to solve, but that don't
give away any of your intellectual property. Make sure that these
problems are representative of the real complexity and scale of
the things you want to do in the future, not just right now. Expect
vendors to be willing to demonstrate that their software can handle
your problems, and not to just hand you the demo and let you flounder.
If they won't help you before your buy the software, what kind of
support can you expect afterwards? Make sure that you understand
what approximations each code is making - is it throwing away physics
that your device depends on in order to improve speed? Different
techniques make different simplifications, and not every code will
solve every problem.
3) What does it cost?
Different CEM solutions will span the space from free tools available
on the web all the way up to $100k or more for a truly powerful
3D solution. The best tools cost a lot of money; but the most expensive
tool is not necessarily the fastest or the best for you. One of
the neat things about software is that because the barrier to entry
is low, there are always young companies with the newest, fastest
thing appearing on the scene and trying to take market share away
from the big players.
4) Can I use it?
Once you pick out a tool or two that fits your budget and that seems
like it can solve your problems, do a demo. In an ideal world you
would test the code yourself, possibly with someone from the vendor
looking over your shoulder to get you running quickly. Many vendors
will have a mechanism for doing live demos on the web; this can
be a great way to learn to use a new code really quickly. See what
happens as you change the meshing settings around - do some long,
slow simulations and evaluate how close the quick-and-dirty answers
are to the ultimate accuracy of the code. Consider how fast you
want the code to run for your designs; if what you're looking at
isn't fast enough or is inaccurate for your designs, look at some
other vendors' codes. Pay attention to whether the software is stable,
and how easy it is to use. A good rule of thumb is that anything
that takes longer than overnight starts to be impractical for a
commercial project - what do you do all day if yesterday's simulation
runs aren't done yet?
5) How's the support?
Is the company responsive? Does the manual tell you the things you
need to know? Do you feel like you can rely on advice from the support
people? Do the people supporting the code care about helping you
when you run into a problem?
|
|