Ansys Near Field Description File Format Specification
The purpose of the Ansys Near Field Description (AND) File is to facilitate the auto-generation of HFSS design for any Near Field Data the user may wish to use for an HFSS simulation. These Near Field Data files could be in a variety of different formats and files, so the AND Format was designed to be as flexible as possible to accommodate them.
Overview
- Recognized by the ".and" extension
- 'NearFieldHeader' Block - Provides format, field type, and geometry information.
- 'NearFieldData' Block - Links the user's near field data files to particular solve frequencies.
Blocks are defined with opening ($begin 'block_name') and closing ($end 'block_name') block tags that contain either key/value pairs, or function/argument calls described below.
$begin 'BlockName'
key=value
func(arg1, arg2)
$end 'BlockName'
NearFieldHeader Block
Every AND File requires a NearFieldHeader block shown below. This header is used to provide information to HFSS about the Near Field Data that may not be present in the Data Files themselves. Depending on the Near Field Data Format, some of this information may be redundant and merely used for verification purposes.
|
Key |
Value Format |
Description |
|
type |
'format type' |
[Required] Format Type of the of the User's Near Field Data files. |
|
fields |
'field type' |
[Optional] Field Type of the User's Near Field Data. Defaults to "EH" when not present. |
|
geometry |
'primitive type' |
[Required] Primitive describing Near Field Source Geometry. |
|
center |
'10mm, 10mm, 10mm' |
[Based on Geometry] Center of geometric primitive. |
|
size |
'10mm, 10mm, 10mm' '20mm, 20mm |
[Based on Geometry] xSize, ySize, zSize of primitive. Only two dimensions (XY, YZ or XZ) required for Plane Geometry. |
|
axis |
'0, 0, 1' |
[Based on Geometry] Primary axis of primitive. |
|
normal |
'0, 1, 0' |
[Based on Geometry] Normal axis of primitive. |
|
radius |
'20mm' |
[Based on Geometry] Radius |
|
height |
'20mm' |
[Based on Geometry] Height |
|
fsweep |
'1GHz, 2GHz, … 5.6 GHz' |
[Required] The frequency band of the analysis. |
|
fcoords |
'fcoords type' |
[Optional] Coordinate System used to describe data points |
Valid Dimension Units:
Standard SI and Imperial Length Units are supported in Geometry Dimensions including:
'nm', 'mm', 'meter', 'cm', 'ft', 'in', 'mil', 'uin'
Standard SI Frequency Units are supported in 'fsweep' including:
'Hz, 'kHz, 'MHz, 'GHz, 'THz
Supported 'format type':
- "nfd" - HFSS External Near Field Data File generated by exporting Fields.
Supported 'field type':
- "EH" - Both E and H incident fields are provided. (Default)
- "E" - Only E Fields are provided.
- "H" - Only H Fields are provided.
- "JM" - Both J and M Tangential Currents are provided.
- "J" - Only J Current is provided.
- "M" - Only M Current is provided.
Supported 'primitive type':
- ""sphere" - Spherical Geometry requiring center, radius.
- ""box" - Cube Geometry requiring center, size. Must be axis aligned.
- ""cylinder" - Cylinder Geometry requiring center, axis, radius, height. Must be axis aligned.
- ""plane" - Pseudo-Plane Geometry requiring center, normal, size. Must be axis aligned. Plane data is really treated as a Rectangle so a two dimensional size must be specified.
Supported 'fcoords type':
- "cartesian" - Data Points are described using cartesian coordinates.
- "spherical" - Data Points are formatted using spherical coordinates.
- "cylindrical" - Data Points are formatted using cylindrical coordinates.
The Coordinate System Type is optional and will default to the corresponding system for that primitive type
("spherical" for Spheres, "cylindrical" for Cylinders, "cartesian" for Box/Plane).
Example NearFieldHeader Blocks
Box
$begin 'NearFieldHeader'
type='nfd'
fcoords='cartesian'
fields='JM'
geometry='box'
center='0mm,0mm,0mm'
size='20mm,20mm,20mm'
fsweep='1GHz, 3GHz'
$end 'NearFieldHeader '
Sphere
$begin 'NearFieldHeader'
type='nfd'
fcoords='spherical'
fields='EH'
geometry='sphere'
center='0mm,0mm,0mm'
radius='150mm'
fsweep='1GHz, 3GHz'
$end 'NearFieldHeader'
Plane
$begin 'NearFieldHeader'
type='nfd'
fields='E'
geometry='plane'
center='0mm,0mm,0mm'
size='20mm,20mm'
normal='0,1,0'
fsweep='1GHz, 3GHz'
$end 'NearFieldHeader '
Cylinder
$begin 'NearFieldHeader'
type='nfd'
geometry='cylinder'
center='0mm,0mm,0mm'
axis='0,0,1'
radius='20mm'
height='258mm'
fsweep='1GHz, 3GHz'
$end 'NearFieldHeader'
NearFieldData Block
The NearFieldData Block is used to specify which external data files to use for which frequencies. External Near Field Data can be spread across multiple files and multiple frequencies. This block provides a means of organizing these data files.
To bind a single Near Field Data file to a particular frequency, use:
FreqData("1GHz", "path/to/data.nfd")
To split Near Field Data files (one contains E Fields, one contains H Fields), use:
FreqData("1GHz", "path/to/efields.nfd", "path/to/hfields.nfd")
To bind a default Near Field Data file to all frequencies not explicitly defined, use:
FreqData("0", "path/to/data.nfd")
Example NearFieldData Blocks
$begin 'NearFieldData'
FreqData("0", "exportfields.nfd")
$end 'NearFieldData'
$begin 'NearFieldData'
FreqData("1GHz", "exportfields.nfd")
FreqData("2GHz", "exportfields2.nfd")
FreqData("3GHz", "exportfields3.nfd")
FreqData("4GHz", "exportfields4.nfd")
FreqData("5GHz", "exportfields5.nfd")
$end 'NearFieldData'
$begin 'NearFieldData'
FreqData("0", "efields0.nfd", "hfields0.nfd")
FreqData("2GHz", "efields1.nfd", "hfields1.nfd")
FreqData("4GHz", "efields2.nfd", "hfields2.nfd")
$end 'NearFieldData'
Example .and Files
$begin 'NearFieldHeader'
type='nfd'
geometry='box'
center='0mm,0mm,0mm'
size='20mm,20mm,20mm'
fsweep='1GHz, 3GHz'
$end 'NearFieldHeader'
$begin 'NearFieldData'
FreqData("0", "exportfields.nfd")
$end 'NearFieldData'
$begin 'NearFieldHeader'
type='nfd'
fcoords='cartesian'
geometry='cylinder'
center='0mm,0mm,0mm'
axis='0,0,1'
radius='20mm'
height='258mm'
fsweep='1GHz, 2GHz, 3GHz, 4GHz, 5GHz'
$end 'NearFieldHeader'
$begin 'NearFieldData'
FreqData("1GHz", "exportfields.nfd")
FreqData("2GHz", "exportfields2.nfd")
FreqData("3GHz", "exportfields3.nfd")
FreqData("4GHz", "exportfields4.nfd")
FreqData("5GHz", "exportfields5.nfd")
$end 'NearFieldData'
$begin 'NearFieldHeader'
type='nfd'
fcoords='cartesian'
geometry='plane'
center='0mm,0mm,0mm'
normal='0,1,0'
size="100mm,100mm"
fsweep='1GHz, 2GHz, 3GHz, 4GHz'
$end 'NearFieldHeader'
$begin 'NearFieldData'
FreqData("0", "efields0.nfd", "hfields0.nfd")
FreqData("2GHz", "efields1.nfd", "hfields1.nfd")
FreqData("4GHz", "efields2.nfd", "hfields2.nfd")
$end 'NearFieldData'