MPI-SCATCI  2.0
An MPI version of SCATCI
contracted_hamiltonian_module Module Reference

Contracted Hamiltonian module. More...

Data Types

type  contracted_hamiltonian
 Computation of Hamiltonian. More...
 

Functions/Subroutines

subroutine initialize_contracted_hamiltonian (this, rmat_ci)
 Initializes the contracted hamiltonian and supplies target coefficients. More...
 
subroutine build_contracted_hamiltonian (this, matrix_elements)
 Builds the Contracted Hamiltonian class by class. More...
 
subroutine evaluate_class_1 (this, i1, num_targets, matrix_elements)
 Builds the class 1 part of the matrix. More...
 
subroutine evaluate_class_2 (this, matrix_elements)
 Builds the class 2 part of the matrix. More...
 
subroutine evaluate_class_3 (this, i1, num_targets, matrix_elements)
 Builds the class 3 part of the matrix. More...
 
subroutine evaluate_class_4 (this, i1, num_states, l1, matrix_elements)
 Builds the class 4 part of the matrix. More...
 
subroutine evaluate_class_5 (this, i1, num_target_1, i2, num_target_2, matrix_elements)
 Builds the class 5 part of the matrix. More...
 
subroutine evaluate_class_6 (this, i1, num_target_1, i2, num_target_2, matrix_elements)
 Builds the class 6 part of the matrix. More...
 
subroutine evaluate_class_7 (this, i1, num_target_1, i2, num_target_2, matrix_elements)
 Builds the class 7 part of the matrix. More...
 
subroutine evaluate_class_8 (this, matrix_elements)
 Builds the class 8 part of the matrix. More...
 
subroutine evaluate_class_2_and_8 (this, matrix_elements)
 Builds both the class 2 and class 8 (Pure L2) parts of the matrix elements. More...
 
subroutine compute_matrix_ij (this, i1, n1, j1, i2, n2, j2, i, j)
 Finds the starting matrix index for paticular target symmetries and target states. More...
 
subroutine expand_diagonal (this, continuum_orbital, master_prototype, j1, expanded_prototype)
 Deprecated. More...
 
subroutine expand_off_diagonal (this, continuum_orbital_a, continuum_orbital_b, master_prototype, ja, jb, expanded_prototype)
 Deprecated. More...
 
subroutine expand_continuum_l2 (this, continuum_orbital, master_prototype, j1, expanded_prototype)
 Deprecated. More...
 
subroutine expand_off_diagonal_general (this, continuum_orbital_a, continuum_orbital_b, master_prototype, ja, jb, expanded_prototype)
 Deprecated. More...
 
subroutine expand_diagonal_eval (this, continuum_orbital, master_prototype, j1, mat_coeffs)
 Expands the diagonal prototype symbols and evaluates for a single matrix element for co-ordiate (j1) More...
 
subroutine contr_expand_diagonal_eval (this, continuum_orbital, master_prototype, j1, mat_coeffs)
 Expands the diagonal prototype symbols and evaluates for a single matrix element for co-ordiate (j1) More...
 
subroutine expand_continuum_l2_eval (this, continuum_orbital, master_prototype, j1, mat_coeffs)
 Expands the continuum-L2 prototype symbols and evaluates for a single matrix element for co-ordinate (j1),L2. More...
 
subroutine contr_expand_continuum_l2_eval (this, continuum_orbital, master_prototype, j1, mat_coeffs)
 Expands the continuum-L2 prototype symbols and evaluates for a single matrix element for co-ordinate (j1),L2. More...
 
subroutine expand_off_diagonal_eval (this, continuum_orbital_a, continuum_orbital_b, master_prototype, ja, jb, mat_coeffs)
 Expands the off-diagonal same/similar symmetry prototype symbols and evaluates for a single matrix element for co-ordinate offset (ja,jb) More...
 
subroutine contr_expand_off_diagonal_eval (this, continuum_orbital_a, continuum_orbital_b, master_prototype, ja, jb, mat_coeffs)
 Expands the off-diagonal same/similar symmetry prototype symbols and evaluates for a single matrix element for co-ordinate offset (ja,jb) More...
 
