Example: Charge transfer integrals with FOCDFT

Download Ethylene_FOCDFT.run

#! /bin/sh

# FOCDFT is used to calculate charge transfer integrals
# for the ethylene dimer using PBE and an all electron DZ basis set.
# The influence of othere ethylenes in the environment is investigated.

# FOCDFT is a fragment orbital based method for constraining (integer) charges and spins on fragments.
# It uses the (localized) Lowdins that ADF makes to to constrain charges and spins on fragments.
# This method can be used to specify 2 different electron configurations of the same complex,
# such that a charge on the first fragment in the first calculation is transferred
# to the second fragment in the second calculation.

# Because in the final complexes the ethylene molecules are the same,
# only one fragment needs to be calculated.

AMS_JOBNAME=Frag $AMSBIN/ams <<eor
System
  symmetrize
  atoms
    C      0.000000    0.000000    0.000000
    C      1.332000    0.000000    0.000000
    H     -0.574301    0.000000   -0.928785
    H     -0.574301    0.000000    0.928785
    H      1.906301    0.000000    0.928785
    H      1.906301    0.000000   -0.928785
  end
end

Task SinglePoint

Engine ADF
  basis
    Type DZ
    core none
  end
  xc
    gga pbe
  end
EndEngine
eor

# Charge transfer integrals for the ethylene dimer at a distance of 4 Angstrom.

AMS_JOBNAME=ET2_4 $AMSBIN/ams <<eor
System
  symmetrize
  atoms
    C      0.000000    0.000000    0.000000 adf.f=Frag1
    C      1.332000    0.000000    0.000000 adf.f=Frag1
    H     -0.574301    0.000000   -0.928785 adf.f=Frag1
    H     -0.574301    0.000000    0.928785 adf.f=Frag1
    H      1.906301    0.000000    0.928785 adf.f=Frag1
    H      1.906301    0.000000   -0.928785 adf.f=Frag1
    C     -0.000000    4.000000    0.000000 adf.f=Frag2
    C      1.332000    4.000000   -0.000000 adf.f=Frag2
    H     -0.574301    4.000000    0.928785 adf.f=Frag2
    H     -0.574301    4.000000   -0.928785 adf.f=Frag2
    H      1.906301    4.000000   -0.928785 adf.f=Frag2
    H      1.906301    4.000000    0.928785 adf.f=Frag2
  end
  charge 1
end

Task SinglePoint

Engine ADF
  fragments
     Frag1 Frag.results/adf.rkf
     Frag2 Frag.results/adf.rkf
  end
  spinpolarization 1
  unrestricted
  xc
    gga pbe
  end
  FOCDFT
    charge 1 0
    spinpolarization 1 0
    electrontransfer
      charge 0 1
      spinpolarization 0 1
    end
  end
EndEngine
eor

# Charge transfer integrals for the ethylene dimer at a distance of 8 Angstrom.
# The calculated charge transfer integral will be much smaller than that of the previous calculation
# where the two ethylene molecules were at a distance of 4 Angstrom.

AMS_JOBNAME=ET2_8 $AMSBIN/ams <<eor
System
  symmetrize
  atoms
    C      0.000000    0.000000    0.000000 adf.f=Frag1
    C      1.332000    0.000000    0.000000 adf.f=Frag1
    H     -0.574301    0.000000   -0.928785 adf.f=Frag1
    H     -0.574301    0.000000    0.928785 adf.f=Frag1
    H      1.906301    0.000000    0.928785 adf.f=Frag1
    H      1.906301    0.000000   -0.928785 adf.f=Frag1
    C     -0.000000    8.000000    0.000000 adf.f=Frag3
    C      1.332000    8.000000   -0.000000 adf.f=Frag3
    H     -0.574301    8.000000    0.928785 adf.f=Frag3
    H     -0.574301    8.000000   -0.928785 adf.f=Frag3
    H      1.906301    8.000000   -0.928785 adf.f=Frag3
    H      1.906301    8.000000    0.928785 adf.f=Frag3
  end
  charge 1
end

Task SinglePoint

Engine ADF
  fragments
     Frag1 Frag.results/adf.rkf
     Frag3 Frag.results/adf.rkf
  end
  spinpolarization 1
  unrestricted
  xc
    gga pbe
  end
  FOCDFT
    charge 1 0
    spinpolarization 1 0
    electrontransfer
      charge 0 1
      spinpolarization 0 1
    end
  end
EndEngine
eor

# Charge transfer integrals for the ethylene dimer at a distance of 8 Angstrom,
# with another ethylene molecule exactly in between.
# The calculated charge transfer integral will be significant larger than that of the previous calculation
# where there was no other ethylene molecule in between.

