Running FEMM on Linux via Wine
FEMM can be run on Linux machines using
Wine. Performance of the program is about the same running on Linux with Wine compared to running natively on Windows. To get the program to look right visually, you will also have to find copies of arial.ttf and symbol.ttf and install them in Wine's windows/fonts directory.
FEMM 3.4
An
archive is available which contains FEMM 3.4.2 executables and source that have been modified in small ways to work around imperfections in Wine.
Knoppix 3.7 with Wine 20040813 was used as the test platform. The only change noticeable to the user is that the materials library has been rolled back to the v3.3 form. The treeview used in the v3.4 version causes the program to hang when it runs in Wine.
FEMM 4.0.1
FEMM 4.0.1 was tested using
Knoppix 5.1.1 with Wine 0.9.12. The standard
self-installing executable distribution works well under this installation of Wine, as long as the suitable version of
msvcrt.dll and mfc42.dll are installed in the same directory as the femm.exe executable (
c:\Program Files\femm40\bin in a regular Windows installation).
The only functionality that appears to be broken with FEMM 4.0.1 and Wine 0.9.12 is the materials library. The materials library works correctly if Wine is run with a native version of comctl32.dll.
OctaveFEMM
Amazingly enough, OctaveFEMM works under Linux and will allow a native Linux implementation of Octave to interact with FEMM 4.0.1 running under Wine. To get OctaveFEMM running correctly, the first download and run the OctaveFEMM
self-installing executable distribution. The OctaveFEMM functions will then be stored in the OctaveFEMM directory of your Wine implementation's c-drive.
Next, the Octave search path needs to be amended to find the OctaveFEMM functions. This can be done by creating/editing the .octaverc file in your home directory. Add the line:
LOADPATH = [ '~/.wine/drive_c/OctaveFEMM//', LOADPATH ];
You may have to define this path differently depending on your Wine setup.
Last, the
openfemm.m function in the OctaveFEMM function needs to be modified in two ways:
- The path to the femm binary directory needs to be modified to point to the location of the femm binary directory as seen by Linux;
- The system call that starts up femm needs to be modified so that it starts up femm.exe using Wine.
Here is an example modified version of
openfemm.m. You may have to change the paths slightly, depending on the configuration of paths in your installation of Wine.
Many of the examples Octave scripts on the FEMM website refer to the "c:\Program Files" directory using the alternative form "c:\progra~1". While these two directories are equivalent on native Windows systems, they may not be in Wine. This situation can be remedied by creating a symbolic link to "Program Files" from "progra~1",
e.g.dmeeker@labrat:~/.wine/drive_c$ ln -s "Program Files" progra~1