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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

propnum. The next parameter is the number of the property to be set. The point property to be modified is specified by ’PointName’. The next parameter is the number of the property to be set. The next parameter is the number of the property to be set. The 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. 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 conductor property to be modified is specified by ’ConductorName’.propnum.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 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’. 1 = Prescribed voltage 26 . The various properties that can be modified are listed below: propnum Symbol Description 0 PointName Name of the point property Vp Prescribed nodal voltage 1 2 qp Point charge density in C/m • ei modifyconductorprop(’ConductorName’.propnum 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’.value) This function allows for modification of a conductor property.value) This function allows for modification of a boundary property.propnum.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

value) This function allows for modification of a point property. 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 Vp Prescribed nodal voltage 2 jp Point current density in A/m • ci modifyconductorprop("ConductorName".value) This function allows for modification of a conductor property. The next parameter is the number of the property to be set.propnum. 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. The various properties that can be modified are listed Symbol BlockName ox oy ex ey ltx lty Description Name of the material x (or r) direction conductivity y (or z) direction conductivity x (or r) direction relative permittivity y (or z) direction relative permittivity x (or r) direction dielectric loss tangent y (or z) direction dielectric loss tangent • ci modifyboundprop("BdryName". The BC to be modified is specified by "BdryName". The point property to be modified is specified by "PointName". The conductor property to be modified is specified by "ConductorName".value) This function allows for modification of a boundary property.propnum. The various properties that can be modified are listed below: 50 . The last number is the value to be applied to the specified property. 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".be applied below: propnum 0 1 2 3 4 5 6 to the specified property.propnum. The next parameter is the number of the property to be set.

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful