VSimEm.mac

This macro file can be imported to an input file with

$ import VSimEm

It is imported by VSim if VPM_SIMULATION_TYPE is electromagnetic.

This macro file is available to all packages.

This macro file defines the finalizeUpdaters() macro, specific to electromagnetic simulations, and it also defines many macros for adding EM update steps.

Public Macros

writeMovingWindow(shiftPos, shiftSpd)

Write a moving window in the X-Direction block to the top level of the .in file.

Parameters:
  • shiftPos – The fractional amount of the domain for the speed below to cross before shifting.

  • shiftSpd – The fraction of light speed to move the window by.

writeMovingWindow(shiftDir, shiftPos, shiftSpd)

Write a moving window to the top level of the .in file with specifiable direction.

Parameters:
  • shiftDir – The capital character describing the (Cartesian) direction to shift the window. One of X,Y,Z.

  • shiftPos – The fractional amount of the domain for the speed below to cross before shifting.

  • shiftSpd – The fraction of light speed to move the window by.

addCurrentDistribution(name, j0, j1, j2, lc, uc)

Add a current distribution into a slab.

Parameters:
  • name – The name of this current distribution.

  • j0 – Function giving component 0 (x) of the current distribution.

  • j1 – Function giving component 1 of the current distribution.

  • j2 – Function giving component 2 of the current distribution.

  • lc – Lower limits of the coordinate slab over which to apply this current distribution

  • uc – Upper limits of the coordinate slab over which to apply this current distribution

addDipoleCurrentDistribution(name, comp, function, coordinate)

Add a dipole current at a coordinate.

Parameters:
  • name – The name of this dipole current distribution.

  • comp – The component of j that is being set.

  • function – Function that the component of j will be set to.

  • coordinate – The location for this dipole current.

finalizeUpdaters()

Create all of the updaters needed for an EM simulation. Writing them occurs in writeMultiField, which is called by finalize().