IMPACT T
Data Types | Functions/Subroutines | Variables
emfldanaclass 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  emfldana
 
interface  getparam_emfldana
 
interface  setparam_emfldana
 

Functions/Subroutines

subroutine construct_emfldana (this, numseg, nmpstp, type, blength)
 
subroutine setparam1_emfldana (this, i, value)
 
subroutine setparam2_emfldana (this, values)
 
subroutine setparam3_emfldana (this, numseg, nmpstp, type, blength)
 
subroutine getparam1_emfldana (this, i, blparam)
 
subroutine getparam2_emfldana (this, blparams)
 
subroutine getparam3_emfldana (this, blength, bnseg, bmapstp, btype)
 
subroutine maplinear_emfldana (t, tau, xm, this, refpt, Bchg, Bmass)
 
subroutine rk6i_emfldana (h, ns, t, y, nvar, this, Bchg, Bmass)
 
subroutine intfunc1_emfldana (t, y, f, this, Bchg, Bmass)
 
subroutine getaxflde_emfldana (z, this, ez1, ezp1, ezpp1)
 interpolate the field from the EMfldAna rf cavity onto bunch location. More...
 
subroutine getaxfldefc_emfldana (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_emfldana (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_emfldana (pos, extfld, this)
 get external field with displacement and rotation errors. More...
 
subroutine getflderr_emfldana (pos, extfld, this, dx, dy, anglex, angl
 get external field with displacement and rotation errors. More...
 
subroutine getfld6_emfldana (this, z, extfld6)
 get the discrete Er,Etheta,Ez, Br, Btheta, Bz as a function or "r" at given "z". More...
 
subroutine getfld6err_emfldana (this, pos, extfld, dx, dy, anglex, angl
 
subroutine getfld6xyz_emfldana (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_emfldana (this, pos, extfld, dx, dy, anglex, a
 
subroutine getfldt_emfldana (pos, extfld, this, fldata)
 get analytical field. More...
 
subroutine getfldtsurfrough_emfldtana (pos, extfld, this, fldata)
 get DC surface roughness fields More...
 
subroutine getfldtalpha_emfldana (pos, extfld, this, fldata)
 get analytical field from an alpha magnet More...
 
subroutine getfldttw_emfldana (pos, extfld, this, fldata)
 get analytical field from a traveling wave meander plate More...
 
subroutine getfldtdipole_emfldana (pos, extfld, this, fldata)
 

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

◆ emfldanaclass::emfldana

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

Function/Subroutine Documentation

◆ construct_emfldana()

subroutine emfldanaclass::construct_emfldana ( type (emfldana), intent(out)  this,
integer, intent(in)  numseg,
integer, intent(in)  nmpstp,
integer, intent(in)  type,
double precision, intent(in)  blength 
)

◆ getaxflde_emfldana()

subroutine emfldanaclass::getaxflde_emfldana ( double precision, intent(in)  z,
type (emfldana), intent(in)  this,
double precision, intent(out)  ez1,
double precision, intent(out)  ezp1,
double precision, intent(out)  ezpp1 
)

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

◆ getaxfldefc_emfldana()

subroutine emfldanaclass::getaxfldefc_emfldana ( double precision, intent(in)  z,
type (emfldana), 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_emfldana()

subroutine emfldanaclass::getfld6_emfldana ( type (emfldana), 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_emfldana()

subroutine emfldanaclass::getfld6err_emfldana ( type (emfldana), 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_emfldana()

subroutine emfldanaclass::getfld6xyz_emfldana ( type (emfldana), 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_emfldana()

subroutine emfldanaclass::getfld6xyzerr_emfldana ( type (emfldana), 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_emfldana()

subroutine emfldanaclass::getfld_emfldana ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldana), 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_emfldana()

subroutine emfldanaclass::getflderr_emfldana ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldana), 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_emfldana()

subroutine emfldanaclass::getflderrold_emfldana ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldana), intent(in)  this 
)

get external field with displacement and rotation errors.

◆ getfldt_emfldana()

subroutine emfldanaclass::getfldt_emfldana ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldana), intent(in)  this,
type (fielddata), intent(in)  fldata 
)

get analytical field.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getfldtalpha_emfldana()

subroutine emfldanaclass::getfldtalpha_emfldana ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldana), intent(in)  this,
type (fielddata), intent(in)  fldata 
)

get analytical field from an alpha magnet

Here is the caller graph for this function:

◆ getfldtdipole_emfldana()

subroutine emfldanaclass::getfldtdipole_emfldana ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldana), intent(in)  this,
type (fielddata), intent(in)  fldata 
)
Here is the caller graph for this function:

◆ getfldtsurfrough_emfldtana()

subroutine emfldanaclass::getfldtsurfrough_emfldtana ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldana), intent(in)  this,
type (fielddata), intent(in)  fldata 
)

get DC surface roughness fields

Here is the caller graph for this function:

◆ getfldttw_emfldana()

subroutine emfldanaclass::getfldttw_emfldana ( double precision, dimension(4), intent(in)  pos,
double precision, dimension(6), intent(out)  extfld,
type (emfldana), intent(in)  this,
type (fielddata), intent(in)  fldata 
)

get analytical field from a traveling wave meander plate

Here is the caller graph for this function:

◆ getparam1_emfldana()

subroutine emfldanaclass::getparam1_emfldana ( type (emfldana), intent(in)  this,
integer, intent(in)  i,
double precision, intent(out)  blparam 
)

◆ getparam2_emfldana()

subroutine emfldanaclass::getparam2_emfldana ( type (emfldana), intent(in)  this,
double precision, dimension(:), intent(out)  blparams 
)

◆ getparam3_emfldana()

subroutine emfldanaclass::getparam3_emfldana ( type (emfldana), intent(in)  this,
double precision, intent(out)  blength,
integer, intent(out)  bnseg,
integer, intent(out)  bmapstp,
integer, intent(out)  btype 
)

◆ intfunc1_emfldana()

subroutine emfldanaclass::intfunc1_emfldana ( double precision, intent(in)  t,
double precision, dimension(:), intent(in)  y,
double precision, dimension(:), intent(out)  f,
type (emfldana), 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_emfldana()

subroutine emfldanaclass::maplinear_emfldana ( double precision, intent(in)  t,
double precision, intent(in)  tau,
double precision, dimension(6,6), intent(out)  xm,
type (emfldana), 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_emfldana()

subroutine emfldanaclass::rk6i_emfldana ( 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 (emfldana), 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_emfldana()

subroutine emfldanaclass::setparam1_emfldana ( type (emfldana), intent(inout)  this,
integer, intent(in)  i,
double precision, intent(in)  value 
)

◆ setparam2_emfldana()

subroutine emfldanaclass::setparam2_emfldana ( type (emfldana), intent(inout)  this,
double precision, dimension(:), intent(in)  values 
)

◆ setparam3_emfldana()

subroutine emfldanaclass::setparam3_emfldana ( type (emfldana), 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 emfldanaclass::nparam = 11
private