Cartesius Library
youngtableaux Module Reference

Functions/Subroutines

real function, dimension(size(g, 1), size(g, 2)) youngtab_get_density_matrix (G, coeffs)
 
type(sparse_matrix) function dirciham (G, basis, proc1, proc2)
 
logical function checkgeners (G)
 Checks the correctness of the generator matrix elements by checking the commutation relations. More...
 
type(sparse_matrix) function, dimension(:,:), allocatable geners (m, n, mult)
 Returns the generators of U(n) wrt the irreps in sparse matrix form. More...
 
type(sparse_matrix) function, dimension(:), allocatable diaggens (ytabs)
 Returns the matrix elements of the diagonal generators wrt the irreps. More...
 
type(sparse_matrix) function diaggen (p, ytabs)
 Returns the matrix elements of the diagonal generator E_pp wrt the irreps. More...
 
type(sparse_matrix) function, dimension(:), allocatable elemgens (a, ytabs)
 Returns the matrix elements of the elementary generators wrt the irreps. More...
 
type(sparse_matrix) function elemgen (p, a, ytabs)
 Returns the matrix elements of an elementary generator E_p,p+1 wrt the irreps. More...
 
pure integer function ciblod (l1, l2, a)
 Returns the "city block distance" for two items in a two-column Young tableau. More...
 
integer function, dimension(:,:), allocatable gelf (a, b, c)
 Generates the list of possible Young tableaux from the given values of a, b, c in the Paldus Tableaux. More...
 
pure subroutine getdiffs (a, b, c, diffs, k)
 For the given a, b, c, returns the list of possible changes to a & c, and the number of possibilities. More...
 
integer function ndimen (a, b, c)
 Returns the number of dimensions of the irrep corresponding to the (a, b, c) Paldus Tableau. More...
 

Detailed Description

Author
Tchougreeff A. L.
Raenko D. D.

Function/Subroutine Documentation

◆ checkgeners()

logical function youngtableaux::checkgeners ( type(sparse_matrix), dimension(:,:), intent(in)  G)

Checks the correctness of the generator matrix elements by checking the commutation relations.

Todo:
Add other checks, if necessary.

◆ ciblod()

pure integer function youngtableaux::ciblod ( integer, intent(in)  l1,
integer, intent(in)  l2,
integer, intent(in)  a 
)

Returns the "city block distance" for two items in a two-column Young tableau.

Note
This function assumes the items belong to different columns.
Here is the call graph for this function:

◆ diaggen()

type(sparse_matrix) function youngtableaux::diaggen ( integer, intent(in)  p,
integer, dimension(:, :), intent(in)  ytabs 
)

Returns the matrix elements of the diagonal generator E_pp wrt the irreps.

◆ diaggens()

type(sparse_matrix) function, dimension(:), allocatable youngtableaux::diaggens ( integer, dimension(:, :), intent(in)  ytabs)

Returns the matrix elements of the diagonal generators wrt the irreps.

◆ dirciham()

type(sparse_matrix) function youngtableaux::dirciham ( type(sparse_matrix), dimension(:,:), intent(in)  G,
type(orbital_ptr), dimension(:), intent(in)  basis,
procedure(oneelectronicoperator), intent(inout), pointer  proc1,
procedure(twoelectronicoperator), intent(inout), pointer  proc2 
)
Here is the call graph for this function:

◆ elemgen()

type(sparse_matrix) function youngtableaux::elemgen ( integer, intent(in)  p,
integer, intent(in)  a,
integer, dimension(:, :), intent(in)  ytabs 
)

Returns the matrix elements of an elementary generator E_p,p+1 wrt the irreps.

Here is the call graph for this function:

◆ elemgens()

type(sparse_matrix) function, dimension(:), allocatable youngtableaux::elemgens ( integer, intent(in)  a,
integer, dimension(:, :), intent(in)  ytabs 
)

Returns the matrix elements of the elementary generators wrt the irreps.

Here is the call graph for this function:

◆ gelf()

integer function, dimension(:,:), allocatable youngtableaux::gelf ( integer, intent(in)  a,
integer, intent(in)  b,
integer, intent(in)  c 
)

Generates the list of possible Young tableaux from the given values of a, b, c in the Paldus Tableaux.

Attention
DR 12.01.2022 Is there any need to sort the Young Tableaux?
Here is the call graph for this function:

◆ geners()

type(sparse_matrix) function, dimension(:,:), allocatable youngtableaux::geners ( integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  mult 
)

Returns the generators of U(n) wrt the irreps in sparse matrix form.

Parameters
mNumber of basis functions.
nNumber of electrons.
multSpin multiplicity of the system.
GThe matrices corresponding to the E_i,j generators.
Here is the call graph for this function:

◆ getdiffs()

pure subroutine youngtableaux::getdiffs ( integer, intent(in)  a,
integer, intent(in)  b,
integer, intent(in)  c,
integer, dimension(4,2), intent(out)  diffs,
integer, intent(out)  k 
)

For the given a, b, c, returns the list of possible changes to a & c, and the number of possibilities.

◆ ndimen()

integer function youngtableaux::ndimen ( integer, intent(in)  a,
integer, intent(in)  b,
integer, intent(in)  c 
)

Returns the number of dimensions of the irrep corresponding to the (a, b, c) Paldus Tableau.

Here is the call graph for this function:

◆ youngtab_get_density_matrix()

real function, dimension(size(g,1), size(g,2)) youngtableaux::youngtab_get_density_matrix ( type(sparse_matrix), dimension(:,:), intent(in)  G,
real, dimension(:), intent(in)  coeffs 
)