DFTB

On this page, I have given the input files which I have used for studying both cluster and periodic systems, using DFTB+. Use these input files with caution, and kindly check the inputs before running any serious calculations.

For Cluster Calculations:

In the below example, I have given the DFTB3 input for a Graphene Quantum Dot.

input.xyz (see below) and all the *.SKF files (get from DFTB.org) are required to run the calculation.

Graphene Quantum Dots example

Graphene Quantum Dots example

###################################################################

###################################################################

Geometry = {

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

TypeNames = {

"C" "H"

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

TypesAndCoordinates[Angstrom] = {

<<< input.xyz

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Periodic = No

}

###################################################################

###################################################################

Driver = ConjugateGradient {

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

MovedAtoms = {

1:-1

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

MaxForceComponent = 1E-4

MaxSteps = 1000

OutputPrefix = "geom.out"

AppendGeometries = Yes

ConvergentForcesOnly = Yes # means no need to converge SCC charge

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Constraints = {}

}

###################################################################

###################################################################

Hamiltonian = DFTB {

Charge = 0.0000000000000000

ReadInitialCharges = No

InitialCharges = {}

SCC = yes

SCCTolerance = 1.0000000000000001E-005 # should be 10^(-5) by default

MaxSCCIterations = 1000

OrbitalResolvedSCC = No # can't be used with DFTB3

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ThirdOrder = No # Keep ThirdOrderFull = YES if you want DFTB3. This keyword is not required.

ThirdOrderFull = YES

DampXHExponent = 4 # from C-C.skf of DFTB3

DampXH = YES

HubbardDerivs{

C = -0.1492 # from C-C.skf of DFTB3

H = -0.1857 # from C-C.skf of DFTB3

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SpinPolarisation = {}

Eigensolver = DivideAndConquer {}

ElectricField = {}

Dispersion = {}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SlaterKosterFiles = Type2FileNames {

Prefix = "./"

Separator = "-"

Suffix = ".skf"

LowerCaseTypeName = No

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

MaxAngularMomentum = {

C = "p"

H = "s"

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Mixer = Broyden {

MixingParameter = 0.20000000000000001

CachedIterations = -1

InverseJacobiWeight = 1.0000000000000000E-002

MinimalWeight = 1.0000000000000000

MaximalWeight = 100000.00000000000

WeightFactor = 1.0000000000000000E-002

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Filling = Fermi {

Temperature[Kelvin] = 100.0000000000000000

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

PolynomialRepulsive = {} # Use it if you don't want to use SPLINES

OldRepulsiveSum = No

OldSKInterpolation = No

}

###################################################################

###################################################################

Options = {

# MullikenAnalysis = Yes

# CalculateForces = Yes

WriteBandOut = Yes

WriteDetailedOut = Yes

WriteResultsTag = Yes # needed for most of the post processing tools

WriteDetailedXML = Yes # needed for wfn plots

WriteAutotestTag = No

WriteEigenvectors = No

AtomResolvedEnergies = No

RandomSeed = 0

WriteHS = No

WriteRealHS = No

MinimiseMemoryUsage = No

ShowFoldedCoords = No

}

###################################################################

###################################################################

ParserOptions = {

ParserVersion = 4

WriteHSDInput = Yes

WriteXMLInput = No

StopAfterParsing = No

IgnoreUnprocessedNodes = No

}

###################################################################

###################################################################

Analysis = {

ProjectStates = {}

}

Example of input.XYZ file

input.xyz

1 0.017056 0.000000 -0.043090

1 0.022455 0.000000 1.372235

1 1.248979 0.000000 2.083459

1 2.474815 0.000000 1.369980

1 2.476853 0.000000 -0.046223

1 1.245807 0.000000 -0.755947

1 3.715305 0.000000 2.086837

1 3.689787 0.000000 3.492490

1 2.484158 0.000000 4.215085

1 1.248346 0.000000 3.501471

1 0.013371 0.000000 4.216521

1 0.040329 0.000000 5.632419

1 1.246622 0.000000 6.313697

1 2.452893 0.000000 5.630285

1 -1.208674 0.000000 -0.751897

1 -1.216108 0.000000 2.091008

1 -2.448378 0.000000 -0.032970

1 -2.422110 0.000000 1.370702

1 4.919304 0.000000 1.360337

1 3.700279 0.000000 -0.760205

1 4.942864 0.000000 -0.045090

1 -1.190931 0.000000 3.495357

1 -3.653730 0.000000 -0.752895

1 -1.215268 0.000000 -2.167799

1 1.242589 0.000000 -2.173502

1 3.700722 0.000000 -2.176693

1 6.144982 0.000000 -0.771863

1 -2.441076 0.000000 -2.875374

1 0.013730 0.000000 -2.880229

1 2.468530 0.000000 -2.884478

1 -3.680104 0.000000 -2.157372

1 6.166042 0.000000 -2.178117

1 4.923333 0.000000 -2.890675

1 -4.886543 0.000000 -2.876816

1 -2.449282 0.000000 -4.293208

1 0.009032 0.000000 -4.301171

1 2.465971 0.000000 -4.305451

1 4.923507 0.000000 -4.308477

1 7.367968 0.000000 -2.905087

1 -4.914403 0.000000 -4.280306

1 -3.680317 0.000000 -4.997044

1 -1.221150 0.000000 -5.002753

1 1.236296 0.000000 -5.008468

1 3.692716 0.000000 -5.012195

1 6.149783 0.000000 -5.019945

1 7.386514 0.000000 -4.309856

1 -6.129908 0.000000 -5.007132

1 -6.121950 0.000000 -6.392556

1 -3.685911 0.000000 -6.424166

1 -1.227277 0.000000 -6.435430

1 1.232594 0.000000 -6.442092

1 3.691150 0.000000 -6.444652

1 6.147323 0.000000 -6.446034

1 8.595081 0.000000 -5.045263

1 8.581357 0.000000 -6.430757

1 -4.929727 0.000000 -7.100189

1 -2.459930 0.000000 -7.111520

1 0.001110 0.000000 -7.119656

1 2.460196 0.000000 -7.124708

1 4.918750 0.000000 -7.127197

1 7.385519 0.000000 -7.130448

2 9.564732 0.000000 -4.503609

2 8.332071 0.000000 -2.352869

2 7.108909 0.000000 -0.219227

2 5.882354 0.000000 1.914560

2 4.651674 0.000000 4.048608

2 3.407365 0.000000 6.198263

2 1.248105 0.000000 7.425005

2 -0.914998 0.000000 6.198678

2 -2.152963 0.000000 4.051184

2 -3.383164 0.000000 1.928208

2 -4.614862 0.000000 -0.195518

2 -5.846776 0.000000 -2.317881

2 -7.095947 0.000000 -4.459349

2 -7.085778 0.000000 -6.945775

2 -4.948536 0.000000 -8.210703

2 -2.464718 0.000000 -8.222586

2 -0.001636 0.000000 -8.230787

2 2.459163 0.000000 -8.235809

2 4.917890 0.000000 -8.238249

2 7.396461 0.000000 -8.241070

2 9.542609 0.000000 -6.988318

MD (NVT) input:

dftb_md_input.hsd

###################################################################

###################################################################

Geometry = {

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

TypeNames = {

"H" "C" "O" "S"

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

TypesAndCoordinates[Angstrom] = {

<<< input.xyz

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Periodic = No

}

###################################################################

###################################################################

Driver = VelocityVerlet{ #}ConjugateGradient {

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

MovedAtoms = {

1:-1

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Steps = 1000 #number of MD steps to perform

KeepStationary = Yes # Remove translational motion from the system

TimeStep = 4.1341374576 # 1 fs = 41.341374576 in au

Thermostat = {

NoseHoover = {

Temperature[Kelvin] = 300.0

# Temperature [Kelvin] = TemperatureProfile { # Temperatures in K

# constant 1 10.0 # Setting T=10 K for the 0th MD-step

# linear 500 600.0 # Linearly rising T in 500 steps up to T=600 K

# constant 2000 600.0 # Constant T through 2000 steps

# exponential 500 10.0 # Exponential decreasing in 500 steps to T=10 K

# }

CouplingStrength = 0.002175490 # = 3000 Cm-1; 1 Cm-1 = 0.725163330219952E-06 a.u.

}

}

OutputPrefix = "geom.out"

MDRestartFrequency = 1 # Writes geom and vel at each step

# Thermostat = {

# None = {

# InitialTemperature[Kelvin] = 300

# }

# }

# Barostat = {

# }

ConvergentForcesOnly = Yes # means no need to converge SCC charge

# MaxForceComponent = 1E-4

# MaxSteps = 1000

# OutputPrefix = "geom.out"

# AppendGeometries = Yes

# ConvergentForcesOnly = Yes # means no need to converge SCC charge

#

##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

# Constraints = {}

}

###################################################################

###################################################################

Hamiltonian = DFTB {

Charge = 0.0000000000000000

ReadInitialCharges = No

InitialCharges = {}

SCC = yes

SCCTolerance = 1.0000000000000001E-005 # should be 10^(-5) by default

MaxSCCIterations = 1000

OrbitalResolvedSCC = No # can't be used with DFTB3

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ThirdOrder = No # Keep ThirdOrderFull = YES if you want DFTB3. This keyword is not required.

ThirdOrderFull = YES

DampXHExponent = 4 # from C-C.skf of DFTB3

DampXH = YES

HubbardDerivs{

H = -0.1857 # from H-H.skf of DFTB3

C = -0.1492 # from C-C.skf of DFTB3

O = -0.1575 # from O-O.skf of DFTB3

S = -0.1100 # from S-S.skf of DFTB3

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SpinPolarisation = {}

Eigensolver = DivideAndConquer {}

ElectricField = {}

Dispersion = {}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SlaterKosterFiles = Type2FileNames {

Prefix = "./"

# Prefix = "/scratch/syamija2/Softwares/dftb/parameters/3ob-3-1/"

Separator = "-"

Suffix = ".skf"

LowerCaseTypeName = No

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

MaxAngularMomentum = {

H = "s"

C = "p"

O = "p"

S = "d"

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Mixer = Broyden {

MixingParameter = 0.20000000000000001

CachedIterations = -1

InverseJacobiWeight = 1.0000000000000000E-002

MinimalWeight = 1.0000000000000000

MaximalWeight = 100000.00000000000

WeightFactor = 1.0000000000000000E-002

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Filling = Fermi {

Temperature[Kelvin] = 100.0000000000000000

}

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

PolynomialRepulsive = {} # Use it if you don't want to use SPLINES

OldRepulsiveSum = No

OldSKInterpolation = No

}

###################################################################

###################################################################

Options = {

# MullikenAnalysis = Yes

# CalculateForces = Yes

WriteBandOut = Yes

WriteDetailedOut = Yes

WriteResultsTag = Yes # needed for most of the post processing tools

WriteDetailedXML = Yes # needed for wfn plots

WriteAutotestTag = No

WriteEigenvectors = No

AtomResolvedEnergies = No

RandomSeed = 0

WriteHS = No

WriteRealHS = No

MinimiseMemoryUsage = No

ShowFoldedCoords = No

}

###################################################################

###################################################################

ParserOptions = {

ParserVersion = 4

WriteHSDInput = Yes

WriteXMLInput = No

StopAfterParsing = No

IgnoreUnprocessedNodes = No

}

###################################################################

###################################################################

Analysis = {

ProjectStates = {}

}