kirchhoffSurfaceIntegral

kirchhoffSurfaceIntegral

Works with VSimEM license.

Performs a near to far field transformation of the electric field at a specified time and on a specified sphere.

kirchhoffSurfaceIntegral Parameters

fields (string vector, required)

The fields used in the transformation. The ordering E, dEdx, dEdy, dEdz, dEdt is assumed.

lightSpeed (float, optional)

Speed of light in medium.

dtFar (float, optional)

Time seperation of far field time points.

numSurfacePoint (non-negative integer, optional)

Number of integration points around Kirchhoff circle.

timeInterval (float vector, required)

Time interval over which to compute far field.

position (float vector, optional)

Position of far field point.

centerSphere (float vector, required)

Center of Kirchhoff sphere.

radiusSphere (float, required)

Radius of Kirchhoff sphere.

haveNormalDeriv (0 or 1, optional)

Set to read normal derivatives of fields on Kirchhoff sphere.

radiusFarSphere (float, optional)

Radius of far sphere.

numTheta (non-negative integer, optional)

Number of polar angles on the far sphere.

numPhi (non-negative integer, optional)

Number of azimuthal angles on the far sphere.

kirchhoffSurfaceIntegral History Example

# Far field parameters
# Radius of the Kirchhoff sphere
$ RS = 1.0
# Distance of far field from center of sphere
$ DFF = 10.0
# Far field time interval
$ TFFMIN = (DFF + RS) / LIGHTSPEED
$ TFFMAX = TFFMIN + 1.0 / FREQ_ANT
$ NTFAR = 10
$ DTFAR = (TFFMAX - TFFMIN) / NTFAR
# Number of integration points around
#    a circular slice of the Kirchhoff sphere
$ NS = 10

<History farField>
  kind = kirchhoffSurfaceIntegral
  # The ordering E, dEdx, dEdy, dEdz and dEdt is assumed by kirchhoffSurfaceIntegral
  fields = [emField.centerE emField.dEdx emField.dEdy emField.dEdz emField.dEdt]
  radiusFarSphere = DFF
  numTheta = 9
  numPhi = 18
  dtFar = DTFAR
  # For a single far field time at TFFMIN, we use a timeInterval of length 0
  timeInterval = [TFFMIN TFFMIN]
  # The Kirchhoff sphere must be contained entirely within the computational domain
  centerSphere = [0.0 0.0 0.0]
  radiusSphere = RS
  numSurfacePoint = NS
</History>

kirchhoffSurfaceIntegral History hdf5 File Structure

The hdf5 datset of the kirchhoff surface integral is structured as follows. The rows represent each timestep of the simulation.

The columns go in order of numPhi and then numTheta at TFFMIN. Then numPhi and numTheta at TFFMAX. If NTFAR is greater than 1, there will be more sets of phi/theta points in between TFFMIN and TFFMAX. This yields a total number of columns of (numPhi+numTheta)*(NTFAR+1). The number of integration points (NS) is used in the calculation of the values of the history, but do not impact it’s size.

See also add-far-field-history-macro to implement a kirchhoffSurfaceIntegral history using macros.