|
MPI-SCATCI 2.0
An MPI version of SCATCI
|
This class generates the molecular and spin orbitals, stores them and generates symblic elements from determinants. More...
Public Member Functions | |
| procedure, public | initialize (this, nsrb, norb, symtype, nsym, positron_flag) |
| Basic initialization of the data structure. | |
| procedure, public | construct (this, num_orbital_target_sym, num_orbital_target_sym_dinf, num_orbitals, num_elec_orbitals, num_orbitals_congen) |
| Define all spin-orbitals. | |
| procedure, public | get_orbital_number (this, spin_orbital) |
| Simple function to get orbital number for a specific spin orbital. | |
| procedure, public | get_spin (this, spin_orbital) |
| Simple function to get orbital number for a specific spin orbital. | |
| procedure, public | get_gerude (this, spin_orbital) |
| procedure, public | get_electron_number (this, spin_orbital) |
| procedure, public | compute_electron_index (this, num_electrons, reference_determinants) |
| Assign electrons to reference spin-orbitals. | |
| procedure, public | check_max_mcon_in_determinants (this, n, determinants) |
| procedure, public | evaluate_IJKL_and_coeffs evaluate_ijkl_and_coeffs |
| procedure, public | get_mcon (this, spin_orbital) |
| procedure, public | get_minimum_mcon (this, determinants) |
| procedure, public | get_two_minimum_mcon (this, determinant_one, determinant_two) |
| procedure, public | add_positron (this, determinants, ia, ib) |
Public Attributes | |
| logical | initialized = .false. |
| Whether the class has been initialized. | |
| integer | total_num_spin_orbitals |
| The total number of spin orbitals. | |
| integer | total_num_orbitals |
| The total number of molecular orbitals. | |
| integer | symmetry_type |
| Which symmetry group we are dealing with. | |
| integer | num_symmetries |
| How many symmetries we have. | |
| integer | positron_flag |
| Whether we have exotic matter. | |
| integer | mflg = 0 |
| integer, dimension(:), allocatable | mcorb |
| integer, dimension(:), allocatable | mcon |
| integer, dimension(:), allocatable | nsrb |
| MCORB - Orbital mapping? | |
| type(spinorbital), dimension(:), allocatable | spin_orbitals |
| Our table of spin orbitals. | |
| integer, dimension(:), allocatable | orbital_map |
| Mapping of determinants to spin orbitals. | |
Private Member Functions | |
| procedure, private | evaluate_case_one (this, p, r, nsfa, nsfb, mla, mlb, coeff, symbol) |
| procedure, private | evaluate_case_two (this, p, q, nsfa, nsfb, mla, mlb, coeff, symbol) |
| procedure, private | evaluate_case_three (this, p, q, nsfa, nsfb, mla, mlb, coeff, symbol) |
| procedure, private | evaluate_case_other (this, p, q, r, s, mla, ms, coeff, symbol) |
This class generates the molecular and spin orbitals, stores them and generates symblic elements from determinants.
Consists of an array of objects SpinOrbital. Provides access functions for retrieval of properties of individual orbitals.
Definition at line 69 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::add_positron | ( | class(orbitaltable), intent(in) | this, |
| integer, dimension(4), intent(in) | determinants, | ||
| integer, intent(in) | ia, | ||
| integer, intent(in) | ib ) |
Definition at line 93 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::check_max_mcon_in_determinants | ( | class(orbitaltable), intent(inout) | this, |
| integer, intent(in) | n, | ||
| integer, dimension(:), intent(in) | determinants ) |
Definition at line 88 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::compute_electron_index | ( | class(orbitaltable), intent(inout) | this, |
| integer, intent(in) | num_electrons, | ||
| integer, dimension(num_electrons), intent(in) | reference_determinants ) |
Assign electrons to reference spin-orbitals.
Assign consecutive electron index to all stored spin-orbitals of the reference determinant.
Definition at line 87 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::construct | ( | class(orbitaltable), intent(inout) | this, |
| integer, dimension(this % num_symmetries), intent(in) | num_orbital_target_sym, | ||
| integer, dimension(this % num_symmetries), intent(in) | num_orbital_target_sym_dinf, | ||
| integer, dimension(this % num_symmetries), intent(in) | num_orbitals, | ||
| integer, dimension(this % num_symmetries), intent(in) | num_elec_orbitals, | ||
| integer, dimension(this % num_symmetries), intent(in) | num_orbitals_congen ) |
Define all spin-orbitals.
Assumes that initialize_table has been called before.
Sets all attributes of the individual spin-orbital data structures. This is actually a simple wrapper around the original SCATCI subroutines MKORBS and PMKORBS, where the construction of the spin-orbitals is carried out.
On exit from this subroutine, all spin-orbitals contained in this type have correctly defined attributes (quantum numbers).
Definition at line 82 of file Orbital_module.f90.
|
private |
Definition at line 94 of file Orbital_module.f90.
|
private |
Definition at line 97 of file Orbital_module.f90.
|
private |
Definition at line 96 of file Orbital_module.f90.
|
private |
Definition at line 95 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::evaluate_IJKL_and_coeffs |
Definition at line 89 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::get_electron_number | ( | class(orbitaltable), intent(in) | this, |
| integer, intent(in) | spin_orbital ) |
Definition at line 86 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::get_gerude | ( | class(orbitaltable), intent(in) | this, |
| integer, intent(in) | spin_orbital ) |
Definition at line 85 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::get_mcon | ( | class(orbitaltable), intent(in) | this, |
| integer, intent(in) | spin_orbital ) |
Definition at line 90 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::get_minimum_mcon | ( | class(orbitaltable), intent(in) | this, |
| integer, dimension(4), intent(in) | determinants ) |
Definition at line 91 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::get_orbital_number | ( | class(orbitaltable), intent(in) | this, |
| integer, intent(in) | spin_orbital ) |
Simple function to get orbital number for a specific spin orbital.
Definition at line 83 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::get_spin | ( | class(orbitaltable), intent(in) | this, |
| integer, intent(in) | spin_orbital ) |
Simple function to get orbital number for a specific spin orbital.
Definition at line 84 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::get_two_minimum_mcon | ( | class(orbitaltable), intent(in) | this, |
| integer, intent(in) | determinant_one, | ||
| integer, intent(in) | determinant_two ) |
Definition at line 92 of file Orbital_module.f90.
| procedure, public Orbital_module::OrbitalTable::initialize | ( | class(orbitaltable), intent(inout) | this, |
| integer, intent(in) | nsrb, | ||
| integer, intent(in) | norb, | ||
| integer, intent(in) | symtype, | ||
| integer, intent(in) | nsym, | ||
| integer, intent(in) | positron_flag ) |
Basic initialization of the data structure.
Stores given arguments and allocates memory for all spin-orbitals.
| [in,out] | this | Orbital object to update. |
| [in] | nsrb | Number of spin-orbitals. |
| [in] | norb | Number of orbitals. |
| [in] | symtype | Symmetry type (group class). Expects named constant from consts_mpi_ci. |
| [in] | nsym | Number of symmetries (irreducible representations). |
| [in] | positron_flag | Non-zero value indicates positron. |
Definition at line 81 of file Orbital_module.f90.
| logical Orbital_module::OrbitalTable::initialized = .false. |
Whether the class has been initialized.
Definition at line 70 of file Orbital_module.f90.
| integer, dimension(:), allocatable Orbital_module::OrbitalTable::mcon |
Definition at line 77 of file Orbital_module.f90.
| integer, dimension(:), allocatable Orbital_module::OrbitalTable::mcorb |
Definition at line 77 of file Orbital_module.f90.
| integer Orbital_module::OrbitalTable::mflg = 0 |
Definition at line 76 of file Orbital_module.f90.
| integer, dimension(:), allocatable Orbital_module::OrbitalTable::nsrb |
MCORB - Orbital mapping?
Definition at line 77 of file Orbital_module.f90.
| integer Orbital_module::OrbitalTable::num_symmetries |
How many symmetries we have.
Definition at line 74 of file Orbital_module.f90.
| integer, dimension(:), allocatable Orbital_module::OrbitalTable::orbital_map |
Mapping of determinants to spin orbitals.
Definition at line 79 of file Orbital_module.f90.
| integer Orbital_module::OrbitalTable::positron_flag |
Whether we have exotic matter.
Definition at line 75 of file Orbital_module.f90.
| type(spinorbital), dimension(:), allocatable Orbital_module::OrbitalTable::spin_orbitals |
Our table of spin orbitals.
Definition at line 78 of file Orbital_module.f90.
| integer Orbital_module::OrbitalTable::symmetry_type |
Which symmetry group we are dealing with.
Definition at line 73 of file Orbital_module.f90.
| integer Orbital_module::OrbitalTable::total_num_orbitals |
The total number of molecular orbitals.
Definition at line 72 of file Orbital_module.f90.
| integer Orbital_module::OrbitalTable::total_num_spin_orbitals |
The total number of spin orbitals.
Definition at line 71 of file Orbital_module.f90.