subroutine expand_off_diagonal_gen_eval (this, continuum_orbital_a, continuum_orbital_b, master_prototype, ja, jb, mat_coeffs)
 Expands the off-diagonal generic prototype symbols and evaluates for a single matrix element for co-ordinate (ja,jb) More...
 
subroutine reduce_prototypes (this, prototypes)
 (Not used) Compresses several prototypes into a single prototype at position 1 More...
 
integer function get_starting_index (this, symmetry)
 Gets the starting index configuration state functions at a specific symmetry. More...
 
real(wp) function get_target_coeff (this, i, m, n)
 Simply a wrapper to aid in clarity. More...
 
subroutine fast_contract_class_1_3_diag (this, i1, num_targets, ido, temp_prototype, master_prototypes)
 
subroutine fast_contract_class_1_3_offdiag (this, i1, num_targets, s1, s2, temp_prototype, master_prototypes)
 
subroutine fast_contract_class_567 (this, i1, i2, num_targets1, num_targets2, s1, s2, temp_prototype, master_prototypes)
 

Detailed Description

Contracted Hamiltonian module.

Authors
A Al-Refaie
Date
2017

This module handles the calculation of the contracted scattering hamiltonian through the usage of the Contracted_Hamiltonian class. Eq. references refer to the paper by J. Tennyson: J. Phys B.: At. Mol. Opt. Phys. 29 (1996) 1817-1828

Note
30/01/2017 - Ahmed Al-Refaie: Initial Revision
16/01/2019 - Jakub Benda: Unifom coding style and expanded documentation.

Function/Subroutine Documentation

◆ build_contracted_hamiltonian()

subroutine contracted_hamiltonian_module::build_contracted_hamiltonian ( class(contracted_hamiltonian this,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds the Contracted Hamiltonian class by class.

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to update.
[out]matrix_elementsA BaseMatrix object, stores the calculated elements.

Definition at line 154 of file Contracted_Hamiltonian_module.f90.

◆ compute_matrix_ij()

subroutine contracted_hamiltonian_module::compute_matrix_ij ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  n1,
integer, intent(in)  j1,
integer, intent(in)  i2,
integer, intent(in)  n2,
integer, intent(in)  j2,
integer, intent(out)  i,
integer, intent(out)  j 
)
private

Finds the starting matrix index for paticular target symmetries and target states.

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]i1Target symmetry 1
[in]n1Target state of target symmetry 1
[in]j1Continuum orbital of Target state of target symmetry 1
[in]i2Target symmetry 2
[in]n2Target state of target symmetry 2
[in]j2Continuum orbital of Target state of target symmetry 2
[out]iResultant matrix co-ordinate i
[out]jResultant matrix co-ordinate j

Definition at line 1783 of file Contracted_Hamiltonian_module.f90.

◆ contr_expand_continuum_l2_eval()

subroutine contracted_hamiltonian_module::contr_expand_continuum_l2_eval ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital,
class(contractedsymbolicelementvector), intent(in)  master_prototype,
integer, intent(in)  j1,
real(wp), dimension(:), intent(out)  mat_coeffs 
)
private

Expands the continuum-L2 prototype symbols and evaluates for a single matrix element for co-ordinate (j1),L2.

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]continuum_orbitalPrototype continuum orbital
[in]master_prototypePrototype symbolic elements to be expanded
[in]j1Desired continuum orbital
[out]mat_coeffsOutput array for the matrix element.

Definition at line 2224 of file Contracted_Hamiltonian_module.f90.

◆ contr_expand_diagonal_eval()

subroutine contracted_hamiltonian_module::contr_expand_diagonal_eval ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital,
type(contractedsymbolicelementvector), intent(in)  master_prototype,
integer, intent(in)  j1,
real(wp), dimension(:,:), intent(out)  mat_coeffs 
)
private

Expands the diagonal prototype symbols and evaluates for a single matrix element for co-ordiate (j1)

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]continuum_orbitalPrototype continuum orbital
[in]master_prototypePrototype symbolic elements to be expanded
[in]j1Desired continuum orbital
[out]mat_coeffsOutput array for the matrix element.

Definition at line 2084 of file Contracted_Hamiltonian_module.f90.

◆ contr_expand_off_diagonal_eval()

subroutine contracted_hamiltonian_module::contr_expand_off_diagonal_eval ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital_a,
integer, intent(in)  continuum_orbital_b,
class(contractedsymbolicelementvector), intent(in)  master_prototype,
integer, intent(in)  ja,
integer, intent(in)  jb,
real(wp), dimension(:,:), intent(out)  mat_coeffs 
)
private

Expands the off-diagonal same/similar symmetry prototype symbols and evaluates for a single matrix element for co-ordinate offset (ja,jb)

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]continuum_orbital_aPrototype continuum orbital for target symmetry a
[in]continuum_orbital_bPrototype continuum orbital for target symmetry b
[in]master_prototypePrototype symbolic elements to be expanded
[in]jaDesired continuum orbital of target symmetry a
[in]jbDesired continuum orbital of target symmetry b
[out]mat_coeffsOutput array for the matrix element.

Definition at line 2365 of file Contracted_Hamiltonian_module.f90.

◆ evaluate_class_1()

subroutine contracted_hamiltonian_module::evaluate_class_1 ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  num_targets,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds the class 1 part of the matrix.

Authors
A Al-Refaie
Date
2017

This relates to the building of diagonal elements of the target states with the same target symmetries.

Parameters
[in,out]thisHamiltonian object to query.
[in]i1The target symmetry.
[in]num_targetsThe number of target states withing the symmetry.
[out]matrix_elementsA BaseMatrix object, stores the calculated elements.

These are the contracted prototypes for each combination of target states

This stores te resultant slater rule calculation of prototypes before contracting for each state

The starting matrix index for each target state combination

The number of target state combinations

The total number of configurations with this target symmetry

CSF indicies

Definition at line 356 of file Contracted_Hamiltonian_module.f90.

◆ evaluate_class_2()

subroutine contracted_hamiltonian_module::evaluate_class_2 ( class(contracted_hamiltonian this,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds the class 2 part of the matrix.

Authors
A Al-Refaie
Date
2017

This has be deprecated, instead class 2 and 8 have been combined into a faster method.

Parameters
[in,out]thisHamiltonian object to query.
[out]matrix_elementsA BaseMatrix object, stores the calculated elements.

Definition at line 565 of file Contracted_Hamiltonian_module.f90.

◆ evaluate_class_2_and_8()

subroutine contracted_hamiltonian_module::evaluate_class_2_and_8 ( class(contracted_hamiltonian this,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds both the class 2 and class 8 (Pure L2) parts of the matrix elements.

Authors
A Al-Refaie
Date
2017

This suborutine builds both the diagonal and off-diagonal elements of the L2 part of the matrix. It collapses the 2-dimensional loop into a one dimensional loop and then moves through the entire lower triangular portion o the matrix to calculate very quicky and in parallel (if mpi enabled) the matrix elements.

Parameters
[in,out]thisHamiltonian object to query.
[out]matrix_elementsA BaseMatrix object, stores the calculated elements.

Definition at line 1687 of file Contracted_Hamiltonian_module.f90.

Here is the call graph for this function:

◆ evaluate_class_3()

subroutine contracted_hamiltonian_module::evaluate_class_3 ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  num_targets,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds the class 3 part of the matrix.

Authors
A Al-Refaie
Date
2017

This relates to building the off-diagonal elements of the target states with the same target symmetries.

Parameters
[in,out]thisHamiltonian object to query.
[in]i1The target symmetry.
[in]num_targetsThe number of target states withing the symmetry.
[out]matrix_elementsA BaseMatrix object, stores the calculated elements.

These are the contracted prototypes for each combination of target states

This stores te resultant slater rule calculation of prototypes before contracting for each state

The starting matrix index for each target state combination

The number of target state combinations

The total number of configurations with this target symmetry

CSF indicies

Definition at line 614 of file Contracted_Hamiltonian_module.f90.

Here is the call graph for this function:

◆ evaluate_class_4()

subroutine contracted_hamiltonian_module::evaluate_class_4 ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  num_states,
integer, intent(in)  l1,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds the class 4 part of the matrix.

Authors
A Al-Refaie
Date
2017

This relates to building the target-L2 off-diagonal elements of the hamiltonian.

Parameters
[in,out]thisHamiltonian object to query.
[in]i1The target symmetry
[in]num_statesThe number of target states withing the symmetry
[in]l1The index to the L2 function
[out]matrix_elementsA BaseMatrix object, stores the calculated elements

Definition at line 862 of file Contracted_Hamiltonian_module.f90.

◆ evaluate_class_5()

subroutine contracted_hamiltonian_module::evaluate_class_5 ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  num_target_1,
integer, intent(in)  i2,
integer, intent(in)  num_target_2,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds the class 5 part of the matrix.

Authors
A Al-Refaie
Date
2017

This relates to building the 'diagonal' off-diagonal elements of the hamiltonian of differing target symmetries but same continua symmetry.

Parameters
[in,out]thisHamiltonian object to query.
[in]i1Target symmetry 1
[in]num_target_1The number of target states within target symmetry 1
[in]i2Target symmetry 2
[in]num_target_2The number of target states within target symmetry 2
[out]matrix_elementsA BaseMatrix object, stores the calculated elements

Contracted prototypes for each target state combination

Starting index for each

Temporary storage of Slater rule calculations

Configuration and target state variables

Number of continuum orbitals

Counts for number of configurations of target symmetry 1,2 and in total TS1*TS2

Current continuum orbital

Target coefficient and matrix coefficient

Definition at line 1007 of file Contracted_Hamiltonian_module.f90.

Here is the call graph for this function:

◆ evaluate_class_6()

subroutine contracted_hamiltonian_module::evaluate_class_6 ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  num_target_1,
integer, intent(in)  i2,
integer, intent(in)  num_target_2,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds the class 6 part of the matrix.

Authors
A Al-Refaie
Date
2017

This relates to building the off-diagonal elements of the hamiltonian of differing target symmetries but same continua symmetry.

Parameters
[in,out]thisHamiltonian object to query.
[in]i1Target symmetry 1
[in]num_target_1The number of target states within target symmetry 1
[in]i2Target symmetry 2
[in]num_target_2The number of target states within target symmetry 2
[out]matrix_elementsA BaseMatrix object, stores the calculated elements.

Contracted prototypes for each target state combination

Starting index for each

Temporary storage of Slater rule calculations

Configuration and target state variables

Number of continuum orbitals

Counts for number of configurations of target symmetry 1,2 and in total TS1*TS2

Current continuum orbital for target symmetry 1 and 2

Target coefficient and matrix coefficient

Definition at line 1210 of file Contracted_Hamiltonian_module.f90.

Here is the call graph for this function:

◆ evaluate_class_7()

subroutine contracted_hamiltonian_module::evaluate_class_7 ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  num_target_1,
integer, intent(in)  i2,
integer, intent(in)  num_target_2,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds the class 7 part of the matrix.

Authors
A Al-Refaie
Date
2017

This relates to building the off-diagonal elements of the hamiltonian of differing target symmetries and continua symmetry

Parameters
[in,out]thisHamiltonian object to query.
[in]i1Target symmetry 1
[in]num_target_1The number of target states within target symmetry 1
[in]i2Target symmetry 2
[in]num_target_2The number of target states within target symmetry 2
[out]matrix_elementsA BaseMatrix object, stores the calculated elements

Definition at line 1418 of file Contracted_Hamiltonian_module.f90.

Here is the call graph for this function:

◆ evaluate_class_8()

subroutine contracted_hamiltonian_module::evaluate_class_8 ( class(contracted_hamiltonian this,
class(basematrix), intent(inout)  matrix_elements 
)
private

Builds the class 8 part of the matrix.

Authors
A Al-Refaie
Date
2017
Deprecated:
Now replaced with the fast class_2_and_8 combined subroutine.
Parameters
[in,out]thisHamiltonian object to query.
[out]matrix_elementsA BaseMatrix object, stores the calculated elements

Definition at line 1629 of file Contracted_Hamiltonian_module.f90.

◆ expand_continuum_l2()

subroutine contracted_hamiltonian_module::expand_continuum_l2 ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital,
class(symbolicelementvector), intent(in)  master_prototype,
integer, intent(in)  j1,
class(symbolicelementvector), intent(in)  expanded_prototype 
)
private

Deprecated.

Definition at line 1914 of file Contracted_Hamiltonian_module.f90.

◆ expand_continuum_l2_eval()

subroutine contracted_hamiltonian_module::expand_continuum_l2_eval ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital,
class(symbolicelementvector), dimension(:), intent(in)  master_prototype,
integer, intent(in)  j1,
real(wp), dimension(:), intent(out)  mat_coeffs 
)
private

Expands the continuum-L2 prototype symbols and evaluates for a single matrix element for co-ordinate (j1),L2.

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]continuum_orbitalPrototype continuum orbital
[in]master_prototypePrototype symbolic elements to be expanded
[in]j1Desired continuum orbital
[out]mat_coeffsOutput array for the matrix element.

Definition at line 2161 of file Contracted_Hamiltonian_module.f90.

◆ expand_diagonal()

subroutine contracted_hamiltonian_module::expand_diagonal ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital,
class(symbolicelementvector), intent(in)  master_prototype,
integer, intent(in)  j1,
class(symbolicelementvector), intent(in)  expanded_prototype 
)
private

Deprecated.

Definition at line 1819 of file Contracted_Hamiltonian_module.f90.

◆ expand_diagonal_eval()

subroutine contracted_hamiltonian_module::expand_diagonal_eval ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital,
type(symbolicelementvector), dimension(:), intent(in)  master_prototype,
integer, intent(in)  j1,
real(wp), dimension(:), intent(out)  mat_coeffs 
)
private

Expands the diagonal prototype symbols and evaluates for a single matrix element for co-ordiate (j1)

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]continuum_orbitalPrototype continuum orbital
[in]master_prototypePrototype symbolic elements to be expanded
[in]j1Desired continuum orbital
[out]mat_coeffsOutput array for the matrix element.

Definition at line 2011 of file Contracted_Hamiltonian_module.f90.

◆ expand_off_diagonal()

subroutine contracted_hamiltonian_module::expand_off_diagonal ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital_a,
integer, intent(in)  continuum_orbital_b,
class(symbolicelementvector), intent(in)  master_prototype,
integer, intent(in)  ja,
integer, intent(in)  jb,
class(symbolicelementvector), intent(in)  expanded_prototype 
)
private

Deprecated.

Definition at line 1866 of file Contracted_Hamiltonian_module.f90.

◆ expand_off_diagonal_eval()

subroutine contracted_hamiltonian_module::expand_off_diagonal_eval ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital_a,
integer, intent(in)  continuum_orbital_b,
class(symbolicelementvector), dimension(:), intent(in)  master_prototype,
integer, intent(in)  ja,
integer, intent(in)  jb,
real(wp), dimension(:), intent(out)  mat_coeffs 
)
private

Expands the off-diagonal same/similar symmetry prototype symbols and evaluates for a single matrix element for co-ordinate offset (ja,jb)

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]continuum_orbital_aPrototype continuum orbital for target symmetry a
[in]continuum_orbital_bPrototype continuum orbital for target symmetry b
[in]master_prototypePrototype symbolic elements to be expanded
[in]jaDesired continuum orbital of target symmetry a
[in]jbDesired continuum orbital of target symmetry b
[in]mat_coeffsOutput array for the matrix element.

Definition at line 2289 of file Contracted_Hamiltonian_module.f90.

◆ expand_off_diagonal_gen_eval()

subroutine contracted_hamiltonian_module::expand_off_diagonal_gen_eval ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital_a,
integer, intent(in)  continuum_orbital_b,
class(contractedsymbolicelementvector), intent(in)  master_prototype,
integer, intent(in)  ja,
integer, intent(in)  jb,
real(wp), dimension(:,:), intent(out)  mat_coeffs 
)
private

Expands the off-diagonal generic prototype symbols and evaluates for a single matrix element for co-ordinate (ja,jb)

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]continuum_orbital_aPrototype continuum orbital for target symmetry a
[in]continuum_orbital_bPrototype continuum orbital for target symmetry b
[in]master_prototypePrototype symbolic elements to be expanded
[in]jaDesired continuum orbital of target symmetry a
[in]jbDesired continuum orbital of target symmetry b
[out]mat_coeffsOutput array for the matrix element.

