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

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

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

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

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

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

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

12 . The next parameter is the number of the property to be set. The next parameter is the number of the property to be set. 4.value) This function allows for modification of a circuit property. The point property to be modified is specified by ’PointName’.10 Miscellaneous • mi savebitmap(’filename’) saves a bitmapped screenshot of the current view to the file specified by ’filename’.i) sets the current in the circuit specified by ’CircName’ to i. The last number is the value to be applied to the specified property. Amps • mi_modifycircprop(’CircName’. MS/m Mixed BC parameter Mixed BC parameter Type of boundary condition: 0 = Prescribed A 1 = Small skin depth 2 = Mixed 3 = Strategic Dual Image 4 = Periodic 5 = Antiperiodic • mi_modifypointprop(’PointName’. The circuit property to be modified is specified by ’CircName’.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.propnum. The last number is the value to be applied to the specified property. 1 = Series • mi setcurrent(’CircName’. The various properties that can be modified are listed below: propnum 0 1 2 Symbol PointName A J Description Name of the point property Nodal potential. The 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.propnum. Weber/Meter Nodal current.value) This function allows for modification of a point property.

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

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

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

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

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

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

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

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

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

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

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

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

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

propnum. The last number is the value to be applied to the specified property. 1 = Prescribed voltage 26 .value) This function allows for modification of a point property.propnum. 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’.value) This function allows for modification of a boundary 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’. The BC to be modified is specified by ’BdryName’. The last number is the value to be applied to the specified property. The next parameter is the number of the property to be set.value) This function allows for modification of a conductor property. The next parameter is the number of the property to be set. The next parameter is the number of the property to be set. The various properties that can be modified are listed below: propnum Symbol Description 0 ConductorName Name of the conductor property 1 Vc Conductor voltage 2 qc Total conductor charge 3 ConductorType 0 = Prescribed charge.propnum 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’.propnum. The conductor property to be modified is specified by ’ConductorName’. The point property to be modified is specified by ’PointName’. The last number is the value to be applied to the specified property.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 next parameter is the number of the property to be set.be applied below: propnum 0 1 2 3 4 5 6 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".propnum.propnum. The BC to be modified is specified by "BdryName". The point property to be modified is specified by "PointName". The next parameter is the number of the property to be set.value) This function allows for modification of a boundary property.propnum. The last number is the value to be applied to the specified property. The next parameter is the number of the property to be set. The various properties that can be modified are listed below: propnum 0 1 2 3 4 5 Symbol BdryName Vs js c0 c1 BdryFormat Description Name of boundary property Fixed Voltage Prescribed current density Mixed BC parameter Mixed BC parameter Type of boundary condition: 0 = Prescribed V 1 = Mixed 2 = Surface current density 3 = Periodic 4 = Antiperiodic • ci modifypointprop("PointName". The various properties that can be modified are listed below: propnum Symbol Description 0 PointName Name of the point property 1 Vp Prescribed nodal voltage 2 jp Point current density in A/m • ci modifyconductorprop("ConductorName".value) This function allows for modification of a point property. The conductor property to be modified is specified by "ConductorName". The last number is the value to be applied to the specified property.value) This function allows for modification of a conductor property.

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful