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

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

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

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

by default. Phi hx. – Phi hmax Hysteresis lag angle in degrees. The density parameter specifies the space between grid points. – Lam d Lamination thickness in millimeters. setting flag to ’off’ turns off snap to grid.4. – mu y Relative permeability in the y. – J Applied source current density in Amps/mm2. mu x. mu y.height) resizes the active magnetics input window client area to width × height. lam fill. J. dwire) adds a new material with called ’matname’ with the material properties: – mu x Relative permeability in the x. nstr. • mi resize(width.9 Object Properties • mi addmaterial(’matname’. used for nonlinear BH curves.or r-direction. 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 . • mi_grid_snap(’flag’) Setting flag to ’on’ turns on snap to grid. • mi maximize maximizes the active magnetics input view. • mi refreshview Redraws the current view. LamType. – Cduct Electrical conductivity of the material in MS/m. Phi hmax. – H c Permanent magnet coercivity in Amps/Meter. – 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.’type’) Change the grid spacing. 4.8 View Commands • mi_showgrid Show the grid points. Phi hy. • mi minimize minimizes the active magnetics input view. • mi restore restores the active magnetics input view from a minimized or maximized state. • mi_setgrid(density. • mi_hidegrid Hide the grid points points. Lam d.or z-direction. and the type parameter is set to ’cart’ for cartesian coordinates or ’polar’ for polar coordinates. Cduct. H c.

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

propnum. The various properties that can be modified are listed below: 11 . MS/m Lamination thickness. mm Hysteresis lag angle for nonlinear problems. degrees • mi_modifyboundprop(’BdryName’. 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 material to be modified is specified by ’BlockName’. degrees Iron fill fraction 0 = None/In plane. • mi deletecircuit(’circuitname’) deletes the circuit named circuitname. 2=parallel to y Hysteresis lag in x-direction for linear problems. • mi deletepointprop(’pointpropname’) deletes the point property named ’pointpropname’ • mi_modifymaterial(’BlockName’. The next parameter is the number of the property to be set. degrees Hysteresis lag in y-direction for linear problems. The last number is the value to be applied to the specified property. The BC to be modified is specified by ’BdryName’. Amps/Meter Source current density.value) This function allows for modification of a material’s properties without redefining the entire material (e. so that current can be modified from run to run). 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. MA/m2 Electrical conductivity. • mi deleteboundprop(’propname’) deletes the boundary property named ’propname’.g.propnum.value) This function allows for modification of a boundary property.• mi deletematerial(’materialname’) deletes the material named ’materialname’. 1 = parallel to x.

The last number is the value to be applied to the specified property.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. The last number is the value to be applied to the specified property. The point property to be modified is specified by ’PointName’. Amps • mi_modifycircprop(’CircName’. 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’.propnum.value) This function allows for modification of a circuit property. 4.10 Miscellaneous • mi savebitmap(’filename’) saves a bitmapped screenshot of the current view to the file specified by ’filename’. The next parameter is the number of the property to be set. The circuit property to be modified is specified by ’CircName’. Weber/Meter Nodal current.value) This function allows for modification of a point property. 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.propnum. 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. The next parameter is the number of the property to be set. 12 .i) sets the current in the circuit specified by ’CircName’ to i. 1 = Series • mi setcurrent(’CircName’.

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

moment of inertia / density) • mo getpointvalues(x.y) Get the values associated with the point at (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. For force and torque results. the 2× results are only relevant for problems where ω = 0. The function returns an array whose contents are.results. in order: 14 .e.y).

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

