Golem is hosted by Hepforge, IPPP Durham

src/kinematic/matrice_s [ Modules ]

[ Top ] [ Modules ]

NAME

  Module matrice_s

USAGE

  use matrice_s

DESCRIPTION

  This module is used : to reserve some memory in order to pass the S matrix, its
  shape, the set of propagator labels; to compute the inverse
  of S matrix and the related quantities : the b's and sumb, also for all
  possible reduced matrices. The S matrix is allocated here and also its dimension
  and it returns the result through the three functions inv_s, b and sumb.

OUTPUT

  This module exports five variables:
  * dim_s -- an integer, the shape of the initial S matrix
  * set_ref -- an integer array, the set of initial propagators
  * s_mat_c -- a complex (type ki) array of rank 2, the S matrix.
  * s_mat_p -- a derived type, including the S matrix for either real or complex masses
               and integer-bits encoding the positions of masses with non-vanishing Im-part,
               and vanishing masses.
  * s_mat -- A pointer associated with s_mat_c. The user can fill s_mat or s_mat_c with complex or
             real values.

  and also eleven functions:
  * initgolem95 -- calls allocation_s, initializes the cache, associates s_mat.
  * allocation_s -- to allocate the required memory
  * deallocation_s -- to deallocate the used memory
  * preparesmatrix -- fill s_mat_r with the real part of s_mat_c, sets the bit integers in s_mat_p
                        calls init_invs.
  * init_invs -- to fill all the array for the inverse of the S matrix
                 and the inverse of the reduce S matrix
  * inv_s -- it contains the inverse of the S matrix
  * hj -- it contains H matrix (pseudo-inverse of G)
  * b -- it contains the b coefficients
  * sumb -- it contains the B coeficient
  * norma_sumb -- it contains the normalised B coefficient
  * exitgolem95 -- deallocates memory, clear the cache.

  Only dim_s and set_ref take a value in this module, not the other variables

USES

  * precision (src/module/precision_golem.f90)
  * sortie_erreur (src/module/sortie_erreur.f90)
  * cache (src/module/cache.f90)
  * inverse_matrice (src/kinematic/inverse_matrice.f90)
  * tri_croissant (src/module/tri_croissant.f90)
  * array (src/module/array.f90)
  * parametre (src/module/parametre.f90)
  * s_matrix_type (src/module/s_matrix_type.f90)

src/kinematic/inversion/b [ Functions ]

[ Top ] [ Functions ]

NAME

  Function b

USAGE

  complex = b(i,set)

DESCRIPTION

 This function gives the b coefficients whatever the S matrix dimension (<=6)

INPUTS

  * i -- an integer, label of the b coefficients
  * set -- an integer array of rank 1, the set of pinch propagators

SIDE EFFECTS

  No side effect

RETURN VALUE

  Warning: Now a complex (type ki) is returned! [TK Sep10]

EXAMPLE


src/kinematic/inversion/hj [ Functions ]

[ Top ] [ Functions ]

NAME

  Function hj

USAGE

  complex = hj(i,j,set)

DESCRIPTION

 This function gives the H matrix (pseudo-inverse of G) (dim=6)

INPUTS

  * i -- an integer, line number
  * j -- an integer, row number
  * set -- an integer array of rank 1, the set of pinch propagators

SIDE EFFECTS

  No side effect

RETURN VALUE

  Warning: Now a complex (type ki) is returned! [TK Sep10]

EXAMPLE


src/kinematic/inversion/init_invs [ Functions ]

[ Top ] [ Functions ]

NAME

  Subroutine init_invs

USAGE

  call init_invs()

DESCRIPTION

 This function comes in two copies for real masses and complex masses.
 The respective arrays are filled.

 This routine fills the arrays:
 invs_n, hjj, b_n, sumb_n, norma_sumb_n

 One can print a typical error due to the numerical inversion

INPUTS

  No input

SIDE EFFECTS

  This routine modifies the values of the real or complex arrays
  invs_n, hjj, b_n, sumb_n, norma_sumb_n

RETURN VALUE

  No return value

EXAMPLE


src/kinematic/inversion/inv_s [ Functions ]

[ Top ] [ Functions ]

NAME

  Function inv_s

USAGE

  complex = inv_s(i,j,set)

DESCRIPTION

  This function gives the generic inverse of the S matrix whatever
  its dimension (<=6)

INPUTS

  * i -- an integer, line number
  * j -- an integer, row number
  * set -- an integer array of rank 1, the set of pinch propagators

SIDE EFFECTS

  No side effect

RETURN VALUE

  Warning: Now a complex (type ki) is returned! [TK Sep10]

EXAMPLE


src/kinematic/inversion/norma_sumb [ Functions ]

[ Top ] [ Functions ]

NAME

  Function norma_sumb

USAGE

  complex = norma_sumb(set)

DESCRIPTION

 This function gives the B coefficient whatever the S matrix dimension (<=6)
 divided by the greatest (in absolute value) element of the S matrix

INPUTS

  * set -- an integer array of rank 1, the set of pinch propagators

