|
integer function | bstree_compare (this, i, j, data) |
| Compare two integral index sets. More...
|
|
subroutine | check_constructed (this) |
| A simple class to check if this has been properly constructed. More...
|
|
subroutine | construct (this, n1, n2, threshold, initial_size) |
| Constructs the class by allocating space for the electron integrals. More...
|
|
logical function | check_same_integral (this, integral, idx) |
| A function to check whether the same integral label exists. More...
|
|
subroutine | insert_ijklm_symbol (this, i, j, k, l, m, coeffs, check_same_) |
| Insert unpacked integral labels. More...
|
|
subroutine | insert_symbol (this, integral_label, coeffs, check_same_) |
| Insert a packed integral symbol into the class. More...
|
|
subroutine | expand_array (this) |
| This is the array expansion subroutine. More...
|
|
subroutine | add_symbols (this, rhs, alpha) |
| Inserts one symbolic vector into another scaled by. More...
|
|
subroutine | reduce_symbols (this, rhs) |
|
subroutine | synchronize_symbols (this) |
|
subroutine | synchronize_symbols_ii (this) |
|
logical function | check_bounds (this, i) |
| Simply checks the index and wheter it exists within the array. More...
|
|
subroutine | remove_symbol_at (this, idx) |
| Removes an integral and coefficient, never been used and pretty much useless. More...
|
|
logical function | is_empty (this) |
| Simply returns whether we are storing integrals and coeffs or not. More...
|
|
subroutine | clear (this) |
| Clear our array (not really but it essentialy resets the symbol counter to zero which is way quicker). More...
|
|
subroutine | modify_coeff (this, idx, coeff) |
|
integer(longint) function, dimension(2) | get_integral_label (this, idx) |
| Get integral label at specific index. More...
|
|
real(wp) function | get_coefficient (this, idx, n1, n2) |
| Get coefficient at specific index. More...
|
|
subroutine | get_coeff_and_integral (this, idx, coeff, label) |
| Get both label and coeffcient at specific index. More...
|
|
integer function | get_size (this) |
| Returns the number of symbolic elements stored. More...
|
|
integer function | get_num_targets_sym1 (this) |
|
integer function | get_num_targets_sym2 (this) |
|
subroutine | destroy (this) |
| Cleans up the class by deallocating arrays. More...
|
|
subroutine | print_symbols (this) |
| Print currently stored symbols. More...
|
|
logical function | estimate_synchronize_cost (this) |
|
Symbolic module.
- Authors
- A Al-Refaie
- Date
- 2017
This module handles the storage of symbolic elements produced from Slater rules when integrating configuration state functions.
- Note
- 30/01/2017 - Ahmed Al-Refaie: Initial documentation version
-
16/01/2019 - Jakub Benda: Unifom coding style and expanded documentation.
-
22/02/2019 - Jakub Benda: Removed dependency on C++ std::map.
integer function contracted_symbolic_module::bstree_compare |
( |
class(contractedsymbolicelementvector), intent(in) |
this, |
|
|
integer, intent(in) |
i, |
|
|
integer, intent(in) |
j, |
|
|
type(c_ptr), intent(in), optional |
data |
|
) |
| |
|
private |
Compare two integral index sets.
- Authors
- J Benda
- Date
- 2019
This is the predicate (order-defining function) used by the binary search tree. Given two pointers into the electron integral array, it returns 0 when the corresponding integral index sets are equal, -1 when the first one is (lexicographically) less, and +1 when the first one is (lexicographically) greater.
When either of the indices is non-positive, the dummy value stored in the dummy argument data
is used instead of the corresponding index set.
- Parameters
-
[in] | this | Symbolic vector containing the reference electron_integral storage. |
[in] | i | Position of the first integral index set. |
[in] | j | Position of the first integral index set. |
[in] | data | Integral index set to which compare the set being processed. |
- Returns
- -1/0/+1 as a lexicographical spaceship operator applied on the index sets.
Definition at line 132 of file Contracted_Symbolic_Module.f90.
subroutine contracted_symbolic_module::insert_symbol |
( |
class(contractedsymbolicelementvector) |
this, |
|
|
integer(longint), dimension(2), intent(in) |
integral_label, |
|
|
real(wp), dimension(this % num_states_1, this % num_states_2), intent(in) |
coeffs, |
|
|
logical, intent(in), optional |
check_same_ |
|
) |
| |
|
private |
Insert a packed integral symbol into the class.
- Authors
- A Al-Refaie
- Date
- 2017
This subroutine is used to insert the integral into the class, it performs a check to see if it exists, if not then it will insert (and expand if needed) into the integral array. Otherwise it will simply add the coefficients to found integral index.
- Parameters
-
[in,out] | this | Vector object to update. |
[in] | integral_label | Packed integral label |
[in] | coeffs | The integral coefficient |
[in] | check_same_ | Deprecated, orginally used to debug but now does nothing |
Definition at line 295 of file Contracted_Symbolic_Module.f90.