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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

value) This function allows for modification of a point property.value) This function allows for modification of a conductor property. The next parameter is the number of the property to be set. The various properties that can be modified are listed below: propnum Symbol Description 0 PointName Name of the point property Vp Prescribed nodal voltage 1 2 qp Point charge density in C/m • ei modifyconductorprop(’ConductorName’. The various properties that can be modified are listed below: propnum Symbol Description 0 ConductorName Name of the conductor property 1 Vc Conductor voltage 2 qc Total conductor charge 3 ConductorType 0 = Prescribed charge.propnum. The last number is the value to be applied to the specified property.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 last number is the value to be applied to the specified property.propnum. The point property to be modified is specified by ’PointName’. The next parameter is the number of the property to be set. The BC to be modified is specified by ’BdryName’. 1 = Prescribed voltage 26 .propnum 0 1 2 3 Symbol BlockName ex ey qs Description Name of the material x (or r) direction relative permittivity y (or z) direction relative permittivity Volume charge • ei modifyboundprop(’BdryName’. The last number is the value to be applied to the specified property.propnum. The conductor property to be modified is specified by ’ConductorName’. The next parameter is the number of the property to be set.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful