Boundary Object

Represents the boundary condition of the calculation domain for each boundary plane. You may either have a magnetic, electric or an open boundary condition.

General Methods

Xmin ( enum boundaryType )

Xmax ( enum boundaryType )

Ymin ( enum boundaryType )

Ymax ( enum boundaryType )

Zmin ( enum boundaryType )

Zmax ( enum boundaryType )

GetXmin enum boundaryType

GetXmax enum boundaryType

GetYmin enum boundaryType

GetYmax enum boundaryType

GetZmin enum boundaryType

GetZmax enum boundaryType

Xmin, Xmax, Ymin, Ymax, Zmin and Zmax specifiy the boundary conditions for the lower or upper x, y or z calculation domain boundary respectively.

GetXmin, GetXmax, GetYmin, GetYmax, GetZmin, GetZmax return the boundary conditions at the lower or upper x, y or z calculation domain boundary respectively.

 

boundaryType can have one of the following values:

”electric”

Electric boundary condition (Etan = 0)

”magnetic”

Magnetic boundary condition (Htan = 0)

”open”

Simulates the open space.

”expanded open”

Same as ”open” but adds some extra space to the calculation domain.

”periodic”

Simulates a periodic expansion of the calculation domain.

"conducting wall"

This boundary behaves like a wall of lossy metal material.

"unit cell"

Simulates a unit cell structure.

 

Xsymmetry ( enum symmetryType )

Ysymmetry ( enum symmetryType )

Zsymmetry ( enum symmetryType )

GetXSymmetry enum symmetryType

GetYSymmetry enum symmetryType

GetZSymmetry enum symmetryType

Xsymmetry, Ysymmetry and Zsymmetry define if the structure is electrically or magnetically symmetric regarding the origin of the x, y or z-axis respectively.

GetXSymmetry, GetYSymmetry and GetZSymmetry return the currently set symmetry type for the x, y or z-symmetry plane respectively.

 

symmetryType can have one of the following values:

”electric”

All tangential E-fields are considered zero at the symmetry plane.

”magnetic”

All tangential H-fields are considered zero at the symmetry plane.

”none”

No symmetry.

 

ApplyInAllDirections ( bool switch )

Is used by the background dialog to identify if the Xmin value should be applied in all the other directions.

 

XminThermal(enum ThermalBoundaryType)

XmaxThermal(enum ThermalBoundaryType)

YminThermal(enum ThermalBoundaryType)

YmaxThermal(enum ThermalBoundaryType)

ZminThermal(enum ThermalBoundaryType)

ZmaxThermal(enum ThermalBoundaryType)

GetXminThermal enum ThermalBoundaryType

GetXmaxThermal enum ThermalBoundaryType

GetYminThermal enum ThermalBoundaryType

GetYmaxThermal enum ThermalBoundaryType

GetZminThermal enum ThermalBoundaryType

GetZmaxThermal enum ThermalBoundaryType

 

thermalBoundaryType can have one of the following values:

"isothermal"

Boundary condition with constant temperature (T=const). This boundary type can carry a temperature definition.

"adiabatic"

Boundary condition without any heat-flow through the boundary (dT / dN = 0).

”open”

Simulates the open space.

”expanded open”

Same as ”open” but adds some extra space to the calculation domain.

 

XsymmetryThermal(enum ThermalSymmetryType)

YsymmetryThermal(enum ThermalSymmetryType)

ZsymmetryThermal(enum ThermalSymmetryType)

GetXSymmetryThermal enum ThermalSymmetryType

GetYSymmetryThermal enum ThermalSymmetryType

GetZSymmetryThermal enum ThermalSymmetryType

 

thermalSymmetryType can have one of the following values:

"isothermal"

Symmetry condition with constant temperature at the symmetry plane (T=const).

"adiabatic"

Symmetry condition without any heat-flow through the symmetry plane (dT / dN = 0).

"none"

No symmetry.

”expanded open”

Same as ”open” but adds some extra space to the calculation domain.

 

XminTemperatureType ( enum type )

XmaxTemperatureType ( enum type )

YminTemperatureType ( enum type )

YmaxTemperatureType ( enum type )

ZminTemperatureType ( enum type )

ZmaxTemperatureType ( enum type )

Specifies the temperature type of the lower and upper boundaries.

The temperature type can have one of the following values:

”none”

No temperature is set for  the corresponding boundary.

”fixed”

On the boundaries a fixed temperature value can be defined by use of the corresponding Temperature methods (see below).

”floating”

The temperature is defined as floating on the corresponding boundary.

 

XminTemperature ( double  value )

XmaxTemperature  ( double  value )

YminTemperature  ( double  value )

YmaxTemperature  ( double  value )

ZminTemperature  ( double  value )

ZmaxTemperature  ( double  value )

Specifies the temperature values of the lower and upper boundaries. This settings has only an effect if the type of the corresponding TemperatureType is set to "fixed".

 

GetCalculationBox ( double_ref xmin, double_ref xmax, double_ref ymin, double_ref ymax, double_ref zmin, double_ref zmax )

Returns the bounding box the calculation domain. The minimum and maximum values of the bounding box of the calculation domain regarding the x, y and z direction are stored in the parameters xmin, xmax, ymin, ymax, zmin, zmax respectively.

Methods Concerning Open Boundary Conditions

Layer ( int numLayers )

Specifies the number of PML layers. Usually 4 layers are sufficient.

 

MinimumLinesDistance ( double value )

Specifies the minimum distance from the PML boundary to the structure to be modeled. The distance is determined by the absolute number of grid lines.

 

MinimumDistanceType (  enum {"Fraction", "Absolute"} type )

Selecting the Fraction option activates the geometrical domain enlargement computed as a fraction of the wavelength. With the Absolute option the distance is directly given in geometrical user units. To this purpose use the SetAbsoluteDistance command.

 

SetAbsoluteDistance ( double value )

Specifies the absolute distance to enlarge the simulation domain. To be used selecting the Absolute option with the command MinimumDistanceType.

 

MinimumDistanceReferenceFrequencyType (  enum {"Center", "Centernmonitors", "User"} type )

The command determines the reference frequency where the wavelength has to be computed. The command should be used jointly with the MinimumDistanceType command activating the Fraction option.

Center means that the reference frequency is the mid simulation frequency, in formula (FMin+FMax)/2.

The second choice Centernmonitors computes the reference frequency as the minimum non zero frequency selected among the center frequency and the user defined relevant  monitor frequencies.

The third possibility is User, which enables to specify directly the frequency with the companion FrequencyForMinimumDistance command.

 

MinimumDistancePerWavelength  ( double value )

Specifies the minimum distance from the PML boundary to the structure to be modeled. The distance is determined relatively to the wavelength, either in respect to the center frequency, center and monitor frequencies or to a user defined frequency value. See also the MinimumDistanceReferenceFrequencyType command.

 

FrequencyForMinimumDistance  ( double value )

Specifies the frequency which represents the reference value for the MinimumDistancePerWavelength method.

Methods Concerning Periodic Boundary Conditions

XPeriodicShift ( double value )

YPeriodicShift ( double value )

ZPeriodicShift ( double value )

Enables to define a phase shift value for a periodic boundary condition. Please note that the phase shift only applies to the frequency domain solver and the eigenmode solver. The settings are ignored by the transient solver.

 

PeriodicUseConstantAngles ( bool bFlag )

In contrast to the definition of a constant phase shift between two opposite periodic boundaries (using the XPeriodicShift, YPeriodicShift or ZPeriodicShift methods) it is also possible to define an incident angle value of the normal propagation direction of a virtual plane wave entering the calculation domain. The angle can be defined in a spherical coordinate system using the SetPeriodicBoundaryAngles method. In fact this procedure also realizes a phase shift between the periodic boundaries, however, this time it depends on the current frequency sample. You can activate (bFlag = True) or deactivate (bFlag = False) this option using the present method.

Methods Concerning Periodic Boundaries and Unit Cells

SetPeriodicBoundaryAngles ( double theta, double phi )

Defines the angle in a spherical coordinate system using theta and phi values for the calculation of phase shifts between periodic boundaries. The z-axis corresponds to that of the global coordinate system.

Please note that this method is only relevant for the frequency domain solver and in case that the PeriodicUseConstantAngles method is activated or unit cell boundaries are used.

 

