## Thursday, 10 April 2008

### Microwave example with FreeFEM++

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)

## Saturday, 23 February 2008

### FInite Element Method overview

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

but first you need to define:

- the boundary conditions which will helps to resolve the unknown element of the differential solution.
- 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)

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

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):**

- Ansoft HFSS

And available source:

- GetFEM lib (LGPL) http://home.gna.org/getfem/getfem_intro.html for FEM also allows Matlab interface
- lib of “fenic project”. http://www.fenics.org/wiki/FEniCS_Project
- Freefem3D (GPL) http://www.freefem.org/
- Salome (LGPL) + code_aster (GPL)http://www.salome-platform.org/home/presentation/overview/ and http://www.code-aster.org
- Openfem (LGPL) http://www-rocq.inria.fr/OpenFEM/Old/index.html
- FELT (GPL) http://felt.sourceforge.net/

- **Finite Difference Time Domain (FDTD)**:

Commercially use by:

- CST Microwave Studio (3D)

And available source:

- MEEP- C++ lib (GPL) of: http://ab-initio.mit.edu/wiki/index.php/Meep A well documented package of MIT with no graphical interface.

**Method of Moments (MoM):**

Commercially use by:

- Ansoft Designer (2.5D),
- some NEC based programs

- C++ lib (GPL) of: NEC http://www.physics.otago.ac.nz/px/research/electronics/open-source-code/nec2/ note: NEC code does not include planar circuit computation.

- **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:

- Mumps package: http://mumps.enseeiht.fr/. public domain. Packaging could be difficult.

other solver

- SUPER LU (BSD) including MPI http://crd.lbl.gov/~xiaoye/SuperLU/
- UMFPACK (mono)http://www.cise.ufl.edu/research/sparse/umfpack/

**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...