IMPACT T
Data Types | Functions/Subroutines | Variables
emfldcylclass 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  emfldcyl
 
interface  getparam_emfldcyl
 
interface  setparam_emfldcyl
 

Functions/Subroutines

subroutine construct_emfldcyl (this, numseg, nmpstp, type, blength)
 
subroutine setparam1_emfldcyl (this, i, value)
 
subroutine setparam2_emfldcyl (this, values)
 
subroutine setparam3_emfldcyl (this, numseg, nmpstp, type, blength)
 
subroutine getparam1_emfldcyl (this, i, blparam)
 
subroutine getparam2_emfldcyl (this, blparams)
 
subroutine getparam3_emfldcyl (this, blength, bnseg, bmapstp, btype)
 
subroutine maplinear_emfldcyl (t, tau, xm, this, refpt, Bchg, Bmass)
 
subroutine rk6i_emfldcyl (h, ns, t, y, nvar, this, Bchg, Bmass)
 
subroutine intfunc1_emfldcyl (t, y, f, this, Bchg, Bmass)
 
subroutine getaxflde_emfldcyl (z, this, ez1, ezp1, ezpp1)
 interpolate the field from the EMfldCyl rf cavity onto bunch location. More...
 
subroutine getaxfldefc_emfldcyl (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_emfldcyl (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_emfldcyl (pos, extfld, this)
 get external field with displacement and rotation errors. More...
 
subroutine getflderr_emfldcyl (pos, extfld, this, dx, dy, anglex, angl
 get external field with displacement and rotation errors. More...
 
subroutine getfld6_emfldcyl (this, z, extfld6)
 get the discrete Er,Etheta,Ez, Br, Btheta, Bz as a function or "r" at given "z". More...
 
subroutine getfld6err_emfldcyl (this, pos, extfld, dx, dy, anglex, angl
 
subroutine getfld6xyz_emfldcyl (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_emfldcyl (this, pos, extfld, dx, dy, anglex, a
 
subroutine getfldt_emfldcyl (pos, extfld, this, fldata)
 get the discrete Er,Etheta,Ez, Br, Btheta, Bz as a function or "r" at given "z". 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

◆ emfldcylclass::emfldcyl

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

Function/Subroutine Documentation

◆ construct_emfldcyl()

subroutine emfldcylclass::construct_emfldcyl ( type (emfldcyl), intent(out)  this,
integer, intent(in)  numseg,
integer, intent(in)  nmpstp,
integer, intent(in)  type,
double precision, intent(in)  blength 
)

◆ getaxflde_emfldcyl()

subroutine emfldcylclass::getaxflde_emfldcyl ( double precision, intent(in)  z,
type (emfldcyl), intent(in)  this,
double precision, intent(out)  ez1,
double precision, intent(out)  ezp1,
double precision, intent(out)  ezpp1 
)

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

◆ getaxfldefc_emfldcyl()

subroutine emfldcylclass::getaxfldefc_emfldcyl ( double precision, intent(in)  z,
type (emfldcyl), 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_emfldcyl()

subroutine emfldcylclass::getfld6_emfldcyl ( type (emfldcyl), 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_emfldcyl()

subroutine emfldcylclass::getfld6err_emfldcyl ( type (emfldcyl), 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,
  angl 
)

◆ getfld6xyz_emfldcyl()

subroutine emfldcylclass::getfld6xyz_emfldcyl ( type (emfldcyl), 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_emfldcyl()

subroutine emfldcylclass::getfld6xyzerr_emfldcyl ( type (emfldcyl), 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,
  a 
)

◆ getfld_emfldcyl()

subroutine emfldcylclass::getfld_emfldcyl ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldcyl), 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_emfldcyl()

subroutine emfldcylclass::getflderr_emfldcyl ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldcyl), intent(in)  this,
double precision, intent(in)  dx,
double precision, intent(in)  dy,
double precision, intent(in)  anglex,
  angl 
)

get external field with displacement and rotation errors.

Here is the caller graph for this function:

◆ getflderrold_emfldcyl()

subroutine emfldcylclass::getflderrold_emfldcyl ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldcyl), intent(in)  this 
)

get external field with displacement and rotation errors.

◆ getfldt_emfldcyl()

subroutine emfldcylclass::getfldt_emfldcyl ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldcyl), intent(in)  this,
type (fielddata), intent(in)  fldata 
)

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

Here is the caller graph for this function:

◆ getparam1_emfldcyl()

subroutine emfldcylclass::getparam1_emfldcyl ( type (emfldcyl), intent(in)  this,
integer, intent(in)  i,
double precision, intent(out)  blparam 
)

◆ getparam2_emfldcyl()

subroutine emfldcylclass::getparam2_emfldcyl ( type (emfldcyl), intent(in)  this,
double precision, dimension(:), intent(out)  blparams 
)

◆ getparam3_emfldcyl()

subroutine emfldcylclass::getparam3_emfldcyl ( type (emfldcyl), intent(in)  this,
double precision, intent(out)  blength,
integer, intent(out)  bnseg,
integer, intent(out)  bmapstp,
integer, intent(out)  btype 
)

◆ intfunc1_emfldcyl()

subroutine emfldcylclass::intfunc1_emfldcyl ( double precision, intent(in)  t,
double precision, dimension(:), intent(in)  y,
double precision, dimension(:), intent(out)  f,
type (emfldcyl), 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_emfldcyl()

subroutine emfldcylclass::maplinear_emfldcyl ( double precision, intent(in)  t,
double precision, intent(in)  tau,
double precision, dimension(6,6), intent(out)  xm,
type (emfldcyl), 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_emfldcyl()

subroutine emfldcylclass::rk6i_emfldcyl ( 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 (emfldcyl), 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_emfldcyl()

subroutine emfldcylclass::setparam1_emfldcyl ( type (emfldcyl), intent(inout)  this,
integer, intent(in)  i,
double precision, intent(in)  value 
)

◆ setparam2_emfldcyl()

subroutine emfldcylclass::setparam2_emfldcyl ( type (emfldcyl), intent(inout)  this,
double precision, dimension(:), intent(in)  values 
)

◆ setparam3_emfldcyl()

subroutine emfldcylclass::setparam3_emfldcyl ( type (emfldcyl), 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 emfldcylclass::nparam = 11
private