Revision [404]
This is an old revision of ReadMe42 made by DavidMeeker on 2010-10-15 23:13:39.
FEMM 4.2
David Meeker
dmeeker@ieee.org
The distribution also includes the OctaveFEMM and MathFEMM toolboxes for interfacing Octave/Matlab and Mathematica to FEMM. See the documentation in FEMM 4.2 folder of your Start menu for more details.
FEMM 4.2 11Oct2010
- Fixed bug in values of
reported in the Output Window for time harmonic magnetic problems. - Fixed bug where in some plots, units of H given as A/m^2 instead of A/m
- Fixed error in mo_showvectorplot Matlab/Octave function. Also fixed similar errors in co_showvectorplot, ho_showvectorplot, eo_showvectorplot
- Fixed messed-up definitions of the Lua functions ei_defineouterspace, ei_attachouterspace, and ei_detachouterspace
- Installer now prompts for whether or not Mathetmatica support is to be included. If Mathematica support is selected, a version of FEMM is installed that assumes the availability of ML32I2.DLL, a DLL installed by Mathematica. Otherwise, a version of FEMM is installed that doesn't need the Mathlink DLL.
- Re-wrote the GetIntersection routine that finds intersections between two line segments. In some uncommon circumstances, the routine could create extra points when the geometry was moved or rotated.
- Added extra Lua functions mi_getmaterial, ei_getmaterial, hi_getmaterial, and ci_getmaterial to fetch material definitions from the materials library on disk. Analogous functions were also added to the Matlab/Octave and Mathematica interfaces.
FEMM 4.2 02Nov2009
- Added the Lua commands mi_setgroup, ei_setgroup, hi_setgroup, ci_setgroup that assign all selected items to the group number specified by the argument to the function.
- Fixed a bug that caused an incorrect permeability to be reported for nonlinear materials at points where the flux density is less than 10nT.
- Fixed bugs with ci_addconductor and ci_modifyconductor Lua functions.
- Fixed bug with CIAddMaterial function in MathFEMM
FEMM 4.2 15Jul2009
- Added the following Lua commands that allow direct access to finite element mesh information (as well as Matlab/Octave and Mathematica analogs):
mo_numnodes, mo_numelements, mo_getnode, mo_getelement,
eo_numnodes, eo_numelements, eo_getnode, eo_getelement,
ho_numnodes, ho_numelements, ho_getnode, ho_getelement,
co_numnodes, co_numelements, co_getnode, co_getelement.
- Made a few more performance tweaks to the Mathematica interface.
- Fixed bug in computation of heat flux passing through a constant temperature-type "conductor property"
- Included a new selection of SoftMagneticMaterials soft magnetic materials in the magnetic materials library. The BH curves for these materials were obtained by digitizing the curves picutured in Figure 17, "Direct current magnetization curves for various magnetic materials", Metals Handbook, 8th ed, Vol. 1, p. 792. These curves represent a wide variety of materials, and the curves are defined to very high flux levels at which all materials are fully saturated.
FEMM 4.2 01Apr2009
- Fixed the Lua Console output window so that the window does not freeze up if more than 30K of information is printed to the output window. Now, the buffer size has been increased to 64K. If more than 64K is printed to the output window, the first few lines in the buffer are deleted to make room for the newly printed lines.
- The expected function arguments for the lua functions co_showdensityplot, eo_showdensityplot, and ho_showdensityplot did not match the documentation. The manual and functions have now been reconciled.
- In the thermal, electrostatic, and current flow problems, only 255 point properties could be defined. The program has been changed to allow up to ~65,000 point properties to be defined, along with ~32,000 "conductor" properties.
- In previous versions, a Newton-type solver for AC magnetic problems could be turned on by setting a compiler flag and recompiling the solver. The latest version has been modified so that the solver method for AC programs is now selectable as part of the "problem definition" dialog.
- During scripting runs, FEMM would load down the processor by checking at the highest possible rate to see if the solver was finished. A very short delay has been put in between checks so that the processor time used is now negligible.
- The implementation of MathFEMM also checked for the completion of solver analysis at a high rate, bogging down the processor. A very short delay has been put in between checks in the MathFEMM code so that the processor time used doing these checks is now negligible.
- Modified OctaveFEMM so that it takes advantage of the Octave-Forge Windows package if it is available. The Windows package implements the actxserver command, which allows Octave to communicate with FEMM via ActiveX automation, rather than a very slow temporary file-based scheme. The Octave-Forge Windows package is installed by default in Octave 3.0.3 and QtOctave.
- The Lua function mo_showvectorplot was not documented. This is now fixed.
- The mo_showvector, ho_showvectorplot, co_showvectorplot, and eo_showvectorplot functions were not available in OctaveFEMM or in MathFEMM. This is now fixed.
- For AC problems with laminated, linear materials with an electrical conductivity of zero and a fill factor of less than 100%, some properties were reported erroneously in the postprocessor. This has been fixed.
- Fixed a long-standing issue with the materials library that caused the program to crash when running on Linux machines via Wine.
FEMM 4.2 04Nov2008
- Bug in mo_lineintegral(2) has been fixed.
- Bug in co_showdensityplot that limited the types of plots that could be shown has been fixed.
- Source code to MDITabs.cpp, MyRecentFileList.cpp have been modified to fix portions that compile OK with MSVC++ 6 but that generate errors in Visual Studio 2005. There is no change in functionality associated with these mods.
- Bug in the OctaveFEMM implemenation of mo_bendcontour fixed.
- Initialization file init.lua has been modified so that it will load correctly when FEMM is running via newer versions of WINE.
- Versions of the mfc42.dll and msvcrt.dll redistributables are now included in the distribution. These only get installed if there are no existing version of these DLLs.
- The way that FEMM registers itself has been changed for Windows Vista compatibility.
FEMM 4.2 23May2008
Patched to fix a bug that can sometimes arise in the implementation of periodic and antiperiodic boundary conditions in all problem types.
FEMM 4.2 06Sep2007
- Fixed a bug in the definition of the temperature prescribed for a thermal conductor in hsolv.exe.
- Fixed a bug in the axisymmetric AC magnetics solver incorrect results were returned for problems with complex-valued permeability. (Fix is now rolled back into v4.0.1, too.)
- Fixed a bug in both the axisymmetric and planar magnetics solvers where incorrect results were returned if a non-zero fixed boundary condition was applied at the boundary of a material with complex-valued permeability.
FEMM 4.2 03Jun2007
- Fixed a few bugs in hsolv, the thermal solver.
- Removed the "fast point location" routines. The purpose of these routines is to figure out which mesh element (if any) in which a given point is located. Although these routines work well 99.9% of the time, there are special cases where this code could give the wrong triangle or hang the program altogether. The old (mindless) InTriangle routine (which the fast point location routines had been designed to replace) just looked through the triangles one at a time until it found the correct triangle. This could make the plotting of values along a user-defined line quite slow, especially for large meshes. I realized that the way that InTriangle is typically used where execution time matters (plotting points along a line), the desired triangle is usually in the same triangle as the last InTriangle call, or it is one of the neighboring triangles of the result of the last call to InTriangle. The implication is that the mindless version of InTriangle can be fast as long as
- Each search starts in the triangle that was returned in the last call to InTriangle
- The elements are sorted in a bandwidth-minimizing way so that difference in the indices of nearby elements is small.
FEMM 4.2 03May2007
- Fixed implemenation of trig functions like atan and atan2 so that they return purely real results for purely real arguments, as applicable. Previously, atan could return a result with a round-off sized imaginary component in addition to the correct real value for a real valued argument.
- Fixed some formatting errors in property definition menus for thermal problems.
FEMM 4.2 02Apr2007
- Changed the way that stored energy is computed for permanent magnet materials. Energy in PMs was computed incorrectly in previous versions. Energy is now computed in a way that is similar to the method described here.
- The program now loads and runs the contents of the file init.lua as part of its startup procedure. The user can edit this file to add in "standard" extra definitions and functions.
FEMM 4.2 02Mar2007
As compared to FEMM 4.0.1, version 4.2 :
- Incorporates a new problem type for conduction problems encompassing both DC and AC conductivity, in addition to DC Magnetics, AC Magnetics, Electrostatics, and Heat Flow.
- Incorporates ComplexLua, a modified verison of the Lua scripting language in which the default number type is complex (rather than double). Modifications resulting from this change are:
- There are no longer separate edit boxes for the real and complex parts of complex-valued parameters (e.g. source current density in the material properties dialog for magnetic problems). Instead, there is a single edit box in which a complex number can be entered.
- No longer need to separately specify real and imaginary parts of complex numbers in Lua function calls--these parameters are now rolled into one complex-valued parameter
- Real and imaginary parts no longer returned separately by Lua functions; they now return complex values as appropriate.
- Can include complex math in Lua scripts. All standard math functions have been modified to yield correct answers for complex-values arguments.
- The setcompatibilitymode(1) command can be used to temporarily revert to the lua function definitions as defined in FEMM 4.0. However, some caution is in order--in FEMM 4.2, all trigonometric functions take arguments in radians regardless of compatibility mode setting, whereas in FEMM 4.0, trigonometric functions take arguments in terms of degrees.
- However, Matlab, Mathematica, and Octave interfaces are unchanged from the user's perspective. These interfaces already collected and returned values as complex numbers. All Octave/Matlab scripts and Mathematica notebooks from FEMM 4.0 should work without modification in FEMM 4.2
- Additional math functions defined: arg, conj, sinh, cosh, tanh.
- Can define a magnetization direction as an equation, rather than a fixed value. For the purposes of defining the magnetization direction, the variables x, y, r, z and theta are built-in variables that are used to denote the location of the particular spot at which the magnetization is being defined. For example, to define a radial magnetization, one would enter theta into the block property dialog, rather than a fixed number.
- For magnetic problems, density plots allow field intensity (H) to be plotted, in addition to flux density (B) and current density (J).
- Incorporates a modified version of the ProximityLoss continuum proximity/skin effect loss model deployed in FEMM 4.0. The version in FEMM 4.2 is based on a similar form, but parameters are selected to provide a best fit match to a battery finite element calculations. There is an improvement in accuracy as compared to the FEMM 4.0 approach, especially in the case of very high or very low fill factors.