SetPeriodicBoundaryAnglesDirection ( enum direction )

direction defines whether the scan angle defined with SetPeriodicBoundaryAngles refers to an inward or outward (with respect to the radial unit vector in the spherical coordinate system) propagating plane wave, and can have one of the following values:

”outward”

The phase is set for an outward traveling plane wave. Floquet modes should be excited at Zmin.

”inward”

The phase is set for an inward traveling plane wave. Floquet modes should be excited at Zmax.

 

GetUnitCellScanAngle ( double_ref theta, double_ref phi, long_ref direction ) bool valid

The scan angle defined with SetPeriodicBoundaryAngles and its orientation as defined by calling SetPeriodicBoundaryAnglesDirection can be accessed using this function. All arguments of this function are output values, which are set by the function. Its return value is True if the unit cell is active and the expressions for the scan angle are valid. If direction is +1, then it refers to the ”outward” direction, and to the ”inward” direction if direction is -1.

Methods Concerning the Unit Cell Geometry

UnitCellDs1 ( double value )

UnitCellDs2  ( double value )

These two methods specify the distances between two neighbouring unit cells in two different coordinate directions, whereby the first axis (UnitCellDs1) is always aligned to the x-axis of the global coordinate system. The spatial relation between these  two axes is defined by the UnitCellAngle method.

 

GetUnitCellDs1 double value

GetUnitCellDs2 double value

These two functions return the lengths of the unit cell lattice vectors.

 

UnitCellAngle  ( double value )

Specifies the spatial relation between the two axes defined by the methods UnitCellDs1 and UnitCellDs2 .

Please note, that the hexahedral frequency domain solver needs a value of 90 degree for this value.

 

GetUnitCellAngle double value

This function returns the angle between the unit cell lattice vectors in degrees.

 

UnitCellOrigin  ( double posx, double posy )

Allows to shift the origin of the unit cell and thereby the calculation domain for the frequency domain solver with tetrahedral mesh. The values may range from zero to one, where the default zero lets the center of the bounding box and the center of the unit cell coincide, while a value of one moves the origin by half the size of the unit cell lattice in the corresponding direction.

 

UnitCellFitToBoundingBox  ( bool bFlag )

If this method is activated, the structure model will be repeated at its bounding box borders, neglecting any settings of the methods UnitCellDs1,UnitCellDs2 and UnitCellAngle.

Default Settings

Xmin ("electric")

Xmax ("electric")

Ymin ("electric")

Ymax ("electric")

Zmin ("electric")

Zmax ("electric")

Xsymmetry ("none")

Ysymmetry ("none")

Zsymmetry ("none")

ApplyInAllDirections (False)

XminTemperatureType ("none")

XmaxTemperatureType ("none")

YminTemperatureType ("none")

YmaxTemperatureType ("none")

ZminTemperatureType ("none")

ZmaxTemperatureType ("none")

Layer (4)

Reflection (0.0001)

MinimumLinesDistance (5)

MinimumDistancePerWavelength  (8)

SetConvPMLExponentM (3)

SetConvPMLKMax (5)

SetConvPMLOuterBoundary ("MAG")

ActivePMLFactor  (1.0)

XPeriodicShift (0.0)

YPeriodicShift (0.0)

ZPeriodicShift (0.0)

PeriodicUseConstantAngles (False)

SetPeriodicBoundaryAnglesDirection ("outward")

SetPeriodicBoundaryAngles (0.0, 0.0)

UnitCellFitToBoundingBox (True)

UnitCellAngle (90.0)

UnitCellOrigin (0.0, 0.0)

MinimumDistanceAtCenterFrequency (True)

Example

With Boundary

     .Xmin ("electric")

     .Xmax ("electric")

     .Ymin ("electric")

     .Ymax ("electric")

     .Zmin ("electric")

     .Zmax ("electric")

     .Xsymmetry ("none")

     .Ysymmetry ("none")

     .Zsymmetry ("none")

     .ApplyInAllDirections (False)

     .XPeriodicShift (45.0)

     .YPeriodicShift (0.0)

     .ZPeriodicShift (0.0)

     .PeriodicUseConstantAngles (True)

     .SetPeriodicBoundaryAngles (30.0, 0.0)

 .XminPotential ""

End With