Thursday, 10 April 2008

Microwave example with FreeFEM++

FreeFEM++ is a very good Finite Element Method (FEM) engine program which can solve Poisson or Helmholtz equation

One example with microwave is they ex 3.11 of their doc. it is solving Helmholtz equation, or should I say a particular case of the Helmhotz equations.
They also use the program to solve the thermal dissipation inside the box.(quite clever)
As concern the microwave case I try to figure out how they interpreted the Helmholtz equation and the simplifications... Above image: Tested example FreeFEM++ 3.11 of the doc(page45-46) run on windows.

Saturday, 23 February 2008

FInite Element Method overview

Since FEM is well documented and quite popular I will start to build my work around it.

The FEM can be used to calculate the field inside a space.

but first you need to define:
  1. the boundary conditions which will helps to resolve the unknown element of the differential solution.
  2. the mesh structure (or sometimes called triangulation) of studied surface or volume.(Series of triangle for 2D meshing or series of tetrahehra or pyranids for 3D meshing)
Once the mesh and the boundary conditions are defined you can solve the partial differential equation(PDE) using Finite Element Method (FEM) in order calculate the fields of the studied surface or volume.

To program it you will need to find a proper way to create the mesh...
freeFEM++ or getFEM libs can do most of the work for you, but first we need to understand how they program is working....

Wednesday, 20 February 2008

Open source EM simulator, a difficult task

Ideally the open source software QUCS should integrate an Electromagnetic Simulator to be complete.
But the task is not as easy as it seems by just putting available open source libraries to the Qucs platform.

I described below the main directions to start such an project.

1) The core of the EM simulator /the EM engine(s)

The core of EM simulator is separate from the rest of the QUCS program

For more stability one task one program is better.

The core engine should work on the Maxwell's equation using appropriate methods.

The most general methods are FEM and FDTD, then MoMs and TLM ...

And the use of the correct method is depending of the problem to solve.

Here is a list of main methods used for EM simulator and their possible simulators:

- Finite Element Method (FEM):


Commercially use by:

  • Ansoft HFSS

And available source:


- Finite Difference Time Domain (FDTD):

Commercially use by:

  • CST Microwave Studio (3D)

And available source:

Method of Moments (MoM):

Commercially use by:

  • Ansoft Designer (2.5D),
  • some NEC based programs
And available source:

- Eigenmode solvers:

Commercially use by:

  • CST Microwave Studio
  • Ansoft HFSS
- Finite Integration method:

Commercially use by:

  • MAFIA

- Transmission Line Matrix:

Available source:

  • yatpac(open source) C++ lib (GPL) (www.yatpac.org) Good for EM simulation at microstrip line level.



2) Parallel computing or distributed computing.

Available source:

other solver


3) Management tools

“git” may be good but I don't know any repository servers which use it.

so SVN would be a more popular choice (like on sourceforge).


4) Compiler related

For the core autoconf/automake seems to be the way to do it.

Cmake may also be an option.


5) The Graphical interface

to be with QT (qt3 or qt4)

Could use the openGL lib of QT or mesa library (http://www.mesa3d.org/ )

Also We could use something like “paraview” http://www.paraview.org/New/index.html for the graphic in 3D, which also has QT support.


6) Conclusion

My first conclusion would be to start on GetFEM or MEEP to understand well their possibilities and limits.
Then as EM simulator are deeply link to space geometry we will need to integrate it with an openGL interface.

I will try to update this link along the way.
Thanks
and long live QUCS...