if one wanted to plot B · n to the screen with 200 points evaluated to make the graph. Properties are returned for the circuit property named ’circuit’. In order. 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. If only PlotType or only PlotType and NumPoints are specified. in addition. the command would be: mo_makeplot(2. Six values are returned by the function.’c:\temp\myfile.Filename. the command is instead interpreted as a command to write the data to disk to the specfied file name. these parameters are: 16 . rather than display it to make a graphical plot.txt’. 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. the Filename parameter is specified.200) If this plot were to be written to disk as a metafile. If the FileFormat parameter is also. the command is interpreted as a request to plot the requested plot type to the screen.emf’) To write data instead of a plot to disk. If. the command would be of the form: mo_makeplot(2.’c:\temp\myfile.200. the plot is instead written to disk to the specified file name as an extended metafile.200.• mo_makeplot(PlotType.FileFormat) Allows Octave access to FEMM’s X-Y plot routines. the command would be: mo makeplot(2.NumPoints.0) • mo_getprobleminfo Returns info on problem description.

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

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

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

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

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

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

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

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

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

value) This function allows for modification of a boundary property.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 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. The last number is the value to be applied to the specified property.propnum.value) This function allows for modification of a conductor property. The conductor property to be modified is specified by ’ConductorName’.value) This function allows for modification of a point property. 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 Vp Prescribed nodal voltage 1 2 qp Point charge density in C/m • ei modifyconductorprop(’ConductorName’. 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’.propnum. 1 = Prescribed voltage 26 .propnum. 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. The BC to be modified is specified by ’BdryName’. The next parameter is the number of the property to be set. The point property to be modified is specified by ’PointName’.

7. To hide the block label names.Ro. 7 Electrostatics Post Processor Command Set There are a number of scripting commands designed to operate in the postprocessor. These parameters are necessary to define the permeability variation in the external region. As with the preprocessor commands. these commands can be used with either the underscore naming or with the no-underscore naming convention. • ei readdxf(’filename’) This function imports a dxf file specified by ’filename’. To display the names. In the exterior region. The Zo parameter is the z-location of the origin of the outer region. the parameter should be set to 1.6. • ei shownames(flag) This function allow the user to display or hide the block label names on screen. flag should be 0. • ei defineouterspace(Zo.e. • ei detachouterspace undefines all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation. the permeability varies as a function of distance from the origin of the external region. • ei savemetafile(’filename’) saves a metafile screenshot of the current view to the file specified by ’filename’.Ri) defines an axisymmetric external region to be used in conjuction with the Kelvin Transformation method of modeling unbounded problems. and the Ri parameter is the radius of the inner region (i.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 . • ei close closes the preprocessor window and destroys the current document. • ei attachouterspace marks all selected block labels as members of the external region used for modeling unbounded axisymmetric problems via the Kelvin Transformation.10 Miscellaneous • ei savebitmap(’filename’) saves a bitmapped screenshot of the current view to the file specified by ’filename’. the Ro parameter is the radius of the outer region. • ei refreshview Redraws the current view. the region of interest).

The function returns an array of results whose elements represent: Symbol V Dx Dy Ex Ey ex ey nrg Definition Voltage x.or z. • eo getpointvalues(x.or r.y) Gets the electric permittivity associated with the point at (x. contour length.y) Gets the electric field intensity associated with the point at (x.y).direction component of displacement y.direction component of electric field intensity 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. The return value is a list with two element representing Ex and Ey for planar problems and Er and Ez for axisymmetric problems.y). flux density. The return value is a list with two element representing Dx and Dy for planar problems and Dr and Dz for axisymmetric problems.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. 28 .y) Gets the voltage associated with the point at (x.or z.direction component of permittivity y.y).direction component of permittivity electric field energy density • eo getv(x. For force.or r. an array with two elements is returned representing force in the x and y or r and z directions.y). • eo gete(x.y) Gets the values associated with the point at (x.or r. • eo getenergydensity(x. • eo getperm(x. D and E. volume and torque. • eo getd(x. y).or z. For force.direction component of electric field intensity 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.This integral a single result for field intensity. The return value is a list with two element representing εx and εy for planar problems and εr and εz for axisymmetric problems.y). and torque.

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

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

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

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

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

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

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

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

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

The next parameter is the number of the property to be set. The next parameter is the number of the property to be set.be applied below: propnum 0 1 2 3 to the specified property. The point property to be modified is specified by "PointName". The last number is the value to be applied to the specified property. The last number is the value to be applied to the specified property.value) This function allows for modification of a boundary property.value) This function allows for modification of a conductor property.value) This function allows for modification of a point property. 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".propnum. The conductor property to be modified is specified by "ConductorName". 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 BC to be modified is specified by "BdryName".propnum. The next parameter is the number of the property to be set. 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 various properties that can be modified are listed below: 38 .propnum. The last number is the value to be applied to the specified property.

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

