Cartesius Library
|
Data Types | |
type | oneelectronicelement |
type | oneelectronicelement_so |
type | oneelectronicelement_w_ptr |
interface | oneElectronicOperator |
interface | oneElectronicOperator_so |
interface | oneElectronicOperatorWithArg |
type | twoelectronicelement |
type | twoelectronicelement_so |
interface | twoElectronicOperator |
interface | twoElectronicOperator_so |
interface | twoElectronicOperatorWithArg |
Functions/Subroutines | |
logical function, private | operators_should_expand (orb) |
Returns true if the orbital should be expanded further, ans false if it's ready for evaluation. More... | |
recursive real function | oneelectronicmatrixelement (orbital1, orbital2, one) |
Evaluates the one-electronic matrix element given by the provided operator. More... | |
recursive real function | oneelectronicmatrixelement_so (orbital1, orbital2, one) |
Evaluates the one-electronic spin-orbital matrix element given by the provided operator. More... | |
recursive real function | oneelectronicmatrixelementwitharg (arg, orbital1, orbital2, one) |
Evaluates the one-electronic matrix element given by the provided operator with some parameter. More... | |
real function | oneelectronicmatrixelement_hybrid (hybrid1, hybrid2, one) |
Calculates the element in a more efficient way. Must be called only when the orbitals are known to be hybrids. More... | |
real function | oneelectronicmatrixelement_hyb_or_generic (orbital1, orbital2, one, should_reduceAOs) |
Generic function to call different one-electronic element routines for hybrids and generic orbitals. More... | |
real function | generalize_local_2c1e_real (orbital1, orbital2, one_local) |
Generalizes all local two-center one-electronic matrix elements with real harmonics. More... | |
recursive real function | twoelectronicmatrixelement (orbital1, orbital2, orbital3, orbital4, two) |
Evaluates the two-electronic matrix element given by the provided operator. More... | |
recursive real function | twoelectronicmatrixelement_so (orbital1, orbital2, orbital3, orbital4, two) |
Evaluates the two-electronic spin-orbital matrix element given by the provided operator. More... | |
recursive real function | twoelectronicmatrixelementwitharg (arg, orbital1, orbital2, orbital3, orbital4, two) |
Evaluates the two-electronic spin-orbital matrix element given by the provided operator given some integer parameter. More... | |
real function | generalize_local_2c2e_real (orbital1, orbital2, orbital3, orbital4, two_local) |
subroutine | calculateoneelectronictable (basis, isRecursive) |
real function | oneelectronicintegralfromtable (orbital1, orbital2) |
subroutine | calculateoneelectronictable_so (basis, isRecursive) |
real function | oneelectronicintegralfromtable_so (orbital1, orbital2) |
subroutine | calculatetwoelectronictable (basis, isRecursive) |
real function | twoelectronicintegralfromtable (orbital1, orbital2, orbital3, orbital4) |
subroutine | calculatetwoelectronictable_so (basis, isRecursive) |
real function | twoelectronicintegralfromtable_so (orbital1, orbital2, orbital3, orbital4) |
Variables | |
type(oneelectronicelement), dimension(:,:), allocatable, public | oneelectronictable |
type(twoelectronicelement), dimension(:,:,:,:), allocatable, public | twoelectronictable |
type(oneelectronicelement_so), dimension(:,:), allocatable, public | oneelectronictable_so |
type(twoelectronicelement_so), dimension(:,:,:,:), allocatable, public | twoelectronictable_so |
procedure(oneelectronicoperator), pointer, public | currentoneelectronicoperator => NULL() |
procedure(twoelectronicoperator), pointer, public | currenttwoelectronicoperator => NULL() |
procedure(oneelectronicoperator_so), pointer, public | currentoneelectronicoperator_so => NULL() |
procedure(twoelectronicoperator_so), pointer, public | currenttwoelectronicoperator_so => NULL() |
logical, public | reduceaostoprimitives = .TRUE. |
logical, public | operator_local = .true. |
Specifies whether the current calculation should be done in local or laboratory frame. Exists to prevent code duplication. Should be changed only when directly calling locality-dependent function or a generic recursive subroutine. More... | |
subroutine operators_base::calculateoneelectronictable | ( | type(orbitalbasis), intent(in) | basis, |
logical, intent(in) | isRecursive | ||
) |
subroutine operators_base::calculateoneelectronictable_so | ( | type(spinorbitalbasis), intent(in) | basis, |
logical, intent(in) | isRecursive | ||
) |
subroutine operators_base::calculatetwoelectronictable | ( | type(orbitalbasis), intent(in) | basis, |
logical, intent(in) | isRecursive | ||
) |
subroutine operators_base::calculatetwoelectronictable_so | ( | type(spinorbitalbasis), intent(in) | basis, |
logical, intent(in) | isRecursive | ||
) |
real function operators_base::generalize_local_2c1e_real | ( | type(orbital), intent(inout) | orbital1, |
type(orbital), intent(inout) | orbital2, | ||
procedure(oneelectronicoperator), pointer | one_local | ||
) |
Generalizes all local two-center one-electronic matrix elements with real harmonics.
atomicSlaterOverlap
(in slater_overlap.f90
) calculates the overlap assuming orbital2 is reflected through the xy-plane. This is the standard assumption in many derivations of this integral in prolate spheroidial coordinates. Unfortunately, this means that the reflection needs to be undone via multiplication by the correct phase factor: (-1)**(l2-m2) (see resonanceIntegral_STO
in valence_approximation.f90
). We cannot include this specific factor here, in this general routine. Thus, for now, this function is unused. In the future, it makes sense to either a) rewrite atomicSlaterOverlap
to include this phase factor by default; or b) add a new Slater overlap function which includes this factor. real function operators_base::generalize_local_2c2e_real | ( | type(orbital), intent(inout) | orbital1, |
type(orbital), intent(inout) | orbital2, | ||
type(orbital), intent(inout) | orbital3, | ||
type(orbital), intent(inout) | orbital4, | ||
procedure(twoelectronicoperator), pointer | two_local | ||
) |
real function operators_base::oneelectronicintegralfromtable | ( | type(orbital), intent(inout) | orbital1, |
type(orbital), intent(inout) | orbital2 | ||
) |
real function operators_base::oneelectronicintegralfromtable_so | ( | type(spinorbital), intent(inout) | orbital1, |
type(spinorbital), intent(inout) | orbital2 | ||
) |
recursive real function operators_base::oneelectronicmatrixelement | ( | type(orbital), intent(in), target | orbital1, |
type(orbital), intent(in), target | orbital2, | ||
procedure(oneelectronicoperator), intent(inout), pointer | one | ||
) |
Evaluates the one-electronic matrix element given by the provided operator.
real function operators_base::oneelectronicmatrixelement_hyb_or_generic | ( | type(orbital), intent(in) | orbital1, |
type(orbital), intent(in) | orbital2, | ||
procedure(oneelectronicoperator), intent(inout), pointer | one, | ||
logical, intent(in), optional | should_reduceAOs | ||
) |
Generic function to call different one-electronic element routines for hybrids and generic orbitals.
real function operators_base::oneelectronicmatrixelement_hybrid | ( | type(orbital), intent(in), target | hybrid1, |
type(orbital), intent(in), target | hybrid2, | ||
procedure(oneelectronicoperator), intent(inout), pointer | one | ||
) |
Calculates the element in a more efficient way. Must be called only when the orbitals are known to be hybrids.
recursive real function operators_base::oneelectronicmatrixelement_so | ( | type(spinorbital), intent(in), target | orbital1, |
type(spinorbital), intent(in), target | orbital2, | ||
procedure(oneelectronicoperator_so), intent(inout), pointer | one | ||
) |
Evaluates the one-electronic spin-orbital matrix element given by the provided operator.
recursive real function operators_base::oneelectronicmatrixelementwitharg | ( | class(*), intent(inout), pointer | arg, |
type(orbital), intent(in), target | orbital1, | ||
type(orbital), intent(in), target | orbital2, | ||
procedure(oneelectronicoperatorwitharg), intent(inout), pointer | one | ||
) |
Evaluates the one-electronic matrix element given by the provided operator with some parameter.
|
private |
Returns true if the orbital should be expanded further, ans false if it's ready for evaluation.
real function operators_base::twoelectronicintegralfromtable | ( | type(orbital), intent(inout) | orbital1, |
type(orbital), intent(inout) | orbital2, | ||
type(orbital), intent(inout) | orbital3, | ||
type(orbital), intent(inout) | orbital4 | ||
) |
real function operators_base::twoelectronicintegralfromtable_so | ( | type(spinorbital), intent(inout) | orbital1, |
type(spinorbital), intent(inout) | orbital2, | ||
type(spinorbital), intent(inout) | orbital3, | ||
type(spinorbital), intent(inout) | orbital4 | ||
) |
recursive real function operators_base::twoelectronicmatrixelement | ( | type(orbital), intent(in), target | orbital1, |
type(orbital), intent(in), target | orbital2, | ||
type(orbital), intent(in), target | orbital3, | ||
type(orbital), intent(in), target | orbital4, | ||
procedure(twoelectronicoperator), intent(inout), pointer | two | ||
) |
Evaluates the two-electronic matrix element given by the provided operator.
recursive real function operators_base::twoelectronicmatrixelement_so | ( | type(spinorbital), intent(in), target | orbital1, |
type(spinorbital), intent(in), target | orbital2, | ||
type(spinorbital), intent(in), target | orbital3, | ||
type(spinorbital), intent(in), target | orbital4, | ||
procedure(twoelectronicoperator_so), intent(inout), pointer | two | ||
) |
Evaluates the two-electronic spin-orbital matrix element given by the provided operator.
recursive real function operators_base::twoelectronicmatrixelementwitharg | ( | class(*), intent(inout), pointer | arg, |
type(orbital), intent(in), target | orbital1, | ||
type(orbital), intent(in), target | orbital2, | ||
type(orbital), intent(in), target | orbital3, | ||
type(orbital), intent(in), target | orbital4, | ||
procedure(twoelectronicoperatorwitharg), intent(inout), pointer | two | ||
) |
Evaluates the two-electronic spin-orbital matrix element given by the provided operator given some integer parameter.
procedure(oneelectronicoperator), pointer, public operators_base::currentoneelectronicoperator => NULL() |
procedure(oneelectronicoperator_so), pointer, public operators_base::currentoneelectronicoperator_so => NULL() |
procedure(twoelectronicoperator), pointer, public operators_base::currenttwoelectronicoperator => NULL() |
procedure(twoelectronicoperator_so), pointer, public operators_base::currenttwoelectronicoperator_so => NULL() |
type(oneelectronicelement), dimension(:,:), allocatable, public operators_base::oneelectronictable |
type(oneelectronicelement_so), dimension(:,:), allocatable, public operators_base::oneelectronictable_so |
logical operators_base::operator_local = .true. |
Specifies whether the current calculation should be done in local or laboratory frame. Exists to prevent code duplication. Should be changed only when directly calling locality-dependent function or a generic recursive subroutine.
logical, public operators_base::reduceaostoprimitives = .TRUE. |
type(twoelectronicelement), dimension(:,:,:,:), allocatable, public operators_base::twoelectronictable |
type(twoelectronicelement_so), dimension(:,:,:,:), allocatable, public operators_base::twoelectronictable_so |