############################################################################## # Flags: nomenu, noprompt, nomessage, # ############################################################################## # section: -pexcitation # ############################################################################## # port = undefined # # mode = 1 # # amplitude = 1.0 # # phase = 0.0 # # frequency = undefined # # bandwidth = undefined # # risetime = 0.0 # # signalcommand= -none- # ############################################################################## # nextport, list, ?, return, help # ##############################################################################
port= NAME-OF-AN-ALREADY-DEFINED-PORT
:
mode
:
amplitude
:
phase
:
frequency
:
bandwidth
:
risetime
:
list
:
signalcommand= NAME_OF_COMMAND
:
-none-
the excitation will be computed from
risetime
, frequency
, bandwidth
and amplitude
.
If specified as any other string, every 100 timesteps the specified
command is executed to compute the signal at the next 100 timesteps.
The command is executed as:
NAME_OF_COMMAND < ./gdfidl-actual-time-interval > ./gdfidl-actual-signalThe file
./gdfidl-actual-time-interval
contains the following data:
iTime1, iTime2, TimeStep
iTime1
: The number of the first timestep for which
the signal shall be defined.
iTime2
: The number of the last timestep for which
the signal shall be defined.
TimeStep
: The width of a timestep.
Beta, Alpha, DeltaZ
.
Beta
: The real part of the propagation constant of the
selected mode at the selected
frequency frequency
.
Alpha
: The imaginary part of the propagation constant.
DeltaZ
: The width of the mesh at the selected port.
NAME_OF_COMMAND
has to write to stdout
simply the values of the signal at the timesteps iTime1
to
iTime2
, one line for each value.
nextport
:
port
, mode
, amplitude
and phase
,
but the parameters frequency
, bandwidth
and risetime
are the same for all excited ports.
InputPort
shall be excited.
Its amplitude shall be '1', the centerfrequency of the excited pulse shall be
1.2 GHz, and the bandwidth of the excited pulse shall be 0.7 GHz.
-fdtd, -pexcitation port= InputPort mode= 1 amplitude= 1 frequency= 1.2e+9 bandwidth= 0.7e+9
InputPort1
shall be excited.
Its amplitude shall be '1', the frequency of the excited signal shall be
1.2 GHz, and the risetime until steady state of the excitation shall be
10 HF-periods.
In addition, the fundamental mode of the port with name
InputPort2
shall be excited. Amplitude shall be '1'.
-fdtd, -pexcitation port= InputPort1, mode= 1, amplitude= 1, phase= 0 frequency= 1.2e9, risetime= 10 / 1.2e9 nextport port= InputPort2, mode= 1, amplitude= 1, phase= 0
Example
The following specifies that the fundamental mode of the port with name
InputPort
shall be excited.
The portmode shall be computed for a frequency of 10 GHz,
and the signal of the excitation shall be defined by an external signal
command.
-fdtd, -pexcitation port= InputPort mode= 1 amplitude= 1 frequency= 10 GHz # # compile the signalcommand # system(f90 signal-command.f -o signal-command) signalcommand= ./signal-commandThis is the sourcefile
signal-command.f
:
PROGRAM SignalCommand IMPLICIT DOUBLE PRECISION (a-h,o-z) Pi= 4*ATAN(1.0d0) Frequency= 10e9 TRise= 10/Frequency TDecay= 20/Frequency THold= 50/Frequency READ (*,*) iTime1, iTime2, TimeStep READ (*,*) Beta, Alpha, DeltaZ DO iTime= iTime1, iTime2, 1 ActualTime= iTime*TimeStep IF (ActualTime .LE. TRise) THEN Phi= ActualTime * Pi / TRise Factor= (1-COS(Phi))/2 ELSE IF (ActualTime .LE. TRise+THold) THEN Factor= 1 ELSE IF (ActualTime .LE. TRise+THold+TDecay) THEN Phi= (ActualTime - (TRise+THold)) * Pi / TDecay Factor= (1+COS(Phi))/2 ELSE Factor= 0 ENDIF Factor= Factor * TimeStep / DeltaZ WRITE (*,*) Factor*SIN(2*Pi*Frequency*ActualTime) ENDDO END PROGRAM SignalCommand