IMPACT T
Data Types | Functions/Subroutines | Variables
emfldcartclass Module Reference

This class contains discrete EM field data (as a function of x,y,z) or (r,z) and analytical representation of EM field data (user can supply the function form). The linear transfer map is also computed base on the field on the axis. More...

Data Types

type  emfldcart
 
interface  getparam_emfldcart
 
interface  setparam_emfldcart
 

Functions/Subroutines

subroutine construct_emfldcart (this, numseg, nmpstp, type, blength)
 
subroutine setparam1_emfldcart (this, i, value)
 
subroutine setparam2_emfldcart (this, values)
 
subroutine setparam3_emfldcart (this, numseg, nmpstp, type, blength)
 
subroutine getparam1_emfldcart (this, i, blparam)
 
subroutine getparam2_emfldcart (this, blparams)
 
subroutine getparam3_emfldcart (this, blength, bnseg, bmapstp, btype)
 
subroutine maplinear_emfldcart (t, tau, xm, this, refpt, Bchg, Bmass)
 
subroutine rk6i_emfldcart (h, ns, t, y, nvar, this, Bchg, Bmass)
 
subroutine intfunc1_emfldcart (t, y, f, this, Bchg, Bmass)
 
subroutine getaxflde_emfldcart (z, this, ez1, ezp1, ezpp1)
 interpolate the field from the EMfldCart rf cavity onto bunch location. More...
 
subroutine getaxfldefc_emfldcart (z, this, ez1, ezp1, ezpp1)
 get external RF field on axis from analytical function Here, we have used a Fouier expansion representation of external field. Users should supply the field function as they want. More...
 
subroutine getfld_emfldcart (pos, extfld, this)
 get external field Ex, Ey, Ez, Bx, Bx, Bz at given position x, y, z, t from analytical function. Here we have used Fourier expansion of function. The user should supply his own analytical function if needed. More...
 
subroutine getflderrold_emfldcart (pos, extfld, this)
 get external field with displacement and rotation errors. More...
 
subroutine getflderr_emfldcart (pos, extfld, this, dx, dy, anglex, ang
 get external field with displacement and rotation errors. More...
 
subroutine getfld6_emfldcart (this, z, extfld6)
 get the discrete Er,Etheta,Ez, Br, Btheta, Bz as a function or "r" at given "z". More...
 
subroutine getfld6err_emfldcart (this, pos, extfld, dx, dy, anglex, ang
 
subroutine getfld6xyz_emfldcart (this, z, extfld6xyz)
 get the discrete Ex,Ey,Ez, Bx, By, Bz as a function of x and y at given "z". More...
 
subroutine getfld6xyzerr_emfldcart (this, pos, extfld, dx, dy, anglex,
 
subroutine getfldt_emfldcart (pos, extfld, this, fldata)
 get the discrete Ex,Ey,Ez, Bx, By, Bz at given x, y, z, t. More...
 

Variables

integer, parameter, private nparam = 11
 

Detailed Description

This class contains discrete EM field data (as a function of x,y,z) or (r,z) and analytical representation of EM field data (user can supply the function form). The linear transfer map is also computed base on the field on the axis.

Author

Ji Qiang


Data Type Documentation

◆ emfldcartclass::emfldcart

type emfldcartclass::emfldcart
Data Fields
integer itype
double precision length
integer mapstp
integer nseg
double precision, dimension(nparam) param

Function/Subroutine Documentation

◆ construct_emfldcart()

subroutine emfldcartclass::construct_emfldcart ( type (emfldcart), intent(out)  this,
integer, intent(in)  numseg,
integer, intent(in)  nmpstp,
integer, intent(in)  type,
double precision, intent(in)  blength 
)

◆ getaxflde_emfldcart()

subroutine emfldcartclass::getaxflde_emfldcart ( double precision, intent(in)  z,
type (emfldcart), intent(in)  this,
double precision, intent(out)  ez1,
double precision, intent(out)  ezp1,
double precision, intent(out)  ezpp1 
)

interpolate the field from the EMfldCart rf cavity onto bunch location.

◆ getaxfldefc_emfldcart()

subroutine emfldcartclass::getaxfldefc_emfldcart ( double precision, intent(in)  z,
type (emfldcart), intent(in)  this,
double precision, intent(out)  ez1,
double precision, intent(out)  ezp1,
double precision, intent(out)  ezpp1 
)

get external RF field on axis from analytical function Here, we have used a Fouier expansion representation of external field. Users should supply the field function as they want.

Here is the caller graph for this function:

◆ getfld6_emfldcart()

subroutine emfldcartclass::getfld6_emfldcart ( type (emfldcart), intent(in)  this,
double precision, intent(in)  z,
  extfld6 
)

get the discrete Er,Etheta,Ez, Br, Btheta, Bz as a function or "r" at given "z".

◆ getfld6err_emfldcart()

subroutine emfldcartclass::getfld6err_emfldcart ( type (emfldcart), intent(in)  this,
double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
double precision, intent(in)  dx,
double precision, intent(in)  dy,
double precision, intent(in)  anglex,
  ang 
)

◆ getfld6xyz_emfldcart()

subroutine emfldcartclass::getfld6xyz_emfldcart ( type (emfldcart), intent(in)  this,
double precision, intent(in)  z,
double precision, dimension(6,nxintvrfg+1,nyintvrfg+1), intent(out)  extfld6xyz 
)

get the discrete Ex,Ey,Ez, Bx, By, Bz as a function of x and y at given "z".

◆ getfld6xyzerr_emfldcart()

subroutine emfldcartclass::getfld6xyzerr_emfldcart ( type (emfldcart), intent(in)  this,
double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
double precision, intent(in)  dx,
double precision, intent(in)  dy,
double precision, intent(in)  anglex 
)

◆ getfld_emfldcart()

subroutine emfldcartclass::getfld_emfldcart ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldcart), intent(in)  this 
)

get external field Ex, Ey, Ez, Bx, Bx, Bz at given position x, y, z, t from analytical function. Here we have used Fourier expansion of function. The user should supply his own analytical function if needed.

Here is the caller graph for this function:

◆ getflderr_emfldcart()

subroutine emfldcartclass::getflderr_emfldcart ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldcart), intent(in)  this,
double precision, intent(in)  dx,
double precision, intent(in)  dy,
double precision, intent(in)  anglex,
  ang 
)

