Finite Element Method Magnetics: OctaveFEMM

Version 1.2 User’s Manual
October 2, 2006

David Meeker dmeeker@ieee.org http://femm.foster-miller.com c 2006

1 Introduction
OctaveFEMM is a Matlab toolbox that allows for the operation of Finite Element Method Magnetics (FEMM) via a set of Matlab functions. The toolbox works with Octave, a Matlab clone. Since Octave does not support ActiveX, the toolbox use an alternative interprocess communication scheme based on temporary files for passing messages between Octave and FEMM. This toolbox can also run in Matlab using Matlab’s built-in support of ActiveX. The use and functionality of the toolbox is essentially identical under either Matlab or Octave. The only difference is speed– Matlab’s ActiveX interface is noticeably faster than the file-based interprocess communications method used when running with Matlab. When OctaveFEMM starts up a FEMM process, the usual FEMM user interface is displayed and is fully functional. The user then has the choice of accomplishing modeling and analysis tasks either exclusively through functions implemented by the toolbox, or by a combination of manual and programmatic operations – whichever is easiest for the task at hand. The syntax of the OctaveFEMM toolbox closely mirrors that of FEMM’s existing Lua scripting language interface associated with FEMM v4.2. However, there are some differences between the Lua functions and the analogous Octave/Matlab implementations: • All strings are enclosed in single quotes, rather than double quotes as in Lua. • Functions in Lua that have no arguments require a set of empty parentheses after the function name (e.g. mi analyze()). In Octave or Matlab, no parentheses should be used needed (e.g. mi analyze with the OctaveFEMM toolbox). • Several commands have also been added to OctaveFEMM that have no analog in Lua. These commands streamline the drawing of new geometries with the OctaveFEMM toolbox, as well is the collection of data from solutions. Perhaps the most remarkable difference between Lua and OctaveFEMM, however, is due to the matrix-oriented nature of Octave/Matlab. In just about any OctaveFEMM function in which it would be desiable to enter an array of points such that multiple copies of an operation are performed, OctaveFEMM will correctly interpret the input perform the requested operation on every element in the array. In addition, for any function in which the coordinates of a point are required, that point can be specified as an array with two elements instead of specifying each element separately. In functions that require the specification of multiple points, those points can be entered as an array of two-element arrays.

2 Installation and Startup
The OctaveFEMM distribution is automatically installed with FEMM 4.2 in the mfiles subdirectory. The absolute directory is typically c:\Program Files\femm42\mfiles. To use OctaveFEMM with Matlab, c:\Program Files\femm42\mfiles must be added to the Matlab search path. This can be accomplished via Matlab’s interactive pathtool command. For use with Octave, you need to add the OctaveFEMM Toolbox to Octave’s search path. This can be done permanently by either adding to or creating the .octaverc file that octave runs when it starts up. For example, in the Octave 2.1.50 release, Octave looks for .octaverc in the directory: 2

