MPI-SCATCI  2.0
An MPI version of SCATCI
symbolic_module::symbolicelementvector Type Reference

This class handles the storage symbolic elements. More...

Inheritance diagram for symbolic_module::symbolicelementvector:
Collaboration diagram for symbolic_module::symbolicelementvector:

Public Member Functions

procedure, public compare => bstree_compare
 
procedure, public construct
 
procedure, public insert_ijklm_symbol
 
procedure, public insert_symbol
 
procedure, public remove_symbol_at
 
procedure, public is_empty
 
procedure, public clear
 
procedure, public check_same_integral
 
procedure, public get_integral_label
 
procedure, public synchronize_symbols
 
procedure, public modify_coeff
 
procedure, public get_coefficient
 
procedure, public get_coeff_and_integral
 
procedure, public get_size
 
procedure, public add_symbols
 
procedure, public print => print_symbols
 
procedure, public destroy
 

Private Member Functions

procedure, private expand_array
 
procedure, private check_bounds
 
procedure, private check_constructed
 

Private Attributes

integer(longint), dimension(:,:), allocatable electron_integral
 The packed integral storage. More...
 
real(wp), dimension(:), allocatable coeffs
 The coefficients of the integral. More...
 
integer n = 0
 Number of elements in the array of both the integral and coefficients. More...
 
logical constructed = .false.
 Whether this class has been constructed. More...
 
real(wp) threshold = 0.0
 The integral threshold. More...
 
integer max_capacity = 0
 The number of free slots in the array. More...
 
integer expand_size = 10
 How much we have to expand each. More...
 

Detailed Description

This class handles the storage symbolic elements.

This class handles the storage symbolic elements and also expands the vector size if we have reached max capacity Additionaly, uses a binary search tree to perform a binary search on integrals labels during insertion to ensure no repeating elements this is automatic and removes the compression stage in the original SCATCI code.

Definition at line 57 of file Symbolic_Module.f90.

Member Function/Subroutine Documentation

◆ add_symbols()

procedure, public symbolic_module::symbolicelementvector::add_symbols

Definition at line 84 of file Symbolic_Module.f90.

◆ check_bounds()

procedure, private symbolic_module::symbolicelementvector::check_bounds
private

Definition at line 87 of file Symbolic_Module.f90.

◆ check_constructed()

procedure, private symbolic_module::symbolicelementvector::check_constructed
private

Definition at line 89 of file Symbolic_Module.f90.

◆ check_same_integral()

procedure, public symbolic_module::symbolicelementvector::check_same_integral

Definition at line 77 of file Symbolic_Module.f90.

◆ clear()

procedure, public symbolic_module::symbolicelementvector::clear

Definition at line 76 of file Symbolic_Module.f90.

◆ compare()

procedure, public symbolic_module::symbolicelementvector::compare

Definition at line 68 of file Symbolic_Module.f90.

◆ construct()

procedure, public symbolic_module::symbolicelementvector::construct

Definition at line 71 of file Symbolic_Module.f90.

◆ destroy()

procedure, public symbolic_module::symbolicelementvector::destroy

Definition at line 88 of file Symbolic_Module.f90.

◆ expand_array()

procedure, private symbolic_module::symbolicelementvector::expand_array
private

Definition at line 86 of file Symbolic_Module.f90.

◆ get_coeff_and_integral()

procedure, public symbolic_module::symbolicelementvector::get_coeff_and_integral

Definition at line 82 of file Symbolic_Module.f90.

◆ get_coefficient()

procedure, public symbolic_module::symbolicelementvector::get_coefficient

Definition at line 81 of file Symbolic_Module.f90.

◆ get_integral_label()

procedure, public symbolic_module::symbolicelementvector::get_integral_label

Definition at line 78 of file Symbolic_Module.f90.

◆ get_size()

procedure, public symbolic_module::symbolicelementvector::get_size

Definition at line 83 of file Symbolic_Module.f90.

◆ insert_ijklm_symbol()

procedure, public symbolic_module::symbolicelementvector::insert_ijklm_symbol

Definition at line 72 of file Symbolic_Module.f90.

◆ insert_symbol()

procedure, public symbolic_module::symbolicelementvector::insert_symbol

Definition at line 73 of file Symbolic_Module.f90.

◆ is_empty()

procedure, public symbolic_module::symbolicelementvector::is_empty

Definition at line 75 of file Symbolic_Module.f90.

◆ modify_coeff()

procedure, public symbolic_module::symbolicelementvector::modify_coeff

Definition at line 80 of file Symbolic_Module.f90.

◆ print()

procedure, public symbolic_module::symbolicelementvector::print

Definition at line 85 of file Symbolic_Module.f90.

◆ remove_symbol_at()

procedure, public symbolic_module::symbolicelementvector::remove_symbol_at

Definition at line 74 of file Symbolic_Module.f90.

◆ synchronize_symbols()

procedure, public symbolic_module::symbolicelementvector::synchronize_symbols

Definition at line 79 of file Symbolic_Module.f90.

Member Data Documentation

◆ coeffs

real(wp), dimension(:), allocatable symbolic_module::symbolicelementvector::coeffs
private

The coefficients of the integral.

Definition at line 60 of file Symbolic_Module.f90.

◆ constructed

logical symbolic_module::symbolicelementvector::constructed = .false.
private

Whether this class has been constructed.

Definition at line 62 of file Symbolic_Module.f90.

◆ electron_integral

integer(longint), dimension(:,:), allocatable symbolic_module::symbolicelementvector::electron_integral
private

The packed integral storage.

Definition at line 59 of file Symbolic_Module.f90.

◆ expand_size

integer symbolic_module::symbolicelementvector::expand_size = 10
private

How much we have to expand each.

Definition at line 65 of file Symbolic_Module.f90.

◆ max_capacity

integer symbolic_module::symbolicelementvector::max_capacity = 0
private

The number of free slots in the array.

Definition at line 64 of file Symbolic_Module.f90.

◆ n

integer symbolic_module::symbolicelementvector::n = 0
private

Number of elements in the array of both the integral and coefficients.

Definition at line 61 of file Symbolic_Module.f90.

◆ threshold

real(wp) symbolic_module::symbolicelementvector::threshold = 0.0
private

The integral threshold.

Definition at line 63 of file Symbolic_Module.f90.


The documentation for this type was generated from the following file: