macro contains the commands to evaluate the above
formula for a given resonant field.
This macro is contained in /usr/local/gd1/postprocessor-macros.
macro rshunt
pushflags, noprompt, nomenu, nomessage
define(rshunt_PATH, @path) # remember current section
-base # goto the base of the branch-tree
-energy # compute stored energy
quantity= e # ... we dont need to compute the
solution= @arg1 # energy in the magnetic field
doit # -- it has to be the same
# echo *** W_e is @eenergy
return
-lintegral # accelerating voltage
direction= z, component= z
startpoint= (0,0, @zmin)
length= auto
doit
# echo *** vabs is @vabs
return
define(rshunt_value_a, eval(@vabs **2/(2*@pi*@frequency*(2*2*@eenergy))))
define(rshunt_value_r, eval(@vreal**2/(2*@pi*@frequency*(2*2*@eenergy))))
define(rshunt_value_i, eval(@vimag**2/(2*@pi*@frequency*(2*2*@eenergy))))
echo
echo *** mode number is @arg1
echo *** frequency is @frequency {Hz}
echo ***
echo *** shunt impedances as computed from | U * conjg(U) | :
echo *** Shunt Impedance/Q is rshunt_value_a {Ohms}
echo *** Shunt Impedance/Q/m is eval(rshunt_value_a/@length) {Ohms/m}
echo ***
echo *** shunt impedances as computed from | Re(U) * Re(U) | :
echo *** Shunt Impedance/Q is rshunt_value_r {Ohms}
echo *** Shunt Impedance/Q/m is eval(rshunt_value_r/@length) {Ohms/m}
echo ***
echo *** shunt impedances as computed from | Im(U) * Im(U) | :
echo *** Shunt Impedance/Q is rshunt_value_i {Ohms}
echo *** Shunt Impedance/Q/m is eval(rshunt_value_i/@length) {Ohms/m}
## echo return path is : rshunt_PATH
rshunt_PATH # back to where we came from ...
undefine(rshunt_PATH)
## echo return path is : rshunt_PATH
popflags
endmacro