C:\Program Files\GNU Octave 2.1.50\octave_files To insert OctaveFEMM into the search path, one can create the .octaverc file and add the line: LOADPATH = [ ’/cygdrive/c/progra˜1/femm42/mfiles//’, LOADPATH ]; to add the directory containing the OctaveFEMM commands to the Octave search path. Next, you need to may need to edit the command used to invoke FEMM, especially if you have installed FEMM in a directory that is not the default one. Edit c:\Program Files\femm42\mfiles\openfemm.m to make sure that OctaveFEMM is pointing to the right FEMM executable. The temporary files defined in this directory should also be located in the same directory as the FEMM executable, so you may need to edit those definitions as well. To start an OctaveFEMM session, use the openfemm function. This function starts up a FEMM process to which OctaveFEMM calls are sent. When done with OctaveFEMM, the FEMM process can be shut down via the closefemm function. A number of examples that use OctaveFEMM to analyze various problems are included in the directory cd c:\Program Files\femm42\examples

3 Common Command Set
There are a number of FEMM-specific Octave that are not associated with any particular problem type. These functions manipulate the appearance of the main window and other top-level components like the Lua console and Point Properties output window. • clearconsole Clears the output window of the Lua console. • newdocument(doctype) Creates a new preprocessor document and opens up a new preprocessor window. Specify doctype to be 0 for a magnetics problem, 1 for an electrostatics problem, 2 for a heat flow problem, or 3 for a current flow problem. Alternative syntax for this function is create(doctype) • hideconsole Hides the floating Lua console window. • hidepointprops Hides the floating FEMM Properties display window. • messagebox(’message’) displays the ’message’ string to the screen in a pop-up message box. • opendocument(’filename’) Opens a document specified by filename. • print(item1,item2,...) This is standard Lua “print” command directed to the output of the Lua console window. Any number of comma-separated items can be printed at once via the print command. • prompt(’message’) This function allows a FEMM script to prompt a user for input. When this command is used, a dialog box pops up with the ’message’ string on the title bar of the dialog box. The user can enter in a single line of input via the dialog box. Prompt returns the user’s input to Octave and parses it using Octave’s eval command. 3

• showconsole Displays the floating Lua console window. • showpointprops Displays the floating FEMM Properties display window. • main minimize minimizes the main FEMM window. • main maximize maximizes the main FEMM window. • main restore restores the main FEMM window from a minimized or maximized state. • main resize(width,height) resizes the main FEMM window client area to width × height.

4 Magnetics Preprocessor Command Set
A number of different commands are available in the preprocessor.

4.1 Object Add/Remove Commands
• mi addnode(x,y) Add a new node at x,y • mi addsegment(x1,y1,x2,y2) Add a new line segment from node closest to (x1,y1) to node closest to (x2,y2) • mi addblocklabel(x,y) Add a new block label at (x,y) • mi addarc(x1,y1,x2,y2,angle,maxseg) Add a new arc segment from the nearest node to (x1,y1) to the nearest node to (x2,y2) with angle ‘angle’ divided into ‘maxseg’ segments. • mi drawline(x1,y1,x2,y2) Adds nodes at (x1,y1) and (x2,y2) and adds a line between the nodes. • mi drawpolyline([x1,y1;x2,y2’...]) Adds nodes at each of the specified points and connects them with segments. • mi drawpolygon([x1,y1;x2,y2’...]) Adds nodes at each of the specified points and connects them with segments to form a closed contour. • mi drawarc(x1,y1,x2,y2,angle,maxseg) Adds nodes at (x1,y1) and (x2,y2) and adds an arc of the specified angle and discretization connecting the nodes. • mi drawrectangle(x1,y1,x2,y2) Adds nodes at the corners of a rectangle defined by the points (x1,y1) and (x2,y2), then adds segments connecting the corners of the rectangle. • mi deleteselected Delete all selected objects. • mi deleteselectednodes Delete selected nodes. • mi deleteselectedlabels Delete selected block labels. 4

• mi deleteselectedsegments Delete selected segments. • mi deleteselectedarcsegments Delete selects arcs.

4.2 Geometry Selection Commands
• mi clearselected Clear all selected nodes, blocks, segments and arc segments. • mi selectsegment(x,y) Select the line segment closest to (x,y) • mi selectnode(x,y) Select the node closest to (x,y). Returns the coordinates of the selected node. • mi selectlabel(x,y) Select the label closet to (x,y). Returns the coordinates of the selected label. • mi selectarcsegment(x,y) Select the arc segment closest to (x,y) • mi selectgroup(n) Select the nth group of nodes, segments, arc segments and blocklabels. This function will clear all previously selected elements and leave the editmode in 4 (group)

4.3 Object Labeling Commands
• mi setnodeprop(’propname’,groupno) Set the selected nodes to have the nodal property ’propname’ and group number groupno. • mi setblockprop(’blockname’, automesh, meshsize, ’incircuit’, magdir, group, turns) Set the selected block labels to have the properties: – Block property ’blockname’. – automesh: 0 = mesher defers to mesh size constraint defined in meshsize, 1 = mesher automatically chooses the mesh density. – meshsize: size constraint on the mesh in the block marked by this label. – Block is a member of the circuit named ’incircuit’ – The magnetization is directed along an angle in measured in degrees denoted by the parameter magdir – A member of group number group – The number of turns associated with this label is denoted by turns. • mi setsegmentprop(’propname’, elementsize, automesh, hide, group) Set the selected segments to have: – Boundary property ’propname’ – Local element size along segment no greater than elementsize – automesh: 0 = mesher defers to the element constraint defined by elementsize, 1 = mesher automatically chooses mesh size along the selected segments 5

minangle) changes the problem definition. as mi analyze will make sure the mesh is up to date before running an analysis. or to ’axi’ for an axisymmetric problem. ’mils’. group) Set the selected arc segments to: – Meshed with elements that span at most maxsegdeg degrees per element – Boundary property ’propname’ – hide: 0 = not hidden in post-processor. Note that this is not a necessary precursor of performing an analysis. 1 == hidden in post processor – A member of group number group • mi setarcsegmentprop(maxsegdeg. Set freq to the desired frequency in Hertz.units. If more than one magnetics input file is being edited at a time. • mi analyze(flag) runs the magnetics solver.precision. 4. ’meters’. Valid ’units’ entries are ’inches’. and ’micrometers’. The sixth parameter represents the minimum angle constraint sent to the mesh generator – 30 degrees is the usual choice for this parameter.4 Problem Commands • mi probdef(freq.type. The flag parameter controls whether the solver window is visible or minimized. For a visible window. this command can be used to switch between files so that the mutiple files can be operated upon programmatically. representing the depth of the problem in the into-the-page direction for 2-D planar problems.depth. 6 .5 Mesh Commands • mi createmesh runs triangle to create a mesh. entering 1E-8 requires the RMS of the residual to be less than 10−8 . ’millimeters’. Set the parameter problemtype to ’planar’ for a 2-D planar problem. • mi showmesh shows the mesh. either specify no value for flag or specify 0. A fifth parameter.– hide: 0 = not hidden in post-processor. For a minimized window. The units parameter specifies the units used for measuring length in the problem domain. • mi setfocus(’documentname’) Switches the magnetics input file upon which commands are to act. 1 == hidden in post processor – A member of group number group 4. The number of elements in the mesh is pushed back onto the lua stack. ’centimeters’. flag should be set to 1. The precision parameter dictates the precision required by the solver. ’documentname’ should contain the name of the desired document as it appears on the window’s title bar. • mi saveas(’filename’) saves the file with name ’filename’. Specify the depth to be zero for axisymmetric problems. For example. ’propname’. • mi loadsolution loads and displays the solution corresponding to the current geometry. hide.

– copies – number of copies to be produced from the selected objects. 4.6 Editing Commands • mi copyrotate(bx. 7 . – editaction 0 –nodes. • mi copyrotate2(bx.group • mi movetranslate(dx. 1 – lines (segments). by – base point for rotation – angle – angle by which the selected objects are incrementally shifted to make each copy. dy. – copies – number of copies to be produced from the selected objects. – editaction 0 –nodes. angle is measured in degrees. copies) – dx. 3 – arc segments. editaction) – dx.shiftangle. • mi moverotate2(bx.r)turnsacornerlocatedat(x. by – base point for rotation – angle – angle by which the selected objects are incrementally shifted to make each copy. 2 –block labels. – copies – number of copies to be produced from the selected objects. 2 –block labels.group • mi copytranslate(dx.y)intoacurveofradiusr. by – base point for rotation – shiftangle – angle in degrees by which the selected objects are rotated. copies ) – bx. angle. 4. • mi moverotate(bx. 3 – arc segments.by. 4.by.• mi purgemesh clears the mesh out of both the screen and memory. 1 – lines (segments). by – base point for rotation – shiftangle – angle in degrees by which the selected objects are rotated. by. copies.y. 2 –block labels. 3 – arc segments. angle. editaction) – bx. by.dy) – dx. dy.dy – distance by which the selected objects are incrementally shifted.dy – distance by which the selected objects are shifted. • mi copytranslate2(dx. editaction ) – bx. 1 – lines (segments).group • mi createradius(x.dy – distance by which the selected objects are incrementally shifted. 4. angle is measured in degrees.shiftangle) – bx. copies. – copies – number of copies to be produced from the selected objects. – editaction 0 –nodes.

y2). by – base point for scaling – scalefactor – a multiplier that determines how much the selected objects are scaled – editaction 0 –nodes.by. 4. 4. if they are used WITHOUT the editaction parameter.y1) and (x2. 3 for arc segments. Valid editaction entries are 0 for nodes.by. by – base point for scaling – scalefactor – a multiplier that determines how much the selected objects are scaled • mi scale2(bx.y2) Set the display area to be from the bottom left corner specified by (x1.selected group This command will affect all subsequent uses of the other editing commands. • mi zoom(x1.arc segments – ’blocks’ .y1) to the top right corner specified by (x2.dy – distance by which the selected objects are shifted.editaction) – bx.x2.y1) and (x2.line segments – ’arcsegments’ . 1 – lines (segments).block labels – ’group’ .y1. 4. and 4 for groups.y2. – editaction 0 –nodes.scalefactor.group • mi mirror(x1.7 Zoom Commands • mi zoomnatural zooms to a “natural” view with sensible extents. 2 for block labels. • mi seteditmode(editmode) Sets the current editmode to: – ’nodes’ .x2. 3 – arc segments.y1.y1. 2 –block labels.y2) mirror the selected objects about a line passing through the points (x1. 1 – lines (segments).x2.nodes – ’segments’ .dy.editaction) mirror the selected objects about a line passing through the points (x1. • mi zoomout zooms out by a factor of 50%.y2).group • mi scale(bx.scalefactor) – bx.y2). 8 .• mi movetranslate2(dx. • mi mirror2(x1.editaction) – dx. 2 –block labels. • mi zoomin zoom in by a factor of 200%. 1 for lines (segments). 3 – arc segments.

nstr. iron completely fills the volume) – Lamtype Set to ∗ ∗ ∗ ∗ 0 – Not laminated or laminated in plane 1 – laminated x or r 2 – laminated y or z 3 – magnet wire 9 .9 Object Properties • mi addmaterial(’matname’. • mi refreshview Redraws the current view. mu y.8 View Commands • mi_showgrid Show the grid points. J. • mi resize(width. 4.height) resizes the active magnetics input window client area to width × height. – mu y Relative permeability in the y. used for nonlinear BH curves. • mi_setgrid(density. – J Applied source current density in Amps/mm2. The density parameter specifies the space between grid points. LamType. mu x. by default. – Lam d Lamination thickness in millimeters.4. setting flag to ’off’ turns off snap to grid. • mi restore restores the active magnetics input view from a minimized or maximized state. – Lam fill Fraction of the volume occupied per lamination that is actually filled with iron (Note that this parameter defaults to 1 in the femm preprocessor dialog box because.or r-direction. Phi hmax. • mi_hidegrid Hide the grid points points. Phi hx. dwire) adds a new material with called ’matname’ with the material properties: – mu x Relative permeability in the x.’type’) Change the grid spacing. Lam d. – Phi hmax Hysteresis lag angle in degrees. • mi_grid_snap(’flag’) Setting flag to ’on’ turns on snap to grid. – Cduct Electrical conductivity of the material in MS/m. • mi maximize maximizes the active magnetics input view. Cduct. – H c Permanent magnet coercivity in Amps/Meter. • mi minimize minimizes the active magnetics input view.or z-direction. lam fill. Phi hy. H c. and the type parameter is set to ’cart’ for cartesian coordinates or ’polar’ for polar coordinates.

– For an “Anti-Perodic” boundary condition. Set all other parameters to zero. set BdryFormat to 3 and set all other parameters to zero. c0. set BdryFormat to 4 and set all other parameters to zero. Note that not all properties need be defined – properties that aren’t defined are assigned default values. The circuittype parameter is 0 for a parallel-connected circuit and 1 for a series-connected circuit.j) adds a new point property of name ’pointpropname’ with either a specified potential a in units Webers/Meter or a point current j in units of Amps. Phi.b. Mu. 10 . • mi clearbhpoints(’blockname’) Clears all B-H data points associatied with the material specified by ’blockname’. A1. BdryFormat) adds a new boundary property with name ’propname’ – For a “Prescribed A” type boundary condition. A2 and Phi parameters as required. set the A0. Should be 1 for Magnet or Square wire. – dwire Diameter of each of the wire’s constituent strand in millimeters. – For a “Strategic dual image” boundary.a. A1. Set all other parameters to zero. The point to be added has a flux density of b in units of Teslas and a field intensity of h in units of Amps/Meter. A0. set the Mu to the desired relative permeability and Sig to the desired conductivity in MS/m. – Phi hy Hysteresis lag in degrees in the y-direction for linear problems. Sig. i. – For a “Small Skin Depth” type boundary condtion. A2. Set BdryFormat to 1 and all other parameters to zero.∗ 4 – plain stranded wire ∗ 5 – Litz wire ∗ 6 – square wire – Phi hx Hysteresis lag in degrees in the x-direction for linear problems. – For a “Periodic” boundary condition. • mi addcircprop(’circuitname’. • mi addpointprop(’pointpropname’. • mi addbhpoint(’blockname’. circuittype) adds a new circuit property with name ’circuitname’ with a prescribed current. set BdryFormat to 5 set all other parameters to zero. • mi addboundprop(’propname’. c1. – To obtain a “Mixed” type boundary condition. Set the unused parameter pairs to 0.h) Adds a B-H data point the the material specified by the string ’blockname’. – nstr Number of strands in the wire build. set C1 and C0 as required and BdryFormat to 2.

2=parallel to y Hysteresis lag in x-direction for linear problems.value) This function allows for modification of a boundary property. degrees • mi_modifyboundprop(’BdryName’.propnum. degrees Hysteresis lag in y-direction for linear problems. • mi deleteboundprop(’propname’) deletes the boundary property named ’propname’. The last number is the value to be applied to the specified property. The next parameter is the number of the property to be set. degrees Iron fill fraction 0 = None/In plane.value) This function allows for modification of a material’s properties without redefining the entire material (e. • mi deletecircuit(’circuitname’) deletes the circuit named circuitname. The various properties that can be modified are listed below: 11 . MA/m2 Electrical conductivity. 1 = parallel to x. MS/m Lamination thickness. mm Hysteresis lag angle for nonlinear problems.g. The various properties that can be modified are listed below: propnum 0 1 2 3 4 5 6 7 8 9 10 11 Symbol BlockName µx µy Hc J σ dlam φhmax LamFill LamType φhx φhy Description Name of the material x (or r) direction relative permeability y (or z) direction relative permeability Coercivity. • mi deletepointprop(’pointpropname’) deletes the point property named ’pointpropname’ • mi_modifymaterial(’BlockName’. The last number is the value to be applied to the specified property. The material to be modified is specified by ’BlockName’. Amps/Meter Source current density. The next parameter is the number of the property to be set. The BC to be modified is specified by ’BdryName’.propnum. so that current can be modified from run to run).• mi deletematerial(’materialname’) deletes the material named ’materialname’.

Amps • mi_modifycircprop(’CircName’. The next parameter is the number of the property to be set. The next parameter is the number of the property to be set. The various properties that can be modified are listed below: propnum 0 1 2 Symbol PointName A J Description Name of the point property Nodal potential. The last number is the value to be applied to the specified property.value) This function allows for modification of a point property.propnum.propnum 0 1 2 3 4 5 6 7 8 9 Symbol BdryName A0 A1 A2 φ µ σ c0 c1 BdryFormat Description Name of boundary property Prescribed A parameter Prescribed A parameter Prescribed A parameter Prescribed A phase Small skin depth relative permeability Small skin depth conductivity. MS/m Mixed BC parameter Mixed BC parameter Type of boundary condition: 0 = Prescribed A 1 = Small skin depth 2 = Mixed 3 = Strategic Dual Image 4 = Periodic 5 = Antiperiodic • mi_modifypointprop(’PointName’. The circuit property to be modified is specified by ’CircName’. 12 . The last number is the value to be applied to the specified property.value) This function allows for modification of a circuit property.propnum.i) sets the current in the circuit specified by ’CircName’ to i. 4. The point property to be modified is specified by ’PointName’. 1 = Series • mi setcurrent(’CircName’. The various properties that can be modified are listed below: propnum 0 1 2 Symbol CircName i CircType Description Name of the circuit property Total current 0 = Parallel. Weber/Meter Nodal current.10 Miscellaneous • mi savebitmap(’filename’) saves a bitmapped screenshot of the current view to the file specified by ’filename’.

t surface area DC r/x force DC torque total (B.n total H. To hide the block label names. the Ro parameter is the radius of the outer region. • mi readdxf(’filename’) This function imports a dxf file specified by ’filename’. the permeability varies as a function of distance from the origin of the external region.• mi savemetafile(’filename’) saves a metafile screenshot of the current view to the file specified by ’filename’.n)ˆ2 values 3 2× r/x force values 4 2× y/z force - Returns typically two values. • mi defineouterspace(Zo. flag should be 0.n avg H. which evaluates Maxwell’s stress tensor. the region of interest).e. The only exception is integral 3. To display the names. • mi attachouterspace marks all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation. • mi detachouterspace undefines all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation. This integral can return up to four 13 . and the Ri parameter is the radius of the inner region (i.n)ˆ2 values 2 avg B. The first value is the result of the integral calculation. • mi refreshview Redraws the current view. In the exterior region.Ro. the parameter should be set to 1.n H. The Zo parameter is the z-location of the origin of the outer region.t DC y/z force 2× torque avg (B.Ri) defines an axisymmetric external region to be used in conjuction with the Kelvin Transformation method of modeling unbounded problems.t Contour length Stress Tensor Force Stress Tensor Torque (B. 5. 5 Magnetics Post Processor Command Set There are a number of scripting commands designed to operate in the postprocessing environment. These parameters are necessary to define the permeability variation in the external region.1 Data Extraction Commands • mo lineintegral(type) Calculate the line integral for the defined contour type 0 1 2 3 4 5 name B. • mi shownames(flag) This function allow the user to display or hide the block label names on screen. and the second value is the average of the quantity of interest over the contour. • mi close Closes current magnetics preprocessor document and destroys magnetics preprocessor window.n)ˆ2 values 1 total B.

moment of inertia / density) • mo getpointvalues(x. • mo blockintegral(type) Calculate a block integral for the selected blocks Type 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Definition A·J A Magnetic field energy Hysteresis and/or lamination losses Resistive losses Block cross-section area Total losses Total current Integral of Bx (or Br ) over block Integral of By (or Bz ) over block Block volume x (or r) part of steady-state Lorentz force y (or z) part of steady-state Lorentz force x (or r) part of 2× Lorentz force y (or z) part of 2× Lorentz force Steady-state Lorentz torque 2× component of Lorentz torque Magnetic field coenergy x (or r) part of steady-state weighted stress tensor force y (or z) part of steady-state weighted stress tensor force x (or r) part of 2× weighted stress tensor force y (or z) part of 2× weighted stress tensor force Steady-state weighted stress tensor torque 2× component of weighted stress tensor torque R2 (i.e. For force and torque results.y) Get the values associated with the point at (x.y). in order: 14 . The function returns an array whose contents are.results. the 2× results are only relevant for problems where ω = 0.

2πrA is reported. Bz if axisymmetric conductivity σ stored energy density Hx if planar.y). • mo getfill(x.y) Get the electric current density associated with the point at (x.y). Hz if axisymmetric eddy current density source current density µx if planar. the average fraction of the volume filled with conductor) associated with the point at (x. • mo getb(x.y) Get the magnetic field intensity associated with the point at (x. • mo getenergydensity(x. • mo geta(x. The return value is a list with two element representing Hx and Hy for planar problems and Hr and Hz for axisymmetric problems.Symbol A B1 B2 Sig E H1 H2 Je Js Mu1 Mu2 Pe Ph ff Definition Potential A or flux φ Bx if planar.y). The return value is a list with two element representing µx and µy for planar problems and µr and µz for axisymmetric problems. • mo getph(x.y).e. Hr if axisymmetric Hy if planar. Br if axisymmetric By if planar. • mo geth(x.y) Get the magnetic flux density associated with the point at (x.y) Get the ohmic loss density associated with the point at (x.y).y) Get the winding factor (i.y) Get the relative magnetic permeability associated with the point at (x.y). The return value is a list with two element representing Bx and By for planar problems and Br and Bz for axisymmetric problems. • mo getj(x. • mo getconductivity(x.y) Gets the conductivity associated with the point at (x. 15 .y) Gets the magnetic field energy density associated with the point at (x. the reported potential is vector potential A. µr if axisymmetric µy if planar. For axisymmetric problems.y).y). • mo getpe(x.y).y) Get the potential associated with the point at (x. • mo getmu(x.y) Get the hysteresis/laminated eddy current loss density associated with the point at (x. For planar problems. µz if axisymmetric Power density dissipated through ohmic losses Power density dissipated by hysteresis Winding fill factor The following series of functions retrieves smaller subsets of these results.y).

the Filename parameter is specified. the plot is instead written to disk to the specified file name as an extended metafile. Returns two values: Return value Definition 1 problem type 2 frequency in Hz • mo_getcircuitproperties(’circuit’) Used primarily to obtain impedance information associated with circuit properties. the command would be: mo_makeplot(2. If the FileFormat parameter is also. In order. the command would be of the form: mo_makeplot(2. Properties are returned for the circuit property named ’circuit’.emf’) To write data instead of a plot to disk. the command is instead interpreted as a command to write the data to disk to the specfied file name. If only PlotType or only PlotType and NumPoints are specified.200. these parameters are: 16 .’c:\temp\myfile. if one wanted to plot B · n to the screen with 200 points evaluated to make the graph.txt’. the command would be: mo makeplot(2.FileFormat) Allows Octave access to FEMM’s X-Y plot routines.• mo_makeplot(PlotType. rather than display it to make a graphical plot. Valid entries for PlotType are: PlotType 0 1 2 3 4 5 6 7 8 Valid file formats are FileFormat 0 1 2 Definition Multi-column text with legend Multi-column text with no legend Mathematica-style formatting Definition Potential |B| B·n B·t |H| H ·n H ·t Jeddy Jsource + Jeddy For example. in addition.’c:\temp\myfile.200. If. the command is interpreted as a request to plot the requested plot type to the screen.200) If this plot were to be written to disk as a metafile.Filename.NumPoints.0) • mo_getprobleminfo Returns info on problem description. Six values are returned by the function.

each of which is constrained to span no more than anglestep degrees. If no number is specified (i. The mo addcontour command has the same functionality as a right-button-click contour point addition when the program is running in interactive mode. or area mode. If this is the first point then it starts a contour. • mo_zoomin Zoom in one level. contour.y) Select the block that contains point (x. and ’area’.y).y2) Zoom to the window defined by lower left corner (x1. – volts Voltage drop across the circuit in the circuit. • mo addcontour(x. all blocks are selected.y) Adds a contour point at the closest input point to (x. The arc is actually composed of many straight lines.y). a contour is added that traces along the arcsegment.e.y1) and upper right corner (x2. • mo zoom(x1. ’contour’. – flux Circuit’s flux linkage 5. 17 . mo groupselectblock ). The mo selectpoint command has the same functionality as the left-button-click contour point selection when the program is running in interactive mode. If the selected point and a previous selected points lie at the ends of an arcsegment.anglestep) Replaces the straight line formed by the last two points in the contour by an arc that spans angle degrees. • mo selectblock(x.y) Adds a contour point at (x.y1. • mo clearcontour Clear a prevously defined contour • mo clearblock Clear block selection 5. this command is ignored. • mo selectpoint(x. If there are less than two points defined in the contour.x2. The anglestep parameter must be greater than zero.y2).2 Selection Commands • mo seteditmode(mode) Sets the mode of the postprocessor to point. The angle parameter can take on values from -180 to 180 degrees.y).– current Current carried by the circuit. if there are existing points the contour runs from the previous point to this point. Valid entries for mode are ’point’. • mo groupselectblock(n) Selects all of the blocks that are labeled by block labels that are members of group n. • mo_zoomout Zoom out one level. • mo bendcontour(angle.3 Zoom Commands • mo_zoomnatural Zoom to the natural boundaries of the geometry.

’type’) Change the grid spacing. Setting flag equal to ’on’ turns on smoothing. Valid entries are ’mag’. • mo_showdensityplot(legend. – upper_B Sets the upper display limit for the density plot. ’jreal’. • mo_hidegrid Hide the grid points points. and ’imag’ for magnitude.4 View Commands • mo_showmesh Show the mesh. – gscale Set to 0 for a colour density plot or 1 for a grey scale density plot. current density can be displayed by specifying ’jmag’. • mo_hidedensityplot hides the flux density plot. • mo_hidecontourplot Hides the contour plot. • mo_hidemesh Hide the mesh. 18 . – type Type of density plot to display. – lower_B Sets the lower display limit for the density plot. which are naturally piece-wise constant over each element. • mo_showgrid Show the grid points. • mo_showpoints Show the node points from the input geometry.type) Shows the flux density plot with options: – legend Set to 0 to hide the plot legend or 1 to show the plot legend.upper_B. Alternatively.upper_A. • mo_hidepoints Hide the node points from the input geometry. • mo smooth(’flag’) This function controls whether or not smoothing is applied to the B and H fields. real component. – lower_A Lower limit for A contours. and setting flag to ’off’ turns off smoothing. real component. and the type parameter is set to ’cart’ for cartesian coordinates or ’polar’ for polar coordinates. • mo_grid_snap(’flag’) Setting flag to ’on’ turns on snap to grid. setting flag to ’off’ turns off snap to grid.5. • mo_setgrid(density.gscale.lower_A. and imaginary component of J. respectively. ’real’. and imaginary component of B. respectively.lower_B. and ’jimag’ for magnitude. • mo_showcontourplot(numcontours. The density parameter specifies the space between grid points.type) shows the A contour plot with options: – numcontours Number of A equipotential lines to be plotted. – upper_A Upper limit for A contours.

or ’both’ to show either the real.y2. • mo maximize maximizes the active magnetics output view.angle.y) Add a new node at x. • mo savebitmap(’filename’) saves a bitmapped screen shot of the current view to the file specified by ’filename’.maxseg) Add a new arc segment from the nearest node to (x1. 6 Electrostatics Preprocessor Command Set A number of different commands are available in the preprocessor. • mo shownames(flag) This function allow the user to display or hide the block label names on screen. • mo refreshview Redraws the current view.y1.y • ei addsegment(x1.y1) to the nearest node to (x2.y) • ei addarc(x1. • mo resize(width. Two naming conventions can be used: one which separates words in the command names by underscores.y1) to node closest to (x2. • mo savemetafile(’filename’) saves a metafile screenshot of the current view to the file specified by ’filename’. • mo restore restores the active magnetics output view from a minimized or maximized state. imaginary of both real and imaginary components of A. flag should be 0.– type Choice of ’real’.5 Miscellaneous • mo close Closes the current post-processor instance.y2) with angle ‘angle’ divided into ‘maxseg’ segments.x2. 5.x2. the parameter should be set to 1.y1. To hide the block label names. and one that eliminates the underscores. 6.1 Object Add/Remove Commands • ei addnode(x. 19 .height) resizes the active magnetics output window client area to width × height. ’imag’.y2) • ei addblocklabel(x. • mo reload Reloads the solution from disk. To display the names. • mo minimize minimizes the active magnetics output view.y2) Add a new line segment from node closest to (x1.y) Add a new block label at (x.

maxseg) Adds nodes at (x1. • ei deleteselectedsegments Delete selected segments.y2) and adds a line between the nodes. 6. Returns the coordinates of the selected node.y) Select the arc segment closest to (x.• ei drawline(x1.x2.2 Geometry Selection Commands • ei clearselected Clear all selected nodes.y).y) • ei selectgroup(n) Select the nth group of nodes. • ei deleteselected Delete all selected objects.]) Adds nodes at each of the specified points and connects them with segments. blocks.y2) Adds nodes at (x1. • ei selectsegment(x.y2’. arc segments and block labels.y1. • ei drawarc(x1.3 Object Labeling Commands • ei setnodeprop(’propname’. 20 .y) Select the node closest to (x. this parameter can be set to ’<None>’. If the node doesn’t belong to a named conductor. segments and arc segments.x2.]) Adds nodes at each of the specified points and connects them with segments to form a closed contour.y).y) Select the label closet to (x. The ’inconductor’ string specifies which conductor the node belongs to. ’inconductor’) Set the selected nodes to have the nodal property ’propname’ and group number groupno. This function will clear all previously selected elements and leave the edit mode in 4 (group) 6..groupno. • ei drawpolyline([x1. • ei deleteselectedlabels Delete selected block labels.y1) and (x2.y1.x2.angle..y1. • ei drawrectangle(x1. • ei deleteselectednodes Delete selected nodes. • ei drawpolygon([x1.x2.. segments. • ei selectlabel(x.. then adds segments connecting the corners of the rectangle.y) • ei selectnode(x. Returns the coordinates of the selected label.y1.y2. • ei selectarcsegment(x.y2) and adds an arc of the specified angle and discretization connecting the nodes.y1) and (x2.y2).y1) and (x2.y) Select the line segment closest to (x.y2’.y2) Adds nodes at the corners of a rectangle defined by the points (x1. • ei deleteselectedarcsegments Delete selects arcs.x2.y1.

or to ’axi’ for an axisymmetric problem. ’millimeters’. ’inconductor’) Set the selected arc segments to: Meshed with elements that span at most maxsegdeg degrees per element Boundary property ’propname’ hide: 0 = not hidden in post-processor. ’propname’. 1 == hidden in post processor A member of group number group A member of the conductor specified by the string ’inconductor’. A member of group number group • ei setsegmentprop(’name’. ’mils’. entering 1. 6. ’meters. The units parameter specifies the units used for measuring length in the problem domain.4 Problem Commands • ei probdef(units. automesh. meshsize. For example.minangle) changes the problem definition. elmsize.type. The precision parameter dictates the precision required by the solver.depth. ’inconductor’) Set the select segments to have: Boundary property ’name’ Local element size along segment no greater than elmsize automesh: 0 = mesher defers to the element constraint defined by elementsize. The sixth parameter represents the minimum angle constraint sent to the mesh generator (usually 30 degrees). The fourth parameter represents the depth of the problem in the into-the-page direction for 2-D planar problems–just enter 0 as a placeholder for axisymmetric problems. 1 == hidden in post processor A member of group number group A member of the conductor specified by the string ’inconductor’. Set problemtype to ’planar’ for a 2-D planar problem. group. hide. 21 . If the segment is not part of a conductor. automesh: 0 = mesher defers to mesh size constraint defined in meshsize.precision. If the segment is not part of a conductor. and ’micrometers’. this parameter can be specified as ’<None>’. group. ’centimeters’. 1 = mesher automatically chooses mesh size along the selected segments hide: 0 = not hidden in post-processor. this parameter can be specified as ’<None>’. automesh. hide. group) Set the selected block labels to have the properties: Block property ’blockname’.E-8 requires the RMS of the residual to be less than 10−8 .• ei setblockprop(’blockname’. 1 = mesher automatically chooses the mesh density. meshsize: size constraint on the mesh in the block marked by this label. • ei setarcsegmentprop(maxsegdeg. Valid ’units’ entries are ’inches’.

angle is measured in degrees. • ei saveas(’filename’) saves the file with name ’filename’. – copies – number of copies to be produced from the selected objects. flag should be set to 1. 1 – lines (segments). • ei setfocus(’documentname’) Switches the electrostatics input file upon which commands are to act. For a visible window. 3 – arc segments.group • ei copytranslate(dx. – copies – number of copies to be produced from the selected objects. 6. • ei purgemesh clears the mesh out of both the screen and memory. editaction ) – bx. 22 . this command can be used to switch between files so that the mutiple files can be operated upon programmatically. – copies – number of copies to be produced from the selected objects. • ei showmesh toggles the flag that shows or hides the mesh. 2 –block labels.• ei analyze(flag) runs the electrostatics solver. copies. For a minimized window. Note that this is not a necessary precursor of performing an analysis. 6. ’documentname’ should contain the name of the desired document as it appears on the window’s title bar. • ei loadsolution loads and displays the solution corresponding to the current geometry. • ei copyrotate2(bx. The flag parameter controls whether the solver window is visible or minimized. If more than one electrostatics input file is being edited at a time. angle. copies ) – bx. by – base point for rotation – angle – angle by which the selected objects are incrementally shifted to make each copy. angle is measured in degrees. dy. either specify no value for flag or specify 0.6 Editing Commands • ei copyrotate(bx. by – base point for rotation – angle – angle by which the selected objects are incrementally shifted to make each copy. The number of elements in the mesh is pushed back onto the lua stack.5 Mesh Commands • ei createmesh runs triangle to create a mesh. angle.dy – distance by which the selected objects are incrementally shifted. by. by. copies) – dx. 4. – editaction 0 –nodes. as ei analyze will make sure the mesh is up to date before running an analysis.

y.shiftangle) – bx.y1. 1 for lines (segments). 2 –block labels. editaction) – dx. • ei moverotate(bx. 3 – arc segments. 3 – arc segments.y1) and (x2.by.dy – distance by which the selected objects are shifted. Valid editaction entries are 0 for nodes.editaction) – dx. copies.y1. • ei mirror2(x1.y1) and (x2.group • ei scale(bx.x2.shiftangle. by – base point for scaling – scalefactor – a multiplier that determines how much the selected objects are scaled • ei scale2(bx. 1 – lines (segments). – editaction 0 –nodes.x2. by – base point for rotation – shiftangle – angle in degrees by which the selected objects are rotated.by.group • ei mirror(x1.group • ei movetranslate(dx.editaction) mirror the selected objects about a line passing through the points (x1. dy. 4. – editaction 0 –nodes. 1 – lines (segments). – editaction 0 –nodes. 3 – arc segments.y)intoacurveofradiusr.• ei copytranslate2(dx. by – base point for rotation – shiftangle – angle in degrees by which the selected objects are rotated. 2 for block labels.by. • ei moverotate2(bx.dy – distance by which the selected objects are shifted.scalefactor.scalefactor) – bx. 1 – lines (segments).r)turnsacornerlocatedat(x. 3 – arc segments.dy – distance by which the selected objects are incrementally shifted. 4. editaction) – bx. – copies – number of copies to be produced from the selected objects.editaction) – bx. 2 –block labels.by. 4.dy. by – base point for scaling – scalefactor – a multiplier that determines how much the selected objects are scaled – editaction 0 –nodes.y2).y2) mirror the selected objects about a line passing through the points (x1.dy) – dx. • ei movetranslate2(dx.group • ei createradius(x. 2 –block labels.y2).y2. 2 –block labels. • ei seteditmode(editmode) Sets the current editmode to: 23 . 1 – lines (segments). 3 for arc segments. 4. and 4 for groups.

if they are used WITHOUT the editaction parameter.arc segments – ’blocks’ . The density parameter specifies the space between grid points. • ei zoom(x1. 6. • ei zoomin zoom in by a factor of 200%.7 Zoom Commands • ei zoomnatural zooms to a “natural” view with sensible extents. • ei maximize maximizes the active electrostatics input view.8 View Commands • ei showgrid Show the grid points. • ei gridsnap(’flag’) Setting flag to ”on” turns on snap to grid.y1) to the top right corner specified by (x2.y2). • ei hidegrid Hide the grid points points. setting flag to ’off’turns off snap to grid.height) resizes the active electrostatics input window client area to width × height. • ei restore restores the active electrostatics input view from a minimized or maximized state.line segments – ’arcsegments’ .nodes – ’segments’ . • ei setgrid(density. 24 .selected group This command will affect all subsequent uses of the other editing commands.’type’) Change the grid spacing.x2. • ei minimize minimizes the active electrostatics input view.block labels – ’group’ . • ei zoomout zooms out by a factor of 50%. and the type parameter is set to ’cart’ for Cartesian coordinates or ’polar’ for polar coordinates. 6. • ei refreshview Redraws the current view.y2) Set the display area to be from the bottom left corner specified by (x1.– ’nodes’ .y1. • ei resize(width.

qv) adds a new material with called ’matname’ with the material properties: ex Relative permittivity in the x.qp) adds a new point property of name ’pointname’ with either a specified potential Vp a point charge density qp in units of C/m. c0. The various properties that can be modified are listed below: 25 . so that current can be modified from run to run). set C1 and C0 as required and BdryFormat to 1. • ei addboundprop(’boundname’. For an “Anti-Perodic” boundary condition. c1. The last number is the value to be applied to the specified property.6. BdryFormat) adds a new boundary property with name ’boundname’ For a “Fixed Voltage” type boundary condition. qc. • ei deleteconductor(’conductorname’) deletes the conductor named conductorname. ey. The next parameter is the number of the property to be set. • ei deletematerial(’materialname’) deletes the material named ’materialname’.propnum. . The conductortype parameter is 0 for prescribed charge and 1 for prescribed voltage.Vp.or z-direction. Set all other parameters to zero. For a “Periodic” boundary condition. ey Relative permittivity in the y.value) This function allows for modification of a material’s properties without redefining the entire material (e. set BdryFormat to 4 set all other parameters to zero. The material to be modified is specified by ’BlockName’. • ei deletepointprop(’pointname’) deletes the point property named ’pointname’ • ei modifymaterial(’BlockName’.9 Object Properties • ei addmaterial(’matname’. set qs to the desired charge density in C/m2 and set BdryFormat to 2. set BdryFormat to 3 and set all other parameters to zero. set the Vs parameter to the desired voltage and all other parameters to zero. Set the unused property to zero. qs. qv Volume charge density in units of C/m3 • ei addpointprop(’pointname’. To obtain a “Mixed” type boundary condition. • ei deleteboundprop(’boundname’) deletes the boundary property named ’boundname’. • ei addconductorprop(’conductorname’.g.or r-direction. conductortype) adds a new conductor property with name ’conductorname’ with either a prescribed voltage or a prescribed total charge. To obtain a prescribes surface charge density. ex. Vc. Vs.

The various properties that can be modified are listed below: propnum Symbol Description 0 PointName Name of the point property Vp Prescribed nodal voltage 1 2 qp Point charge density in C/m • ei modifyconductorprop(’ConductorName’.propnum. The last number is the value to be applied to the specified property. The various properties that can be modified are listed below: propnum Symbol Description 0 ConductorName Name of the conductor property 1 Vc Conductor voltage 2 qc Total conductor charge 3 ConductorType 0 = Prescribed charge.propnum. The next parameter is the number of the property to be set. The last number is the value to be applied to the specified property. The next parameter is the number of the property to be set. 1 = Prescribed voltage 26 .propnum.value) This function allows for modification of a boundary property.value) This function allows for modification of a point property. The point property to be modified is specified by ’PointName’. The various properties that can be modified are listed below: propnum 0 1 2 3 4 5 Symbol BdryName Vs qs c0 c1 BdryFormat Description Name of boundary property Fixed Voltage Prescribed charge density Mixed BC parameter Mixed BC parameter Type of boundary condition: 0 = Prescribed V 1 = Mixed 2 = Surface charge density 3 = Periodic 4 = Antiperiodic • ei modifypointprop(’PointName’.value) This function allows for modification of a conductor property. The conductor property to be modified is specified by ’ConductorName’. The next parameter is the number of the property to be set.propnum 0 1 2 3 Symbol BlockName ex ey qs Description Name of the material x (or r) direction relative permittivity y (or z) direction relative permittivity Volume charge • ei modifyboundprop(’BdryName’. The last number is the value to be applied to the specified property. The BC to be modified is specified by ’BdryName’.

• ei defineouterspace(Zo.1 Data Extraction Commands • eo lineintegral(type) Calculates the line integral for the defined contour type 0 1 2 3 4 Integral E ·t D·n Contour length Force from stress tensor Torque from stress tensor 27 . In the exterior region. To display the names. these commands can be used with either the underscore naming or with the no-underscore naming convention.10 Miscellaneous • ei savebitmap(’filename’) saves a bitmapped screenshot of the current view to the file specified by ’filename’. the permeability varies as a function of distance from the origin of the external region.Ro. the Ro parameter is the radius of the outer region. • ei readdxf(’filename’) This function imports a dxf file specified by ’filename’. and the Ri parameter is the radius of the inner region (i.Ri) defines an axisymmetric external region to be used in conjuction with the Kelvin Transformation method of modeling unbounded problems. the parameter should be set to 1. • ei savemetafile(’filename’) saves a metafile screenshot of the current view to the file specified by ’filename’. • ei detachouterspace undefines all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation. 7 Electrostatics Post Processor Command Set There are a number of scripting commands designed to operate in the postprocessor. 7.6. the region of interest). • ei shownames(flag) This function allow the user to display or hide the block label names on screen. • ei refreshview Redraws the current view.e. These parameters are necessary to define the permeability variation in the external region. flag should be 0. • ei close closes the preprocessor window and destroys the current document. To hide the block label names. The Zo parameter is the z-location of the origin of the outer region. As with the preprocessor commands. • ei attachouterspace marks all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation.

and torque.or z.direction component of permittivity electric field energy density • eo getv(x. • eo getenergydensity(x.direction component of displacement x. the function returns an array with two elements is returned representing components in the x and y or r and z directions. • eo getd(x. The function returns an array of results whose elements represent: Symbol V Dx Dy Ex Ey ex ey nrg Definition Voltage x. • eo getperm(x.or r.direction component of electric field intensity x.or z.y).or r. For force.y) Gets the electric permittivity associated with the point at (x. an array with two elements is returned representing force in the x and y or r and z directions. 28 . The return value is a list with two element representing Ex and Ey for planar problems and Er and Ez for axisymmetric problems.or z. flux density.y) Gets the values associated with the point at (x. For force. volume and torque.y). The return value is a list with two element representing εx and εy for planar problems and εr and εz for axisymmetric problems. contour length.y). • eo gete(x. • eo blockintegral(type) Calculates a block integral for the selected blocks type 0 1 2 3 4 5 6 Integral Stored Energy Block Cross-section Block Volume Average D over the block Average E over the block Weighted Stress Tensor Force Weighted Stress Tensor Torque This integral a single result for energy. y).y).direction component of permittivity y.direction component of displacement y.y).y) Gets the electric flux density associated with the point at (x.y) Gets the electric field energy density associated with the point at (x. D and E.y) Gets the electric field intensity associated with the point at (x.direction component of electric field intensity y. The return value is a list with two element representing Dx and Dy for planar problems and Dr and Dz for axisymmetric problems.y) Gets the voltage associated with the point at (x.This integral a single result for field intensity.or r. • eo getpointvalues(x.

29 .’c:temp.200) If this plot were to be written to disk as a metafile.200.y). t (Tangential field intensity) Valid file formats are: FileFormat Definition 0 Multi-column text with legend 1 Multi-column text with no legend 2 Mathematica-style formatting For example. ’contour’. n (Normal flux density) D .• eo makeplot(PlotType. in addition. • eo selectblock(x. the plot is instead written to disk to the specified file name as an extended metafile. Valid entries for mode are ’point’.200. Valid entries for PlotType are: PlotType 0 1 2 3 4 5 6 Definition V (Voltage) |D| (Magnitude of flux density) D . • eo getconductorproperties(’conductor’) Properties are returned for the conductor property named ’conductor’. the command would be of the form: eo makeplot(0.emf’) To write data instead of a plot to disk. the Filename parameter is specified. if one wanted to plot V to the screen with 200 points evaluated to make the graph.txt’. contour. the command is interpreted as a request to plot the requested plot type to the screen.Filename. the command is instead interpreted as a command to write the data to disk to the specfied file name. t (Tangential flux density) |E| (Magnitude of field intensity) E . If. 7. and the charge carried on the specified conductor. and ’area’. the command would be: eo makeplot(0. or area mode.0) • eo getprobleminfo Returns info on problem description. If only PlotType or only PlotType and NumPoints are specified.NumPoints. Returns two values: the Problem type (0 for planar and 1 for axisymmetric) and the depth assumed for planar problems in units of meters. If the FileFormat parameter is also.’c:temp. n (Normal field intensity) E .2 Selection Commands • eo seteditmode(mode) Sets the mode of the postprocessor to point. rather than display it to make a graphical plot. Two values are returned: The voltage of the specified conductor. the command would be: eo makeplot(0.FileFormat) Allows Octave to access to the X-Y plot routines.y) Select the block that contains point (x.

• eo zoomout Zoom out one level.• eo groupselectblock(n) Selects all of the blocks that are labeled by block labels that are members of group n. If there are less than two points defined in the contour. eo groupselectblock).y2). This command is used to select conductors for the purposes of the “weighted stress tensor” force and torque integrals.y2) Zoom to the window defined by lower left corner (x1.x2. • eo clearcontour Clear a prevously defined contour • eo clearblock Clear block selection 7.y) Adds a contour point at the closest input point to (x. If this is the first point then it starts a contour. a contour is added that traces along the arcsegment. • eo showpoints Show the node points from the input geometry. • eo bendcontour(angle. can’t be selected with eo selectblock). rather than regions (i.e. • eo zoom(x1. The arc is actually composed of many straight lines. • eo hidemesh Hide the mesh. each of which is constrained to span no more than anglestep degrees. If no number is specified (i.y) Adds a contour point at (x.4 View Commands • eo showmesh Show the mesh. • eo zoomin Zoom in one level. • eo selectconductor(’name’) Selects all nodes. • eo addcontour(x.e.3 Zoom Commands • eo zoomnatural Zoom to the natural boundaries of the geometry.y). all blocks are selected. and arc segments that are part of the conductor specified by the string (’name’). if there are existing points the contour runs from the previous point to this point. 7. If the selected point and a previous selected points lie at the ends of an arcsegment.y1.anglestep) Replaces the straight line formed by the last two points in the contour by an arc that spans angle degrees.y). this command is ignored. The anglestep parameter must be greater than zero. The selectpoint command has the same functionality as the left-button-click contour point selection when the program is running in interactive mode. 30 . The angle parameter can take on values from -180 to 180 degrees.y1) and upper right corner (x2. where the conductors are points or surfaces. segments. • eo selectpoint(x. The eo addcontour command has the same functionality as a right-button-click contour point addition when the program is running in interactive mode.

lower V. • eo showvectorplot(type. eo gridsnap(’flag’) Setting flag to ”on” turns on snap to grid. • eo smooth(’flag’) This function controls whether or not smoothing is applied to the D and E fields which are naturally piece-wise constant over each element. • eo hidedensityplot hides the flux density plot.’type’) Change the grid spacing. The density parameter specifies the space between grid points.scalefactor) controls the display of vectors denoting the field strength and direction. and setting flag to ’off’ turns off smoothing. • eo hidegrid Hide the grid points points.upper D. • eo setgrid(density.type) Shows the flux density plot with options: legend Set to 0 to hide the plot legend or 1 to show the plot legend. The parameters taken are the type of plot. lower V Lower limit for contours. If the scale is set to 1. • eo maximize maximizes the active electrostatics output view. • eo showgrid Show the grid points.lower D. • eo showcontourplot(numcontours. A value of 0 plots voltage. and the type parameter is set to ’cart’ for Cartesian coordinates or ’polar’ for polar coordinates. The scalefactor determines the relative length of the vectors. type Sets the type of density plot. Setting flag equal to ’on’ turns on smoothing. the length of the vectors are chosen so that the highest flux density corresponds to a vector that is the same length as the current grid size setting. upper V Upper limit for contours. which should be set to 0 for no vector plot.upper V) shows the V contour plot with options: numcontours Number of equipotential lines to be plotted. and 2 for field intensity E. gscale Set to 0 for a colour density plot or 1 for a grey scale density plot. setting flag to ’off’ turns off snap to grid. upper D Sets the upper display limit for the density plot.gscale. 1 plots the magnitude of D. • eo minimize minimizes the active electrostatics output view. 31 . • eo showdensityplot(legend. lower D Sets the lower display limit for the density plot.• eo hidepoints Hide the node points from the input geometry. and 2 plots the magnitude of E • eo hidecontourplot Hides the contour plot. 1 for flux density D.

32 . 8.y) • hi addarc(x1. and one that eliminates the underscores. • eo resize(width.y1. 8 Heat Flow Preprocessor Lua Command Set A number of different commands are available in the preprocessor.height) resizes the active electrostatics output window client area to width × height. To hide the block label names.x2.y2) with angle ‘angle’ divided into ‘maxseg’ segments.y) Add a new block label at (x. Two naming conventions can be used: one which separates words in the command names by underscores.y) Add a new node at x.x2.1 Object Add/Remove Commands • hi addnode(x. • hi deleteselected Delete all selected objects. • hi deleteselectednodes Delete selected nodes.angle.y1. To display the names. the parameter should be set to 1. • eo shownames(flag) This function allow the user to display or hide the block label names on screen.y1) to the nearest node to (x2.y2. • eo savemetafile(’filename’) saves a metafile screenshot of the current view to the file specified by ’filename’. flag should be 0. • eo refreshview Redraws the current view. • hi deleteselectedlabels Delete selected block labels.y • hi addsegment(x1.y1) to node closest to (x2. • eo reload Reloads the solution from disk.maxseg) Add a new arc segment from the nearest node to (x1. • eo savebitmap(’filename’) saves a bitmapped screen shot of the current view to the file specified by ’filename’. 7.y2) • hi addblocklabel(x.• eo restore restores the active electrostatics output view from a minimized or maximized state.5 Miscellaneous • eo close close the current postprocessor window.y2) Add a new line segment from node closest to (x1.

• hi deleteselectedsegments Delete selected segments. meshsize. • hi selectlabel(x. • hi deleteselectedarcsegments Delete selects arcs. meshsize: size constraint on the mesh in the block marked by this label. arc segments and block labels.2 Geometry Selection Commands • hi clearselected() Clear all selected nodes. A member of group number group • hi setsegmentprop("propname". hide.y) • hi selectnode(x.3 Object Labeling Commands • hi setnodeprop("propname". 8.y) Select the arc segment closest to (x. Returns the coordinates of the selected label. This function will clear all previously selected elements and leave the edit mode in 4 (group) 8. segments and arc segments. The "inconductor" string specifies which conductor the node belongs to. • hi selectsegment(x. If the node doesn’t belong to a named conductor. this parameter can be set to "<None>". • hi selectarcsegment(x. elementsize. automesh. 1 == hidden in post processor A member of group number group 33 . blocks. 1 = mesher automatically chooses mesh size along the selected segments hide: 0 = not hidden in post-processor. group. • hi setblockprop("blockname".y) Select the line segment closest to (x. group) Set the selected block labels to have the properties: Block property "blockname".y). automesh: 0 = mesher defers to mesh size constraint defined in meshsize.y) Select the label closet to (x. "inconductor") Set the select segments to have: Boundary property "propname" Local element size along segment no greater than elementsize automesh: 0 = mesher defers to the element constraint defined by elementsize.groupno. automesh. "inconductor") Set the selected nodes to have the nodal property "propname" and group number groupno. 1 = mesher automatically chooses the mesh density.y) • hi selectgroup(n) Select the nth group of nodes. segments. Returns the coordinates of the selected node.y).y) Select the node closest to (x.

group. If more than one heat flow input file is being edited at a time. "centimeters". Note if you use a path you must use two backslashes e. this parameter can be specified as "<None>". Valid "units" entries are "inches".4 Problem Commands • hi probdef(units. If the segment is not part of a conductor. representing the depth of the problem in the into-thepage direction for 2-D planar problems. • hi setarcsegmentprop(maxsegdeg. and "micrometers". this command can be used to switch between files so that the mutiple files can be operated upon programmatically via Lua. A fourth parameter. For a visible window. "meters. c:\\temp\\myfile. For example.precision.(depth). 1 == hidden in post processor A member of group number group A member of the conductor specified by the string "inconductor". 34 .A member of the conductor specified by the string "inconductor".type. "inconductor") Set the selected arc segments to: Meshed with elements that span at most maxsegdeg degrees per element Boundary property "propname" hide: 0 = not hidden in post-processor.g. this parameter can be specified as "<None>". either specify no value for flag or specify 0. flag should be set to 1. • hi analyze(flag) runs hsolv to solve the problem.feh 8. A sixth parameter represents the minimum angle constraint sent to the mesh generator. documentname should contain the name of the desired document as it appears on the window’s title bar. entering 1. The precision parameter dictates the precision required by the solver.(minangle)) changes the problem definition. • hi saveas("filename") saves the file with name "filename".5 Mesh Commands • hi createmesh() runs triangle to create a mesh.E-8 requires the RMS of the residual to be less than 10−8 . The units parameter specifies the units used for measuring length in the problem domain. "millimeters". Set problemtype to "planar" for a 2-D planar problem. "propname". 8. hide. For a minimized window. The number of elements in the mesh is pushed back onto the lua stack. "mils". or to "axi" for an axisymmetric problem. Note that this is not a necessary precursor of performing an analysis. can also be specified for planar problems. • hi setfocus(‘‘documentname’’) Switches the heat flow input file upon which Lua commands are to act. The flag parameter controls whether the hsolve window is visible or minimized. as hi analyze() will make sure the mesh is up to date before running an analysis. If the segment is not part of a conductor. • hi loadsolution() loads and displays the solution corresponding to the current geometry.

4.r)turnsacornerlocatedat(x. 3 – arc segments. 1 – lines (segments).y1.y)intoacurveofradiusr.y2. (editaction)) dx. 2 for block labels. 4.(editaction)) bx.• hi showmesh() toggles the flag that shows or hides the mesh. copies.group • hi movetranslate(dx.x2. 3 – arc segments.y1) and (x2.dy – distance by which the selected objects are incrementally shifted. Valid editaction entries are 0 for nodes.by. copies – number of copies to be produced from the selected objects. 1 – lines (segments). • hi purgemesh() clears the mesh out of both the screen and memory. 2 –block labels. 4. 1 for lines (segments). 8. by – base point for scaling scalefactor – a multiplier that determines how much the selected objects are scaled editaction 0 –nodes.(editaction)) mirror the selected objects about a line passing through the points (x1. • hi seteditmode(editmode) Sets the current editmode to: "nodes" – nodes "segments" . 2 –block labels.dy – distance by which the selected objects are shifted. 2 –block labels. • hi moverotate(bx. by – base point for rotation shiftangle – angle in degrees by which the selected objects are rotated. 3 for arc segments. 1 – lines (segments).group • hi mirror(x1. 1 – lines (segments).6 Editing Commands • hi copyrotate(bx.(editaction)) dx. angle. copies – number of copies to be produced from the selected objects.dy.y. copies.group • hi copytranslate(dx.scalefactor. 3 – arc segments. (editaction) ) bx.group • hi scale(bx.group • mi createradius(x. 4.by. editaction 0 –nodes.shiftangle (editaction)) bx. by – base point for rotation angle – angle by which the selected objects are incrementally shifted to make each copy.line segments 35 . by. editaction 0 –nodes. 4. and 4 for groups. 3 – arc segments. 1 – lines (segments). editaction 0 –nodes. editaction 0 –nodes. angle is measured in degrees.y2). dy. 2 –block labels. 3 – arc segments. 2 –block labels.

• hi restore() restores the active heat flow input view from a minimized or maximized state. • hi minimize() minimizes the active heat flow input view.y2). if they are used WITHOUT the editaction parameter. 36 . 8.y1) to the top right corner specified by (x2. • hi zoomout() zooms out by a factor of 50%. • hi maximize() maximizes the active heat flow input view. • hi refreshview() Redraws the current view. • hi zoom(x1.y2) Set the display area to be from the bottom left corner specified by (x1."arcsegments" . 8.x2.arc segments "blocks" .8 View Commands • hi showgrid() Show the grid points. • hi setgrid(density. The density parameter specifies the space between grid points.7 Zoom Commands • hi zoomnatural() zooms to a “natural” view with sensible extents. and the type parameter is set to "cart" for Cartesian coordinates or "polar" for polar coordinates. • hi resize(width.height) resizes the active heat flow input window client area to width × height. • hi hidegrid() Hide the grid points points.block labels "group" .y1.selected group This command will affect all subsequent uses of the other editing commands. • hi gridsnap("flag") Setting flag to ”on” turns on snap to grid. setting flag to ”off”turns off snap to grid."type") Change the grid spacing. • hi zoomin() zoom in by a factor of 200%.

The last number is the value to 37 . Tset. – For a “Periodic” boundary condition. h. beta) adds a new boundary property with name "boundpropname". qs.value) This function allows for modification of a material’s properties without redefining the entire material (e. Tc.propnum. ky Thermal conductivity in the y. set BdryFormat to 5 set all other parameters to zero.or r-direction. The conductortype parameter is 0 for prescribed heat flux and 1 for prescribed temperature. qc. . – To obtain a convection boundary condition. set h to the desired heat transfer coefficient and Tinf to the desired external temperature and set BdryFormat to 2. set BdryFormat to 4 and set all other parameters to zero. qv) adds a new material with called "materialname" with the material properties: kx Thermal conductivity in the x.9 Object Properties • hi addmaterial("materialname". qv Volume heat generation density in units of W/m3 • hi addpointprop("pointpropname". • hi deleteconductor("conductorname") deletes the conductor named conductorname. set the Tset parameter to the desired temperature and all other parameters to zero. Set all other parameters to zero. • hi addboundprop("boundpropname".or z-direction.g. Set the unused property to zero. The material to be modified is specified by "BlockName". BdryFormat.qp) adds a new point property of name "pointpropname" with either a specified temperature Tp or a point heat generation density qp in units of W/m. set qs to be the heat flux density and BdryFormat to 1. – For an “Anti-Perodic” boundary condition. kx. Tinf. • hi deletematerial("materialname") deletes the material named "materialname". • hi addconductorprop("conductorname". The next parameter is the number of the property to be set. • hi deleteboundprop("boundpropname") deletes the boundary property named "boundpropname". – For a “Fixed Temperature” type boundary condition. so that current can be modified from run to run). – For a Radiation boundary condition. – To obtain a “Heat Flux” type boundary condition. • hi deletepointprop("pointpropname") deletes the point property named "pointpropname" • hi modifymaterial("BlockName". conductortype) adds a new conductor property with name "conductorname" with either a prescribed temperature or a prescribed total heat flux.Tp.8. ky. set beta equal to the desired emissivity and Tinf to the desired external temperature and set BdryFormat to 3.

propnum. The various properties that can be modified are listed Symbol BlockName kx ky qs Description Name of the material x (or r) direction thermal conductivity y (or z) direction thermal conductivity Volume heat generation • hi modifyboundprop("BdryName".be applied below: propnum 0 1 2 3 to the specified property.value) This function allows for modification of a boundary property. The various properties that can be modified are listed below: 38 . The last number is the value to be applied to the specified property.value) This function allows for modification of a conductor property.value) This function allows for modification of a point property. The BC to be modified is specified by "BdryName". The various properties that can be modified are listed below: propnum Symbol Description 0 BdryName Name of boundary property 1 BdryFormat Type of boundary condition: 0 = Prescribed temperature 1 = Heat Flux 2 = Convection 3 = Radiation 4 = Periodic 5 = Antiperiodic 2 Tset Fixed Temperature 3 qs Prescribed heat flux density Tinf External temperature 4 5 h Heat transfer coefficient 6 beta Emissivity • hi modifypointprop("PointName". The last number is the value to be applied to the specified property. The next parameter is the number of the property to be set. The next parameter is the number of the property to be set. The conductor property to be modified is specified by "ConductorName". The various properties that can be modified are listed below: propnum Symbol Description 0 PointName Name of the point property 1 Tp Prescribed nodal temperature 2 qp Point heat generation in W/m • hi modifyconductorprop("ConductorName". The point property to be modified is specified by "PointName". The last number is the value to be applied to the specified property. The next parameter is the number of the property to be set.propnum.propnum.

• hi shownames(flag) This function allow the user to display or hide the block label names on screen. the Ro parameter is the radius of the outer region.Ri) defines an axisymmetric external region to be used in conjuction with the Kelvin Transformation method of modeling unbounded problems. The Zo parameter is the z-location of the origin of the outer region. the permeability varies as a function of distance from the origin of the external region. subject to the printf-type formatting explained previously for the hi saveas command. flag should be 0.k) to the thermal conductivity vs. • hi cleartkpoints("materialname") erases all of the thermal conductivity points that have been defined for the material named "materialname". In the exterior region. These parameters are necessary to define the permeability variation in the external region. 1 = Prescribed temperature • hi addtkpoint("materialname". subject to the printf-type formatting explained previously for the hi saveas command. • hi savemetafile("filename") saves a metafile screenshot of the current view to the file specified by "filename". temperature curve for the material specified by "materialname". the region of interest). • hi readdxf("filename") This function imports a dxf file specified by "filename".propnum 0 1 2 3 Symbol ConductorName Tc qc ConductorType Description Name of the conductor property Conductor temperature Total conductor heat flux 0 = Prescribed heat flow. • hi refreshview() Redraws the current view. and the Ri parameter is the radius of the inner region (i.10 Miscellaneous • hi savebitmap("filename") saves a bitmapped screenshot of the current view to the file specified by "filename".Ro. 39 .T. To display the names.k) adds the point (T.e. • hi close() closes the preprocessor window and destroys the current document. To hide the block label names. • hi defineouterspace(Zo. 8. • hi attachouterspace() marks all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation. • hi detachouterspace() undefines all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation. the parameter should be set to 1.

If.1 Data Extraction Commands • ho lineintegral(type) Calculate the line integral for the defined contour type 0 1 2 3 Integral Temperature difference (G · t) Heat flux through the contour (F · n) Contour length Average Temperature This integral returns either 1 or 2 values.direction component of heat flux density Fy y. in order.direction component of temperature gradient Gy y.0) use T.or z.0) • ho makeplot(PlotType.direction component of heat flux density Gx x. As with the preprocessor commands.direction component of thermal conductivity Example: To catch all values at (0. 9.Filename.y The return values. the command is interpreted as a request to plot the requested plot type to the screen.or r.or r. depending on the integral type.Gy. If only PlotType or only PlotType and NumPoints are specified.kx.Fx.or r. Favg = ho lineintegral(2) • ho blockintegral(type) Calculate a block integral for the selected blocks type 0 1 2 3 4 Integral Average T over the block Block Cross-section Block Volume Average F over the block Average G over the block Returns one or two floating point values as results. e.g.direction component of temperature gradient kx x.FileFormat) Allows Lua access to the X-Y plot routines.or z.Gx. in addition. these commands can be used with either the underscore naming or with the no-underscore naming convention.01.NumPoints. are: Symbol Definition V Temperature Fx x. e.direction component of thermal conductivity ky y.Fy.g.or z.9 Heat Flow Post Processor Command Set There are a number of Lua scripting commands designed to operate in the postprocessor. Gy = ho blockintegral(4) • ho getpointvalues(X.01.ky= ho getpointvalues(0.Y) Get the values associated with the point at x.: Gx. 40 . : Ftot.

the command is instead interpreted as a command to write the data to disk to the specfied file name.txt". "contour". 41 .the Filename parameter is specified. or area mode. ho groupselectblock()). the command would be: ho makeplot(0. t (Tangential field intensity) Valid file formats are: FileFormat Definition 0 Multi-column text with legend 1 Multi-column text with no legend 2 Mathematica-style formatting For example. 9. If no number is specified (i. contour. Returns two values: the Problem type (0 for planar and 1 for axisymmetric) and the depth assumed for planar problems in units of meters."c:temp. t (Tangential heat flux density) |E| (Magnitude of field intensity) E . and "area".200. Two values are returned: The temperature of the specified conductor.200. the command would be: ho makeplot(0.emf") To write data instead of a plot to disk. • ho selectblock(x.2 Selection Commands • ho seteditmode(mode) Sets the mode of the postprocessor to point. If the FileFormat parameter is also. n (Normal field intensity) E . rather than display it to make a graphical plot. and the total heat flux through the specified conductor. Valid entries for PlotType are: PlotType 0 1 2 3 4 5 6 Definition V (Temperature) |D| (Magnitude of heat flux density) D . all blocks are selected. n (Normal heat flux density) D ."c:temp. the command would be of the form: ho makeplot(0.y). if one wanted to plot V to the screen with 200 points evaluated to make the graph.y) Select the block that contains point (x. Valid entries for mode are "point".e. • ho getconductorproperties("conductor") Properties are returned for the conductor property named ”conductor”. the plot is instead written to disk to the specified file name as an extended metafile. • ho groupselectblock(n) Selects all of the blocks that are labeled by block labels that are members of group n.200) If this plot were to be written to disk as a metafile.0) • ho getprobleminfo() Returns info on problem description.

The selectpoint command has the same functionality as the left-button-click contour point selection when the program is running in interactive mode. 42 . can’t be selected with ho selectblock). If there are less than two points defined in the contour. • ho bendcontour(angle.anglestep) Replaces the straight line formed by the last two points in the contour by an arc that spans angle degrees. if there are existing points the contour runs from the previous point to this point.y1. • ho zoomout() Zoom out one level.y). • ho hidemesh() Hide the mesh. each of which is constrained to span no more than anglestep degrees.3 Zoom Commands • ho zoomnatural() Zoom to the natural boundaries of the geometry.y) Adds a contour point at the closest input point to (x. where the conductors are points or surfaces. If this is the first point then it starts a contour. The anglestep parameter must be greater than zero. The ho addcontour command has the same functionality as a right-button-click contour point addition when the program is running in interactive mode. segments.y2). The angle parameter can take on values from -180 to 180 degrees. If the selected point and a previous selected points lie at the ends of an arcsegment.4 View Commands • ho showmesh() Show the mesh.y2) Zoom to the window defined by lower left corner (x1.y1) and upper right corner (x2. This command is used to select conductors for the purposes of the “weighted stress tensor” force and torque integrals. • ho zoom(x1. this command is ignored. and arc segments that are part of the conductor specified by the string ("name"). • ho zoomin() Zoom in one level. • ho showpoints() Show the node points from the input geometry. 9. • ho clearcontour() Clear a prevously defined contour • ho clearblock() Clear block selection 9. The arc is actually composed of many straight lines. • ho hidepoints() Hide the node points from the input geometry. a contour is added that traces along the arcsegment. • ho selectpoint(x.x2. • ho addcontour(x.y).• ho selectconductor("name") Selects all nodes.e. rather than regions (i.y) Adds a contour point at (x.

gscale Set to 0 for a colour density plot or 1 for a grey scale density plot. upper V Upper limit for contours. e. • ho hidedensityplot() hides the heat flux density plot.gscale. and 2 for temperature gradient G. ho gridsnap("flag") Setting flag to ”on” turns on snap to grid.• ho smooth("flag") This function controls whether or not smoothing is applied to the F and G fields which are naturally piece-wise constant over each element. which should be set to 0 for no vector plot. and 2 plots the magnitude of G • ho hidecontourplot() Hides the contour plot. and setting flag to "off" turns off smoothing."type") Change the grid spacing. • ho showcontourplot(numcontours. • ho maximize() maximizes the active heat flow input view. • ho hidegrid() Hide the grid points points. The scalefactor determines the relative length of the vectors. the length of the vectors are chosen so that the highest flux density corresponds to a vector that is the same length as the current grid size setting. show contour plot(-1) • ho showvectorplot(type.upper V) shows the V contour plot with options: numcontours Number of equipotential lines to be plotted. If ho numcontours is -1 all parameters are ignored and default values are used.upper.lower. • ho showgrid() Show the grid points. A value of 0 plots temperature. 1 plots the magnitude of F.scalefactor) controls the display of vectors denoting the field strength and direction.lower V. and the type parameter is set to "cart" for Cartesian coordinates or "polar" for polar coordinates. Setting flag equal to "on" turns on smoothing. 1 for heat flux density F. lower V Lower limit for contours. lower Sets the lower display limit for the density plot. 43 . upper Sets the upper display limit for the density plot. The parameters taken are the type of plot. • ho setgrid(density. setting flag to ”off” turns off snap to grid. type Sets the type of density plot. If the scale is set to 1. • ho minimize() minimizes the active heat flow input view. The density parameter specifies the space between grid points.type) Shows the heat flux density plot with options: legend Set to 0 to hide the plot legend or 1 to show the plot legend.g. • ho showdensityplot(legend.

y • ci addsegment(x1. To display the names.y2) with angle ‘angle’ divided into ‘maxseg’ segments. file names like c:\program files\stuff) you must enclose the file name in (extra) quotes by using a \" sequence. • ho savebitmap("filename") saves a bitmapped screen shot of the current view to the file specified by "filename".y2) Add a new line segment from node closest to (x1.y1.g. • ci deleteselected Delete all selected objects.y) Add a new node at x. 10. 44 .angle.y) Add a new block label at (x. • ho resize(width.bmp\"") • ho savemetafile("filename") saves a metafile screenshot of the current view to the file specified by "filename". Two naming conventions can be used: one which separates words in the command names by underscores.y2.x2. If the file name contains a space (e. • ho refreshview() Redraws the current view.y1. 9. • ho shownames(flag) This function allow the user to display or hide the block label names on screen. "c:\\temp\\myfile. For example: ho savebitmap("\"c:\\temp\\screenshot. and one that eliminates the underscores.y) • ci addarc(x1.• ho restore() restores the active heat flow input view from a minimized or maximized state. flag should be 0.x2.y1) to the nearest node to (x2. To hide the block label names. 10 Current Flow Preprocessor Lua Command Set A number of different commands are available in the preprocessor.bmp"). • ho reload() Reloads the solution from disk.height) resizes the active heat flow input window client area to width × height.maxseg) Add a new arc segment from the nearest node to (x1. Note that if you use a path you must use two backslashes (e. subject to the printf-type formatting explained previously for the savebitmap command.5 Miscellaneous • ho close() close the current postprocessor window. the parameter should be set to 1.y2) • ci addblocklabel(x.y1) to node closest to (x2.g.1 Object Add/Remove Commands • ci addnode(x.

y) Select the arc segment closest to (x. Returns the coordinates of the selected node.y). • ci selectlabel(x. meshsize: size constraint on the mesh in the block marked by this label. 10. "inconductor") Set the selected nodes to have the nodal property "propname" and group number groupno. blocks.y) • ci selectgroup(n) Select the nth group of nodes. This function will clear all previously selected elements and leave the edit mode in 4 (group) 10. "inconductor". automesh: 0 = mesher defers to mesh size constraint defined in meshsize. meshsize. The "inconductor" string specifies which conductor the node belongs to. • ci deleteselectedlabels Delete selected block labels. 1 = mesher automatically chooses mesh size along the selected segments 45 . hide.2 Geometry Selection Commands • ci clearselected() Clear all selected nodes.y). • ci selectarcsegment(x.• ci deleteselectednodes Delete selected nodes. segments and arc segments. group. 1 = mesher automatically chooses the mesh density. If the node doesn’t belong to a named conductor. automesh. • ci selectsegment(x. • ci setblockprop("blockname". arc segments and block labels. automesh. segments. • ci deleteselectedarcsegments Delete selects arcs.y) Select the line segment closest to (x. Returns the coordinates of the selected label. A member of group number group • ci setsegmentprop("propname". elementsize.y) • ci selectnode(x. • ci deleteselectedsegments Delete selected segments. this parameter can be set to "<None>".) Set the select segments to have: Boundary property "propname" Local element size along segment no greater than elementsize automesh: 0 = mesher defers to the element constraint defined by elementsize. group) Set the selected block labels to have the properties: Block property "blockname".y) Select the node closest to (x.groupno.3 Object Labeling Commands • ci setnodeprop("propname".y) Select the label closet to (x.

The units parameter specifies the units used for measuring length in the problem domain. can also be specified for planar problems. "meters. this parameter can be specified as "<None>". • ci setarcsegmentprop(maxsegdeg. or to "axi" for an axisymmetric problem.4 Problem Commands • ci probdef(units.precision. For a visible window.type. • ci setfocus("documentname") Switches the electrostatics input file upon which Lua commands are to act. For a minimized window.g. If more than one electrostatics input file is being edited at a time. this command can be used to switch between files so that the mutiple files can be operated upon programmatically via Lua. For example. "millimeters". The frequency parameter specifies the frequency in Hz at which the analysis ois to be performed. A sixth parameter represents the minimum angle constraint sent to the mesh generator. The flag parameter controls whether the Belasolve window is visible or minimized. flag should be set to 1. 1 == hidden in post processor A member of group number group A member of the conductor specified by the string "inconductor". this parameter can be specified as "<None>". "propname".(minangle)) changes the problem definition. "mils". hide.fee 46 . either specify no value for flag or specify 0. "centimeters". Valid "units" entries are "inches". representing the depth of the problem in the into-the-page direction for 2-D planar problems. • ci saveas("filename") saves the file with name "filename". A fourth parameter.frequency. "inconductor") Set the selected arc segments to: Meshed with elements that span at most maxsegdeg degrees per element Boundary property "propname" hide: 0 = not hidden in post-processor.(depth). If the segment is not part of a conductor. Note if you use a path you must use two backslashes e. • ci loadsolution() loads and displays the solution corresponding to the current geometry. The precision parameter dictates the precision required by the solver. documentname should contain the name of the desired document as it appears on the window’s title bar. group. c:\\temp\\myfemmfile.hide: 0 = not hidden in post-processor. entering 1. and "micrometers". Set problemtype to "planar" for a 2-D planar problem. • ci analyze(flag) runs belasolv to solve the problem. If the segment is not part of a conductor.E-8 requires the RMS of the residual to be less than 10−8 . 10. 1 == hidden in post processor A member of group number group A member of the conductor specified by the string "inconductor".

by.dy – distance by which the selected objects are shifted. • ci showmesh() toggles the flag that shows or hides the mesh.(editaction)) bx. editaction 0 –nodes. (editaction) ) bx.group • ci scale(bx. 2 –block labels.5 Mesh Commands • ci createmesh() runs triangle to create a mesh.10. by – base point for rotation shiftangle – angle in degrees by which the selected objects are rotated. copies.scalefactor. by – base point for rotation angle – angle by which the selected objects are incrementally shifted to make each copy.dy – distance by which the selected objects are incrementally shifted. 4. angle is measured in degrees.dy. 4. editaction 0 –nodes. 2 for block labels. 3 – arc segments. copies. 1 – lines (segments).(editaction)) mirror the selected objects about a line passing through the points (x1.y1) and (x2.group • ci movetranslate(dx.r)turnsacornerlocatedat(x. 1 – lines (segments). 47 .(editaction)) dx. 2 –block labels. Valid editaction entries are 0 for nodes. editaction 0 –nodes.group • mi createradius(x. 10. as ci analyze() will make sure the mesh is up to date before running an analysis.y. 1 for lines (segments). by. 3 – arc segments.6 Editing Commands • ci copyrotate(bx. • ci purgemesh() clears the mesh out of both the screen and memory. (editaction)) dx.y)intoacurveofradiusr.by. Note that this is not a necessary precursor of performing an analysis. 1 – lines (segments). 2 –block labels.y2. 3 – arc segments. dy. 4. editaction 0 –nodes. copies – number of copies to be produced from the selected objects.group • ci copytranslate(dx. 4. angle. 2 –block labels. 1 – lines (segments). 3 – arc segments. 3 – arc segments. and 4 for groups. • ci moverotate(bx. 1 – lines (segments). The number of elements in the mesh is pushed back onto the lua stack. 3 for arc segments.y1.x2. by – base point for scaling scalefactor – a multiplier that determines how much the selected objects are scaled editaction 0 –nodes. copies – number of copies to be produced from the selected objects.group • ci mirror(x1.shiftangle (editaction)) bx.y2). 4. 2 –block labels.

block labels "group" . and the type parameter is set to "cart" for Cartesian coordinates or "polar" for polar coordinates. • ci hidegrid() Hide the grid points points. 10. 10. • ci zoomout() zooms out by a factor of 50%. • ci zoom(x1.y2). • ci minimize() minimizes the active magnetics input view. • ci refreshview() Redraws the current view. The density parameter specifies the space between grid points.y1. 48 .line segments "arcsegments" .height) resizes the active magnetics input window client area to width × height.selected group This command will affect all subsequent uses of the other editing commands. • ci gridsnap("flag") Setting flag to ”on” turns on snap to grid.arc segments "blocks" . • ci maximize() maximizes the active magnetics input view."type") Change the grid spacing.7 Zoom Commands • ci zoomnatural() zooms to a “natural” view with sensible extents.y2) Set the display area to be from the bottom left corner specified by (x1. • ci zoomin() zoom in by a factor of 200%.x2. • ci setgrid(density. • ci resize(width. if they are used WITHOUT the editaction parameter. setting flag to ”off”turns off snap to grid.• ci seteditmode(editmode) Sets the current editmode to: "nodes" – nodes "segments" .y1) to the top right corner specified by (x2. • ci restore() restores the active magnetics input view from a minimized or maximized state.8 View Commands • ci showgrid() Show the grid points.

• ci addpointprop("pointpropname". oy Electrical conductivity in the y. For an “Anti-Perodic” boundary condition. so that current can be modified from run to run).10. • ci addboundprop("boundpropname". oy. The last number is the value to 49 . set BdryFormat to 4 set all other parameters to zero.or r-direction. • ci deleteboundprop("boundpropname") deletes the boundary property named "boundpropname". • ci deletepointprop("pointpropname") deletes the point property named "pointpropname" • ci modifymaterial("BlockName". • ci deleteconductor("conductorname") deletes the conductor named conductorname. • ci addconductorprop("conductorname".or z-direction in units of S/m.or r-direction. jc. lty) adds a new material with called "materialname" with the material properties: ox Electrical conductivity in the x.or z-direction.g. The conductortype parameter is 0 for prescribed current and 1 for prescribed voltage. The material to be modified is specified by "BlockName". js. ey Relative permittivity in the y. c1. set js to the desired current density in A/m2 and set BdryFormat to 2. ex Relative permittivity in the x. conductortype) adds a new conductor property with name "conductorname" with either a prescribed voltage or a prescribed total current.or r-direction in units of S/m.or z-direction. The next parameter is the number of the property to be set. ex. To obtain a prescribes surface current density. Set all other parameters to zero. lty Dielectric loss tangent in the y.9 Object Properties • ci addmaterial("materialname".propnum. Vs. For a “Periodic” boundary condition.Vp. set BdryFormat to 3 and set all other parameters to zero. Vc. set C1 and C0 as required and BdryFormat to 1. set the Vs parameter to the desired voltage and all other parameters to zero. • ci deletematerial("materialname") deletes the material named "materialname".value) This function allows for modification of a material’s properties without redefining the entire material (e. ltx. Set the unused property to zero. ey. ox. c0. To obtain a “Mixed” type boundary condition.jp) adds a new point property of name "pointpropname" with either a specified potential Vp a point current density jp in units of A/m. ltx Dielectric loss tangent in the x. BdryFormat) adds a new boundary property with name "boundpropname" For a “Fixed Voltage” type boundary condition.

propnum. The next parameter is the number of the property to be set. The various properties that can be modified are listed below: propnum 0 1 2 3 4 5 Symbol BdryName Vs js c0 c1 BdryFormat Description Name of boundary property Fixed Voltage Prescribed current density Mixed BC parameter Mixed BC parameter Type of boundary condition: 0 = Prescribed V 1 = Mixed 2 = Surface current density 3 = Periodic 4 = Antiperiodic • ci modifypointprop("PointName". The last number is the value to be applied to the specified property.propnum.propnum.value) This function allows for modification of a conductor property.be applied below: propnum 0 1 2 3 4 5 6 to the specified property. The next parameter is the number of the property to be set.value) This function allows for modification of a boundary property. The next parameter is the number of the property to be set. The conductor property to be modified is specified by "ConductorName". The last number is the value to be applied to the specified property.value) This function allows for modification of a point property. The BC to be modified is specified by "BdryName". The last number is the value to be applied to the specified property. The various properties that can be modified are listed below: propnum Symbol Description 0 PointName Name of the point property 1 Vp Prescribed nodal voltage 2 jp Point current density in A/m • ci modifyconductorprop("ConductorName". The various properties that can be modified are listed Symbol BlockName ox oy ex ey ltx lty Description Name of the material x (or r) direction conductivity y (or z) direction conductivity x (or r) direction relative permittivity y (or z) direction relative permittivity x (or r) direction dielectric loss tangent y (or z) direction dielectric loss tangent • ci modifyboundprop("BdryName". The point property to be modified is specified by "PointName". The various properties that can be modified are listed below: 50 .

• ci shownames(flag) This function allow the user to display or hide the block label names on screen. these commands can be used with either the underscore naming or with the no-underscore naming convention. 51 . • ci defineouterspace(Zo. • ci refreshview() Redraws the current view. As with the preprocessor commands. and the Ri parameter is the radius of the inner region (i. • ci close() closes the preprocessor window and destroys the current document. subject to the printf-type formatting explained previously for the ci saveas command. the permeability varies as a function of distance from the origin of the external region. • ci savemetafile("filename") saves a metafile screenshot of the current view to the file specified by "filename". • ci attachouterspace() marks all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation.Ro.Ri) defines an axisymmetric external region to be used in conjuction with the Kelvin Transformation method of modeling unbounded problems. 1 = Prescribed voltage 10. To hide the block label names. These parameters are necessary to define the permeability variation in the external region.e. • ci readdxf("filename") This function imports a dxf file specified by "filename". subject to the printf-type formatting explained previously for the ci saveas command. To display the names. The Zo parameter is the z-location of the origin of the outer region.10 Miscellaneous • ci savebitmap("filename") saves a bitmapped screenshot of the current view to the file specified by "filename". the parameter should be set to 1. the region of interest). flag should be 0.propnum 0 1 2 3 Symbol ConductorName Vc jc ConductorType Description Name of the conductor property Conductor voltage Total conductor current 0 = Prescribed current. 11 Current Flow Post Processor Command Set There are a number of Lua scripting commands designed to operate in the postprocessor. the Ro parameter is the radius of the outer region. In the exterior region. • ci detachouterspace() undefines all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation.

depending on the integral type. : Fx.Y) Get the values associated with the point at x. DC component x (or r) direction Weighted Stress Tensor force. e. 2x frequency component Weighted Stress Tensor torque. as necessary.11.1 Data Extraction Commands • co lineintegral(type) Calculate the line integral for the defined contour type 0 1 2 3 4 5 Integral E ·t J·n Contour length Average voltage over contour Force from stress tensor Torque from stress tensor This integral returns either 1 or 2 values. DC component Weighted Stress Tensor torque. • co getpointvalues(X. in order. DC component y (or z) direction Weighted Stress Tensor force.g. 2x frequency component y (or z) direction Weighted Stress Tensor force.y The return values. Fy = co lineintegral(4) • co blockintegral(type) Calculate a block integral for the selected blocks type 0 1 2 3 4 5 6 7 8 9 10 11 Integral Real Power Reactive Power Apparent Power Time-Average Stored Energy Block cross-section area Block volume x (or r) direction Weighted Stress Tensor force. 2x frequency component Returns a value that can be complex. are: 52 .

or z.direction component of conduction current density y. the command is instead interpreted as a command to write the data to disk to the specfied file name. n (Normal field intensity) E .direction component of permittivity x.direction component of conduction current density • co makeplot(PlotType. the plot is instead written to disk to the specified file name as an extended metafile.FileFormat) Allows Lua access to the X-Y plot routines. If the FileFormat parameter is also. n (Normal current density) J .Filename.direction component of electric field intensity x. if one wanted to plot V to the screen with 200 points evaluated to make the 53 .or r. n (Normal conduction current density) Jc . the Filename parameter is specified.Symbol V Jx Jy Kx Ky Ex Ey ex ey Jdx Jdy ox oy Jcx Jcy Definition Voltage x.or z.or z.or z.or r. Valid entries for PlotType are: PlotType 0 1 2 3 4 5 6 7 8 9 10 11 12 Definition V (Voltage) |J| (Magnitude of current density) J . If.or r. t (Tangential displacement current density) Valid file formats are: FileFormat Definition 0 Multi-column text with legend 1 Multi-column text with no legend 2 Mathematica-style formatting For example.direction component of current density y.or r. in addition.or z. t (Tangential conduction current density) |Jd| (Magnitude of displacement current density) Jd . the command is interpreted as a request to plot the requested plot type to the screen.direction component of displacement current density x.direction component of permittivity y.direction component of current density x.direction component of AC conductivity y.direction component of electric field intensity y.direction component of permittivity y. rather than display it to make a graphical plot.direction component of AC conductivity x.or r. n (Normal displacement current density) Jd . t (Tangential current density) |E| (Magnitude of field intensity) E . If only PlotType or only PlotType and NumPoints are specified.NumPoints.or z.direction component of displacement current density y.direction component of permittivity x.or r.or r.or z. t (Tangential field intensity) |Jc| (Magnitude of conduction current density) Jc .

Two values are returned: The voltage of the specified conductor. The angle parameter can take on values from -180 to 180 degrees. • co addcontour(x.200) If this plot were to be written to disk as a metafile. • co groupselectblock(n) Selects all of the blocks that are labeled by block labels that are members of group n. if there are existing points the contour runs from the previous point to this point."c:temp."c:temp. The co addcontour command has the same functionality as a right-button-click contour point addition when the program is running in interactive mode.y) Select the block that contains point (x.200. and "area". and the current on the specified conductor. each of which is constrained to span no more than anglestep degrees. This command is used to select conductors for the purposes of the “weighted stress tensor” force and torque integrals. • co selectblock(x. The anglestep parameter must be greater than zero.anglestep) Replaces the straight line formed by the last two points in the contour by an arc that spans angle degrees. can’t be selected with co selectblock).2 Selection Commands • co seteditmode(mode) Sets the mode of the postprocessor to point. "contour".graph. 54 . contour. If this is the first point then it starts a contour. segments. The arc is actually composed of many straight lines.txt".0) • co getprobleminfo() Returns info on problem description.y). this command is ignored. • co selectconductor("name") Selects all nodes. and arc segments that are part of the conductor specified by the string ("name"). the command would be: co makeplot(0. the command would be of the form: co makeplot(0. where the conductors are points or surfaces.200. 11. • co getconductorproperties("conductor") Properties are returned for the conductor property named ”conductor”.emf") To write data instead of a plot to disk.y) Adds a contour point at (x. Valid entries for mode are "point". all blocks are selected.e. or area mode.y). Returns three values: Return value 1 2 3 Definition problem type frequency in Hz depth assumed for planar problems in meters. If there are less than two points defined in the contour. If no number is specified (i. the command would be: co makeplot(0. rather than regions (i. co groupselectblock()). • co bendcontour(angle.e.

4 View Commands • co showmesh() Show the mesh. • co zoom(x1. The density parameter specifies the space between grid points. • co hidepoints() Hide the node points from the input geometry.x2. a contour is added that traces along the arcsegment. If the selected point and a previous selected points lie at the ends of an arcsegment. 55 .y2) Zoom to the window defined by lower left corner (x1.3 Zoom Commands • co zoomnatural() Zoom to the natural boundaries of the geometry. • co setgrid(density. 11. • co hidegrid() Hide the grid points points.y).• co selectpoint(x. • co zoomout() Zoom out one level. and the type parameter is set to "cart" for Cartesian coordinates or "polar" for polar coordinates.y1. • co hidemesh() Hide the mesh. • co showgrid() Show the grid points.y1) and upper right corner (x2.y) Adds a contour point at the closest input point to (x. • co hidedensityplot() hides the current density plot."type") Change the grid spacing. and setting flag to "off" turns off smoothing. setting flag to ”off” turns off snap to grid. • co zoomin() Zoom in one level. • co clearcontour() Clear a prevously defined contour • co clearblock() Clear block selection 11.y2). The selectpoint command has the same functionality as the left-button-click contour point selection when the program is running in interactive mode. • co showpoints() Show the node points from the input geometry. co gridsnap("flag") Setting flag to ”on” turns on snap to grid. • co smooth("flag") This function controls whether or not smoothing is applied to the D and E fields which are naturally piece-wise constant over each element. Setting flag equal to "on" turns on smoothing.

type) Shows the current density plot with options: legend Set to 0 to hide the plot legend or 1 to show the plot legend.upper. show contour plot(-1) The type can take on the values of "real". denoting the real part of voltage. type the type of contour plot to be rendered.lower V. • co showvectorplot(type. upper Sets the upper display limit for the density plot. lower V Lower limit for contours.gscale.• co showdensityplot(legend. or "both". The type parameter can take on the following values: type 0 1 2 3 4 5 6 Description No vector plot Re(J) Re(E) The scalefactor determines the relative length of the vectors. If co numcontours is -1 all parameters are ignored and default values are used. the imaginary part of voltage. e. upper V Upper limit for contours. lower Sets the lower display limit for the density plot.scalefactor) controls the display of vectors denoting the field strength and direction. Specific choices for the type of density plot include: type 0 1 2 3 4 5 6 7 8 Description |V | |Re(V )| |Im(V )| |J| |Re(J)| |Im(J)| |E| |Re(E)| |Im(E)| • co hidecontourplot() Hides the contour plot. type Sets the type of density plot.g.upper V). • co showcontourplot(numcontours. gscale Set to 0 for a colour density plot or 1 for a grey scale density plot. or both components of voltage.lower. "imag". Im(J) Im(E) Re(J) and Im(J) Re(E) and Im(E) 56 .type shows the V contour plot with options: numcontours Number of equipotential lines to be plotted.

bmp\"") • co savemetafile("filename") saves a metafile screenshot of the current view to the file specified by "filename".g. • co refreshview() Redraws the current view. For example: co savebitmap("\"c:\\temp\\screenshot. • co savebitmap("filename") saves a bitmapped screen shot of the current view to the file specified by "filename". 57 . • co resize(width. • co minimize() minimizes the active magnetics input view. • co reload() Reloads the solution from disk. Note that if you use a path you must use two backslashes (e. flag should be 0. To hide the block label names. • co maximize() maximizes the active magnetics input view. the parameter should be set to 1.height) resizes the active magnetics input window client area to width × height.g. To display the names. file names like c:\program files\stuff) you must enclose the file name in (extra) quotes by using a \" sequence. subject to the printf-type formatting explained previously for the savebitmap command. the length of the vectors are chosen so that the highest field magnitude corresponds to a vector that is the same length as the current grid size setting. 11.5 Miscellaneous • co close() close the current postprocessor window.bmp"). "c:\\temp\\myfile. • co shownames(flag) This function allow the user to display or hide the block label names on screen. • co restore() restores the active magnetics input view from a minimized or maximized state.If the scale is set to 1. If the file name contains a space (e.

Sign up to vote on this title
UsefulNot useful