Definition at line 2447 of file Contracted_Hamiltonian_module.f90.

◆ expand_off_diagonal_general()

subroutine contracted_hamiltonian_module::expand_off_diagonal_general ( class(contracted_hamiltonian this,
integer, intent(in)  continuum_orbital_a,
integer, intent(in)  continuum_orbital_b,
class(symbolicelementvector), intent(in)  master_prototype,
integer, intent(in)  ja,
integer, intent(in)  jb,
class(symbolicelementvector), intent(in)  expanded_prototype 
)
private

Deprecated.

Definition at line 1952 of file Contracted_Hamiltonian_module.f90.

◆ fast_contract_class_1_3_diag()

subroutine contracted_hamiltonian_module::fast_contract_class_1_3_diag ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  num_targets,
integer, intent(in)  ido,
class(symbolicelementvector), intent(in)  temp_prototype,
class(symbolicelementvector), dimension(num_targets * (num_targets + 1) / 2), intent(in)  master_prototypes 
)
private

Definition at line 2583 of file Contracted_Hamiltonian_module.f90.

◆ fast_contract_class_1_3_offdiag()

subroutine contracted_hamiltonian_module::fast_contract_class_1_3_offdiag ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  num_targets,
integer, intent(in)  s1,
integer, intent(in)  s2,
class(symbolicelementvector), intent(in)  temp_prototype,
class(symbolicelementvector), dimension(num_targets * (num_targets + 1) / 2), intent(in)  master_prototypes 
)
private

Definition at line 2635 of file Contracted_Hamiltonian_module.f90.

◆ fast_contract_class_567()

subroutine contracted_hamiltonian_module::fast_contract_class_567 ( class(contracted_hamiltonian this,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  num_targets1,
integer, intent(in)  num_targets2,
integer, intent(in)  s1,
integer, intent(in)  s2,
class(symbolicelementvector), intent(in)  temp_prototype,
class(symbolicelementvector), dimension(num_targets1, num_targets2), intent(in)  master_prototypes 
)
private

Definition at line 2688 of file Contracted_Hamiltonian_module.f90.

◆ get_starting_index()

integer function contracted_hamiltonian_module::get_starting_index ( class(contracted_hamiltonian), intent(in)  this,
integer, intent(in)  symmetry 
)
private

Gets the starting index configuration state functions at a specific symmetry.

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]symmetryTarget symmetry.
Returns
The starting CSF index for a given target symmetry

Definition at line 2548 of file Contracted_Hamiltonian_module.f90.

◆ get_target_coeff()

real(wp) function contracted_hamiltonian_module::get_target_coeff ( class(contracted_hamiltonian), intent(in)  this,
integer  i,
integer  m,
integer  n 
)
private

Simply a wrapper to aid in clarity.

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to query.
[in]iTarget symmetry.
[in]mTarget state.
[in]nTarget configuration.
Returns
target coefficient

Definition at line 2573 of file Contracted_Hamiltonian_module.f90.

◆ initialize_contracted_hamiltonian()

subroutine contracted_hamiltonian_module::initialize_contracted_hamiltonian ( class(contracted_hamiltonian this,
class(target_rmat_ci), dimension(:), intent(in), target  rmat_ci 
)
private

Initializes the contracted hamiltonian and supplies target coefficients.

Authors
A Al-Refaie
Date
2017
Parameters
[in,out]thisHamiltonian object to update.
[in]rmat_ciOur Target_RMat_CI array containing the cofficients.

Definition at line 128 of file Contracted_Hamiltonian_module.f90.

◆ reduce_prototypes()

subroutine contracted_hamiltonian_module::reduce_prototypes ( class(contracted_hamiltonian), intent(in)  this,
class(symbolicelementvector), dimension(:), intent(in)  prototypes 
)
private

(Not used) Compresses several prototypes into a single prototype at position 1

Authors
A Al-Refaie
Date
2017

To be used for the OpenMP implementation by combining multiple symbols.

Parameters
[in,out]thisHamiltonian object to query.
[in]prototypesA symbolic prototype array to be compressed.

Definition at line 2522 of file Contracted_Hamiltonian_module.f90.