Ansoft HFSS v11 Field Calculator Cookbook
Ansoft HFSS v11 Field Calculator Cookbook
Ansoft HFSS v11 Field Calculator Cookbook
A BRIEF PRIMER AND COLLECTION OF STEP-BY-STEP CALCULATOR RECIPIES FOR USE IN HFSS FIELDS POST-PROCESSING
ANSOFT CORPORATION
ANSOFT HFSS FIELD CALCULATOR COOKBOOK A Brief Primer and Collection of Step-by-Step Calculator Recipes for use in HFSS Fields Post-Processing
NOTICE:
The information contained in this document is subject to change without notice. Ansoft Corporation makes no warrany of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Ansoft shall not be liable for errors contained herein or for incidental or consequential damage in connection with the furnishing, performance, or use of this material. This document contains proprietary information which is protected by copyright. All rights are reserved. ANSOFT CORPORATION Four Station Square, Suite 200 Pittsburgh, PA 15219 (412) 261-3200 2000 Ansoft Corporation
VERSION NOTICE:
The calculator routines described in the following pages are intended for use with Ansoft HFSS Version 7 (7.0.04). Earlier or later versions of the software may include differences in the Field Calculator which will require alteration of the routines contained herein.
-i-
ANSOFT CORPORATION
INTRODUCTION
The following pages contain calculator routines, or recipes, for use within the Field Calculator feature of Ansofts HFSS Version 7. The field calculator is a very powerful but frequently misunderstood and underutilized tool within the 3D Fields Post-Processor. These routines represent only a small set of the complete capabilities of the calculator. Starting from field data obtained by performing an HFSS solution, the calculator could be used to generate thermal information, voltages and currents, or any other quantity that can be viewed in a 3D environment upon the modeled geometry. This document is intended to give the user a head start in using the calculator by codifying some frequently used calculations into easy-tofollow steps. In many cases the steps identified in this document are not the only sequence of operations which can obtain the same results. However, an attempt has been made to identify the routines that require the least number of button clicks and stack manipulations to obtain the desired answer.
-ii-
ANSOFT CORPORATION
TABLE OF CONTENTS
Introduction Table of Contents Cautionary Notes about Field Calculator Operation Calculator Interface Basics Calculator Stack Quantities Calculator Recipes
EXAMPLE SHEET SHOWING RECIPE FORMAT CALCULATING NUMERICAL QUANTITIES Calculating the Current along a Wire or Trace Calculating the Voltage Drop along a Line Calculating the Net Power Flow Through a Surface Calculating the Average of a Field Quantity on a Surface Calculating the Peak Electrical Energy in a Volume Calculating the Q of a Resonant Cavity CALCULATING QUANTITIES FOR 2D (LINE) PLOT OUTPUTS Plotting the Wave Impedance along a Line Plotting the Phase of E Tangential to a Line/Curve Plotting the Maximum Magnitude of E Tangential to a Line CALCULATING QUANTITIES FOR 3D (SURFACE OR VECTOR) PLOT OUTPUTS Plotting the E-Field Vector along a Line Plotting the E-Field Magnitude Normal to a Surface CALCULATING QUANTITIES FOR 3D (VOLUME) PLOT OUTPUTS Generating an Iso-Surface Contour For a Given Field Value CALCULATING QUANTITIES FOR ANIMATED OUTPUTS Generating an Animation on a Plane with respect to Excitation Phase Generating an Animation on Multiple Planes with a Positional Variable
ii iii 1 3 7 9
9
10 11 12 13 14 15
17 18 19
20 21
22
23 24
25
-iii-
ANSOFT CORPORATION
Cautionary Notes
The following text provides some brief cautionary notes regarding use of the Post-Processor Field Calculator in Ansoft HFSS. Most of the statements below are fairly generalized, and may not apply to all HFSS projects. When in doubt about the applicability of a particular warning for a particular project, please feel free to contact your local HF Applications Engineer for further assistance. Field Convergence: Ansoft HFSS is a finite element method (FEM) field solver, which arrives upon its solution via adaptive meshing convergence. There are different algorithms available for determining where in each given model mesh adaptation is performed, but convergence is always evaluated by comparison of S-parameters (for driven solutions), changes in overall scattering energy (for incident wave problems) or resonant frequencies (for eigenmode solutions) from pass to pass. Since these quantities represent the results of the model as a whole, they tend to converge more rapidly than the field values at each point in the modeled space can be said to have converged to some value. As a result, specific field quantities at each mesh point are likely to be less accurate than the overall S-parameter or Eigenfrequency result of a project solution. In order to obtain high accuracy results from calculations on field data, it is advised that the user take extra precautions to assure that the models field data is dependable. These extra precautions might include: -- Running the project to a tighter than usual convergence value -- Seeding or manually refining the mesh in the areas to be used for calculations -- Running parametric variations to isolate sensitivity to modeling parameters such as adaptation frequency or circular cross-section facetization. As long as the accuracy of specific field data points to be used has been assured, the results of the HFSS Field Calculator operations should provide valuable information for the users electromagnetic design tasks. Fast Sweep and Dispersive Models: If an HFSS solution has been performed to include an ALPS Fast Frequency Sweep, the Fields Post-Processor can be tuned to display field data at any point in the frequency band swept. The specific frequency selected for viewing (in the Data Edit Sources menu of the Fields PostProcessor) need not even be a precise data point at which the S-parameters were calculated. While field calculator operations may be performed at any frequency to which the Fields PostProcessor is set, fast sweep solution field data (away from the center frequency of the sweep) may not be as accurate for lossy and dispersive media, within the interior of solid-meshed finite conductors, etc. For higher accuracy under these conditions, field calculator operations should be performed on a full matrix solution completed at the desired frequency. Since materials assigned as part of a Perfectly Matched Layer (PML) model termination are anisotropic and highly lossy, performing field calculations on the surface of or interior to objects designated as PMLs is not recommended.
-1-
ANSOFT CORPORATION
Inputs/Excitations: The user should remember to set the field excitation using DATA EDIT SOURCES appropriate to the calculation to be performed. In some cases (e.g. FSS calculations) picking the right field solution set (incident, scattered, or total) is also paramount to obtaining the intended result. Any field calculation which has not yet been completed (such that the calculator stack still shows some form of text string rather than a simple numerical value) is merely a placeholder. Altering the field data loaded in the Post-Processor (by altering port excitations, changing frequency, or picking a different solution set using Data Edit Sources) will result in subsequent evaluation of the placeholder to the newly loaded data. To preserve a placeholders association to an existing data set before altering the excitation to a different data set, the register stack should be exported using the Write button. The correctly associated quantity can be brought back into the stack using Read after the field data set selection has been altered. Units: All units in Driven HFSS field solutions are expressed in the MKS system, regardless of drawing units. Therefore E-mag is always in V/m, H-mag in A/m, etc. The exception is that when plotting along a geometry (e.g. along a line) the dimension along the X axis of the graph shows the position along the line in the drawing units, while the vertical (field quantity) axis will be in the MKS system. Eigensolutions: Field values in eigensolutions are normalized to a peak value of 1.0, since there is no real excitation to which to scale the internal field results. If desired, the peak value can be scaled to a user-selected number using the Data Edit Sources menu. Macro Implementation: All calculator operations have direct equivalents in the HFSS Macro Language. There are, however, additional commands in the macro language to permit use of calculator operation results (e.g. to extract the top entry from the calculator stack and save its value to a macro variable for later storage in a database) which do not emulate specific calculator operations. Details on the use and syntax of these commands can be found in the macro manual, Introduction to the Ansoft Macro Language.
-2-
ANSOFT CORPORATION
-3-
ANSOFT CORPORATION
The Field Calculator (hereafter referred to as the calculator) interface is shown in Figure 1, above. The top of the calculator contains the stack, in which calculator entries are held in stack registers. Immediately beneath the stack is the row of stack command buttons, as well as a Name field for assigning a name to the top entry in the stack. The middle of the calculator contains selection buttons to opt between degree and radian assumptions for all calculator operations. The default setting is degrees. The bottom half of the calculator holds the columns containing the actual calculator buttons, organized in columns by functional groups. These columns are headed Input, General, Scalar, Vector, and Output. Each will be discussed in further detail below. At the very bottom of the calculator are buttons to exit (Done) and to access the online Help. As shown in Figure 2, below, some calculator buttons are actually dropdown menus, containing multiple button options. Buttons which contain multiple options are indicated with an arrow symbol on their face. The extreme bottom of the calculator will also act as a status bar providing prompts describing the various button options within these dropdown menus.
Figure 2: Dropdown Menu Button Example Stack Registers: Calculator stack registers add to the stack display above preceding entries. Therefore, the entry at the top of the stack represents the last register filled. This convention is opposite to that which many users may be familiar with from the use of hand-held multi-line calculators, which often build their stacks from the bottom up. Stack Commands: Stack Commands are those commands which influence the entries in the calculator stack and their position. Many are self-explanatory, and/or match standard stack manipulation conventions. For example. RlDn and RlUp represent roll down and roll up, which will rotate the stack entries in the direction indicated. Clear will empty the stack of all contents, while Pop
-4-
ANSOFT CORPORATION
deletes only the last entry from the stack. A full description of all the calculator stack commands can be found in the online help. Input Column: The Input Column contains all the calculator functions which place new values into the stack. These values include field data, geometry data, and numerical quantities. Field data (e.g. Efield, H-field, and Poynting vector) for the current project solution is input from the Qty (quantity) dropdown menu button. Other Input dropdown buttons should be self-explanatory. A complete description of each option is available in the online help. The Quantities specifically available from the calculator are the E-field, H-field, J-vol (volume current) and Poynting vector. All quantities are Peak Phasors, and not RMS quantities, with the phase information captured in the real and imaginary components and the field orientation captured in the vector components. Although the Poynting vector is automatically calculated by the interface as 0.5(E H), it will appear in the calculator stack as a Complex Vector quantity. The imaginary portion should however be zero. [See CVc in the section of this document regarding Calculator Stack Quantities, below.] General Column: The General Column contains calculator operations which act on many different kinds of data (e.g. vector, scalar, complex, etc.). With the exception of the Cmplx (complex) menu, all are distinct functions. Most are self-explanatory, with the exception of Smooth which performs some data smoothing or statistical medianization on the top stack entry. A complete description of each button is available in the online help. Scalar Column: The Scalar Column contains calculator operations which can only be performed on scalar stack entries. Dropdown menus in this column include Vec? (convert scalar to vector), Trig (trigonometric, containing sin, cos, etc. functions), d/d? (derivative with respect to...), Max and Min (self-explanatory). Note that the calculators (Integrate) function is located in the Scalar column. The implication is clear that integration can only be performed on scalar quantities. To perform integration upon complex quantities, the integration will need to be performed separately on real and imaginary subcomponents. Vector Column: The Vector Column contains calculator operations which can only be performed on vector stack entries. Dropdown menus in this column are Scal? (convert vector to scalar) and Unit Vec (create unit vector). Standard vector algebra operations (Dot, Cross, etc.) are also present. A complete description of each button is available in the online help. Output Column: The Output Column contains those calculator operations that result in final data outputs from calculations, including those which result in plotting or displaying calculation results in the Fields Post-Processors graphical windows. The only dropdown menu in this column is Export (selfexplanatory). Draw is used to display geometric quantities, Plot can be used to display scalar or
-5-
ANSOFT CORPORATION
vector data on and in geometries, and 2D Plot is used to generate a line graph of a calculated quantity along some positional entity. The Eval button obtains final numerical results from stack placeholders (such as integrations). A complete description of each button is available in the online help.
-6-
ANSOFT CORPORATION
Figure 3: Stack Contents showing Data Type Indicators (at left) Scl: Scl denotes a Scalar quantity. This is a simple numerical value. To convert a scalar to a vector quantity, use the Vec? dropdown menu in the Scalar column. The choices VecX, VecY, and VecZ convert the scalar data to vector data aligned with the X, Y, or Z unit vectors, respectively. The user can also multiply the scalar quantity by a desired vector direction entered manually (Num dropdown in the Input column) or obtained using the Unit Vec button from the Vector column. To convert a scalar to a complex quantity, use either CmplxR (assign the scalar value as the real component of a complex quantity) or CmplxI (assign the scalar value as the imaginary component of a complex quantity), both found under the Cmplx dropdown in the General Column. CSc: CSc denotes a Complex Scalar quantity. This is a numerical value with real and imaginary components. Convert to a vector quantity using the same techniques described for Scl, above. Convert to a scalar using Real (take the real component), Imag (take the imaginary component), CmplxMag, (take the magnitude of the complex number) or CmplxPhase (take the phase of the complex number), all within the Cmplx dropdown in the General column. Vec: Vec denotes a Vector (non-complex) quantity. Vectors are always evaluated in the coordinate system of the model. To convert a vector quantity to a scalar, use the Scal? dropdown menu from the Vector column. Suboptions ScalarX, ScalarY, and ScalarZ will take the appropriate scalar component of the vector data. Optionally, you can also Dot the vector with another vector to obtain the appropriate scalar result, or use the Tangent (return the tangential scalar component of) or Normal (return the normal scalar component of) operations to relate the vector
-7-
ANSOFT CORPORATION
quantity to a geometric data (Lin, Srf) stack entry. Convert to a Complex quantity using the CmplxR and CmplxI operations described in Scl, above. CVc: CVc denotes a Complex Vector quantity. This is a quantity with real and imaginary components for each vector component. In normal calculator usage, the complex nature of the vector components represent the magnitude and phase data of a field quantity, while the vector components themselves represent the orientation of the field quantity in space. Convert to a non-complex Vector as described in CSc, above. Convert the vector to a scalar quantity as described in Vec, above. Geometric Data: Geometric data is indicated in the calculator stack by the headers Lin (line), Srf (surface), and Vol (volume). Lines may be straight, curved, or polylines in three dimensional space. Lines may also be open (have two endpoints) or closed (ending vertex same as starting vertex). Surfaces need not be planar, and may actually comprise a list of object faces (faces list) as well as planar slices through the entire model space (cutplanes). Volumes may include sets of discontinuous object volumes created as an Object List. These indicators may exist alone, representing geometric data only, or in combination with one of the categories above, indicating a type of data applied to the geometric entity in question. For example, the notation SclSrf identifies a stack entry containing Scalar data on a Surface geometry set. To select only the portion of a given data entry which exists along, on, or within a given geometry quantity, use the Value button in the Output column of the calculator. Other operations (e.g. integration, or the Normal button) operate when a data quantity is in the second stack register and a geometric quantity is in the top stack register. Full descriptions of the register requirements for each individual command is available in the on-line help.
-8-
ANSOFT CORPORATION
CALCULATOR RECIPES
The following pages contain calculator recipes for deriving a number of commonly used output parameters from solved HFSS projects. Each calculator recipe will be provided in the format shown below: EXAMPLE: Title of Current Calculation Description: The first paragraph will give a brief description of the calculations intent. Usage Example(s): The second paragraph will give an example of a project type on which the calculation might be useful. It may also comment upon the reasons such a calculation might be of interest. Prerequisites: The third (optional) paragraph will indicate what must be present before doing the calculator operations, e.g. if certain geometry (lines, faces lists, etc.) need to be generated to use in calculations. Calculator Operation
Each button click shown as a step Dropdown Menu Submenu pick also shown as a single step Button steps requiring data entry will have entry quantity shown in {brackets}
-9-
ANSOFT CORPORATION
(user line name and point count may differ from example)
CSc : {numerical output from above shown as real part of cmplx num}
(swaps top two stack entries) (drops top stack entry) (swaps top two stack entries; CVc : <Hx,Hy,Hz> back on top)
Vec : Imag(<Hx,Hy,Hz>) Lin : Line (line1,1000) (user line name and point count may differ from example) ScLin: Value(Line(...),Dot(Imag <Hx,Hy,Hz>),Tangent(... Scl : Integrate(Line(.... Scl : {numerical output}
CSc : {numerical value from above shown as imag part of cmplx num}
-10-
ANSOFT CORPORATION
(user line name and point count may differ from example)
CSc : {numerical output from above shown as real part of cmplx num}
(swaps top two stack entries) (drops top stack entry) (swaps top two stack entries; CVc : <Ex,Ey,Ez> back on top)
Vec : Lin : Imag(<Ex,Ey,Ez>) Line (line1,1000)
(user line name and point count may differ from example)
CSc : {numerical value from above shown as imag part of cmplx num}
-11-
ANSOFT CORPORATION +
(discards the unneeded imaginary components) (above is example; user surface shown may vary) (takes the dot product of the vector data with the normal to the surface(s) selected)
Integrate(FacesList...) {numerical value} FacesList(eval_srf)
Eval
Scl : Scl :
-12-
ANSOFT CORPORATION
(second operation result) (above is example; user surface shown may vary)
SclSrf : Value(CutPlane(plane1), Phase(ScalarX(<Ex, Ey, Ez>))) Scl : Integrate(...) Srf : CutPlane(plane1) Vec : Normal(CutPlane(plane1)) Srf : CutPlane(plane1) SclSrf: Value(CutPlane(plane1)...
(takes the dot product of the surface with its own normal)
(final answer in units of scalar data; for this example units are in degrees or radians)
-13-
ANSOFT CORPORATION
(note: the dot product of the E field with its conjugate should result in a real quantity, but the calculator does not assume the imaginary part has been cancelled, and will continue to treat the result as complex until this operation.) (above is example, user entry may differ)
: : : : : Integrate(ObjectList(... {numerical quantity} 8.854187827E-012 {numerical quantity} {numerical quantity} 0.5 {numerical quantity} {numerical quantity} ObjectList(resonator)
Geom Volume... {select volume} Eval Const Epsi0 Num Scalar {enter r for volume} * Num Scalar 0.5 * *
-14-
ANSOFT CORPORATION
Qu =
H d
2
s 2 2 n H d + tg H d 2
where s is skin depth, tg is dielectric loss tangent, n is the surface normal for the cavity wall faces, and and represent wall surface area and cavity volume, respectively. 1 Usage Example(s): To calculate the Q of an air- or solid-dielectric filled cavity, fed with a below-cutoff port aperture, or obtained via an eigensolution. Prerequisites: The Object (or Object List) representing the cavity total volume must already exist, as must the Faces List corresponding to the total wall surface area of the cavity. Both can be created via the Geometry menu if necessary. The solution should be tuned to the desired resonant frequency for evaluation. Calculator Operation
Qty H Push Cmplx Conj Dot Cmplx Real Geom Volume {select cavity volume} Push Num Scalar {enter loss tan for volume}
(above is example; user entry may differ) (above represents energy stored in cavity volume) (above entry duplicated)
{numerical value} Integrate(ObjectList(cav...
Scl :
Scl :
The above equation is only valid for cavities filled with one dielectric material across the entire volume. For cavities with different dielectric fills (e.g. a dielectric resonator within a larger metal cavity), dielectric loss must be evaluated using integration by parts for each dielectric material volume. The equation also assumes the same conductivity for all walls, and no nonreciprocal (e.g. ferrite) property to either walls or fill. -15-
ANSOFT CORPORATION * Qty H Geom Surface {select cavity surfaces} Unit Vec Normal Cross Push Cmplx Conj Dot Cmplx Real Geom Surface {select cavity surfaces} Num Scalar 2 Const Pi Const Frequency * Num Scalar {enter r for walls} * Const Mu0 * Num Scalar {enter wall conductivity} * * 1/x * + / Eval
*(Integrate(ObjectList(...
CVc : Srf :
Vec : CVc : CVc CSc Scl Srf Scl Scl Scl Scl Scl Scl Scl Scl Scl Scl Scl Scl Scl Scl : : : : : : : : : : : : : : : : : :
Scl :
-16-
ANSOFT CORPORATION
Cross(CmplxMag(Smooth(<... Mag(Cross(CmplxMag(Smooth... <Hx, Hy, Hz> Smooth(<Hx, Hy, Hz>) CmplxMag(Smooth(<Hx, Hy,... <0, 0, 1> Cross(CmplxMag(Smooth(<... Mag(Cross(CmplxMag(Smooth... /(Mag(Cross(CmplxMag(Sm... Line(line1,1000)
(y axis is wave impedance in ohms and x axis is position along line in drawing units)
-17-
ANSOFT CORPORATION
(y axis is E field phase in deg and x axis is position along line in drawing units)
-18-
ANSOFT CORPORATION
(above quantity is the maximum magnitude of the E-field tang. To the line. To obtain the mag. associated with a particular port phase excitation, enter a number into the stack and use the Cmplx AtPhase operation instead.) (above line is example; users may vary) (y axis is max E field mag in V/m and x axis is position along line in drawing units)
Line(line1,1000)
Geom Line {select desired line} 2D Plot {select desired settings and click OK}
Lin :
-19-
ANSOFT CORPORATION
(note reduced point samples along line for better vector display)
VecLin: Value(Line(line1,75), ... {launches Vector 3D Line Plot settings} {Vector Plot along Line displayed}
-20-
ANSOFT CORPORATION
SclSrf: Value(FacesList(faces1), Dot(AtPhase(<Ex,Ey,Ez>,0), ... {launches Scalar Surface Plot settings} {Scalar Plot on faces displayed}
-21-
ANSOFT CORPORATION
(IsoSurfaces for other quantities can also be created; E used as example.) (as this routine generates a surface geometry object, data smoothing is recommended) (zero degrees used for example)
AtPhase(Smooth(<Ex,Ey,Ez>... Mag(AtPhase(Smooth(<Ex,... 0.75 Smooth(<Ex,Ey,Ez>)
Smooth
CVc :
Num Scalar {enter phase reference for which vectors are desired} Cmplx AtPhase Mag Num Scalar {enter desired iso value} Iso Draw {pick desired settings}
-22-
ANSOFT CORPORATION
(Animations for other quantities can also be created; E used as example.) (phase is a variable or function)
Smooth Func Scalar PHASE Cmplx AtPhase Mag Geom Surface {pick surface} Anim {pick desired settings}
-23-
ANSOFT CORPORATION
Smooth Num Scalar 0 Cmplx AtPhase Mag Func Scalar X Func Scalar XPOS Iso
Scl : XPOS
(XPOS is a function which invokes the Animation display) (An IsoSurface with X = Xpos is a YZ plane that can vary with user-entered limits on XPOS)
-24-
ANSOFT CORPORATION
Single-Value Outputs A single-point scalar, vector, or complex (numerical) result can be simply written down by the user as it appears in the calculator stack. For use by the Ansoft Macro Language (for example, to store a value in a database for later operations), a simple numerical registry entry can also be assigned to a variable, using the command syntax:
Assign {variablename} GetTopEntryValue
For use as an output variable by the Optimetrics parameterization and optimization module, the Write button in the calculator Output column permits name assignment to the stack entry, followed by a save filename location. Using this extraction technique allows Optimetrics to consider the exported stack value directly as an output, or as a variable in a derived output (e.g. optimization goal function) quantity. Outputs for Calculation in Other Post-Processor Sessions If the calculator operations performed have obtained a stack entry that is intended for use in still other calculator operations (e.g. after altering the field data set within this post-processing session, or within another problems post-processing session entirely), the stack entry is saved for this purpose by using the Write button in the calculator Output column. Note that in this case no variable name will be requested; only a save filename location will be required. This function will not work for field values derived upon a specific geometric quantity (those containing either Lin, Srf, or Vol in the stack data type indicator) as the calculator cannot know that these geometric quantities exist in identical forms in other post-processing sessions. Outputs for Post-Processing outside of HFSS or Optimetrics To output a field quantity or calculation result for use by some third-party post-processor, use the Export dropdown in the calculator Output column. The Export dropdown contains options for outputs To File, which requires a pre-existing file of three-dimensional (cartesian) location points at which field data is desired, or On Grid, which outputs data on a cartesian grid specified by the user by direct entry of X, Y, and Z coordinate ranges and spacings. Further detail regarding the use of the Export options can be found in the on-line help.
-25-