g.or r. As with the preprocessor commands.direction component of thermal conductivity Example: To catch all values at (0.or r.kx. e. in order.Gy.Filename.0) use T.0) • ho makeplot(PlotType. these commands can be used with either the underscore naming or with the no-underscore naming convention.or z.Fx.NumPoints.ky= ho getpointvalues(0.direction component of temperature gradient Gy y. depending on the integral type. Gy = ho blockintegral(4) • ho getpointvalues(X.01. If only PlotType or only PlotType and NumPoints are specified.Y) Get the values associated with the point at x.or r.or z.g. 40 .Gx.direction component of thermal conductivity ky y.: Gx. e. are: Symbol Definition V Temperature Fx x. If.direction component of heat flux density Fy y.Fy.FileFormat) Allows Lua access to the X-Y plot routines. : Ftot.or z.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 temperature gradient kx x.direction component of heat flux density Gx x. in addition.01.9 Heat Flow Post Processor Command Set There are a number of Lua scripting commands designed to operate in the postprocessor. the command is interpreted as a request to plot the requested plot type to the screen. 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. 9.y The return values.

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

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

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

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

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

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

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

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

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

The next parameter is the number of the property to be set. The conductor property to be modified is specified by "ConductorName".value) This function allows for modification of a boundary property. The point property to be modified is specified by "PointName". The last number is the value to be applied to the specified property. The last number is the value to be applied to the specified property.propnum. 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 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 BC to be modified is specified by "BdryName".propnum. The various properties that can be modified are listed below: 50 .value) This function allows for modification of a conductor property. The last number is the value to be applied to the specified property.value) This function allows for modification of a point property. 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".propnum.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. The next parameter is the number of the property to be set.

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

11. 2x frequency component y (or z) direction Weighted Stress Tensor force. DC component y (or z) direction Weighted Stress Tensor force.Y) Get the values associated with the point at x. DC component x (or r) direction Weighted Stress Tensor force.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. depending on the integral type.g. in order. • co getpointvalues(X. DC component Weighted Stress Tensor torque. as necessary. 2x frequency component Returns a value that can be complex. : Fx. 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.y The return values. 2x frequency component Weighted Stress Tensor torque. e. are: 52 .

or z.direction component of electric field intensity y.or z.or z. t (Tangential conduction current density) |Jd| (Magnitude of displacement current density) Jd . n (Normal conduction current density) Jc .direction component of current density x.direction component of permittivity y. If.NumPoints. If the FileFormat parameter is also. the plot is instead written to disk to the specified file name as an extended metafile.or r.or r. rather than display it to make a graphical plot.direction component of permittivity x.or z.or r. n (Normal current density) J .direction component of AC conductivity x.or r.direction component of permittivity y.or r. the command is interpreted as a request to plot the requested plot type to the screen.direction component of AC conductivity y. n (Normal field intensity) E .or z. 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 .direction component of conduction current density • co makeplot(PlotType. t (Tangential current density) |E| (Magnitude of field intensity) E .or z.direction component of electric field intensity x. If only PlotType or only PlotType and NumPoints are specified. the Filename parameter is specified. n (Normal displacement current density) Jd .Symbol V Jx Jy Kx Ky Ex Ey ex ey Jdx Jdy ox oy Jcx Jcy Definition Voltage x.or r.direction component of displacement current density x.or z.or r. in addition.FileFormat) Allows Lua access to the X-Y plot routines.direction component of current density y.direction component of conduction current density y.direction component of displacement current density y. if one wanted to plot V to the screen with 200 points evaluated to make the 53 . the command is instead interpreted as a command to write the data to disk to the specfied file name. t (Tangential field intensity) |Jc| (Magnitude of conduction current density) Jc . 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.Filename.direction component of permittivity x.

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

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

or "both". or both components of voltage. lower Sets the lower display limit for the density plot. lower V Lower limit for contours.type shows the V contour plot with options: numcontours Number of equipotential lines to be plotted.gscale. 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. 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. Im(J) Im(E) Re(J) and Im(J) Re(E) and Im(E) 56 .lower. upper Sets the upper display limit for the density plot.type) Shows the current density plot with options: legend Set to 0 to hide the plot legend or 1 to show the plot legend. • co showvectorplot(type.lower V. type Sets the type of density plot. upper V Upper limit for contours.g. If co numcontours is -1 all parameters are ignored and default values are used.upper V).scalefactor) controls the display of vectors denoting the field strength and direction. e. show contour plot(-1) The type can take on the values of "real".• co showdensityplot(legend.upper. • co showcontourplot(numcontours. "imag". the imaginary part of voltage. gscale Set to 0 for a colour density plot or 1 for a grey scale density plot. denoting the real part of voltage. type the type of contour plot to be rendered.

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

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.