[DFTB-Plus-User] Bad results in testing binding energy and reaction energy of small molecules

Lin Lai lailin042 at gmail.com
Wed Nov 3 08:29:12 CET 2010


Hello everyone!

I am quite new in DFTB calculations. I have been working on the surface
functional of carbon nanoparticles and need to calculate the binding
energies of these systems. In order to valid the SCC-DFTB method in these
systems, I examine the binding energies of a set of small molecules, for
example, H2 (-18.37 eV, from DFTB+), N2 (-133.19 eV, from DFTB+), N2H4
(-171.50 eV, from DFTB+) and NH3 (-96.55 eV, from DFTB+) molecules. The
atomic energy for H and N are -7.47 eV and -58.75 eV from DFTB+,
respectively.  I derived the binding energy of a molecule by subtracting the
energy of atoms from the molecule. But it seems that the results are very
bad compared with DFT calculations. The binding energies for NH3, N2, H2
obtained from DFTB+ (with pbc-0-3 parameters) are 13.95 eV, 15.68 eV, and
3.42 eV, respectively. The results using DFT-GGA (PBE functional) by CASTEP
code (a simple DFT plane-wave package) are about 13.76 eV, 11.48 eV, and
4.19 eV. The input files for DFTB+ are attached at the end (I am quite sure
about my DFT calculations). Can anyone help me to find my mistakes in these
calculations?

In order to find out whether my DFTB calculations are correct, I try to
reproduce some results about reaction energy using DFTB+ code (I couldn't
find any materials evaluating the binding energy calculated with SCC-DFTB,
do I miss something?). I refer the article PRB 58, 11, 7260 (1998), where
the reaction energy for the reaction (NH2NH2+H2-------> 2NH3) is about 30
kcal/mol (SCC-DFTB), 43 kcal/mol (LSD), and 48 (experiment) respectively,
and the reaction energy for another reaction (N2+3H2------->2NH3) is 37
kcal/mol (SCC-DFTB), 71 kcal/mol (LSD), and 37 kcal/mol (experiment). From
my own calculations, the total energy for NH2NH2, NH3, N2, and H2 molecules
are -171,50 eV, -96.55 eV, -133.19 eV, and -18.37 eV, respectively. So the
obtained reaction energies for above two reactions are  3.23 eV (74.51
kcal/mol) and 1.96 eV (45.20 kcal/mol), respectively. In my opinion, these
results are too bad and I doubt my calculations are incorrect.

All the SCC-DFTB calculations are done with the pbc-0-3 parameters as in the
website (www.dftb.org).

Have I make any big mistakes in the calculations? Thank you for your kind
help.

Lin




-- 
Department of Physics
Peking University
Beijing 100871
P. R. China
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.dftb-plus.info/pipermail/dftb-plus-user/attachments/20101103/9defcec6/attachment.htm 
-------------- next part --------------
Geometry = GenFormat {
6    C
N H
1    1    -3.549365987    0.614443220    -0.059098371
2    1    -2.071722384    0.554438616    -0.000875408
3    2    -3.859687775    1.368990634    -0.811732376
4    2    -3.947682722    0.899773747    0.936917641
5    2    -1.761400228    -0.200124984    0.751748113
6    2    -1.672070516    1.549415031    0.286195094
}
Driver = ConjugateGradient {
  MovedAtoms = 1:-1
  MaxForceComponent = 1.0e-4
  MaxSteps = 500
  OutputPrefix = "geo_end"
  LatticeOpt = No
  AppendGeometries = No
  ConvergentForcesOnly = Yes
  Constraints = {}
}
Hamiltonian = DFTB {
  SCC = Yes
  SCCTolerance = 1.0e-6
  MaxSCCIterations = 200
  Mixer = Broyden {
    MixingParameter = 0.2
    CachedIterations = -1
    InverseJacobiWeight = 1.000000000000000E-002
    MinimalWeight = 1.00000000000000
    MaximalWeight = 100000.000000000
    WeightFactor = 1.000000000000000E-002
  }
  SlaterKosterFiles = {
    N-N = "/apps/dftb+/1.1/slako/pbc-0-3/N-N.skf"
    N-H = "/apps/dftb+/1.1/slako/pbc-0-3/N-H.skf"
    H-N = "/apps/dftb+/1.1/slako/pbc-0-3/H-N.skf"
    H-H = "/apps/dftb+/1.1/slako/pbc-0-3/H-H.skf"
  }
  MaxAngularMomentum = {
    N = "p"
    H = "s"
  }
  Charge = 0.0
  SpinPolarisation = {}
  Filling = Fermi {
    Temperature [Kelvin] = 0.0
  }
  PolynomialRepulsive = {}
  OldRepulsiveSum = No
  OrbitalResolvedSCC = No
  OldSKInterpolation = No
  ReadInitialCharges = No
  InitialCharges = {}
  ElectricField = {}
  DampXH = No
  Eigensolver = DivideAndConquer {}
  Dispersion = {}
  ThirdOrder = No
}
Options = {
  WriteEigenvectors = Yes
  WriteAutotestTag = No
  WriteDetailedXML = No
  WriteResultsTag = No
  WriteDetailedOut = Yes
  WriteBandOut = Yes
  AtomResolvedEnergies = Yes
  RandomSeed = 0
  WriteHS = No
  WriteRealHS = No
  MinimiseMemoryUsage = No
  ShowFoldedCoords = No
}
ParserOptions = {
  ParserVersion = 4
  WriteHSDInput = Yes
  WriteXMLInput = No
  StopAfterParsing = No
  IgnoreUnprocessedNodes = No
}
-------------- next part --------------
Geometry = GenFormat {
4    C
N H
1    1    -3.313226132    0.669887241    -0.000000000
2    2    -3.683225759    0.940746076    -1.010858936
3    2    -3.683225759    1.409887341    0.740000101
4    2    -2.203226123    0.669887241    -0.000000000
}
Driver = ConjugateGradient {
  MovedAtoms = 1:-1
  MaxForceComponent = 1.0e-4
  MaxSteps = 500
  OutputPrefix = "geo_end"
  LatticeOpt = No
  AppendGeometries = No
  ConvergentForcesOnly = Yes
  Constraints = {}
}
Hamiltonian = DFTB {
  SCC = Yes
  SCCTolerance = 1.0e-6
  MaxSCCIterations = 200
  Mixer = Broyden {
    MixingParameter = 0.2
    CachedIterations = -1
    InverseJacobiWeight = 1.000000000000000E-002
    MinimalWeight = 1.00000000000000
    MaximalWeight = 100000.000000000
    WeightFactor = 1.000000000000000E-002
  }
  SlaterKosterFiles = {
    N-N = "/apps/dftb+/1.1/slako/pbc-0-3/N-N.skf"
    N-H = "/apps/dftb+/1.1/slako/pbc-0-3/N-H.skf"
    H-N = "/apps/dftb+/1.1/slako/pbc-0-3/H-N.skf"
    H-H = "/apps/dftb+/1.1/slako/pbc-0-3/H-H.skf"
  }
  MaxAngularMomentum = {
    N = "p"
    H = "s"
  }
  Charge = 0.0
  SpinPolarisation = {}
  Filling = Fermi {
    Temperature [Kelvin] = 0.0
  }
  PolynomialRepulsive = {}
  OldRepulsiveSum = No
  OrbitalResolvedSCC = No
  OldSKInterpolation = No
  ReadInitialCharges = No
  InitialCharges = {}
  ElectricField = {}
  DampXH = No
  Eigensolver = DivideAndConquer {}
  Dispersion = {}
  ThirdOrder = No
}
Options = {
  WriteEigenvectors = Yes
  WriteAutotestTag = No
  WriteDetailedXML = No
  WriteResultsTag = No
  WriteDetailedOut = Yes
  WriteBandOut = Yes
  AtomResolvedEnergies = Yes
  RandomSeed = 0
  WriteHS = No
  WriteRealHS = No
  MinimiseMemoryUsage = No
  ShowFoldedCoords = No
}
ParserOptions = {
  ParserVersion = 4
  WriteHSDInput = Yes
  WriteXMLInput = No
  StopAfterParsing = No
  IgnoreUnprocessedNodes = No
}
-------------- next part --------------
Geometry = GenFormat {
2  C
H
1 1    0.0000000000E+00    0.0000000000E+00   -0.2136327326E-01
2 1    0.0000000000E+00    0.0000000000E+00    0.7213632733E+00
}
Driver = ConjugateGradient {
  MovedAtoms = 1:-1
  MaxForceComponent = 1.0e-4
  MaxSteps = 500
  OutputPrefix = "geo_end"
  LatticeOpt = No
  AppendGeometries = No
  ConvergentForcesOnly = Yes
  Constraints = {}
}
Hamiltonian = DFTB {
  SCC = Yes
  SCCTolerance = 1.0e-5
  MaxSCCIterations = 1000
  Mixer = Broyden {
    MixingParameter = 0.2
    CachedIterations = -1
    InverseJacobiWeight = 1.000000000000000E-002
    MinimalWeight = 1.00000000000000
    MaximalWeight = 100000.000000000
    WeightFactor = 1.000000000000000E-002
  }
  SlaterKosterFiles = {
    H-H = "/apps/dftb+/1.1/slako/pbc-0-3/H-H.skf"
  }
  MaxAngularMomentum = {
    H = "s"
  }
  Charge = 0.0
  SpinPolarisation = {}
  Filling = Fermi {
    Temperature [Kelvin] = 0.0
  }
  PolynomialRepulsive = {}
  OldRepulsiveSum = No
  OrbitalResolvedSCC = No
  OldSKInterpolation = No
  ReadInitialCharges = No
  InitialCharges = {}
  ElectricField = {}
  DampXH = No
  Eigensolver = DivideAndConquer {}
  Dispersion = {}
  ThirdOrder = No
}
Options = {
  WriteEigenvectors = Yes
  WriteAutotestTag = No
  WriteDetailedXML = No
  WriteResultsTag = No
  WriteDetailedOut = Yes
  WriteBandOut = Yes
  AtomResolvedEnergies = Yes
  RandomSeed = 0
  WriteHS = No
  WriteRealHS = No
  MinimiseMemoryUsage = No
  ShowFoldedCoords = No
}
ParserOptions = {
  ParserVersion = 4
  WriteHSDInput = Yes
  WriteXMLInput = No
  StopAfterParsing = No
  IgnoreUnprocessedNodes = No
}
-------------- next part --------------
Geometry = GenFormat {
1 C
H
1 1 0.0 0.0 0.0
}
Driver = {}
Hamiltonian = DFTB {
  SCC = Yes
  SCCTolerance = 1.0e-5
  MaxSCCIterations = 200
  Mixer = Broyden {
    MixingParameter = 0.25
    CachedIterations = -1
    InverseJacobiWeight = 1.000000000000000E-002
    MinimalWeight = 1.00000000000000
    MaximalWeight = 100000.000000000
    WeightFactor = 1.000000000000000E-002
  }
  SlaterKosterFiles = {
    H-H = "/apps/dftb+/1.1/slako/mio-0-1/H-H.skf"
  }
  MaxAngularMomentum = {
    H = "s"
  }
  Charge = 0.0
  SpinPolarisation = Colinear {
    UnpairedElectrons = 1
    InitialSpins = {
      AtomSpin = {
        Atoms = 1
        SpinPerAtom = 1
      }
    }
  }
  SpinConstants = {
    H = {
-0.072
    }
  }
  Filling = Fermi {
    Temperature [Kelvin] = 0.0
  }
  PolynomialRepulsive = {}
  OldRepulsiveSum = No
  OrbitalResolvedSCC = No
  OldSKInterpolation = No
  ReadInitialCharges = No
  InitialCharges = {}
  ElectricField = {}
  DampXH = No
  Eigensolver = DivideAndConquer {}
  Dispersion = {}
  ThirdOrder = No
}
Options = {
  CalculateForces = No
  WriteEigenvectors = No
  WriteAutotestTag = No
  WriteDetailedXML = No
  WriteResultsTag = No
  WriteDetailedOut = Yes
  WriteBandOut = Yes
  AtomResolvedEnergies = No
  RestartFrequency = 20
  RandomSeed = 0
  WriteHS = No
  WriteRealHS = No
  MinimiseMemoryUsage = No
  ShowFoldedCoords = No
}
ParserOptions = {
  ParserVersion = 4
  WriteHSDInput = Yes
  WriteXMLInput = No
  StopAfterParsing = No
  IgnoreUnprocessedNodes = No
}
-------------- next part --------------
Geometry = GenFormat {
2  C
N
1 1    0.0000000000E+00    0.0000000000E+00   -0.2136327326E-01
2 1    0.0000000000E+00    0.0000000000E+00    0.7213632733E+00
}
Driver = ConjugateGradient {
  MovedAtoms = 1:-1
  MaxForceComponent = 1.0e-4
  MaxSteps = 500
  OutputPrefix = "geo_end"
  LatticeOpt = No
  AppendGeometries = No
  ConvergentForcesOnly = Yes
  Constraints = {}
}
Hamiltonian = DFTB {
  SCC = Yes
  SCCTolerance = 1.0e-5
  MaxSCCIterations = 1000
  Mixer = Broyden {
    MixingParameter = 0.2
    CachedIterations = -1
    InverseJacobiWeight = 1.000000000000000E-002
    MinimalWeight = 1.00000000000000
    MaximalWeight = 100000.000000000
    WeightFactor = 1.000000000000000E-002
  }
  SlaterKosterFiles = {
    N-N = "/apps/dftb+/1.1/slako/pbc-0-3/N-N.skf"
  }
  MaxAngularMomentum = {
    N = "p"
  }
  Charge = 0.0
  SpinPolarisation = {}
  Filling = Fermi {
    Temperature [Kelvin] = 0.0
  }
  PolynomialRepulsive = {}
  OldRepulsiveSum = No
  OrbitalResolvedSCC = No
  OldSKInterpolation = No
  ReadInitialCharges = No
  InitialCharges = {}
  ElectricField = {}
  DampXH = No
  Eigensolver = DivideAndConquer {}
  Dispersion = {}
  ThirdOrder = No
}
Options = {
  WriteEigenvectors = Yes
  WriteAutotestTag = No
  WriteDetailedXML = No
  WriteResultsTag = No
  WriteDetailedOut = Yes
  WriteBandOut = Yes
  AtomResolvedEnergies = Yes
  RandomSeed = 0
  WriteHS = No
  WriteRealHS = No
  MinimiseMemoryUsage = No
  ShowFoldedCoords = No
}
ParserOptions = {
  ParserVersion = 4
  WriteHSDInput = Yes
  WriteXMLInput = No
  StopAfterParsing = No
  IgnoreUnprocessedNodes = No
}
-------------- next part --------------
Geometry = GenFormat {
1 C
N
1 1 0.0 0.0 0.0
}
Driver = {}
Hamiltonian = DFTB {
  SCC = Yes
  SCCTolerance = 1.0e-6
  MaxSCCIterations = 200
  Mixer = Broyden {
    MixingParameter = 0.25
    CachedIterations = -1
    InverseJacobiWeight = 1.000000000000000E-002
    MinimalWeight = 1.00000000000000
    MaximalWeight = 100000.000000000
    WeightFactor = 1.000000000000000E-002
  }
  SlaterKosterFiles = {
    N-N = "/apps/dftb+/1.1/slako/pbc-0-3//N-N.skf"
  }
  MaxAngularMomentum = {
    N = "p"
  }
  Charge = 0.0
  SpinPolarisation = Colinear {
    UnpairedElectrons = 1
    InitialSpins = {
      AtomSpin = {
        Atoms = 1:1
        SpinPerAtom = 1
      }
    }
  }
  SpinConstants = {
    N = {
-0.033 -0.027
-0.027 -0.026
    }
  }
  Filling = Fermi {
    Temperature [Kelvin] = 0.0
  }
  PolynomialRepulsive = {}
  OldRepulsiveSum = No
  OrbitalResolvedSCC = No
  OldSKInterpolation = No
  ReadInitialCharges = No
  InitialCharges = {}
  ElectricField = {}
  DampXH = No
  Eigensolver = DivideAndConquer {}
  Dispersion = {}
  ThirdOrder = No
}
Options = {
  CalculateForces = No
  WriteEigenvectors = No
  WriteAutotestTag = No
  WriteDetailedXML = No
  WriteResultsTag = No
  WriteDetailedOut = Yes
  WriteBandOut = Yes
  AtomResolvedEnergies = No
  RestartFrequency = 20
  RandomSeed = 0
  WriteHS = No
  WriteRealHS = No
  MinimiseMemoryUsage = No
  ShowFoldedCoords = No
}
ParserOptions = {
  ParserVersion = 4
  WriteHSDInput = Yes
  WriteXMLInput = No
  StopAfterParsing = No
  IgnoreUnprocessedNodes = No
}


More information about the DFTB-Plus-User mailing list