MPI-SCATCI
2.0
An MPI version of SCATCI
|
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) |
Contracted Hamiltonian module.
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
|
private |
Builds the Contracted Hamiltonian class by class.
[in,out] | this | Hamiltonian object to update. |
[out] | matrix_elements | A BaseMatrix object, stores the calculated elements. |
Definition at line 154 of file Contracted_Hamiltonian_module.f90.
|
private |
Finds the starting matrix index for paticular target symmetries and target states.
[in,out] | this | Hamiltonian object to query. |
[in] | i1 | Target symmetry 1 |
[in] | n1 | Target state of target symmetry 1 |
[in] | j1 | Continuum orbital of Target state of target symmetry 1 |
[in] | i2 | Target symmetry 2 |
[in] | n2 | Target state of target symmetry 2 |
[in] | j2 | Continuum orbital of Target state of target symmetry 2 |
[out] | i | Resultant matrix co-ordinate i |
[out] | j | Resultant matrix co-ordinate j |
Definition at line 1783 of file Contracted_Hamiltonian_module.f90.
|
private |
Expands the continuum-L2 prototype symbols and evaluates for a single matrix element for co-ordinate (j1),L2.
[in,out] | this | Hamiltonian object to query. |
[in] | continuum_orbital | Prototype continuum orbital |
[in] | master_prototype | Prototype symbolic elements to be expanded |
[in] | j1 | Desired continuum orbital |
[out] | mat_coeffs | Output array for the matrix element. |
Definition at line 2224 of file Contracted_Hamiltonian_module.f90.
|
private |
Expands the diagonal prototype symbols and evaluates for a single matrix element for co-ordiate (j1)
[in,out] | this | Hamiltonian object to query. |
[in] | continuum_orbital | Prototype continuum orbital |
[in] | master_prototype | Prototype symbolic elements to be expanded |
[in] | j1 | Desired continuum orbital |
[out] | mat_coeffs | Output array for the matrix element. |
Definition at line 2084 of file Contracted_Hamiltonian_module.f90.
|
private |
Expands the off-diagonal same/similar symmetry prototype symbols and evaluates for a single matrix element for co-ordinate offset (ja,jb)
[in,out] | this | Hamiltonian object to query. |
[in] | continuum_orbital_a | Prototype continuum orbital for target symmetry a |
[in] | continuum_orbital_b | Prototype continuum orbital for target symmetry b |
[in] | master_prototype | Prototype symbolic elements to be expanded |
[in] | ja | Desired continuum orbital of target symmetry a |
[in] | jb | Desired continuum orbital of target symmetry b |
[out] | mat_coeffs | Output array for the matrix element. |
Definition at line 2365 of file Contracted_Hamiltonian_module.f90.
|
private |
Builds the class 1 part of the matrix.
This relates to the building of diagonal elements of the target states with the same target symmetries.
[in,out] | this | Hamiltonian object to query. |
[in] | i1 | The target symmetry. |
[in] | num_targets | The number of target states withing the symmetry. |
[out] | matrix_elements | A 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.
|
private |
Builds the class 2 part of the matrix.
This has be deprecated, instead class 2 and 8 have been combined into a faster method.
[in,out] | this | Hamiltonian object to query. |
[out] | matrix_elements | A BaseMatrix object, stores the calculated elements. |
Definition at line 565 of file Contracted_Hamiltonian_module.f90.
|
private |
Builds both the class 2 and class 8 (Pure L2) parts of the matrix elements.
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.
[in,out] | this | Hamiltonian object to query. |
[out] | matrix_elements | A BaseMatrix object, stores the calculated elements. |
Definition at line 1687 of file Contracted_Hamiltonian_module.f90.
|
private |
Builds the class 3 part of the matrix.
This relates to building the off-diagonal elements of the target states with the same target symmetries.
[in,out] | this | Hamiltonian object to query. |
[in] | i1 | The target symmetry. |
[in] | num_targets | The number of target states withing the symmetry. |
[out] | matrix_elements | A 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.
|
private |
Builds the class 4 part of the matrix.
This relates to building the target-L2 off-diagonal elements of the hamiltonian.
[in,out] | this | Hamiltonian object to query. |
[in] | i1 | The target symmetry |
[in] | num_states | The number of target states withing the symmetry |
[in] | l1 | The index to the L2 function |
[out] | matrix_elements | A BaseMatrix object, stores the calculated elements |
Definition at line 862 of file Contracted_Hamiltonian_module.f90.
|
private |
Builds the class 5 part of the matrix.
This relates to building the 'diagonal' off-diagonal elements of the hamiltonian of differing target symmetries but same continua symmetry.
[in,out] | this | Hamiltonian object to query. |
[in] | i1 | Target symmetry 1 |
[in] | num_target_1 | The number of target states within target symmetry 1 |
[in] | i2 | Target symmetry 2 |
[in] | num_target_2 | The number of target states within target symmetry 2 |
[out] | matrix_elements | A 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.
|
private |
Builds the class 6 part of the matrix.
This relates to building the off-diagonal elements of the hamiltonian of differing target symmetries but same continua symmetry.
[in,out] | this | Hamiltonian object to query. |
[in] | i1 | Target symmetry 1 |
[in] | num_target_1 | The number of target states within target symmetry 1 |
[in] | i2 | Target symmetry 2 |
[in] | num_target_2 | The number of target states within target symmetry 2 |
[out] | matrix_elements | A 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.
|
private |
Builds the class 7 part of the matrix.
This relates to building the off-diagonal elements of the hamiltonian of differing target symmetries and continua symmetry
[in,out] | this | Hamiltonian object to query. |
[in] | i1 | Target symmetry 1 |
[in] | num_target_1 | The number of target states within target symmetry 1 |
[in] | i2 | Target symmetry 2 |
[in] | num_target_2 | The number of target states within target symmetry 2 |
[out] | matrix_elements | A BaseMatrix object, stores the calculated elements |
Definition at line 1418 of file Contracted_Hamiltonian_module.f90.
|
private |
Builds the class 8 part of the matrix.
[in,out] | this | Hamiltonian object to query. |
[out] | matrix_elements | A BaseMatrix object, stores the calculated elements |
Definition at line 1629 of file Contracted_Hamiltonian_module.f90.
|
private |
Deprecated.
Definition at line 1914 of file Contracted_Hamiltonian_module.f90.
|
private |
Expands the continuum-L2 prototype symbols and evaluates for a single matrix element for co-ordinate (j1),L2.
[in,out] | this | Hamiltonian object to query. |
[in] | continuum_orbital | Prototype continuum orbital |
[in] | master_prototype | Prototype symbolic elements to be expanded |
[in] | j1 | Desired continuum orbital |
[out] | mat_coeffs | Output array for the matrix element. |
Definition at line 2161 of file Contracted_Hamiltonian_module.f90.
|
private |
Deprecated.
Definition at line 1819 of file Contracted_Hamiltonian_module.f90.
|
private |
Expands the diagonal prototype symbols and evaluates for a single matrix element for co-ordiate (j1)
[in,out] | this | Hamiltonian object to query. |
[in] | continuum_orbital | Prototype continuum orbital |
[in] | master_prototype | Prototype symbolic elements to be expanded |
[in] | j1 | Desired continuum orbital |
[out] | mat_coeffs | Output array for the matrix element. |
Definition at line 2011 of file Contracted_Hamiltonian_module.f90.
|
private |
Deprecated.
Definition at line 1866 of file Contracted_Hamiltonian_module.f90.
|
private |
Expands the off-diagonal same/similar symmetry prototype symbols and evaluates for a single matrix element for co-ordinate offset (ja,jb)
[in,out] | this | Hamiltonian object to query. |
[in] | continuum_orbital_a | Prototype continuum orbital for target symmetry a |
[in] | continuum_orbital_b | Prototype continuum orbital for target symmetry b |
[in] | master_prototype | Prototype symbolic elements to be expanded |
[in] | ja | Desired continuum orbital of target symmetry a |
[in] | jb | Desired continuum orbital of target symmetry b |
[in] | mat_coeffs | Output array for the matrix element. |
Definition at line 2289 of file Contracted_Hamiltonian_module.f90.
|
private |
Expands the off-diagonal generic prototype symbols and evaluates for a single matrix element for co-ordinate (ja,jb)
[in,out] | this | Hamiltonian object to query. |
[in] | continuum_orbital_a | Prototype continuum orbital for target symmetry a |
[in] | continuum_orbital_b | Prototype continuum orbital for target symmetry b |
[in] | master_prototype | Prototype symbolic elements to be expanded |
[in] | ja | Desired continuum orbital of target symmetry a |
[in] | jb | Desired continuum orbital of target symmetry b |
[out] | mat_coeffs | Output array for the matrix element. |
Definition at line 2447 of file Contracted_Hamiltonian_module.f90.
|
private |
Deprecated.
Definition at line 1952 of file Contracted_Hamiltonian_module.f90.
|
private |
Definition at line 2583 of file Contracted_Hamiltonian_module.f90.
|
private |
Definition at line 2635 of file Contracted_Hamiltonian_module.f90.
|
private |
Definition at line 2688 of file Contracted_Hamiltonian_module.f90.
|
private |
Gets the starting index configuration state functions at a specific symmetry.
[in,out] | this | Hamiltonian object to query. |
[in] | symmetry | Target symmetry. |
Definition at line 2548 of file Contracted_Hamiltonian_module.f90.
|
private |
Simply a wrapper to aid in clarity.
[in,out] | this | Hamiltonian object to query. |
[in] | i | Target symmetry. |
[in] | m | Target state. |
[in] | n | Target configuration. |
Definition at line 2573 of file Contracted_Hamiltonian_module.f90.
|
private |
Initializes the contracted hamiltonian and supplies target coefficients.
[in,out] | this | Hamiltonian object to update. |
[in] | rmat_ci | Our Target_RMat_CI array containing the cofficients. |
Definition at line 128 of file Contracted_Hamiltonian_module.f90.
|
private |
(Not used) Compresses several prototypes into a single prototype at position 1
To be used for the OpenMP implementation by combining multiple symbols.
[in,out] | this | Hamiltonian object to query. |
[in] | prototypes | A symbolic prototype array to be compressed. |
Definition at line 2522 of file Contracted_Hamiltonian_module.f90.