AMS_JOBNAME=ET3 $AMSBIN/ams <<eor
System
  symmetrize
  atoms
    C      0.000000    0.000000    0.000000 adf.f=Frag1
    C      1.332000    0.000000    0.000000 adf.f=Frag1
    H     -0.574301    0.000000   -0.928785 adf.f=Frag1
    H     -0.574301    0.000000    0.928785 adf.f=Frag1
    H      1.906301    0.000000    0.928785 adf.f=Frag1
    H      1.906301    0.000000   -0.928785 adf.f=Frag1
    C     -0.000000    4.000000    0.000000 adf.f=Frag2
    C      1.332000    4.000000   -0.000000 adf.f=Frag2
    H     -0.574301    4.000000    0.928785 adf.f=Frag2
    H     -0.574301    4.000000   -0.928785 adf.f=Frag2
    H      1.906301    4.000000   -0.928785 adf.f=Frag2
    H      1.906301    4.000000    0.928785 adf.f=Frag2
    C      0.000000    8.000000    0.000000 adf.f=Frag3
    C      1.332000    8.000000    0.000000 adf.f=Frag3
    H     -0.574301    8.000000   -0.928785 adf.f=Frag3
    H     -0.574301    8.000000    0.928785 adf.f=Frag3
    H      1.906301    8.000000    0.928785 adf.f=Frag3
    H      1.906301    8.000000   -0.928785 adf.f=Frag3
  end
  charge 1
end

Task SinglePoint

Engine ADF
  fragments
     Frag1 Frag.results/adf.rkf
     Frag2 Frag.results/adf.rkf
     Frag3 Frag.results/adf.rkf
  end
  spinpolarization 1
  unrestricted
  xc
    gga pbe
  end
  FOCDFT
    charge 1 0 0
    spinpolarization 1 0 0
    electrontransfer
      charge 0 0 1
      spinpolarization 0 0 1
    end
  end
EndEngine
eor

# Charge transfer integrals for the ethylene dimer at a distance of 4 Angstrom,
# with 2 ethylene molecules on either side of the dimer.
# In this case the calculated charge transfer integral will not be very different
# than that for the isolated dimer at 4 Angstrom.

AMS_JOBNAME=ET4 $AMSBIN/ams <<eor
System
  symmetrize
  atoms
    C     -0.000000   -4.000000    0.000000 adf.f=Frag0
    C      1.332000   -4.000000   -0.000000 adf.f=Frag0
    H     -0.574301   -4.000000    0.928785 adf.f=Frag0
    H     -0.574301   -4.000000   -0.928785 adf.f=Frag0
    H      1.906301   -4.000000   -0.928785 adf.f=Frag0
    H      1.906301   -4.000000    0.928785 adf.f=Frag0
    C      0.000000    0.000000    0.000000 adf.f=Frag1
    C      1.332000    0.000000    0.000000 adf.f=Frag1
    H     -0.574301    0.000000   -0.928785 adf.f=Frag1
    H     -0.574301    0.000000    0.928785 adf.f=Frag1
    H      1.906301    0.000000    0.928785 adf.f=Frag1
    H      1.906301    0.000000   -0.928785 adf.f=Frag1
    C     -0.000000    4.000000    0.000000 adf.f=Frag2
    C      1.332000    4.000000   -0.000000 adf.f=Frag2
    H     -0.574301    4.000000    0.928785 adf.f=Frag2
    H     -0.574301    4.000000   -0.928785 adf.f=Frag2
    H      1.906301    4.000000   -0.928785 adf.f=Frag2
    H      1.906301    4.000000    0.928785 adf.f=Frag2
    C      0.000000    8.000000    0.000000 adf.f=Frag3
    C      1.332000    8.000000    0.000000 adf.f=Frag3
    H     -0.574301    8.000000   -0.928785 adf.f=Frag3
    H     -0.574301    8.000000    0.928785 adf.f=Frag3
    H      1.906301    8.000000    0.928785 adf.f=Frag3
    H      1.906301    8.000000   -0.928785 adf.f=Frag3
  end
  charge 1
end

Task SinglePoint

Engine ADF
  fragments
     Frag0 Frag.results/adf.rkf
     Frag1 Frag.results/adf.rkf
     Frag2 Frag.results/adf.rkf
     Frag3 Frag.results/adf.rkf
  end
  spinpolarization 1
  unrestricted
  xc
    gga pbe
  end
  FOCDFT
    charge 0 1 0 0
    spinpolarization 0 1 0 0
    electrontransfer
      charge 0 0 1 0
      spinpolarization 0 0 1 0
    end
  end
EndEngine
eor