get external field with displacement and rotation errors.

Here is the caller graph for this function:

◆ getflderrold_emfldcart()

subroutine emfldcartclass::getflderrold_emfldcart ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldcart), intent(in)  this 
)

get external field with displacement and rotation errors.

◆ getfldt_emfldcart()

subroutine emfldcartclass::getfldt_emfldcart ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldcart), intent(in)  this,
type (fielddata), intent(in)  fldata 
)

get the discrete Ex,Ey,Ez, Bx, By, Bz at given x, y, z, t.

Here is the caller graph for this function:

◆ getparam1_emfldcart()

subroutine emfldcartclass::getparam1_emfldcart ( type (emfldcart), intent(in)  this,
integer, intent(in)  i,
double precision, intent(out)  blparam 
)

◆ getparam2_emfldcart()

subroutine emfldcartclass::getparam2_emfldcart ( type (emfldcart), intent(in)  this,
double precision, dimension(:), intent(out)  blparams 
)

◆ getparam3_emfldcart()

subroutine emfldcartclass::getparam3_emfldcart ( type (emfldcart), intent(in)  this,
double precision, intent(out)  blength,
integer, intent(out)  bnseg,
integer, intent(out)  bmapstp,
integer, intent(out)  btype 
)

◆ intfunc1_emfldcart()

subroutine emfldcartclass::intfunc1_emfldcart ( double precision, intent(in)  t,
double precision, dimension(:), intent(in)  y,
double precision, dimension(:), intent(out)  f,
type (emfldcart), intent(in)  this,
double precision, intent(in)  Bchg,
double precision, intent(in)  Bmass 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ maplinear_emfldcart()

subroutine emfldcartclass::maplinear_emfldcart ( double precision, intent(in)  t,
double precision, intent(in)  tau,
double precision, dimension(6,6), intent(out)  xm,
type (emfldcart), intent(in)  this,
double precision, dimension(6), intent(inout)  refpt,
double precision, intent(in)  Bchg,
double precision, intent(in)  Bmass 
)
Here is the call graph for this function:

◆ rk6i_emfldcart()

subroutine emfldcartclass::rk6i_emfldcart ( double precision, intent(in)  h,
integer, intent(in)  ns,
double precision, intent(inout)  t,
double precision, dimension(nvar), intent(inout)  y,
integer, intent(in)  nvar,
type (emfldcart), intent(in)  this,
double precision, intent(in)  Bchg,
double precision, intent(in)  Bmass 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setparam1_emfldcart()

subroutine emfldcartclass::setparam1_emfldcart ( type (emfldcart), intent(inout)  this,
integer, intent(in)  i,
double precision, intent(in)  value 
)

◆ setparam2_emfldcart()

subroutine emfldcartclass::setparam2_emfldcart ( type (emfldcart), intent(inout)  this,
double precision, dimension(:), intent(in)  values 
)

◆ setparam3_emfldcart()

subroutine emfldcartclass::setparam3_emfldcart ( type (emfldcart), intent(inout)  this,
integer, intent(in)  numseg,
integer, intent(in)  nmpstp,
integer, intent(in)  type,
double precision, intent(in)  blength 
)

Variable Documentation

◆ nparam

integer, parameter, private emfldcartclass::nparam = 11
private