Special Pyfrag Calculation¶
Besides the above simple calculations, it is more complicated to perform an open shell Activation Strain Analysis (ASA) using PyFrag 2019 for the technical reasons. For more information please check the example consisting of an analysis of the C-C single bond between two CP radicals in the four-atomic molecule PCCP.
Open Shell ASA¶
The basic PyFrag 2019 input for the Activation Strain Analysis (ASA) using ADF to perform an open shell Activation Strain Analysis is as follow:
JOBSUB
#!/bin/bash
#SBATCH -J NNC
#SBATCH -N 1
#SBATCH -t 24:00:00
#SBATCH --ntasks-per-node=24
#SBATCH --partition=normal
#SBATCH --output=%job.stdout
#SBATCH --error=%job.stdout
export NSCM=24
JOBSUB END
PyFrag
ircpath /Users/xiaobo/Desktop/test/molecule.xyz
fragment 1 3 4 5
fragment 2 6 7 8
strain 0
strain 0
bondlength 1 2 1.52
PyFrag END
fragment1 EXTRA
SYMMETRY C(3V)
CHARGE 0 0
OCCUPATIONS
E1 4
A1 5
END
fragment1 EXTRA END
fragment2 EXTRA
SYMMETRY C(3V)
CHARGE 0 0
OCCUPATIONS
E1 4
A1 5
END
fragment2 EXTRA END
complex EXTRA
FRAGOCCUPATIONS
frag1
E1 2//2
A1 3//2
SUBEND
frag2
E1 2//2
A1 2//3
SUBEND
END
complex EXTRA END
fragment1 open EXTRA
charge 0 1
unrestricted
fragment1 open EXTRA END
fragment2 open EXTRA
charge 0 1
unrestricted
fragment2 open EXTRA END
complex open EXTRA
charge 0 0
complex open EXTRA END
ADF
basis
type DZ
core None
end
xc
gga OPBE
end
scf
iterations 99
converge 0.0001
mixing 0.20
end
numericalquality good
ADF END
To submit a job, create a directory and generate a input file and run the following command to submit a job:
pyfrag -x open job.in
In order to perform a successful open shell fragment analysis, additional information should be provided in the following input blocks:
fragment1 EXTRA
SYMMETRY C(3V)
CHARGE 0 0
OCCUPATIONS
E1 4
A1 5
END
fragment1 EXTRA END
fragment2 EXTRA
SYMMETRY C(3V)
CHARGE 0 0
OCCUPATIONS
E1 4
A1 5
END
fragment2 EXTRA END
complex EXTRA
FRAGOCCUPATIONS
frag1
E1 2//2
A1 3//2
SUBEND
frag2
E1 2//2
A1 2//3
SUBEND
END
complex EXTRA END
The fragment calculations used to provide the TAPE21 for the overall complex calculation must be done, for technical reasons, in the restricted mode. The proper spins are then specified in the calculation of the overall molecule using the FragOccupations key. Noted a proper decomposition of an electron-pair bond energy requires specifying opposite spins for the unpaired electrons of the respective radical fragments, which can be done with the input key FragOccupations. For the convenience of the analysis, it is suggested to specify the electronic configuration according to the symmtry of the molecule.
Please note that if one neglects explicitly specifying opposite spins for the unpaired electrons of the fragments, each of them is treated as being half an alpha and half a beta electron and consequently, they enter into a spurious Pauli repulsive interaction. This results, among others, into the Pauli repulsion term being too repulsive and the orbital interaction term being too much stabilizing.
Note that this implies a slight approximation because the bond energy computed in this way refers to the energy difference between complex and two fragment radicals that are described by orbitals from a spin-restricted SCF calculation, which have been given an unrestricted occupation. In other words, the set of alpha- and beta-spin orbitals are identical and the effect of spin polarization is missing. In practice, this leads to minor energy differences with respect to the correct bond energy, that is, the energy difference between complex and two fragment radicals treated in the unrestricted mode, i.e., for which the set of alpha- and beta-spin orbitals are allowed to relax toward different solutions in the SCF procedure.
This correction term can be computed directly by carrying out an unrestricted computation of the fragment radical using the following block:
fragment1 open EXTRA
charge 0 1
unrestricted
fragment1 open EXTRA END
fragment2 open EXTRA
charge 0 1
unrestricted
fragment2 open EXTRA END
complex open EXTRA
charge 0 0
complex open EXTRA END
After the calculation, all results will be summarized in two text files. One file with the name started with pyfrag1 include all terms obtained from the above open shell ASA.
The second file with the name started with pyfrag2 include the correction energy terms from the correction procedure later.
New Open Shell ASA (Since ADF 2019)¶
Since ADF 2019, new method to do open-shell fragment analysis has been included. For details, please refer to the ADF website.
Based on this method, a new module to do the activation strain analysis has been developed by Xiaobo Sun and Eva Blokker. The specification for the print options is similar with the previous one, except to has to specify the spin state of orbital, such as 1_A, which means spin-A orbital 1. All the following options are acceptable:
overlap frag1 HOMO frag2 HOMO
overlap A1 frag1 3_B S frag2 1_B
orbitalenergy frag1 HOMO-2
orbitalenergy frag1 HOMO-1
orbitalenergy frag1 LUMO
orbitalenergy frag2 LUMO
orbitalenergy A1 frag1 3_A
population frag1 HOMO
population frag2 HOMO
population frag2 LUMO
population A1 frag1 3_A
population S frag2 1_B
The basic PyFrag 2019 input for the Activation Strain Analysis (ASA) using ADF 2019 to perform a new open shell Activation Strain Analysis is as follow:
JOBSUB
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=16
#SBATCH --partition=tc
#SBATCH --time=24:00:00
#SBATCH --job-name=methane
#SBATCH --output=methane.out
#SBATCH --error=methane.err
module load adf/2019.301
JOBSUB END
ADF
XC
GGA BLYP
DISPERSION Grimme3 BJDAMP
END
NumericalQuality Excellent
BASIS
TYPE TZ2P
CORE None
END
SCF
ITERATIONS 300
END
SYMMETRY AUTO
CHARGE 0
ADF END
PyFrag
ircpath /home/x2sun/methane.amv
fragment 1 2 3 4
fragment 5
strain 0
strain 0
bondlength 1 5
overlap A1 frag1 3_A S frag2 1_A
overlap A1 frag1 3_B S frag2 1_B
overlap A1 frag1 2_B S frag2 1_B
population frag1 HOMO
population frag2 HOMO
PyFrag END
fragment1 EXTRA
SYMMETRY C(3V)
CHARGE 0 1
unrestricted
IrrepOccupations
E1 2//2
A1 3//2
END
fragment1 EXTRA END
fragment2 EXTRA
SYMMETRY AUTO
CHARGE 0 -1
Unrestricted
IrrepOccupations
S 0//1
END
fragment2 EXTRA END
complex EXTRA
UnrestrictedFragments
unrestricted
complex EXTRA END
The molecule is methane:
C -0.88533700 -1.60854000 0.00000000
H -0.50220300 -2.11092900 0.89352900
H -0.50220300 -2.11092900 -0.89352900
H -1.97897100 -1.64799500 0.00000000
H -0.55799500 -0.56431300 0.00000000
To submit a job, create a directory and generate a input file and run the following command to submit a job:
pyfrag -x newopen job.in
Open Shell ASA Orbital Energy¶
Because the above open shell Activation Strain Analysis will not give the correct orbital energy of fragment, thus, in order to extract the correct orbital energy, the following small calculation can be performed:
PyFrag
ircpath /Users/xiaobo/Desktop/test/plams.0001
fragment frag1open
orbitalenergy HOMO
orbitalenergy HOMO-1
orbitalenergy LUMO
orbitalenergy LUMO+1
orbitalenergy AA 5
PyFrag END
The ircpath refer to the plams directory that contains all the open shell calculation results. Besides, the fragment term specifies from which (fragment1open or fragment1open) orbital energy will be extracted. Noted only one fragment informatin can be readed for one calculation.
To submit a job, create a directory and generate a input file and run the following command to run a job:
pyfrag -x openorb job.in
Single Points¶
The basic PyFrag 2019 input for the Activation Strain Analysis (ASA) using ADF to do single point calculation for a series of coordinates is as follows:
JOBSUB
#!/bin/bash
#SBATCH -J NNC
#SBATCH -N 1
#SBATCH -t 1:00:00
#SBATCH --ntasks-per-node=24
#SBATCH --partition=short
#SBATCH --output=%job.stdout
#SBATCH --error=%job.stdout
export NSCM=24
JOBSUB END
PyFrag
ircpath /Users/xiaobo/Desktop/test1/molecule.xyz
VDD 1 2 3
angle 1 2 3 90
bondlength 1 2 5
PyFrag END
ADF
basis
type DZ
core None
end
xc
gga OPBE
end
scf
iterations 99
converge 0.0001
mixing 0.20
end
numericalquality good
ADF END
Note that the fragment definations are not needed. This functionality provide an easy way to do a simple single point calculation for a series of different molecular coordinates and get the computational results like VDD charges, total energy, bond length and angles. Use the following command to run this calculation:
pyfrag -x single job.in