Responsible for this web page:
Christian Hafner, Computational
Optics Group, IEF, ETH Zurich, Switzerland
17.02.2014 (Downloads below might be newer)
Until 2013, I used the name OpenMaX, which conflicts with another popular
software, OpenMAX. In order to avoid confusion, OpenMaXwell is used since 2014.
February 14, I installed MS Visual
Studio 2010 and Intel Fortran Composer 2011. It seems that this solved many
problems that could occur especially in 64 bit versions of OpenMaXwell. Therefore, I
strongly recommend to download and use new versions. Unfortunately, this
requires an additional DLL:
This DLL should be contained in the Redistributable Libraries for the Intel
Visual Fortan Compiler for Windows, which can be downloaded from Intel:
Note that I used the complier version
11.1.070, i.e. most likely 11.1 update 7 on the Intel web site.
- Near to far field transformation: Use domain number -5 or less on
boundaries for near to far field transformation (The meaning of negative
dimain numbers is the following: -1: PEC, -2: PMC, -3: Vector potential Az
imposed, -4: scalar potential V imposed, <-4: field defined in the field
formula dialog imposed). When you load olter MaX-1 projects with near to far
field transformation bondaries with negative domain number >-5: replace the
domain number by -5 before you run the project. This bug was fixed
- 2D PFD (FDTD) for E waves with point sources did not work. This bug was
- A bug in the graphic representation of 3D objects (draw object number n
before the objects with number <n were drawn) was fixed 18.11.2009.
- A bug in the movie directive GENerate EXPansion was fixed 22.12.2009.
- A bug in the detection of eigenvalues on the border of the rough search
area was removed 16.2.2010.
- A bug in the linker directives for the 64 bit version was removed
9.3.2010. This bug slowed down the performance by a factor of 7 for large
matrices. When starting OpenMaXwell, you are no longer asked whether you want to
load an existing project. The dialog for loading existing projects is always
- Under Windows 7, the 64 bit version sometimes did not start correctly
for some unclear reason. The IVF compiler options were modified. Now, the 64
bit version should always start correctly. If not: always open the OpenGL
windows. This modification was included 22. 3. 2010 and further improved 26.
- Intel Visual Fortran Version 11.1 caused severe errors in the executable
of OpenMaXwell, especially when the 32 Bit version was running under Windows XP.
Thus, I had to go back to Intel Visual Fortran Version 11.0.
- When large lists of expansiosn were read from a file, OpenMaXwell crashed
with stack overflow. This was caused by an expansion checking routine after
reading expansions. Since I did not find a reason for the stack overflow, I
removed the expansion checking. This should not cause any problems when you
read files containing expansions that were checked before they were saved.
If you are not sure, open the Expansion dialog and navigate through all
expansions. When you change the number of the current expansion, it will be
checked and its number of parameters will be modified if needed.
- New (movie) directives: ADD ARC, ADD CIRcle, ADD LINe. Generates a 2D
boundary that has the shape of an arc, circle or line, and adds it as last
boundary. This feature was added 12.11.2009.
- New (movie) directives: ADD 3DO xxx. Generates a 3D object that hast the
shape defined by xxx (CYLinder, RECtangle, SPIral, TORus, TRIangle). This
feature was added 18.11.2009.
- Binding of the finite element mesher GMSH: Export of 2D geometry data
for GMSH (see modifications of the Boundary dialog, directive WRIte GMSh),
additional automatic 2D multipole generation based on the 2D mesh generated
by GMSH (type > 999998, directive GENerate EXPansions).
- New 2D expansion: 2D monopole for multilayer structures (Aytac
Alparslan) was added 2. 2. 2010, improved 1. 4. 2010, bugs removed 16. 4.
- Multi-parameter connections were added 9. 3. 2010 together with movie
directives for generating sets of expansions distributet along lines and
arcs. These connections may be considered as generalizations of the line,
ring, and spiral multipole expansions. they may be used for obtaining simple
2D line multipoles but also for much more advanced distributed multipole
expansions or even more general distributed expansions or distributed
- New 3D expansion: 3D dipole for multilayer structures (Aytac Alparslan)
was added 23. 3. 2010, improved 1. 4. 2010, bugs removed 16. 4. 2010.
- 2D multipoles and Bessel expansions were generalized when used in 3D
models: In addition tho the orders a degree may be defined for obtaining
different field patterns (different propagation constants) along z direction
of the expansion.This is useful for modeling periodic chains of 3D objects
with finite size. The feature was added 23. 3. 2010.
- Harmonic expansions were extended for 3D applications. Now also the type
of the z dependence may be specified. Note that this should be exp(i*kz*z),
i.e., type 3 or 0 for 2D applications. The feature was added 23. 3. 2010.
- Line, Ring, and Spiral multipoles may be used with Legendre basis
instead of Fourier basis along the line, ring, or spiral.
- A new function cir(...) was implemented according to a suggestion of
Ralf Vogelgesang. This function allows one to easily define a class of
parametrized 2D particles based on the deformation of a circle.
- Directive CONvert for converting 2D and 3D Bessel and multipole
expansions into multilayer expansions. 16. 4. 2010.
- For the eigenvalue search of periodic structures, it is now possible to
search not only in Cx direction but also in the Cy and Cz directions.
Download compiled versions and installation procedure
- Currently, three versions are available, two compiled with Intel Fortran
and one compiled with the old Compaq Visual Fortran (CVF). The former should
perform faster thanks to the Intel MKL routines, namely when matrix
equations are solved. Furthermore, the MKL distributes the matrix solver on
several processors when your machine has more than one processor. When you
want to run OpenMaXwell on a single processor, open the Windows Task Manager
(after you have started OpenMaXwellxxx.exe - xxx indicates the version) and select
OpenMaXwellxxx.exe in the list of
running processes. Right click and select Set affinity... from the menu that
pops up. In this menu you can then select the desired CPU for running
- Both versions have the same file names OpenMaXwellxxx.exe. If you would like to
compare them, copy them on two different directories.
- Both versions require the GLUT32.DLL and the AVI.dll that are contained in the ZIP file
that also contains OpenMaXwellxxx.exe. Note that these two DLLs are different
for the IF and CVF versions although they have the same name. Copy them on the same directory as the
corresponding OpenMaXwellxxx.exe file in order to make sure that it calls the
- The help files OpenMaXwellman.chf are identical for both versions. You may
copy them on any directory.
- Both versions were tested under 32 and 64 bit versions of Windows XP
and under a 32 bit version of Windows Vista. The 64 bit version is usually slower than the 32 bit version and
runs only on 64 bit Windows versions. It is recommended to use it for large
problems on machines with more than 4 Gbytes RAM.
- The IV version has a strange behavior when you maximize a graphic window
or the info window. The top of the maximized window is positioned below the
menu bar, which is not convenient. Use "window - Cascade" in order to
rearrange such a window.
- The CVF version generates AVI files which can be viewed with any viewer,
including the old Windows media player mplay32. The AVI files created with
the IF version may be viewed with the new Windows Media Player, but not with
the old mplay32.
- The new versions - especially IF - take advantage of the very fast
matrix solvers of the Intel MKL when you select QR matrix solver in the MMP
dialog. We found that some of the computers may crash while this solver is
running. This is due to hardware problems, most likely an overloaded
power supply. It seems that computer vendors tend to save too much money and
are satisfied when they may run some simple benchmarks.
Downloads of the source code
- It is assumed that you use IF compiler from within Microsoft Visual
Studio 2008, i.e., the zip files you may download contain the corresponding
- Intel's MKL is used for fast QR matrix solutions. Depending on your MKL
installation you must adapt the path to the MKL files (Project -> MaX
Properties... -> Fortran and Linker sections)
Downloads from MaX-1
Since OpenMaXwell can read project files created with MaX-1, you may download
numerous project files, tutorials, etc. from the
MaX-1 download page.
OpenMaXwell does not run correctly
- It seems that some applications may cause more or less severe problems to
OpenMaXwell. For example, virus scan programs can considerably reduce the performance
of OpenMaXwell. Graphic programs can disturb the movie generation of OpenMaXwell . Graphic
programs using OpenGL in an unconventional way may even prevent OpenMaXwell from
running. It seems that this holds for some versions of Matlab. In this case, no
application using the openGL Utility Toolkit (GLUT32.DLL) run on your PC. To
test this, you can find many games and other software using GLUT on the web. For
a prominent site, click
- When running an OpenMaXwell version compiled with IVF under Windows XP, make sure
that Microsoft .NET 2.0 (or newer) is installed. Unfortunately, it seems that
too new versions of .NET may also cause problems. Sometimes, OpenMaXwell hangs
if the OpenGL window is not opened and sometimes it hangs when the OpenGL
window is opened. As far as I can see, the problem is caused by the Intel
Fortran compiler that depends on .NET - although OpenMaXwell would not need .NET
at all. For example, when an Intel Fortran compiler version is used that was
developed under .NET Version 3.5, problems may occur when you have installed
a newer version, such as .NET Version 4.
- When an error message is displayed before the menues and windows are
displayed, report the error message to firstname.lastname@example.org*.
- Note that OpenMaXwell uses OpenGL. It might happen that not all of the
required DDLs are installed on your system. Especially GLUT32.DLL might be
missing. In this case, MaX-1 will not run correctly. A message box will indicate the name of the missing DLL.
- According to my experience, GLUT32.DLL keeps the processor 100%
busy and slows down the performance of all other OpenMaXwell tasks as well as the
performance of all other processes running at the same time. To avoid this, I
have compiled GLUT32.DLL with a modification that slightly slows down the OpenGL
performance. I strongly recommend to use this version that is contained in the
ZIP file that also contains the latest OpenMaXwell version. Usually, GLUT32.DLL
is placed on a system directory such as c:\winnt\system32 but you may also
copy it to the directory where you store the executables of OpenMaXwell
- If another DLL than GLUT32.DLL is missing on your PC, please,
report this to email@example.com*.
- Unfortunately, a standard feature of OpenGL, i.e., associating separate
colors to each vertex does not wor any longer if different colors are used
for the front and back sides of a triangle, quadrangle, etc.. Therefore, the
field and error plots etc. did not run correctly when OpenMaXwell was running
under Windows Vista or Windows 7. To obtain correct representations,
had to be started in Windows XP compatibility mode, which is only possible
for the 32 Bit version. In Version 12B, I circumvented these problems. I
guess that the OpenGL drawing got slightly slower but I the representation
seems now to be correct also under Windows Vista and Windows 7.
* Because of heavy SPAM problems, the Email sent to this address will be
answered automatically. In order to contact me directly, replace "hafner"