MPI-SCATCI 2.0
An MPI version of SCATCI
Loading...
Searching...
No Matches
Orbital_module::OrbitalTable Type Reference

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)

Detailed Description

This class generates the molecular and spin orbitals, stores them and generates symblic elements from determinants.

Authors
A Al-Refaie
Date
2017

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.

Member Function/Subroutine Documentation

◆ add_positron()

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.

◆ check_max_mcon_in_determinants()

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.

◆ compute_electron_index()

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.

Authors
A Al-Refaie
Date
2017

Assign consecutive electron index to all stored spin-orbitals of the reference determinant.

Definition at line 87 of file Orbital_module.f90.

◆ construct()

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.

Authors
A Al-Refaie
Date
2017

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.

◆ evaluate_case_one()

procedure, private Orbital_module::OrbitalTable::evaluate_case_one ( class(orbitaltable), intent(inout) this,
integer, intent(in) p,
integer, intent(in) r,
integer, intent(in) nsfa,
integer, intent(in) nsfb,
integer, intent(in) mla,
integer, intent(in) mlb,
real(wp), intent(in) coeff,
class(symbolicelementvector) symbol )
private

Definition at line 94 of file Orbital_module.f90.

◆ evaluate_case_other()

procedure, private Orbital_module::OrbitalTable::evaluate_case_other ( class(orbitaltable), intent(inout) this,
integer, intent(in) p,
integer, intent(in) q,
integer, intent(in) r,
integer, intent(in) s,
integer, intent(in) mla,
integer, intent(in) ms,
real(wp), intent(in) coeff,
class(symbolicelementvector) symbol )
private

Definition at line 97 of file Orbital_module.f90.

◆ evaluate_case_three()

procedure, private Orbital_module::OrbitalTable::evaluate_case_three ( class(orbitaltable), intent(inout) this,
integer, intent(in) p,
integer, intent(in) q,
integer, intent(in) nsfa,
integer, intent(in) nsfb,
integer, intent(in) mla,
integer, intent(in) mlb,
real(wp), intent(in) coeff,
class(symbolicelementvector) symbol )
private

Definition at line 96 of file Orbital_module.f90.

◆ evaluate_case_two()

procedure, private Orbital_module::OrbitalTable::evaluate_case_two ( class(orbitaltable), intent(inout) this,
integer, intent(in) p,
integer, intent(in) q,
integer, intent(in) nsfa,
integer, intent(in) nsfb,
integer, intent(in) mla,
integer, intent(in) mlb,
real(wp), intent(in) coeff,
class(symbolicelementvector) symbol )
private

Definition at line 95 of file Orbital_module.f90.

◆ evaluate_IJKL_and_coeffs()

procedure, public Orbital_module::OrbitalTable::evaluate_IJKL_and_coeffs

Definition at line 89 of file Orbital_module.f90.

◆ get_electron_number()

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.

◆ get_gerude()

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.

◆ get_mcon()

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.

◆ get_minimum_mcon()

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.

◆ get_orbital_number()

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.

◆ get_spin()

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.

◆ get_two_minimum_mcon()

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.

◆ initialize()

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.

Authors
A Al-Refaie
Date
2017

Stores given arguments and allocates memory for all spin-orbitals.

Parameters
[in,out]thisOrbital object to update.
[in]nsrbNumber of spin-orbitals.
[in]norbNumber of orbitals.
[in]symtypeSymmetry type (group class). Expects named constant from consts_mpi_ci.
[in]nsymNumber of symmetries (irreducible representations).
[in]positron_flagNon-zero value indicates positron.

Definition at line 81 of file Orbital_module.f90.

Member Data Documentation

◆ initialized

logical Orbital_module::OrbitalTable::initialized = .false.

Whether the class has been initialized.

Definition at line 70 of file Orbital_module.f90.

◆ mcon

integer, dimension(:), allocatable Orbital_module::OrbitalTable::mcon

Definition at line 77 of file Orbital_module.f90.

◆ mcorb

integer, dimension(:), allocatable Orbital_module::OrbitalTable::mcorb

Definition at line 77 of file Orbital_module.f90.

◆ mflg

integer Orbital_module::OrbitalTable::mflg = 0

Definition at line 76 of file Orbital_module.f90.

◆ nsrb

integer, dimension(:), allocatable Orbital_module::OrbitalTable::nsrb

MCORB - Orbital mapping?

Definition at line 77 of file Orbital_module.f90.

◆ num_symmetries

integer Orbital_module::OrbitalTable::num_symmetries

How many symmetries we have.

Definition at line 74 of file Orbital_module.f90.

◆ orbital_map

integer, dimension(:), allocatable Orbital_module::OrbitalTable::orbital_map

Mapping of determinants to spin orbitals.

Definition at line 79 of file Orbital_module.f90.

◆ positron_flag

integer Orbital_module::OrbitalTable::positron_flag

Whether we have exotic matter.

Definition at line 75 of file Orbital_module.f90.

◆ spin_orbitals

type(spinorbital), dimension(:), allocatable Orbital_module::OrbitalTable::spin_orbitals

Our table of spin orbitals.

Definition at line 78 of file Orbital_module.f90.

◆ symmetry_type

integer Orbital_module::OrbitalTable::symmetry_type

Which symmetry group we are dealing with.

Definition at line 73 of file Orbital_module.f90.

◆ total_num_orbitals

integer Orbital_module::OrbitalTable::total_num_orbitals

The total number of molecular orbitals.

Definition at line 72 of file Orbital_module.f90.

◆ total_num_spin_orbitals

integer Orbital_module::OrbitalTable::total_num_spin_orbitals

The total number of spin orbitals.

Definition at line 71 of file Orbital_module.f90.


The documentation for this type was generated from the following file:
  • /scratch.ssd/codes/ukrmol-in-git/source/mpi-ci-diag/Modules/Hamiltonian/Orbital_module.f90