SIDE EFFECTS

  No side effect

RETURN VALUE

  Warning: Now a complex (type ki) is returned! [TK Sep10]

EXAMPLE


src/kinematic/inversion/sumb [ Functions ]

[ Top ] [ Functions ]

NAME

  Function sumb

USAGE

  complex = sumb(set)

DESCRIPTION

 This function gives the B coefficient whatever the S matrix dimension (<=6)

INPUTS

  * set -- an integer array of rank 1, the set of pinch propagators

SIDE EFFECTS

  No side effect

RETURN VALUE

  Warning: Now a complex (type ki) is returned! [TK Sep10]

EXAMPLE


src/kinematic/matrice_s/allocation_s [ Functions ]

[ Top ] [ Functions ]

NAME

  Subroutine allocation_s

USAGE

  call allocation_s(dim)

DESCRIPTION

  This subroutine reserves the memory for several internal objects.
  In case of rmass_or_cmass_par==cmass, there complex copies of each preceding array
  are also allocated.

  After memory allocation, s_mat_p is then assigned the matrix s_mat_c or s_mat_r,
  respectively. The corresponding pointers in s_mat_p are associated or nullified.
  In case a complex matrix is assigned, there will be also a pointer associated with
  a real matrix, which has entries according to the real part of the complex matrix.

INPUTS

  * dim -- an integer, the maximal number of external legs

SIDE EFFECTS

  This routine modify the value of the variable dim_s
  It initialises invs_n, hjj, b_n, sumb_n, norma_sumb_n to zero
  It associates the global objects s_mat_p with s_mat_r or s_mat_c.

RETURN VALUE

  No return value

EXAMPLE


src/kinematic/matrice_s/deallocation_s [ Functions ]

[ Top ] [ Functions ]

NAME

  Subroutine deallocation_s

USAGE

  call deallocation_s()

DESCRIPTION

  This subroutine deallocates the memory reserved by the preceeding
  subroutine.
  The pointers in s_mat_p are nullified.

INPUTS

  No input

SIDE EFFECTS

  This routine destroys all the variables initialised in the
  preceeding subroutine as well as any associations in s_mat_p.

RETURN VALUE

  No return value

EXAMPLE


src/kinematic/matrice_s/exitgolem95 [ Functions ]

[ Top ] [ Functions ]

NAME

  Subroutine exitgolem95

USAGE

  call exitgolem95()

DESCRIPTION

  This subroutine should be called at the end of the form factor calculation.
  It frees all memory previously allocated, it clears the cache and nullifies pointers.

INPUTS

SIDE EFFECTS

RETURN VALUE

  No return value

EXAMPLE


src/kinematic/matrice_s/initgolem95 [ Functions ]

[ Top ] [ Functions ]

NAME

  Subroutine initgolem95

USAGE

  call initgolem95(dim, opt_set)

DESCRIPTION

  This subroutine is the first of three macro functions which needs to be called by the user.
  It allocates memory for all internal matrices needed in subsequent calculations.
  The caching system is initialized.
  A pointer s_mat is associated with a complex matrix s_mat_c.
  This is the s matrix which has to be filled after initgolem95() is called.
  The argument 'dim' sets the maximal number of external legs.
  An optional array for the numbering of propagators can be given.
  The default is set to (/ 1, ... , dim /)

INPUTS

  * dim -- an integer, the maximal number of external legs
  * opt_set -- an optional integer array for the numbering of propagators

SIDE EFFECTS

 A call to allocation_s is made, implying all side effects given there.
 The caching system is initialized.
 A pointer 's_mat' is associated with the global matrix s_mat_c.
 The internal parameter rmass_or_cmass_par is set to cmass. If a purely real
 s matrix is given by the user it will be set to rmass in the call of
 preparesmatrix.

RETURN VALUE

  No return value

EXAMPLE


src/kinematic/matrice_s/preparesmatrix [ Functions ]

[ Top ] [ Functions ]

NAME

  Subroutine preparesmatrix

USAGE

  call preparesmatrix()
  call prepare_s_matrix_local(s_mat_p_loc,set_ref_loc)

DESCRIPTION

  This subroutine prepares the global or local s_mat_p object, consisting
  of pointers to s_mat_c and s_mat_r and integer bits b_cmplx and b_zero.
  A call to init_invs is made to fill the inverse matrices needed
  in the form factor calculations.
  If the user has defined a purely real s matrix, the internal parameter
  rmass_or_cmass_par is set to rmass and only the real branch of the library
  is used.
  In the complex case, form factors which are not affected by complex
  masses will be called with a sub matrix of s_mat_r, the real part of s_mat_c.
  The routine also sets the bits for complex mass and zero mass-
  entries.
  The subroutine prepare_s_matrix_local is used internally to prepare local type
  s_matrix_poly objects. This subroutine does not interact with the inverse matrices
  and the caching system.

INPUTS

  For prepare_s_matrix_local, s_mat_p and set_ref need to be given.

RETURN VALUE

  No return value

EXAMPLE