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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful