From cbef57c85750f18b2767246ca958b79da3c3946f Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Wed, 14 Jun 2017 00:04:02 +0100 Subject: [PATCH 01/14] Added most of the dftb input files, starting on text The :download: structure in rst seems to be suitable to include files, added inputs/ directory for the raw DFTB+ and modes input files. --- docs/index.rst | 2 +- .../inputs/moleculardynamics/bomd/dftb_in.hsd | 79 +++++++++++++++ docs/inputs/moleculardynamics/bomd/geom.gen | 40 ++++++++ docs/inputs/moleculardynamics/bomd/run.sh | 5 + .../moleculardynamics/relaxation/dftb_in.hsd | 26 +++++ .../moleculardynamics/relaxation/geom.gen | 40 ++++++++ .../moleculardynamics/relaxation/run.sh | 3 + .../thermalisation/dftb_in.hsd | 39 ++++++++ .../moleculardynamics/thermalisation/geom.gen | 40 ++++++++ .../thermalisation/run_example | 3 + .../moleculardynamics/vibration/dftb_in.hsd | 26 +++++ .../moleculardynamics/vibration/geom.gen | 40 ++++++++ .../moleculardynamics/vibration/modes_in.hsd | 21 ++++ .../inputs/moleculardynamics/vibration/run.sh | 4 + .../moleculardynamics/xlbomd/dftb_in.hsd | 84 ++++++++++++++++ docs/inputs/moleculardynamics/xlbomd/geom.gen | 40 ++++++++ docs/inputs/moleculardynamics/xlbomd/run.sh | 5 + docs/moleculardynamics/bornoppenheimer.rst | 22 +++++ docs/moleculardynamics/index.rst | 11 +++ docs/moleculardynamics/introduction.rst | 7 ++ docs/moleculardynamics/startinggeometry.rst | 96 +++++++++++++++++++ docs/moleculardynamics/xlbomd.rst | 93 ++++++++++++++++++ 22 files changed, 725 insertions(+), 1 deletion(-) create mode 100644 docs/inputs/moleculardynamics/bomd/dftb_in.hsd create mode 100644 docs/inputs/moleculardynamics/bomd/geom.gen create mode 100755 docs/inputs/moleculardynamics/bomd/run.sh create mode 100644 docs/inputs/moleculardynamics/relaxation/dftb_in.hsd create mode 100644 docs/inputs/moleculardynamics/relaxation/geom.gen create mode 100755 docs/inputs/moleculardynamics/relaxation/run.sh create mode 100644 docs/inputs/moleculardynamics/thermalisation/dftb_in.hsd create mode 100644 docs/inputs/moleculardynamics/thermalisation/geom.gen create mode 100755 docs/inputs/moleculardynamics/thermalisation/run_example create mode 100644 docs/inputs/moleculardynamics/vibration/dftb_in.hsd create mode 100644 docs/inputs/moleculardynamics/vibration/geom.gen create mode 100644 docs/inputs/moleculardynamics/vibration/modes_in.hsd create mode 100755 docs/inputs/moleculardynamics/vibration/run.sh create mode 100644 docs/inputs/moleculardynamics/xlbomd/dftb_in.hsd create mode 100644 docs/inputs/moleculardynamics/xlbomd/geom.gen create mode 100755 docs/inputs/moleculardynamics/xlbomd/run.sh create mode 100644 docs/moleculardynamics/bornoppenheimer.rst create mode 100644 docs/moleculardynamics/index.rst create mode 100644 docs/moleculardynamics/introduction.rst create mode 100644 docs/moleculardynamics/startinggeometry.rst create mode 100644 docs/moleculardynamics/xlbomd.rst diff --git a/docs/index.rst b/docs/index.rst index be0113f2..740c5385 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,5 +7,5 @@ DFTB+ recipes introduction.rst basics/index.rst + moleculardynamics/index.rst licence.rst - diff --git a/docs/inputs/moleculardynamics/bomd/dftb_in.hsd b/docs/inputs/moleculardynamics/bomd/dftb_in.hsd new file mode 100644 index 00000000..d46a9757 --- /dev/null +++ b/docs/inputs/moleculardynamics/bomd/dftb_in.hsd @@ -0,0 +1,79 @@ +Geometry = GenFormat { + <<< "geom.gen" +} + +Driver = VelocityVerlet{ + TimeStep [fs] = 0.5 + Thermostat = None {} + Velocities [AA/ps] { + 0.63060001 10.71652407 0.41599521 + -4.78167517 -0.67726160 6.81193886 + 3.98425977 1.00737908 -10.59008962 + -5.00836769 -4.17503533 6.23338156 + -6.98937694 -6.67991962 13.49283670 + 2.60129853 2.94191649 -6.17377828 + 5.45307788 4.06412641 -12.66174802 + -7.65333453 -3.97065257 6.97104050 + -10.13358053 2.65525500 1.71478235 + 2.43208042 7.32942823 4.28579643 + -4.30000399 3.49584166 3.08283261 + 2.24408800 -6.45559687 0.04066731 + -1.94541508 3.92663760 -0.72998677 + 5.60486436 3.94060376 -3.20947636 + 3.53019985 4.56545155 -1.48062150 + 7.81517642 2.25960070 4.82188329 + -0.50193981 -4.94744725 3.06413849 + -0.19059520 4.33561964 2.36256475 + 0.09466765 -0.51960301 5.72471343 + 4.47619173 7.41074772 1.11201016 + 3.27922874 -5.35329287 -2.56702569 + 3.99264878 -8.45260216 -4.11369388 + -1.77619915 -3.53622712 -7.62449802 + 7.38469860 -1.25504906 0.63982263 + -4.58383155 2.77913648 -3.36202315 + 2.57174728 3.16284242 -2.42263621 + -1.51584311 4.83348853 -8.50814642 + 3.19719689 -5.10152266 4.80391910 + -1.82283885 -4.42665140 -0.61092820 + 0.70148376 -13.29987273 5.73299098 + -48.12863500 6.61689320 -3.55300242 + -7.79595968 7.24986202 -7.89475790 + 19.47014048 -24.23046733 -19.62986878 + -22.48734706 8.85056458 5.45198051 + -8.26315843 12.84226567 -16.40492287 + -27.33024406 29.56557052 -25.50583462 + -20.88278228 1.24410318 -14.82956937 + 16.44412954 -1.14851662 13.23381502 + } + Steps = 20000 + MovedAtoms = 1:-1 +} + + +Hamiltonian = DFTB { + SCC = Yes + SCCTolerance = 1e-6 + Filling = Fermi { + Temperature [Kelvin] = 400 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + MaxAngularMomentum = { + H = "s" + O = "p" + C = "p" + } +} + +Options = { + RandomSeed = 3871906 + WriteDetailedOut = No +} + +Analysis { + WriteBandOut = No +} + diff --git a/docs/inputs/moleculardynamics/bomd/geom.gen b/docs/inputs/moleculardynamics/bomd/geom.gen new file mode 100644 index 00000000..03a822df --- /dev/null +++ b/docs/inputs/moleculardynamics/bomd/geom.gen @@ -0,0 +1,40 @@ +38 C +C O H + 1 1 -3.2103390000E-01 6.4976606000E-01 6.1134966000E-01 + 2 1 9.6328881000E-01 2.6810143600E+00 2.4672770000E-02 + 3 1 3.7008025000E-01 -1.9148818000E-01 -3.4608252000E-01 + 4 1 1.7062543300E+00 1.8667277800E+00 -9.7432192000E-01 + 5 1 -4.6635000000E-04 2.0405072500E+00 8.3279825000E-01 + 6 1 1.3552255700E+00 4.6696619000E-01 -1.1164276800E+00 + 7 1 -1.2084626700E+00 3.5055440000E-02 1.4611567900E+00 + 8 1 1.2838829500E+00 4.0436668700E+00 2.3580619000E-01 + 9 1 1.7368624000E-01 -1.5974433500E+00 -5.6605157000E-01 + 10 1 2.7167114800E+00 2.5171334100E+00 -1.7385943600E+00 + 11 1 -6.7994802000E-01 2.7815041000E+00 1.8784723000E+00 + 12 1 2.1407047300E+00 -2.9303542000E-01 -2.0652228400E+00 + 13 1 -1.9292987000E+00 7.5069414000E-01 2.4361290700E+00 + 14 1 6.4765831000E-01 4.7324463100E+00 1.2977432600E+00 + 15 1 8.3835424000E-01 -2.2447042900E+00 -1.5758687500E+00 + 16 1 3.4495481300E+00 1.6997917600E+00 -2.6509048200E+00 + 17 1 -1.6506211100E+00 2.1200052600E+00 2.7154073500E+00 + 18 1 -3.6777644000E-01 4.1391518900E+00 2.0732747000E+00 + 19 1 1.9139484800E+00 -1.6634948600E+00 -2.2349815200E+00 + 20 1 3.1011552300E+00 3.5961796000E-01 -2.8927181400E+00 + 21 1 -2.4832568600E+00 2.8190296100E+00 3.7147392800E+00 + 22 1 -1.0551337700E+00 4.8836022000E+00 3.2217757000E+00 + 23 1 2.5647743600E+00 -2.3565660000E+00 -3.3888315300E+00 + 24 1 3.8672443600E+00 -3.7443306000E-01 -3.9283627100E+00 + 25 2 -2.2570870700E+00 4.2401457300E+00 3.7669234400E+00 + 26 2 3.5670952200E+00 -1.7034416800E+00 -4.2202391900E+00 + 27 2 -3.4531757200E+00 2.3849873100E+00 4.3012718900E+00 + 28 2 -8.5119925000E-01 5.9864947800E+00 3.6250608000E+00 + 29 2 2.2689106300E+00 -3.4863053800E+00 -3.6642365400E+00 + 30 2 4.8047915300E+00 1.0340452000E-01 -4.5201062700E+00 + 31 3 -1.3310748400E+00 -1.0903765300E+00 1.3043519700E+00 + 32 3 2.0065768900E+00 4.5267732800E+00 -4.6496078000E-01 + 33 3 -7.6392979000E-01 -2.1566928200E+00 -3.6773373000E-01 + 34 3 2.8953294300E+00 3.6457328500E+00 -1.6719959800E+00 + 35 3 -2.6358745700E+00 2.0275311000E-01 3.0872061600E+00 + 36 3 1.0561540100E+00 5.6545207000E+00 1.6511110400E+00 + 37 3 4.3113722000E-01 -3.2352289900E+00 -1.8495723100E+00 + 38 3 4.2695602000E+00 2.1622890000E+00 -3.2672901100E+00 diff --git a/docs/inputs/moleculardynamics/bomd/run.sh b/docs/inputs/moleculardynamics/bomd/run.sh new file mode 100755 index 00000000..f47f5e09 --- /dev/null +++ b/docs/inputs/moleculardynamics/bomd/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +(time dftb+) >& output +cat md.out | awk '/Total MD Energy/ { print $4 }' > energies.dat +velo_autocorr geo_end.xyz bomd 0 20000 10000 0.5e-3 diff --git a/docs/inputs/moleculardynamics/relaxation/dftb_in.hsd b/docs/inputs/moleculardynamics/relaxation/dftb_in.hsd new file mode 100644 index 00000000..52314d72 --- /dev/null +++ b/docs/inputs/moleculardynamics/relaxation/dftb_in.hsd @@ -0,0 +1,26 @@ +Geometry = GenFormat { + <<< "geom.gen" +} + +Driver = ConjugateGradient { + MaxForceComponent = 1e-5 +} + + +Hamiltonian = DFTB { + SCC = Yes + SCCTolerance = 1E-7 + Filling = Fermi { + Temperature [Kelvin] = 400 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + MaxAngularMomentum = { + C = "p" + O = "p" + H = "s" + } +} diff --git a/docs/inputs/moleculardynamics/relaxation/geom.gen b/docs/inputs/moleculardynamics/relaxation/geom.gen new file mode 100644 index 00000000..4175e55e --- /dev/null +++ b/docs/inputs/moleculardynamics/relaxation/geom.gen @@ -0,0 +1,40 @@ + 38 C + C O H + 1 1 0.4485719496E-01 0.2529623858E+01 -0.1287530736E+00 + 2 1 0.2160903532E+01 0.1199359883E+01 -0.1307042047E+00 + 3 1 -0.7325456222E+00 0.1292979269E+01 -0.1301778661E+00 + 4 1 0.1383502953E+01 -0.3728647749E-01 -0.1295729704E+00 + 5 1 0.1473328052E+01 0.2453790390E+01 -0.1289531807E+00 + 6 1 -0.4496781946E-01 0.3854802542E-01 -0.1291901460E+00 + 7 1 -0.5677929769E+00 0.3790635665E+01 -0.1248229048E+00 + 8 1 0.3562857898E+01 0.1194043241E+01 -0.1318524150E+00 + 9 1 -0.2134502349E+01 0.1298299334E+01 -0.1309283026E+00 + 10 1 0.1996150407E+01 -0.1298302260E+01 -0.1265498546E+00 + 11 1 0.2232906955E+01 0.3662033295E+01 -0.1259226734E+00 + 12 1 -0.8045495749E+00 -0.1169696800E+01 -0.1263756962E+00 + 13 1 0.1859630897E+00 0.4971654380E+01 -0.1228331187E+00 + 14 1 0.4300416964E+01 0.2385268435E+01 -0.1273967573E+00 + 15 1 -0.2872062541E+01 0.1070735371E+00 -0.1266754882E+00 + 16 1 0.1242394418E+01 -0.2479319101E+01 -0.1247576139E+00 + 17 1 0.1578607843E+01 0.4923866165E+01 -0.1238202854E+00 + 18 1 0.3653652547E+01 0.3619558243E+01 -0.1232430942E+00 + 19 1 -0.2225295599E+01 -0.1127219428E+01 -0.1231329226E+00 + 20 1 -0.1502503162E+00 -0.2431529876E+01 -0.1250927103E+00 + 21 1 0.2350655684E+01 0.6184372045E+01 -0.1239343840E+00 + 22 1 0.4454792609E+01 0.4861821160E+01 -0.1118379240E+00 + 23 1 -0.3026435401E+01 -0.2369487126E+01 -0.1117993874E+00 + 24 1 -0.9223038579E+00 -0.3692029959E+01 -0.1253637560E+00 + 25 2 0.3769912330E+01 0.6107000356E+01 -0.1150483597E+00 + 26 2 -0.2341557018E+01 -0.3614661289E+01 -0.1158141247E+00 + 27 2 0.1850216589E+01 0.7285137481E+01 -0.1306141053E+00 + 28 2 0.5663651058E+01 0.4887898897E+01 -0.9865621234E-01 + 29 2 -0.4235287726E+01 -0.2395564818E+01 -0.9800715936E-01 + 30 2 -0.4218704008E+00 -0.4792793238E+01 -0.1326873798E+00 + 31 3 -0.1661774774E+01 0.3873317599E+01 -0.1233692264E+00 + 32 3 0.4111632616E+01 0.2440351523E+00 -0.1351750613E+00 + 33 3 -0.2683274337E+01 0.2248311170E+01 -0.1338062135E+00 + 34 3 0.3090129354E+01 -0.1380982434E+01 -0.1256352693E+00 + 35 3 -0.3138624134E+00 0.5949655663E+01 -0.1199853822E+00 + 36 3 0.5398476662E+01 0.2358688133E+01 -0.1265537277E+00 + 37 3 -0.3970124865E+01 0.1336558441E+00 -0.1254926383E+00 + 38 3 0.1742211893E+01 -0.3457319437E+01 -0.1226020479E+00 diff --git a/docs/inputs/moleculardynamics/relaxation/run.sh b/docs/inputs/moleculardynamics/relaxation/run.sh new file mode 100755 index 00000000..e7c486d0 --- /dev/null +++ b/docs/inputs/moleculardynamics/relaxation/run.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +dftb+ > output diff --git a/docs/inputs/moleculardynamics/thermalisation/dftb_in.hsd b/docs/inputs/moleculardynamics/thermalisation/dftb_in.hsd new file mode 100644 index 00000000..8cd27221 --- /dev/null +++ b/docs/inputs/moleculardynamics/thermalisation/dftb_in.hsd @@ -0,0 +1,39 @@ +Geometry = GenFormat { + <<< "geom.gen" +} + +Driver = VelocityVerlet{ + TimeStep [fs] = 1.0 + Thermostat = NoseHoover { + Temperature [Kelvin] = 400 + CouplingStrength [cm^-1] = 3200 + } + Steps = 20000 + MovedAtoms = 1:-1 + MDRestartFrequency = 100 +} + + +Hamiltonian = DFTB { + SCC = Yes + MaxSCCIterations = 1000 + Filling = Fermi { + Temperature [Kelvin] = 400 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + MaxAngularMomentum = { + H = "s" + O = "p" + C = "p" + } +} + +Options = { + RandomSeed = 3871906 + WriteDetailedOut = No + WriteBandOut = No +} diff --git a/docs/inputs/moleculardynamics/thermalisation/geom.gen b/docs/inputs/moleculardynamics/thermalisation/geom.gen new file mode 100644 index 00000000..1ab52787 --- /dev/null +++ b/docs/inputs/moleculardynamics/thermalisation/geom.gen @@ -0,0 +1,40 @@ + 38 C + C O H + 1 1 0.4469595035E-01 0.2529558175E+01 -0.1237983814E+00 + 2 1 0.2160942367E+01 0.1199476067E+01 -0.1241863960E+00 + 3 1 -0.7325846755E+00 0.1292868801E+01 -0.1236191448E+00 + 4 1 0.1383660048E+01 -0.3721159847E-01 -0.1245940646E+00 + 5 1 0.1473213839E+01 0.2453846794E+01 -0.1239594138E+00 + 6 1 -0.4486165248E-01 0.3849069978E-01 -0.1241845107E+00 + 7 1 -0.5681235339E+00 0.3790420463E+01 -0.1238335077E+00 + 8 1 0.3562827209E+01 0.1194100677E+01 -0.1240699930E+00 + 9 1 -0.2134470588E+01 0.1298235821E+01 -0.1229465921E+00 + 10 1 0.1996477554E+01 -0.1298074482E+01 -0.1254392990E+00 + 11 1 0.2232605606E+01 0.3662075036E+01 -0.1239434906E+00 + 12 1 -0.8042555395E+00 -0.1169736431E+01 -0.1243904196E+00 + 13 1 0.1856181398E+00 0.4971522637E+01 -0.1239750438E+00 + 14 1 0.4300246847E+01 0.2385469320E+01 -0.1238324738E+00 + 15 1 -0.2871888043E+01 0.1068668396E+00 -0.1229598052E+00 + 16 1 0.1242735371E+01 -0.2479187349E+01 -0.1257654891E+00 + 17 1 0.1578233909E+01 0.4923857382E+01 -0.1239599285E+00 + 18 1 0.3653345610E+01 0.3619652513E+01 -0.1238582784E+00 + 19 1 -0.2224990843E+01 -0.1127314702E+01 -0.1237430184E+00 + 20 1 -0.1498864530E+00 -0.2431525092E+01 -0.1251961717E+00 + 21 1 0.2350236805E+01 0.6184385522E+01 -0.1239787480E+00 + 22 1 0.4454367135E+01 0.4861944104E+01 -0.1236643894E+00 + 23 1 -0.3026008875E+01 -0.2369611293E+01 -0.1237583478E+00 + 24 1 -0.9218838642E+00 -0.3692048664E+01 -0.1254536167E+00 + 25 2 0.3769269472E+01 0.6107088122E+01 -0.1239691046E+00 + 26 2 -0.2340906938E+01 -0.3614741316E+01 -0.1248378403E+00 + 27 2 0.1849773806E+01 0.7285130323E+01 -0.1240351365E+00 + 28 2 0.5663236278E+01 0.4888445899E+01 -0.1232448070E+00 + 29 2 -0.4234882059E+01 -0.2396107594E+01 -0.1229176670E+00 + 30 2 -0.4214130966E+00 -0.4792789273E+01 -0.1261667627E+00 + 31 3 -0.1662088874E+01 0.3872936652E+01 -0.1238316668E+00 + 32 3 0.4111616566E+01 0.2441351018E+00 -0.1241527155E+00 + 33 3 -0.2683260102E+01 0.2248201954E+01 -0.1224310526E+00 + 34 3 0.3090453545E+01 -0.1380596619E+01 -0.1258899643E+00 + 35 3 -0.3140779633E+00 0.5949512591E+01 -0.1240082215E+00 + 36 3 0.5398173612E+01 0.2359333320E+01 -0.1237163677E+00 + 37 3 -0.3969820095E+01 0.1330032447E+00 -0.1223975560E+00 + 38 3 0.1742436584E+01 -0.3457178671E+01 -0.1264282512E+00 diff --git a/docs/inputs/moleculardynamics/thermalisation/run_example b/docs/inputs/moleculardynamics/thermalisation/run_example new file mode 100755 index 00000000..4ef8fd8a --- /dev/null +++ b/docs/inputs/moleculardynamics/thermalisation/run_example @@ -0,0 +1,3 @@ +#!/bin/bash + +(time dftb+xlbomd) >& output diff --git a/docs/inputs/moleculardynamics/vibration/dftb_in.hsd b/docs/inputs/moleculardynamics/vibration/dftb_in.hsd new file mode 100644 index 00000000..5f928bd1 --- /dev/null +++ b/docs/inputs/moleculardynamics/vibration/dftb_in.hsd @@ -0,0 +1,26 @@ +Geometry = GenFormat { + <<< "geom.gen" +} + +Driver = SecondDerivatives { + Delta = 1e-4 +} + + +Hamiltonian = DFTB { + SCC = Yes + SCCTolerance = 1E-8 + Filling = Fermi { + Temperature [Kelvin] = 400 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + MaxAngularMomentum = { + C = "p" + O = "p" + H = "s" + } +} diff --git a/docs/inputs/moleculardynamics/vibration/geom.gen b/docs/inputs/moleculardynamics/vibration/geom.gen new file mode 100644 index 00000000..9caffd6b --- /dev/null +++ b/docs/inputs/moleculardynamics/vibration/geom.gen @@ -0,0 +1,40 @@ + 38 C + C O H + 1 1 0.4480283676E-01 0.2529615467E+01 -0.1238182914E+00 + 2 1 0.2160930865E+01 0.1199355111E+01 -0.1242055762E+00 + 3 1 -0.7325717607E+00 0.1292990861E+01 -0.1236405566E+00 + 4 1 0.1383554313E+01 -0.3726841777E-01 -0.1246110808E+00 + 5 1 0.1473317964E+01 0.2453787366E+01 -0.1239746129E+00 + 6 1 -0.4496800620E-01 0.3855117333E-01 -0.1241994972E+00 + 7 1 -0.5678936161E+00 0.3790538072E+01 -0.1238503350E+00 + 8 1 0.3562818181E+01 0.1193851677E+01 -0.1240854669E+00 + 9 1 -0.2134461510E+01 0.1298483179E+01 -0.1229667982E+00 + 10 1 0.1996249291E+01 -0.1298193626E+01 -0.1254500710E+00 + 11 1 0.2232800166E+01 0.3661954896E+01 -0.1239440191E+00 + 12 1 -0.8044532394E+00 -0.1169616662E+01 -0.1243903868E+00 + 13 1 0.1859323865E+00 0.4971581519E+01 -0.1239777531E+00 + 14 1 0.4300324576E+01 0.2385162224E+01 -0.1238384367E+00 + 15 1 -0.2871963518E+01 0.1071727019E+00 -0.1229703325E+00 + 16 1 0.1242424820E+01 -0.2479249322E+01 -0.1257618841E+00 + 17 1 0.1578547951E+01 0.4923802433E+01 -0.1239518665E+00 + 18 1 0.3653541712E+01 0.3619404344E+01 -0.1238532527E+00 + 19 1 -0.2225186370E+01 -0.1127067144E+01 -0.1237403579E+00 + 20 1 -0.1502009024E+00 -0.2431467952E+01 -0.1251843860E+00 + 21 1 0.2350666229E+01 0.6184254489E+01 -0.1239545546E+00 + 22 1 0.4454669728E+01 0.4861616378E+01 -0.1236458011E+00 + 23 1 -0.3026312695E+01 -0.2369281211E+01 -0.1237433833E+00 + 24 1 -0.9223135704E+00 -0.3691920937E+01 -0.1254241537E+00 + 25 2 0.3769722099E+01 0.6106811413E+01 -0.1239383103E+00 + 26 2 -0.2341359312E+01 -0.3614465064E+01 -0.1248063758E+00 + 27 2 0.1850376745E+01 0.7285073665E+01 -0.1240046347E+00 + 28 2 0.5663552672E+01 0.4887981612E+01 -0.1232238578E+00 + 29 2 -0.4235196586E+01 -0.2395643683E+01 -0.1229046360E+00 + 30 2 -0.4220168012E+00 -0.4792730795E+01 -0.1261266759E+00 + 31 3 -0.1661860134E+01 0.3873140147E+01 -0.1238556106E+00 + 32 3 0.4111514506E+01 0.2438401430E+00 -0.1241746769E+00 + 33 3 -0.2683158508E+01 0.2248498034E+01 -0.1224589056E+00 + 34 3 0.3090223144E+01 -0.1380799949E+01 -0.1259060314E+00 + 35 3 -0.3136784948E+00 0.5949611247E+01 -0.1240086782E+00 + 36 3 0.5398256710E+01 0.2358946093E+01 -0.1237193475E+00 + 37 3 -0.3969904763E+01 0.1333905810E+00 -0.1224071498E+00 + 38 3 0.1742035949E+01 -0.3457275085E+01 -0.1264198933E+00 diff --git a/docs/inputs/moleculardynamics/vibration/modes_in.hsd b/docs/inputs/moleculardynamics/vibration/modes_in.hsd new file mode 100644 index 00000000..a2932bbf --- /dev/null +++ b/docs/inputs/moleculardynamics/vibration/modes_in.hsd @@ -0,0 +1,21 @@ +# Neededs the equilibrium geometry, at which the Hessian had been calculated +Geometry = GenFormat { + <<< geom.gen +} + +DisplayModes = { + PlotModes = -20:-1 # Take the top 10 modes + Animate = Yes # make xyz files showing the atoms moving +} + +# You need to specify the SK-files, as the mass of the elements is needed +SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" +} + +# Include the Hessian, which was calculated by DFTB+ +Hessian = { + <<< "hessian.out" +} diff --git a/docs/inputs/moleculardynamics/vibration/run.sh b/docs/inputs/moleculardynamics/vibration/run.sh new file mode 100755 index 00000000..b3de3395 --- /dev/null +++ b/docs/inputs/moleculardynamics/vibration/run.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +(time dftb+) >& output.dftb+ +(time modes) &> output.modes diff --git a/docs/inputs/moleculardynamics/xlbomd/dftb_in.hsd b/docs/inputs/moleculardynamics/xlbomd/dftb_in.hsd new file mode 100644 index 00000000..3672a2be --- /dev/null +++ b/docs/inputs/moleculardynamics/xlbomd/dftb_in.hsd @@ -0,0 +1,84 @@ +Geometry = GenFormat { + <<< "geom.gen" +} + +Driver = VelocityVerlet{ + TimeStep [fs] = 0.5 + Thermostat = None {} + XlbomdFast { + IntegrationSteps = 5 + Scale = 0.5 # scalekappa (only for fast option with 1 scf cycle) + TransientSteps = 10 + } + Velocities [AA/ps] { + 0.63060001 10.71652407 0.41599521 + -4.78167517 -0.67726160 6.81193886 + 3.98425977 1.00737908 -10.59008962 + -5.00836769 -4.17503533 6.23338156 + -6.98937694 -6.67991962 13.49283670 + 2.60129853 2.94191649 -6.17377828 + 5.45307788 4.06412641 -12.66174802 + -7.65333453 -3.97065257 6.97104050 + -10.13358053 2.65525500 1.71478235 + 2.43208042 7.32942823 4.28579643 + -4.30000399 3.49584166 3.08283261 + 2.24408800 -6.45559687 0.04066731 + -1.94541508 3.92663760 -0.72998677 + 5.60486436 3.94060376 -3.20947636 + 3.53019985 4.56545155 -1.48062150 + 7.81517642 2.25960070 4.82188329 + -0.50193981 -4.94744725 3.06413849 + -0.19059520 4.33561964 2.36256475 + 0.09466765 -0.51960301 5.72471343 + 4.47619173 7.41074772 1.11201016 + 3.27922874 -5.35329287 -2.56702569 + 3.99264878 -8.45260216 -4.11369388 + -1.77619915 -3.53622712 -7.62449802 + 7.38469860 -1.25504906 0.63982263 + -4.58383155 2.77913648 -3.36202315 + 2.57174728 3.16284242 -2.42263621 + -1.51584311 4.83348853 -8.50814642 + 3.19719689 -5.10152266 4.80391910 + -1.82283885 -4.42665140 -0.61092820 + 0.70148376 -13.29987273 5.73299098 + -48.12863500 6.61689320 -3.55300242 + -7.79595968 7.24986202 -7.89475790 + 19.47014048 -24.23046733 -19.62986878 + -22.48734706 8.85056458 5.45198051 + -8.26315843 12.84226567 -16.40492287 + -27.33024406 29.56557052 -25.50583462 + -20.88278228 1.24410318 -14.82956937 + 16.44412954 -1.14851662 13.23381502 + } + Steps = 20000 + MovedAtoms = 1:-1 +} + + +Hamiltonian = DFTB { + ForceEvaluation = Dynamics + SCC = Yes + SCCTolerance = 1e-6 + Filling = Fermi { + Temperature [Kelvin] = 400 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + MaxAngularMomentum = { + H = "s" + O = "p" + C = "p" + } +} + +Options = { + RandomSeed = 3871906 + WriteDetailedOut = No +} + +Analysis { + WriteBandOut = No +} diff --git a/docs/inputs/moleculardynamics/xlbomd/geom.gen b/docs/inputs/moleculardynamics/xlbomd/geom.gen new file mode 100644 index 00000000..03a822df --- /dev/null +++ b/docs/inputs/moleculardynamics/xlbomd/geom.gen @@ -0,0 +1,40 @@ +38 C +C O H + 1 1 -3.2103390000E-01 6.4976606000E-01 6.1134966000E-01 + 2 1 9.6328881000E-01 2.6810143600E+00 2.4672770000E-02 + 3 1 3.7008025000E-01 -1.9148818000E-01 -3.4608252000E-01 + 4 1 1.7062543300E+00 1.8667277800E+00 -9.7432192000E-01 + 5 1 -4.6635000000E-04 2.0405072500E+00 8.3279825000E-01 + 6 1 1.3552255700E+00 4.6696619000E-01 -1.1164276800E+00 + 7 1 -1.2084626700E+00 3.5055440000E-02 1.4611567900E+00 + 8 1 1.2838829500E+00 4.0436668700E+00 2.3580619000E-01 + 9 1 1.7368624000E-01 -1.5974433500E+00 -5.6605157000E-01 + 10 1 2.7167114800E+00 2.5171334100E+00 -1.7385943600E+00 + 11 1 -6.7994802000E-01 2.7815041000E+00 1.8784723000E+00 + 12 1 2.1407047300E+00 -2.9303542000E-01 -2.0652228400E+00 + 13 1 -1.9292987000E+00 7.5069414000E-01 2.4361290700E+00 + 14 1 6.4765831000E-01 4.7324463100E+00 1.2977432600E+00 + 15 1 8.3835424000E-01 -2.2447042900E+00 -1.5758687500E+00 + 16 1 3.4495481300E+00 1.6997917600E+00 -2.6509048200E+00 + 17 1 -1.6506211100E+00 2.1200052600E+00 2.7154073500E+00 + 18 1 -3.6777644000E-01 4.1391518900E+00 2.0732747000E+00 + 19 1 1.9139484800E+00 -1.6634948600E+00 -2.2349815200E+00 + 20 1 3.1011552300E+00 3.5961796000E-01 -2.8927181400E+00 + 21 1 -2.4832568600E+00 2.8190296100E+00 3.7147392800E+00 + 22 1 -1.0551337700E+00 4.8836022000E+00 3.2217757000E+00 + 23 1 2.5647743600E+00 -2.3565660000E+00 -3.3888315300E+00 + 24 1 3.8672443600E+00 -3.7443306000E-01 -3.9283627100E+00 + 25 2 -2.2570870700E+00 4.2401457300E+00 3.7669234400E+00 + 26 2 3.5670952200E+00 -1.7034416800E+00 -4.2202391900E+00 + 27 2 -3.4531757200E+00 2.3849873100E+00 4.3012718900E+00 + 28 2 -8.5119925000E-01 5.9864947800E+00 3.6250608000E+00 + 29 2 2.2689106300E+00 -3.4863053800E+00 -3.6642365400E+00 + 30 2 4.8047915300E+00 1.0340452000E-01 -4.5201062700E+00 + 31 3 -1.3310748400E+00 -1.0903765300E+00 1.3043519700E+00 + 32 3 2.0065768900E+00 4.5267732800E+00 -4.6496078000E-01 + 33 3 -7.6392979000E-01 -2.1566928200E+00 -3.6773373000E-01 + 34 3 2.8953294300E+00 3.6457328500E+00 -1.6719959800E+00 + 35 3 -2.6358745700E+00 2.0275311000E-01 3.0872061600E+00 + 36 3 1.0561540100E+00 5.6545207000E+00 1.6511110400E+00 + 37 3 4.3113722000E-01 -3.2352289900E+00 -1.8495723100E+00 + 38 3 4.2695602000E+00 2.1622890000E+00 -3.2672901100E+00 diff --git a/docs/inputs/moleculardynamics/xlbomd/run.sh b/docs/inputs/moleculardynamics/xlbomd/run.sh new file mode 100755 index 00000000..ad346ccc --- /dev/null +++ b/docs/inputs/moleculardynamics/xlbomd/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +(time dftb+) >& output +cat md.out | awk '/Total MD Energy/ { print $4 }' > energies.dat +velo_autocorr geo_end.xyz xlbomd 0 20000 10000 0.5e-3 diff --git a/docs/moleculardynamics/bornoppenheimer.rst b/docs/moleculardynamics/bornoppenheimer.rst new file mode 100644 index 00000000..d3f54b67 --- /dev/null +++ b/docs/moleculardynamics/bornoppenheimer.rst @@ -0,0 +1,22 @@ +.. highlight:: none + +**************************** +Dynamics in the ground state +**************************** + +Dynamics on the Born-Oppenheimer ground state energy surface can be performed in +DFTB+ by setting the input geometry driver to be `VelocityVerlet` :: + + Driver = VelocityVerlet{ + TimeStep [fs] = 1.0 + Thermostat = NoseHoover { + Temperature [Kelvin] = 400 + CouplingStrength [cm^-1] = 3200 + } + Steps = 20000 + MovedAtoms = 1:-1 + MDRestartFrequency = 100 + } + +See :download:`the full input <../inputs/moleculardynamics/bomd/dftb_in.hsd>` +and :download:`geometry <../inputs/moleculardynamics/bomd/geom.gen>`. diff --git a/docs/moleculardynamics/index.rst b/docs/moleculardynamics/index.rst new file mode 100644 index 00000000..9fd50571 --- /dev/null +++ b/docs/moleculardynamics/index.rst @@ -0,0 +1,11 @@ +################## +Molecular dynamics +################## + +.. toctree:: + :maxdepth: 1 + + introduction.rst + startinggeometry.rst + bornoppenheimer.rst + xlbomd.rst diff --git a/docs/moleculardynamics/introduction.rst b/docs/moleculardynamics/introduction.rst new file mode 100644 index 00000000..919f4cc0 --- /dev/null +++ b/docs/moleculardynamics/introduction.rst @@ -0,0 +1,7 @@ +.. highlight:: none + +****************** +Molecular dynamics +****************** + +This chapter discusses DFTB+ calculations diff --git a/docs/moleculardynamics/startinggeometry.rst b/docs/moleculardynamics/startinggeometry.rst new file mode 100644 index 00000000..5589bbcb --- /dev/null +++ b/docs/moleculardynamics/startinggeometry.rst @@ -0,0 +1,96 @@ +.. highlight:: none + +Preparing for an MD calculation +=============================== + +The initial structure for starting a molecular dynamics simulation should +usually be structurally relaxed. + +The geometry relaxation :: + + Geometry = GenFormat { + <<< "geom.gen" + } + + Driver = ConjugateGradient { + MaxForceComponent = 1e-5 + } + + + Hamiltonian = DFTB { + SCC = Yes + SCCTolerance = 1E-7 + Filling = Fermi { + Temperature [Kelvin] = 400 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + MaxAngularMomentum = { + C = "p" + O = "p" + H = "s" + } + } + +Vibrational modes +================= + +Vibrational modes :: + + Geometry = GenFormat { + <<< "geom.gen" + } + + Driver = SecondDerivatives { + Delta = 1e-4 + } + + + Hamiltonian = DFTB { + SCC = Yes + SCCTolerance = 1E-8 + Filling = Fermi { + Temperature [Kelvin] = 400 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + MaxAngularMomentum = { + C = "p" + O = "p" + H = "s" + } + } + +Calculating the modes +~~~~~~~~~~~~~~~~~~~~~ + +The input for the modes code :: + + # Neededs the equilibrium geometry, at which the Hessian had been calculated + Geometry = GenFormat { + <<< geom.gen + } + + DisplayModes = { + PlotModes = -20:-1 # Take the top 10 modes + Animate = Yes # make xyz files showing the atoms moving + } + + # You need to specify the SK-files, as the mass of the elements is needed + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + + # Include the Hessian, which was calculated by DFTB+ + Hessian = { + <<< "hessian.out" + } + diff --git a/docs/moleculardynamics/xlbomd.rst b/docs/moleculardynamics/xlbomd.rst new file mode 100644 index 00000000..a6057b88 --- /dev/null +++ b/docs/moleculardynamics/xlbomd.rst @@ -0,0 +1,93 @@ +.. highlight:: none + +****************** +Speeding up SCC MD +****************** + +The input :: + + Geometry = GenFormat { + <<< "geom.gen" + } + + Driver = VelocityVerlet{ + TimeStep [fs] = 0.5 + Thermostat = None {} + XlbomdFast { + IntegrationSteps = 5 + Scale = 0.5 # scalekappa (only for fast option with 1 scf cycle) + TransientSteps = 10 + } + Velocities [AA/ps] { + 0.63060001 10.71652407 0.41599521 + -4.78167517 -0.67726160 6.81193886 + 3.98425977 1.00737908 -10.59008962 + -5.00836769 -4.17503533 6.23338156 + -6.98937694 -6.67991962 13.49283670 + 2.60129853 2.94191649 -6.17377828 + 5.45307788 4.06412641 -12.66174802 + -7.65333453 -3.97065257 6.97104050 + -10.13358053 2.65525500 1.71478235 + 2.43208042 7.32942823 4.28579643 + -4.30000399 3.49584166 3.08283261 + 2.24408800 -6.45559687 0.04066731 + -1.94541508 3.92663760 -0.72998677 + 5.60486436 3.94060376 -3.20947636 + 3.53019985 4.56545155 -1.48062150 + 7.81517642 2.25960070 4.82188329 + -0.50193981 -4.94744725 3.06413849 + -0.19059520 4.33561964 2.36256475 + 0.09466765 -0.51960301 5.72471343 + 4.47619173 7.41074772 1.11201016 + 3.27922874 -5.35329287 -2.56702569 + 3.99264878 -8.45260216 -4.11369388 + -1.77619915 -3.53622712 -7.62449802 + 7.38469860 -1.25504906 0.63982263 + -4.58383155 2.77913648 -3.36202315 + 2.57174728 3.16284242 -2.42263621 + -1.51584311 4.83348853 -8.50814642 + 3.19719689 -5.10152266 4.80391910 + -1.82283885 -4.42665140 -0.61092820 + 0.70148376 -13.29987273 5.73299098 + -48.12863500 6.61689320 -3.55300242 + -7.79595968 7.24986202 -7.89475790 + 19.47014048 -24.23046733 -19.62986878 + -22.48734706 8.85056458 5.45198051 + -8.26315843 12.84226567 -16.40492287 + -27.33024406 29.56557052 -25.50583462 + -20.88278228 1.24410318 -14.82956937 + 16.44412954 -1.14851662 13.23381502 + } + Steps = 20000 + MovedAtoms = 1:-1 + } + + + Hamiltonian = DFTB { + ForceEvaluation = Dynamics + SCC = Yes + SCCTolerance = 1e-6 + Filling = Fermi { + Temperature [Kelvin] = 400 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + MaxAngularMomentum = { + H = "s" + O = "p" + C = "p" + } + } + + Options = { + RandomSeed = 3871906 + WriteDetailedOut = No + } + + Analysis { + WriteBandOut = No + } + From 17fc8cb3b063df88cc8ba83ce3d3ce9d0e699a49 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Wed, 14 Jun 2017 18:22:16 +0100 Subject: [PATCH 02/14] Changed more examples to use download Using different directories in a tree for different files. --- docs/moleculardynamics/startinggeometry.rst | 86 ++------------------- 1 file changed, 7 insertions(+), 79 deletions(-) diff --git a/docs/moleculardynamics/startinggeometry.rst b/docs/moleculardynamics/startinggeometry.rst index 5589bbcb..a418c4fe 100644 --- a/docs/moleculardynamics/startinggeometry.rst +++ b/docs/moleculardynamics/startinggeometry.rst @@ -6,91 +6,19 @@ Preparing for an MD calculation The initial structure for starting a molecular dynamics simulation should usually be structurally relaxed. -The geometry relaxation :: - - Geometry = GenFormat { - <<< "geom.gen" - } - - Driver = ConjugateGradient { - MaxForceComponent = 1e-5 - } - - - Hamiltonian = DFTB { - SCC = Yes - SCCTolerance = 1E-7 - Filling = Fermi { - Temperature [Kelvin] = 400 - } - SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" - Separator = "-" - Suffix = ".skf" - } - MaxAngularMomentum = { - C = "p" - O = "p" - H = "s" - } - } +See :download:`the full input +<../inputs/moleculardynamics/relaxation/dftb_in.hsd>` Vibrational modes ================= - -Vibrational modes :: - Geometry = GenFormat { - <<< "geom.gen" - } - - Driver = SecondDerivatives { - Delta = 1e-4 - } - - - Hamiltonian = DFTB { - SCC = Yes - SCCTolerance = 1E-8 - Filling = Fermi { - Temperature [Kelvin] = 400 - } - SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" - Separator = "-" - Suffix = ".skf" - } - MaxAngularMomentum = { - C = "p" - O = "p" - H = "s" - } - } +See :download:`the full input +<../inputs/moleculardynamics/vibration/dftb_in.hsd>` and the :download:`geometry +<../inputs/moleculardynamics/vibration/geom.gen>` Calculating the modes ~~~~~~~~~~~~~~~~~~~~~ -The input for the modes code :: - - # Neededs the equilibrium geometry, at which the Hessian had been calculated - Geometry = GenFormat { - <<< geom.gen - } - - DisplayModes = { - PlotModes = -20:-1 # Take the top 10 modes - Animate = Yes # make xyz files showing the atoms moving - } - - # You need to specify the SK-files, as the mass of the elements is needed - SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" - Separator = "-" - Suffix = ".skf" - } - - # Include the Hessian, which was calculated by DFTB+ - Hessian = { - <<< "hessian.out" - } +See :download:`the modes input +<../inputs/moleculardynamics/vibration/modes_in.hsd>` From 48d02f7f85550045219b25508385f48de3909abb Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sun, 18 Jun 2017 00:48:30 +0100 Subject: [PATCH 03/14] Changed to optional file include for html Added in the simulated annealing inputs and re-ordered to optional file include only when building html. The pdf build causes some internal sphinx error at the moment. --- .../moleculardynamics/annealSW/80_SW.gen | 86 ++++++++++++++++++ .../moleculardynamics/annealSW/dftb_in.hsd | 77 ++++++++++++++++ .../moleculardynamics/annealV2/80_V2.gen | 84 +++++++++++++++++ .../moleculardynamics/annealV2/dftb_in.hsd | 83 +++++++++++++++++ docs/moleculardynamics/annealing.rst | 23 +++++ docs/moleculardynamics/bornoppenheimer.rst | 9 +- docs/moleculardynamics/index.rst | 1 + docs/moleculardynamics/introduction.rst | 4 +- docs/moleculardynamics/startinggeometry.rst | 22 +++-- docs/moleculardynamics/xlbomd.rst | 90 ++----------------- 10 files changed, 383 insertions(+), 96 deletions(-) create mode 100644 docs/inputs/moleculardynamics/annealSW/80_SW.gen create mode 100644 docs/inputs/moleculardynamics/annealSW/dftb_in.hsd create mode 100644 docs/inputs/moleculardynamics/annealV2/80_V2.gen create mode 100644 docs/inputs/moleculardynamics/annealV2/dftb_in.hsd create mode 100644 docs/moleculardynamics/annealing.rst diff --git a/docs/inputs/moleculardynamics/annealSW/80_SW.gen b/docs/inputs/moleculardynamics/annealSW/80_SW.gen new file mode 100644 index 00000000..ad7cdddd --- /dev/null +++ b/docs/inputs/moleculardynamics/annealSW/80_SW.gen @@ -0,0 +1,86 @@ + 80 S + C + 1 1 0.1648525975E-01 0.3339375770E-02 -0.1449893017E-13 + 2 1 0.1279516987E+01 0.7045157680E+00 -0.1676027794E-13 + 3 1 0.1280478521E+01 0.2125402847E+01 -0.2097300060E-14 + 4 1 0.1490777082E-02 0.2779311605E+01 0.2935886213E-14 + 5 1 0.2540281607E+01 0.1019161293E-01 -0.5182676120E-14 + 6 1 0.3787129256E+01 0.7359286395E+00 0.7903185288E-15 + 7 1 0.3790327881E+01 0.2172431462E+01 -0.5619857797E-14 + 8 1 0.2531545960E+01 0.2859456954E+01 0.4788167914E-14 + 9 1 0.5030840382E+01 0.1291565710E-01 -0.1918944832E-14 + 10 1 0.6274551509E+01 0.7359286395E+00 0.2481487713E-14 + 11 1 0.6271352883E+01 0.2172431462E+01 0.5133686018E-14 + 12 1 0.5030840382E+01 0.2923766691E+01 0.6492488486E-14 + 13 1 0.7521399157E+01 0.1019161293E-01 -0.5978408211E-14 + 14 1 0.8782163778E+01 0.7045157680E+00 -0.6536196879E-15 + 15 1 0.8781202243E+01 0.2125402847E+01 -0.2647696342E-14 + 16 1 0.7530134804E+01 0.2859456954E+01 0.1789190487E-14 + 17 1 0.1004519550E+02 0.3339375770E-02 0.4621676408E-14 + 18 1 0.1131939087E+02 0.6771346577E+00 0.6515236400E-14 + 19 1 0.1131939087E+02 0.2087442349E+01 -0.7156293021E-14 + 20 1 0.1006018999E+02 0.2779311605E+01 -0.1095477921E-14 + 21 1 -0.1290776676E-01 0.4188149914E+01 -0.9477614019E-14 + 22 1 0.1223619913E+01 0.4898927029E+01 -0.1774157467E-13 + 23 1 0.1127444141E+01 0.6300308320E+01 -0.1193127746E-14 + 24 1 -0.6727740356E-01 0.7039297094E+01 0.1029189575E-13 + 25 1 0.2523882483E+01 0.4290572302E+01 0.6340155648E-14 + 26 1 0.3756046015E+01 0.5078957871E+01 0.1784263120E-14 + 27 1 0.3582340242E+01 0.6514063172E+01 0.7291073026E-14 + 28 1 0.2288717784E+01 0.7039867946E+01 0.1077349939E-13 + 29 1 0.5030840382E+01 0.4371868719E+01 -0.1667270744E-13 + 30 1 0.6305634749E+01 0.5078957871E+01 0.2790218036E-14 + 31 1 0.6479340523E+01 0.6514063172E+01 -0.1063474793E-13 + 32 1 0.5694079105E+01 0.7748261840E+01 0.3096589887E-14 + 33 1 0.7537798282E+01 0.4290572302E+01 0.4475801595E-14 + 34 1 0.8838060851E+01 0.4898927029E+01 0.2298442782E-13 + 35 1 0.8934236623E+01 0.6300308320E+01 0.4519756146E-14 + 36 1 0.7772962980E+01 0.7039867946E+01 -0.2778986918E-14 + 37 1 0.1007458853E+02 0.4188149914E+01 -0.3752445507E-13 + 38 1 0.1131939087E+02 0.4886577718E+01 -0.1319312362E-13 + 39 1 0.1131939087E+02 0.6305607971E+01 0.1033815503E-13 + 40 1 0.1012895817E+02 0.7039297094E+01 -0.3311109057E-14 + 41 1 -0.6727740356E-01 0.8457226586E+01 0.2479255151E-14 + 42 1 0.1127444141E+01 0.9196215361E+01 -0.9443316341E-14 + 43 1 0.1223619913E+01 0.1059759665E+02 -0.2669173999E-13 + 44 1 -0.1290776676E-01 0.1130837377E+02 0.8336866111E-14 + 45 1 0.2288717784E+01 0.8456655734E+01 0.1091218030E-13 + 46 1 0.3582340241E+01 0.8982460509E+01 0.8522399357E-14 + 47 1 0.3756046015E+01 0.1041756581E+02 0.3206079020E-16 + 48 1 0.2523882483E+01 0.1120595138E+02 0.6505288603E-14 + 49 1 0.4367601660E+01 0.7748261840E+01 0.5057325132E-14 + 50 1 0.6479340523E+01 0.8982460509E+01 -0.5058202645E-14 + 51 1 0.6305634749E+01 0.1041756581E+02 0.1574584305E-14 + 52 1 0.5030840382E+01 0.1112465496E+02 0.7048305389E-14 + 53 1 0.7772962980E+01 0.8456655734E+01 -0.4839603456E-14 + 54 1 0.8934236623E+01 0.9196215361E+01 0.1428018262E-14 + 55 1 0.8838060851E+01 0.1059759665E+02 0.3762055666E-14 + 56 1 0.7537798282E+01 0.1120595138E+02 -0.7732729645E-14 + 57 1 0.1012895817E+02 0.8457226586E+01 0.3983598038E-15 + 58 1 0.1131939087E+02 0.9190915709E+01 0.2561726110E-14 + 59 1 0.1131939087E+02 0.1060994596E+02 0.5133084686E-14 + 60 1 0.1007458853E+02 0.1130837377E+02 0.2079838615E-13 + 61 1 0.1490777077E-02 0.1271721208E+02 0.8056728699E-14 + 62 1 0.1280478521E+01 0.1337112083E+02 0.1713045148E-13 + 63 1 0.1279516987E+01 0.1479200791E+02 -0.3781203824E-14 + 64 1 0.1648525975E-01 0.1549318430E+02 -0.1571410647E-13 + 65 1 0.2531545960E+01 0.1263706673E+02 0.2627584982E-14 + 66 1 0.3790327881E+01 0.1332409222E+02 0.1053759811E-13 + 67 1 0.3787129256E+01 0.1476059504E+02 0.9125083489E-14 + 68 1 0.2540281607E+01 0.1548633207E+02 -0.4008197376E-13 + 69 1 0.5030840382E+01 0.1257275699E+02 0.4143561473E-14 + 70 1 0.6271352883E+01 0.1332409222E+02 0.2388187886E-14 + 71 1 0.6274551509E+01 0.1476059504E+02 0.1660513829E-14 + 72 1 0.5030840382E+01 0.1548360802E+02 0.9133522457E-14 + 73 1 0.7530134804E+01 0.1263706673E+02 -0.5694968685E-14 + 74 1 0.8781202243E+01 0.1337112083E+02 -0.5951206215E-14 + 75 1 0.8782163778E+01 0.1479200791E+02 0.7730915932E-15 + 76 1 0.7521399157E+01 0.1548633207E+02 0.5820145495E-14 + 77 1 0.1006018999E+02 0.1271721208E+02 0.9890522498E-14 + 78 1 0.1131939087E+02 0.1340908133E+02 0.8886924557E-14 + 79 1 0.1131939087E+02 0.1481938902E+02 0.2667200131E-14 + 80 1 0.1004519550E+02 0.1549318430E+02 0.3500993482E-14 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.1690529857E+02 0.0000000000E+00 + 0.1257710097E+02 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.1000000000E+03 diff --git a/docs/inputs/moleculardynamics/annealSW/dftb_in.hsd b/docs/inputs/moleculardynamics/annealSW/dftb_in.hsd new file mode 100644 index 00000000..5691a631 --- /dev/null +++ b/docs/inputs/moleculardynamics/annealSW/dftb_in.hsd @@ -0,0 +1,77 @@ +Geometry = GenFormat { + <<< 80_SW.gen +} + +Driver = VelocityVerlet { + + TimeStep [Femtosecond] = 2.0 # Using a thermostat, so conserved + # properties of dynamics are less + # important + + Thermostat = Andersen { + + # Probabalistically replaces atomic velocities from a + # Maxwell-Boltzmann distribution + ReselectProbability = 0.2 + ReselectIndividually = Yes + + # Simulated annealing profile for the temperature + Temperature [Kelvin] = TemperatureProfile { + constant 1 100.0 # Start + linear 499 5500.0 # Ramp up + constant 200 5500.0 # 'cook' + linear 500 100.0 # Quench + } + + AdaptFillingTemp = Yes # Adjust electron temperature to match + + } + + Barostat { # Apply presure control + Pressure [Pa] = 1.0E5 + Timescale [ps] = 0.1 + } + + MDRestartFrequency = 10 # Only write output every 10 steps + + OutputPrefix = "geo_end" + +} + +Hamiltonian = DFTB { + + MaxAngularMomentum { + C = "p" + } + + Charge = 0.0 + + Filling = Fermi {} # electronic temperature is controlled by the + # thermostat + + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + + # Gamma point - use more accurate sampling for a realistic calculation + KPointsAndWeights { + 0 0 0 1.0 + } + +} + +Options { + + MullikenAnalysis = No + WriteBandOut = No + + WriteDetailedOut = No + RandomSeed = 589105024 # specify the rand number generator + # starting seed +} + +ParserOptions { + ParserVersion = 4 +} diff --git a/docs/inputs/moleculardynamics/annealV2/80_V2.gen b/docs/inputs/moleculardynamics/annealV2/80_V2.gen new file mode 100644 index 00000000..8c5a4181 --- /dev/null +++ b/docs/inputs/moleculardynamics/annealV2/80_V2.gen @@ -0,0 +1,84 @@ + 78 S + C + 1 1 -0.2828061247E-01 -0.1261525719E-01 -0.1224618615E+00 + 2 1 0.1204601169E+01 0.7056489642E+00 -0.1310900792E+00 + 3 1 0.1224033539E+01 0.2125502615E+01 -0.1861727859E+00 + 4 1 0.9058310670E-02 0.2846945764E+01 -0.2225022729E+00 + 5 1 0.2425372463E+01 -0.1177497480E-01 -0.7627885810E-01 + 6 1 0.3664668171E+01 0.6895866083E+00 -0.1002343697E+00 + 7 1 0.3674631440E+01 0.2088572200E+01 -0.1472199862E+00 + 8 1 0.2470574541E+01 0.2835494563E+01 -0.1863728213E+00 + 9 1 0.4897552947E+01 -0.1309331402E-01 -0.8361720780E-01 + 10 1 0.6116898424E+01 0.7149211672E+00 -0.1420531797E+00 + 11 1 0.6112009306E+01 0.2142321075E+01 -0.1691791492E+00 + 12 1 0.4870875200E+01 0.2861009188E+01 -0.1500615567E+00 + 13 1 0.7341588213E+01 -0.1079991840E-01 -0.1581557860E+00 + 14 1 0.8564778817E+01 0.7116553305E+00 -0.1923365303E+00 + 15 1 0.8567531944E+01 0.2138867190E+01 -0.2212776902E+00 + 16 1 0.7330875212E+01 0.2863657465E+01 -0.2140610407E+00 + 17 1 0.9782081412E+01 -0.2816320890E-01 -0.1590671383E+00 + 18 1 0.1101197475E+02 0.7023510749E+00 -0.1765403414E+00 + 19 1 0.1103178178E+02 0.2129375205E+01 -0.2200567634E+00 + 20 1 0.9803684796E+01 0.2848626197E+01 -0.2283471959E+00 + 21 1 0.7308077386E-01 0.4267239078E+01 -0.1952693302E+00 + 22 1 0.1358684831E+01 0.4968675441E+01 -0.1537141889E+00 + 23 1 0.1305839868E+01 0.6388342488E+01 0.4268725307E-01 + 24 1 0.6248039883E-01 0.7079802681E+01 0.4635050567E-01 + 25 1 0.2589367838E+01 0.4228492197E+01 -0.2684713584E+00 + 26 1 0.3758436532E+01 0.6440697491E+01 0.4811415059E+00 + 27 1 0.2533590206E+01 0.7120386952E+01 0.2071530992E+00 + 28 1 0.4769417291E+01 0.4265208172E+01 -0.2184294489E+00 + 29 1 0.6020101262E+01 0.5003753192E+01 -0.1770560472E+00 + 30 1 0.6129123478E+01 0.6430916375E+01 -0.2359431352E-01 + 31 1 0.4938720571E+01 0.7192337969E+01 0.1771958972E+00 + 32 1 0.7292286855E+01 0.4286771044E+01 -0.2033789361E+00 + 33 1 0.8561058991E+01 0.4981504585E+01 -0.1683207285E+00 + 34 1 0.8597928904E+01 0.6398929748E+01 -0.7953853520E-01 + 35 1 0.7368392669E+01 0.7130171710E+01 -0.2317946578E-01 + 36 1 0.9815974558E+01 0.4273067008E+01 -0.1947450638E+00 + 37 1 0.1108156707E+02 0.4967205342E+01 -0.1556921098E+00 + 38 1 0.1108331103E+02 0.6382123444E+01 -0.5864970976E-01 + 39 1 0.9844005309E+01 0.7087947224E+01 -0.1172163164E-01 + 40 1 0.4962603376E-01 0.8500389297E+01 0.1612038252E+00 + 41 1 0.1265853380E+01 0.9231529971E+01 0.1742859489E+00 + 42 1 0.1239853682E+01 0.1065158350E+02 0.1911405463E+00 + 43 1 -0.7654527466E-03 0.1135165605E+02 0.1984242041E+00 + 44 1 0.2510367723E+01 0.8542355062E+01 0.1726235961E+00 + 45 1 0.3728956419E+01 0.9281654374E+01 0.1819338009E+00 + 46 1 0.3709066509E+01 0.1069007779E+02 0.1887622236E+00 + 47 1 0.2462598267E+01 0.1138036870E+02 0.1947994191E+00 + 48 1 0.4979127092E+01 0.8624078684E+01 0.1119187193E+00 + 49 1 0.6225791447E+01 0.9365283149E+01 0.3994107126E-01 + 50 1 0.6213802431E+01 0.1080386594E+02 0.1127199428E-01 + 51 1 0.4942891479E+01 0.1140788745E+02 0.1448150485E+00 + 52 1 0.7400279481E+01 0.8549701282E+01 0.1075034800E+00 + 53 1 0.8637251595E+01 0.9232150762E+01 0.2902673179E+00 + 54 1 0.8590172990E+01 0.1061231081E+02 0.6427131841E+00 + 55 1 0.9854326262E+01 0.8500802630E+01 0.1593903749E+00 + 56 1 0.1108185518E+02 0.9204832101E+01 0.2253100336E+00 + 57 1 0.1104866725E+02 0.1062141648E+02 0.2582189660E+00 + 58 1 0.9799815274E+01 0.1131464019E+02 0.3485400124E+00 + 59 1 -0.3111556544E-01 0.1276929711E+02 0.1602753859E+00 + 60 1 0.1189930322E+01 0.1349236461E+02 0.1251532626E+00 + 61 1 0.1188737780E+01 0.1490918403E+02 0.3564345039E-01 + 62 1 -0.4098131557E-01 0.1561500066E+02 -0.4121379875E-01 + 63 1 0.2423340908E+01 0.1279271861E+02 0.1588173793E+00 + 64 1 0.3645459659E+01 0.1351414161E+02 0.1090724934E+00 + 65 1 0.3651679022E+01 0.1492715775E+02 0.3895321511E-01 + 66 1 0.2418662359E+01 0.1562619989E+02 0.5363551397E-02 + 67 1 0.4862366820E+01 0.1281835218E+02 0.1008105837E+00 + 68 1 0.6111798087E+01 0.1348366966E+02 0.1436494588E-01 + 69 1 0.6116388303E+01 0.1490522688E+02 -0.3788644146E-01 + 70 1 0.4888916666E+01 0.1562132809E+02 -0.2206466315E-01 + 71 1 0.7256989023E+01 0.1268229164E+02 -0.9629613150E-01 + 72 1 0.8511008387E+01 0.1338465102E+02 -0.2035429621E-01 + 73 1 0.8537650433E+01 0.1483859955E+02 -0.9029163544E-01 + 74 1 0.7340292254E+01 0.1560581716E+02 -0.1184946395E+00 + 75 1 0.9776071921E+01 0.1273100851E+02 0.1583144891E+00 + 76 1 0.1099319596E+02 0.1346514505E+02 0.9586195713E-01 + 77 1 0.1099846444E+02 0.1488605806E+02 -0.2340514267E-01 + 78 1 0.9764632457E+01 0.1558501126E+02 -0.9136851096E-01 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.1704766378E+02 0.0000000000E+00 + 0.1226788278E+02 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.9999997651E+02 diff --git a/docs/inputs/moleculardynamics/annealV2/dftb_in.hsd b/docs/inputs/moleculardynamics/annealV2/dftb_in.hsd new file mode 100644 index 00000000..5dfa6a69 --- /dev/null +++ b/docs/inputs/moleculardynamics/annealV2/dftb_in.hsd @@ -0,0 +1,83 @@ +Geometry = GenFormat { + <<< 80_V2.gen +} + +Driver = VelocityVerlet { + + TimeStep [Femtosecond] = 2.0 # Using a thermostat, so conserved + # properties of dynamics are less + # important + + Thermostat = Andersen { + + # Probabalistically replaces atomic velocities from a + # Maxwell-Boltzmann distribution + ReselectProbability = 0.2 + ReselectIndividually = Yes + + # Simulated annealing profile for the temperature + Temperature [Kelvin] = TemperatureProfile { + constant 1 100.0 + linear 500 5000.0 + constant 1500 5000.0 + linear 999 100.0 + } + + AdaptFillingTemp = Yes # Adjust electron temperature to match + + } + + Barostat { # Apply presure control + Pressure [Pa] = 1.0E5 + Timescale [ps] = 0.1 + } + + MDRestartFrequency = 10 # Only write output every 10 steps + + OutputPrefix = "geo_end" + +} + +Hamiltonian = DFTB { + + MaxAngularMomentum { + C = "p" + } + + Charge = 0.0 + + Filling = Fermi {} # electronic temperature is controlled by the + # thermostat + + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + + # Gamma point - use more accurate sampling for a realistic calculation + KPointsAndWeights { + 0 0 0 1.0 + } + +} + +Options { + + # specify the rand number generator starting seed: + RandomSeed = 195828608 + + #RandomSeed = 1819633407 # Ejects a C2 molecule + #RandomSeed = 171108352 # Anneals to a different divacancy + #RandomSeed = 1959391743 # Vacancies remain in place and oscillate + #RandomSeed = 0 # Genuinely random seed choice + + WriteDetailedOut = No # suppress writing detailed.out + MullikenAnalysis = No + WriteBandOut = No + +} + +ParserOptions { + ParserVersion = 4 +} diff --git a/docs/moleculardynamics/annealing.rst b/docs/moleculardynamics/annealing.rst new file mode 100644 index 00000000..84406b52 --- /dev/null +++ b/docs/moleculardynamics/annealing.rst @@ -0,0 +1,23 @@ +.. highlight:: none + +******************* +Simulated annealing +******************* + +By heating up a system, and then allowing it to slowly cool, stable minima. + +.. only:: builder_html + + See :download:`the full input + <../inputs/moleculardynamics/annealSW/dftb_in.hsd>` and :download:`geometry + <../inputs/moleculardynamics/annealSW/80_SW.gen>`. + + +The annealing process can be used to find alternative local minina. + +.. only:: builder_html + + See :download:`the full input + <../inputs/moleculardynamics/annealV2/dftb_in.hsd>` and :download:`geometry + <../inputs/moleculardynamics/annealV2/80_V2.gen>`. + diff --git a/docs/moleculardynamics/bornoppenheimer.rst b/docs/moleculardynamics/bornoppenheimer.rst index d3f54b67..59bbeccc 100644 --- a/docs/moleculardynamics/bornoppenheimer.rst +++ b/docs/moleculardynamics/bornoppenheimer.rst @@ -18,5 +18,10 @@ DFTB+ by setting the input geometry driver to be `VelocityVerlet` :: MDRestartFrequency = 100 } -See :download:`the full input <../inputs/moleculardynamics/bomd/dftb_in.hsd>` -and :download:`geometry <../inputs/moleculardynamics/bomd/geom.gen>`. +The velocity Verlet driver should have a time step on the scale of ~10x the +highest vibrational period in the system. 1 fs is a common choice. The + +.. only:: builder_html + + See :download:`the full input <../inputs/moleculardynamics/bomd/dftb_in.hsd>` + and :download:`geometry <../inputs/moleculardynamics/bomd/geom.gen>`. diff --git a/docs/moleculardynamics/index.rst b/docs/moleculardynamics/index.rst index 9fd50571..010c16f0 100644 --- a/docs/moleculardynamics/index.rst +++ b/docs/moleculardynamics/index.rst @@ -9,3 +9,4 @@ Molecular dynamics startinggeometry.rst bornoppenheimer.rst xlbomd.rst + annealing.rst diff --git a/docs/moleculardynamics/introduction.rst b/docs/moleculardynamics/introduction.rst index 919f4cc0..8a34237d 100644 --- a/docs/moleculardynamics/introduction.rst +++ b/docs/moleculardynamics/introduction.rst @@ -4,4 +4,6 @@ Molecular dynamics ****************** -This chapter discusses DFTB+ calculations +This chapter discusses DFTB+ calculations where the (classical) dynamics of the +atoms are simulated in different thermodynamical ensembles and with different +methods of integrating the equations of motion. diff --git a/docs/moleculardynamics/startinggeometry.rst b/docs/moleculardynamics/startinggeometry.rst index a418c4fe..b9a2ec67 100644 --- a/docs/moleculardynamics/startinggeometry.rst +++ b/docs/moleculardynamics/startinggeometry.rst @@ -6,19 +6,25 @@ Preparing for an MD calculation The initial structure for starting a molecular dynamics simulation should usually be structurally relaxed. -See :download:`the full input -<../inputs/moleculardynamics/relaxation/dftb_in.hsd>` +.. only:: builder_html + + See :download:`the full input + <../inputs/moleculardynamics/relaxation/dftb_in.hsd>` + Vibrational modes ================= -See :download:`the full input -<../inputs/moleculardynamics/vibration/dftb_in.hsd>` and the :download:`geometry -<../inputs/moleculardynamics/vibration/geom.gen>` +.. only:: builder_html + + See :download:`the full input + <../inputs/moleculardynamics/vibration/dftb_in.hsd>` and the + :download:`geometry <../inputs/moleculardynamics/vibration/geom.gen>` Calculating the modes ~~~~~~~~~~~~~~~~~~~~~ -See :download:`the modes input -<../inputs/moleculardynamics/vibration/modes_in.hsd>` - +.. only:: builder_html + + See :download:`the modes input + <../inputs/moleculardynamics/vibration/modes_in.hsd>` diff --git a/docs/moleculardynamics/xlbomd.rst b/docs/moleculardynamics/xlbomd.rst index a6057b88..4d3163c4 100644 --- a/docs/moleculardynamics/xlbomd.rst +++ b/docs/moleculardynamics/xlbomd.rst @@ -4,90 +4,10 @@ Speeding up SCC MD ****************** -The input :: +Instead of standard Born-Oppenheimer dynamics - Geometry = GenFormat { - <<< "geom.gen" - } - - Driver = VelocityVerlet{ - TimeStep [fs] = 0.5 - Thermostat = None {} - XlbomdFast { - IntegrationSteps = 5 - Scale = 0.5 # scalekappa (only for fast option with 1 scf cycle) - TransientSteps = 10 - } - Velocities [AA/ps] { - 0.63060001 10.71652407 0.41599521 - -4.78167517 -0.67726160 6.81193886 - 3.98425977 1.00737908 -10.59008962 - -5.00836769 -4.17503533 6.23338156 - -6.98937694 -6.67991962 13.49283670 - 2.60129853 2.94191649 -6.17377828 - 5.45307788 4.06412641 -12.66174802 - -7.65333453 -3.97065257 6.97104050 - -10.13358053 2.65525500 1.71478235 - 2.43208042 7.32942823 4.28579643 - -4.30000399 3.49584166 3.08283261 - 2.24408800 -6.45559687 0.04066731 - -1.94541508 3.92663760 -0.72998677 - 5.60486436 3.94060376 -3.20947636 - 3.53019985 4.56545155 -1.48062150 - 7.81517642 2.25960070 4.82188329 - -0.50193981 -4.94744725 3.06413849 - -0.19059520 4.33561964 2.36256475 - 0.09466765 -0.51960301 5.72471343 - 4.47619173 7.41074772 1.11201016 - 3.27922874 -5.35329287 -2.56702569 - 3.99264878 -8.45260216 -4.11369388 - -1.77619915 -3.53622712 -7.62449802 - 7.38469860 -1.25504906 0.63982263 - -4.58383155 2.77913648 -3.36202315 - 2.57174728 3.16284242 -2.42263621 - -1.51584311 4.83348853 -8.50814642 - 3.19719689 -5.10152266 4.80391910 - -1.82283885 -4.42665140 -0.61092820 - 0.70148376 -13.29987273 5.73299098 - -48.12863500 6.61689320 -3.55300242 - -7.79595968 7.24986202 -7.89475790 - 19.47014048 -24.23046733 -19.62986878 - -22.48734706 8.85056458 5.45198051 - -8.26315843 12.84226567 -16.40492287 - -27.33024406 29.56557052 -25.50583462 - -20.88278228 1.24410318 -14.82956937 - 16.44412954 -1.14851662 13.23381502 - } - Steps = 20000 - MovedAtoms = 1:-1 - } - - - Hamiltonian = DFTB { - ForceEvaluation = Dynamics - SCC = Yes - SCCTolerance = 1e-6 - Filling = Fermi { - Temperature [Kelvin] = 400 - } - SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" - Separator = "-" - Suffix = ".skf" - } - MaxAngularMomentum = { - H = "s" - O = "p" - C = "p" - } - } - - Options = { - RandomSeed = 3871906 - WriteDetailedOut = No - } - - Analysis { - WriteBandOut = No - } +.. only:: builder_html + See :download:`the full input + <../inputs/moleculardynamics/xlbomd/dftb_in.hsd>` and the + :download:`geometry <../inputs/moleculardynamics/xlbomd/geom.gen>` From 501cc0a47951f367de27751c3dd47e490852fed9 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sat, 26 Aug 2017 23:03:18 +0100 Subject: [PATCH 04/14] Added some text to introduce MD examples Also updated the DFTB+ URL. --- docs/introduction.rst | 6 ++-- docs/moleculardynamics/index.rst | 9 ++++++ docs/moleculardynamics/introduction.rst | 34 +++++++++++++++++++-- docs/moleculardynamics/startinggeometry.rst | 9 +++++- docs/moleculardynamics/xlbomd.rst | 7 ++++- 5 files changed, 57 insertions(+), 8 deletions(-) diff --git a/docs/introduction.rst b/docs/introduction.rst index 46c9527d..8de3e415 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -5,9 +5,9 @@ Introduction These worked examples use the quantum mechanical atomistic software DFTB+ which is available from `github `_. Compiled versions of the code are also available from the `DFTB+ website -`_. +`_. These recipes also require the `mio` and `tiorg` Slater-Koster data sets which are available from `dftb.org `_. The conversion scripts -from the `dptools` package, which can be obtained from the `DFTB+ website`_, are -also useful. +from the `dptools` package, which can included with DFTB+ (and can also be +obtained from the `DFTB+ website`_), are also useful. diff --git a/docs/moleculardynamics/index.rst b/docs/moleculardynamics/index.rst index 010c16f0..41f4a284 100644 --- a/docs/moleculardynamics/index.rst +++ b/docs/moleculardynamics/index.rst @@ -2,6 +2,15 @@ Molecular dynamics ################## +This chapter discusses DFTB+ calculations where the (classical) dynamics of the +atoms are simulated in different thermodynamical ensembles and with different +methods of integrating the equations of motion. + +Molecular dynamics can be used to provide information which is not easily +accessible from static simulations. This includes properties such as anharmonic +vibrational modes, the stability of different structures at finite temperatures, +or to explore the range of structural minima the system can adopt. + .. toctree:: :maxdepth: 1 diff --git a/docs/moleculardynamics/introduction.rst b/docs/moleculardynamics/introduction.rst index 8a34237d..2fbc5ae8 100644 --- a/docs/moleculardynamics/introduction.rst +++ b/docs/moleculardynamics/introduction.rst @@ -4,6 +4,34 @@ Molecular dynamics ****************** -This chapter discusses DFTB+ calculations where the (classical) dynamics of the -atoms are simulated in different thermodynamical ensembles and with different -methods of integrating the equations of motion. +Classical molecular dynamics treats the position and motion of the atoms (the +ion cores) as with Newtonian dynamics. Often this is with modifications to +include the effect of contact with a thermal reservoir (NVT) or additionally +treats the system as though it is in a piston that controls the pressure (NPT). + +DFTB+ has several options for basic molecular dynamics, but also can use an +accelerated form of SCC-DFTB which has similar performance properties to non-SCC +for suitable systems. + +The basic method adopted for molecular dynamics in DFTB+ is the Velocity Verlet +integrator (Probably more correctly called the Newton-Stormer-Verlet method, as +its been independently discovered several times). This is an implicit symplectic +integrator, which is good at preserving the total energies in the NVE ensemble +for separable Hamilton systems with energy of the form :math:`H(p, q) = T(p) + +U(q)` where :math:`p` and :math:`q` are conjugate momenta and positions of the +atoms. + +The form of the integrator is an update for the positions at step :math:`n+1`: + +:math:`x_{n+1} = x_n + \tau v_n + \tau^2 F_n / 2 m`, + +followed by evaluation of the forces, :math:`F_{n+1}` at that geometry and then +an update for the atomic velocities: + +:math:`v_{n+1} = v_n + \tau \left[ F_{n+1} + F_{n} \right] / 2 m`. + +The user defined parameter :math:`\tau` controls the accuracy of the +integration, typically this should be chosen to be somewhat shorter than the +fastest vibrational period of the system. For many systems, :math:`\tau \approx +1`fs is reasonably stable, but this should of course be tested for the +particular case you are interested in. diff --git a/docs/moleculardynamics/startinggeometry.rst b/docs/moleculardynamics/startinggeometry.rst index b9a2ec67..67cdb67c 100644 --- a/docs/moleculardynamics/startinggeometry.rst +++ b/docs/moleculardynamics/startinggeometry.rst @@ -4,7 +4,11 @@ Preparing for an MD calculation =============================== The initial structure for starting a molecular dynamics simulation should -usually be structurally relaxed. +usually be structurally relaxed. This is to remove excess potential energy which +would rapidly exchange into kinetic energy. + +The example below relaxes the geometry of a molecule (PTCDA) to a local +miniumum, prior to performing molecular dynamics. .. only:: builder_html @@ -15,6 +19,9 @@ usually be structurally relaxed. Vibrational modes ================= +Once at a structural minimum the quasi-harmonic vibrational modes can be +calculated, for future comparision with the power spectrum of the system. + .. only:: builder_html See :download:`the full input diff --git a/docs/moleculardynamics/xlbomd.rst b/docs/moleculardynamics/xlbomd.rst index 4d3163c4..78983878 100644 --- a/docs/moleculardynamics/xlbomd.rst +++ b/docs/moleculardynamics/xlbomd.rst @@ -4,7 +4,12 @@ Speeding up SCC MD ****************** -Instead of standard Born-Oppenheimer dynamics +Instead of standard Born-Oppenheimer dynamics there are two methods in use to +propogate the atomic positions and electronic structure, either the +Car-Parrinello scheme or extended Lagrangian Born-Oppenheimer dynamics. DFTB+ +supports the second of these methods, which (when stable) produces equivalent +dynamics to conventional Born-Oppenheimer molecular dynamics with similar costs +to non-SCC DFTB. .. only:: builder_html From dae913c5e2e990da7307213e064144cae6774d14 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Fri, 22 Sep 2017 13:20:50 +0200 Subject: [PATCH 05/14] Removed github specific extension from conf.py --- docs/conf.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index c0728f46..cfba0f51 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,8 +32,7 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = ['sphinx.ext.mathjax', - 'sphinx.ext.ifconfig', - 'sphinx.ext.githubpages'] + 'sphinx.ext.ifconfig'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] From aaf7544bf914bceb0ebd6cfc8f421286efe97f2c Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Wed, 27 Sep 2017 23:56:12 +0100 Subject: [PATCH 06/14] Start of new directory structure Moved several download examples to _downloads/ directory structure with prefix by example. --- .../md1.dftb_in.hsd} | 2 +- .../geom.gen => _downloads/md1.geom.gen} | 0 .../md2.dftb_in.hsd} | 2 +- .../geom.gen => _downloads/md2.geom.gen} | 0 .../md2.modes_in.hsd} | 0 .../md3.dftb_in.hsd} | 2 +- .../bomd/geom.gen => _downloads/md3.geom.gen} | 0 .../md4.dftb_in.hsd} | 2 +- .../geom.gen => _downloads/md4.geom.gen} | 0 docs/inputs/moleculardynamics/bomd/run.sh | 5 ---- .../moleculardynamics/relaxation/run.sh | 3 --- .../thermalisation/run_example | 3 --- .../inputs/moleculardynamics/vibration/run.sh | 4 ---- docs/inputs/moleculardynamics/xlbomd/run.sh | 5 ---- docs/moleculardynamics/bornoppenheimer.rst | 24 +++++++++++++++++-- docs/moleculardynamics/introduction.rst | 2 +- docs/moleculardynamics/startinggeometry.rst | 12 ++++------ 17 files changed, 32 insertions(+), 34 deletions(-) rename docs/{inputs/moleculardynamics/relaxation/dftb_in.hsd => _downloads/md1.dftb_in.hsd} (94%) rename docs/{inputs/moleculardynamics/relaxation/geom.gen => _downloads/md1.geom.gen} (100%) rename docs/{inputs/moleculardynamics/vibration/dftb_in.hsd => _downloads/md2.dftb_in.hsd} (94%) rename docs/{inputs/moleculardynamics/vibration/geom.gen => _downloads/md2.geom.gen} (100%) rename docs/{inputs/moleculardynamics/vibration/modes_in.hsd => _downloads/md2.modes_in.hsd} (100%) rename docs/{inputs/moleculardynamics/bomd/dftb_in.hsd => _downloads/md3.dftb_in.hsd} (99%) rename docs/{inputs/moleculardynamics/bomd/geom.gen => _downloads/md3.geom.gen} (100%) rename docs/{inputs/moleculardynamics/thermalisation/dftb_in.hsd => _downloads/md4.dftb_in.hsd} (96%) rename docs/{inputs/moleculardynamics/thermalisation/geom.gen => _downloads/md4.geom.gen} (100%) delete mode 100755 docs/inputs/moleculardynamics/bomd/run.sh delete mode 100755 docs/inputs/moleculardynamics/relaxation/run.sh delete mode 100755 docs/inputs/moleculardynamics/thermalisation/run_example delete mode 100755 docs/inputs/moleculardynamics/vibration/run.sh delete mode 100755 docs/inputs/moleculardynamics/xlbomd/run.sh diff --git a/docs/inputs/moleculardynamics/relaxation/dftb_in.hsd b/docs/_downloads/md1.dftb_in.hsd similarity index 94% rename from docs/inputs/moleculardynamics/relaxation/dftb_in.hsd rename to docs/_downloads/md1.dftb_in.hsd index 52314d72..1808065a 100644 --- a/docs/inputs/moleculardynamics/relaxation/dftb_in.hsd +++ b/docs/_downloads/md1.dftb_in.hsd @@ -1,5 +1,5 @@ Geometry = GenFormat { - <<< "geom.gen" + <<< "md1.geom.gen" } Driver = ConjugateGradient { diff --git a/docs/inputs/moleculardynamics/relaxation/geom.gen b/docs/_downloads/md1.geom.gen similarity index 100% rename from docs/inputs/moleculardynamics/relaxation/geom.gen rename to docs/_downloads/md1.geom.gen diff --git a/docs/inputs/moleculardynamics/vibration/dftb_in.hsd b/docs/_downloads/md2.dftb_in.hsd similarity index 94% rename from docs/inputs/moleculardynamics/vibration/dftb_in.hsd rename to docs/_downloads/md2.dftb_in.hsd index 5f928bd1..90d2cc5b 100644 --- a/docs/inputs/moleculardynamics/vibration/dftb_in.hsd +++ b/docs/_downloads/md2.dftb_in.hsd @@ -1,5 +1,5 @@ Geometry = GenFormat { - <<< "geom.gen" + <<< "md2.geom.gen" } Driver = SecondDerivatives { diff --git a/docs/inputs/moleculardynamics/vibration/geom.gen b/docs/_downloads/md2.geom.gen similarity index 100% rename from docs/inputs/moleculardynamics/vibration/geom.gen rename to docs/_downloads/md2.geom.gen diff --git a/docs/inputs/moleculardynamics/vibration/modes_in.hsd b/docs/_downloads/md2.modes_in.hsd similarity index 100% rename from docs/inputs/moleculardynamics/vibration/modes_in.hsd rename to docs/_downloads/md2.modes_in.hsd diff --git a/docs/inputs/moleculardynamics/bomd/dftb_in.hsd b/docs/_downloads/md3.dftb_in.hsd similarity index 99% rename from docs/inputs/moleculardynamics/bomd/dftb_in.hsd rename to docs/_downloads/md3.dftb_in.hsd index d46a9757..52121118 100644 --- a/docs/inputs/moleculardynamics/bomd/dftb_in.hsd +++ b/docs/_downloads/md3.dftb_in.hsd @@ -1,5 +1,5 @@ Geometry = GenFormat { - <<< "geom.gen" + <<< "md3.geom.gen" } Driver = VelocityVerlet{ diff --git a/docs/inputs/moleculardynamics/bomd/geom.gen b/docs/_downloads/md3.geom.gen similarity index 100% rename from docs/inputs/moleculardynamics/bomd/geom.gen rename to docs/_downloads/md3.geom.gen diff --git a/docs/inputs/moleculardynamics/thermalisation/dftb_in.hsd b/docs/_downloads/md4.dftb_in.hsd similarity index 96% rename from docs/inputs/moleculardynamics/thermalisation/dftb_in.hsd rename to docs/_downloads/md4.dftb_in.hsd index 8cd27221..be2a6cb7 100644 --- a/docs/inputs/moleculardynamics/thermalisation/dftb_in.hsd +++ b/docs/_downloads/md4.dftb_in.hsd @@ -1,5 +1,5 @@ Geometry = GenFormat { - <<< "geom.gen" + <<< "md4.geom.gen" } Driver = VelocityVerlet{ diff --git a/docs/inputs/moleculardynamics/thermalisation/geom.gen b/docs/_downloads/md4.geom.gen similarity index 100% rename from docs/inputs/moleculardynamics/thermalisation/geom.gen rename to docs/_downloads/md4.geom.gen diff --git a/docs/inputs/moleculardynamics/bomd/run.sh b/docs/inputs/moleculardynamics/bomd/run.sh deleted file mode 100755 index f47f5e09..00000000 --- a/docs/inputs/moleculardynamics/bomd/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -(time dftb+) >& output -cat md.out | awk '/Total MD Energy/ { print $4 }' > energies.dat -velo_autocorr geo_end.xyz bomd 0 20000 10000 0.5e-3 diff --git a/docs/inputs/moleculardynamics/relaxation/run.sh b/docs/inputs/moleculardynamics/relaxation/run.sh deleted file mode 100755 index e7c486d0..00000000 --- a/docs/inputs/moleculardynamics/relaxation/run.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -dftb+ > output diff --git a/docs/inputs/moleculardynamics/thermalisation/run_example b/docs/inputs/moleculardynamics/thermalisation/run_example deleted file mode 100755 index 4ef8fd8a..00000000 --- a/docs/inputs/moleculardynamics/thermalisation/run_example +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -(time dftb+xlbomd) >& output diff --git a/docs/inputs/moleculardynamics/vibration/run.sh b/docs/inputs/moleculardynamics/vibration/run.sh deleted file mode 100755 index b3de3395..00000000 --- a/docs/inputs/moleculardynamics/vibration/run.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -(time dftb+) >& output.dftb+ -(time modes) &> output.modes diff --git a/docs/inputs/moleculardynamics/xlbomd/run.sh b/docs/inputs/moleculardynamics/xlbomd/run.sh deleted file mode 100755 index ad346ccc..00000000 --- a/docs/inputs/moleculardynamics/xlbomd/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -(time dftb+) >& output -cat md.out | awk '/Total MD Energy/ { print $4 }' > energies.dat -velo_autocorr geo_end.xyz xlbomd 0 20000 10000 0.5e-3 diff --git a/docs/moleculardynamics/bornoppenheimer.rst b/docs/moleculardynamics/bornoppenheimer.rst index 59bbeccc..046ebaff 100644 --- a/docs/moleculardynamics/bornoppenheimer.rst +++ b/docs/moleculardynamics/bornoppenheimer.rst @@ -23,5 +23,25 @@ highest vibrational period in the system. 1 fs is a common choice. The .. only:: builder_html - See :download:`the full input <../inputs/moleculardynamics/bomd/dftb_in.hsd>` - and :download:`geometry <../inputs/moleculardynamics/bomd/geom.gen>`. + See :download:`the full input <../_downloads/md3.dftb_in.hsd>` + and :download:`geometry <../_downloads/md3.geom.gen>`. + +The input file specifies initial velocities of the atoms :: + + Velocities [AA/ps] { + 0.63060001 10.71652407 0.41599521 + -4.78167517 -0.67726160 6.81193886 + . + . + } + +The initial velocities can be user suplied, however it is more common to +generate them by thermalising the system starting from an initial +Maxwell-Boltzmann distribution of atomic velocities. These can be generated for +example by using the following input + +.. only:: builder_html + + See :download:`the full input <../_downloads/md4.dftb_in.hsd>` + and :download:`geometry <../_downloads/md4.geom.gen>`. + diff --git a/docs/moleculardynamics/introduction.rst b/docs/moleculardynamics/introduction.rst index 2fbc5ae8..a12adb57 100644 --- a/docs/moleculardynamics/introduction.rst +++ b/docs/moleculardynamics/introduction.rst @@ -33,5 +33,5 @@ an update for the atomic velocities: The user defined parameter :math:`\tau` controls the accuracy of the integration, typically this should be chosen to be somewhat shorter than the fastest vibrational period of the system. For many systems, :math:`\tau \approx -1`fs is reasonably stable, but this should of course be tested for the +1` fs is reasonably stable, but this should of course be tested for the particular case you are interested in. diff --git a/docs/moleculardynamics/startinggeometry.rst b/docs/moleculardynamics/startinggeometry.rst index 67cdb67c..ffd7cf81 100644 --- a/docs/moleculardynamics/startinggeometry.rst +++ b/docs/moleculardynamics/startinggeometry.rst @@ -12,8 +12,8 @@ miniumum, prior to performing molecular dynamics. .. only:: builder_html - See :download:`the full input - <../inputs/moleculardynamics/relaxation/dftb_in.hsd>` + See :download:`the full input <../_downloads/md1.dftb_in.hsd>` and the + initial :download:`starting geometry <../_downloads/md1.geom.gen>` Vibrational modes @@ -24,14 +24,12 @@ calculated, for future comparision with the power spectrum of the system. .. only:: builder_html - See :download:`the full input - <../inputs/moleculardynamics/vibration/dftb_in.hsd>` and the - :download:`geometry <../inputs/moleculardynamics/vibration/geom.gen>` + See :download:`the full input <../_downloads/md2.dftb_in.hsd>` and the + geometry :download:`geometry <../_downloads/md2.geom.gen>` Calculating the modes ~~~~~~~~~~~~~~~~~~~~~ .. only:: builder_html - See :download:`the modes input - <../inputs/moleculardynamics/vibration/modes_in.hsd>` + See :download:`the modes input <../_downloads/md2.modes_in.hsd>` From b61c0fc80c0116a1fa3fb005a5a46928e2004eba Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Fri, 29 Sep 2017 11:59:04 +0100 Subject: [PATCH 07/14] Moved geometries inside dftb_in.hsd where sensible --- docs/_downloads/md1.dftb_in.hsd | 41 ++++++++- docs/_downloads/md1.geom.gen | 40 --------- docs/_downloads/md2.modes_in.hsd | 2 +- docs/_downloads/md3.dftb_in.hsd | 41 ++++++++- docs/_downloads/md4.dftb_in.hsd | 41 ++++++++- docs/_downloads/md4.geom.gen | 40 --------- .../{md3.geom.gen => md5.dftb_in.hsd} | 83 ++++++++++++++++++ .../moleculardynamics/xlbomd/dftb_in.hsd | 84 ------------------- docs/inputs/moleculardynamics/xlbomd/geom.gen | 40 --------- docs/moleculardynamics/bornoppenheimer.rst | 2 - docs/moleculardynamics/startinggeometry.rst | 14 ++-- docs/moleculardynamics/xlbomd.rst | 5 +- 12 files changed, 214 insertions(+), 219 deletions(-) delete mode 100644 docs/_downloads/md1.geom.gen delete mode 100644 docs/_downloads/md4.geom.gen rename docs/_downloads/{md3.geom.gen => md5.dftb_in.hsd} (50%) delete mode 100644 docs/inputs/moleculardynamics/xlbomd/dftb_in.hsd delete mode 100644 docs/inputs/moleculardynamics/xlbomd/geom.gen diff --git a/docs/_downloads/md1.dftb_in.hsd b/docs/_downloads/md1.dftb_in.hsd index 1808065a..bc559d22 100644 --- a/docs/_downloads/md1.dftb_in.hsd +++ b/docs/_downloads/md1.dftb_in.hsd @@ -1,5 +1,44 @@ Geometry = GenFormat { - <<< "md1.geom.gen" + 38 C + C O H + 1 1 0.4485719496E-01 0.2529623858E+01 -0.1287530736E+00 + 2 1 0.2160903532E+01 0.1199359883E+01 -0.1307042047E+00 + 3 1 -0.7325456222E+00 0.1292979269E+01 -0.1301778661E+00 + 4 1 0.1383502953E+01 -0.3728647749E-01 -0.1295729704E+00 + 5 1 0.1473328052E+01 0.2453790390E+01 -0.1289531807E+00 + 6 1 -0.4496781946E-01 0.3854802542E-01 -0.1291901460E+00 + 7 1 -0.5677929769E+00 0.3790635665E+01 -0.1248229048E+00 + 8 1 0.3562857898E+01 0.1194043241E+01 -0.1318524150E+00 + 9 1 -0.2134502349E+01 0.1298299334E+01 -0.1309283026E+00 + 10 1 0.1996150407E+01 -0.1298302260E+01 -0.1265498546E+00 + 11 1 0.2232906955E+01 0.3662033295E+01 -0.1259226734E+00 + 12 1 -0.8045495749E+00 -0.1169696800E+01 -0.1263756962E+00 + 13 1 0.1859630897E+00 0.4971654380E+01 -0.1228331187E+00 + 14 1 0.4300416964E+01 0.2385268435E+01 -0.1273967573E+00 + 15 1 -0.2872062541E+01 0.1070735371E+00 -0.1266754882E+00 + 16 1 0.1242394418E+01 -0.2479319101E+01 -0.1247576139E+00 + 17 1 0.1578607843E+01 0.4923866165E+01 -0.1238202854E+00 + 18 1 0.3653652547E+01 0.3619558243E+01 -0.1232430942E+00 + 19 1 -0.2225295599E+01 -0.1127219428E+01 -0.1231329226E+00 + 20 1 -0.1502503162E+00 -0.2431529876E+01 -0.1250927103E+00 + 21 1 0.2350655684E+01 0.6184372045E+01 -0.1239343840E+00 + 22 1 0.4454792609E+01 0.4861821160E+01 -0.1118379240E+00 + 23 1 -0.3026435401E+01 -0.2369487126E+01 -0.1117993874E+00 + 24 1 -0.9223038579E+00 -0.3692029959E+01 -0.1253637560E+00 + 25 2 0.3769912330E+01 0.6107000356E+01 -0.1150483597E+00 + 26 2 -0.2341557018E+01 -0.3614661289E+01 -0.1158141247E+00 + 27 2 0.1850216589E+01 0.7285137481E+01 -0.1306141053E+00 + 28 2 0.5663651058E+01 0.4887898897E+01 -0.9865621234E-01 + 29 2 -0.4235287726E+01 -0.2395564818E+01 -0.9800715936E-01 + 30 2 -0.4218704008E+00 -0.4792793238E+01 -0.1326873798E+00 + 31 3 -0.1661774774E+01 0.3873317599E+01 -0.1233692264E+00 + 32 3 0.4111632616E+01 0.2440351523E+00 -0.1351750613E+00 + 33 3 -0.2683274337E+01 0.2248311170E+01 -0.1338062135E+00 + 34 3 0.3090129354E+01 -0.1380982434E+01 -0.1256352693E+00 + 35 3 -0.3138624134E+00 0.5949655663E+01 -0.1199853822E+00 + 36 3 0.5398476662E+01 0.2358688133E+01 -0.1265537277E+00 + 37 3 -0.3970124865E+01 0.1336558441E+00 -0.1254926383E+00 + 38 3 0.1742211893E+01 -0.3457319437E+01 -0.1226020479E+00 } Driver = ConjugateGradient { diff --git a/docs/_downloads/md1.geom.gen b/docs/_downloads/md1.geom.gen deleted file mode 100644 index 4175e55e..00000000 --- a/docs/_downloads/md1.geom.gen +++ /dev/null @@ -1,40 +0,0 @@ - 38 C - C O H - 1 1 0.4485719496E-01 0.2529623858E+01 -0.1287530736E+00 - 2 1 0.2160903532E+01 0.1199359883E+01 -0.1307042047E+00 - 3 1 -0.7325456222E+00 0.1292979269E+01 -0.1301778661E+00 - 4 1 0.1383502953E+01 -0.3728647749E-01 -0.1295729704E+00 - 5 1 0.1473328052E+01 0.2453790390E+01 -0.1289531807E+00 - 6 1 -0.4496781946E-01 0.3854802542E-01 -0.1291901460E+00 - 7 1 -0.5677929769E+00 0.3790635665E+01 -0.1248229048E+00 - 8 1 0.3562857898E+01 0.1194043241E+01 -0.1318524150E+00 - 9 1 -0.2134502349E+01 0.1298299334E+01 -0.1309283026E+00 - 10 1 0.1996150407E+01 -0.1298302260E+01 -0.1265498546E+00 - 11 1 0.2232906955E+01 0.3662033295E+01 -0.1259226734E+00 - 12 1 -0.8045495749E+00 -0.1169696800E+01 -0.1263756962E+00 - 13 1 0.1859630897E+00 0.4971654380E+01 -0.1228331187E+00 - 14 1 0.4300416964E+01 0.2385268435E+01 -0.1273967573E+00 - 15 1 -0.2872062541E+01 0.1070735371E+00 -0.1266754882E+00 - 16 1 0.1242394418E+01 -0.2479319101E+01 -0.1247576139E+00 - 17 1 0.1578607843E+01 0.4923866165E+01 -0.1238202854E+00 - 18 1 0.3653652547E+01 0.3619558243E+01 -0.1232430942E+00 - 19 1 -0.2225295599E+01 -0.1127219428E+01 -0.1231329226E+00 - 20 1 -0.1502503162E+00 -0.2431529876E+01 -0.1250927103E+00 - 21 1 0.2350655684E+01 0.6184372045E+01 -0.1239343840E+00 - 22 1 0.4454792609E+01 0.4861821160E+01 -0.1118379240E+00 - 23 1 -0.3026435401E+01 -0.2369487126E+01 -0.1117993874E+00 - 24 1 -0.9223038579E+00 -0.3692029959E+01 -0.1253637560E+00 - 25 2 0.3769912330E+01 0.6107000356E+01 -0.1150483597E+00 - 26 2 -0.2341557018E+01 -0.3614661289E+01 -0.1158141247E+00 - 27 2 0.1850216589E+01 0.7285137481E+01 -0.1306141053E+00 - 28 2 0.5663651058E+01 0.4887898897E+01 -0.9865621234E-01 - 29 2 -0.4235287726E+01 -0.2395564818E+01 -0.9800715936E-01 - 30 2 -0.4218704008E+00 -0.4792793238E+01 -0.1326873798E+00 - 31 3 -0.1661774774E+01 0.3873317599E+01 -0.1233692264E+00 - 32 3 0.4111632616E+01 0.2440351523E+00 -0.1351750613E+00 - 33 3 -0.2683274337E+01 0.2248311170E+01 -0.1338062135E+00 - 34 3 0.3090129354E+01 -0.1380982434E+01 -0.1256352693E+00 - 35 3 -0.3138624134E+00 0.5949655663E+01 -0.1199853822E+00 - 36 3 0.5398476662E+01 0.2358688133E+01 -0.1265537277E+00 - 37 3 -0.3970124865E+01 0.1336558441E+00 -0.1254926383E+00 - 38 3 0.1742211893E+01 -0.3457319437E+01 -0.1226020479E+00 diff --git a/docs/_downloads/md2.modes_in.hsd b/docs/_downloads/md2.modes_in.hsd index a2932bbf..bb6c2a79 100644 --- a/docs/_downloads/md2.modes_in.hsd +++ b/docs/_downloads/md2.modes_in.hsd @@ -1,6 +1,6 @@ # Neededs the equilibrium geometry, at which the Hessian had been calculated Geometry = GenFormat { - <<< geom.gen + <<< md2.geom.gen } DisplayModes = { diff --git a/docs/_downloads/md3.dftb_in.hsd b/docs/_downloads/md3.dftb_in.hsd index 52121118..cdf865d5 100644 --- a/docs/_downloads/md3.dftb_in.hsd +++ b/docs/_downloads/md3.dftb_in.hsd @@ -1,5 +1,44 @@ Geometry = GenFormat { - <<< "md3.geom.gen" +38 C +C O H + 1 1 -3.2103390000E-01 6.4976606000E-01 6.1134966000E-01 + 2 1 9.6328881000E-01 2.6810143600E+00 2.4672770000E-02 + 3 1 3.7008025000E-01 -1.9148818000E-01 -3.4608252000E-01 + 4 1 1.7062543300E+00 1.8667277800E+00 -9.7432192000E-01 + 5 1 -4.6635000000E-04 2.0405072500E+00 8.3279825000E-01 + 6 1 1.3552255700E+00 4.6696619000E-01 -1.1164276800E+00 + 7 1 -1.2084626700E+00 3.5055440000E-02 1.4611567900E+00 + 8 1 1.2838829500E+00 4.0436668700E+00 2.3580619000E-01 + 9 1 1.7368624000E-01 -1.5974433500E+00 -5.6605157000E-01 + 10 1 2.7167114800E+00 2.5171334100E+00 -1.7385943600E+00 + 11 1 -6.7994802000E-01 2.7815041000E+00 1.8784723000E+00 + 12 1 2.1407047300E+00 -2.9303542000E-01 -2.0652228400E+00 + 13 1 -1.9292987000E+00 7.5069414000E-01 2.4361290700E+00 + 14 1 6.4765831000E-01 4.7324463100E+00 1.2977432600E+00 + 15 1 8.3835424000E-01 -2.2447042900E+00 -1.5758687500E+00 + 16 1 3.4495481300E+00 1.6997917600E+00 -2.6509048200E+00 + 17 1 -1.6506211100E+00 2.1200052600E+00 2.7154073500E+00 + 18 1 -3.6777644000E-01 4.1391518900E+00 2.0732747000E+00 + 19 1 1.9139484800E+00 -1.6634948600E+00 -2.2349815200E+00 + 20 1 3.1011552300E+00 3.5961796000E-01 -2.8927181400E+00 + 21 1 -2.4832568600E+00 2.8190296100E+00 3.7147392800E+00 + 22 1 -1.0551337700E+00 4.8836022000E+00 3.2217757000E+00 + 23 1 2.5647743600E+00 -2.3565660000E+00 -3.3888315300E+00 + 24 1 3.8672443600E+00 -3.7443306000E-01 -3.9283627100E+00 + 25 2 -2.2570870700E+00 4.2401457300E+00 3.7669234400E+00 + 26 2 3.5670952200E+00 -1.7034416800E+00 -4.2202391900E+00 + 27 2 -3.4531757200E+00 2.3849873100E+00 4.3012718900E+00 + 28 2 -8.5119925000E-01 5.9864947800E+00 3.6250608000E+00 + 29 2 2.2689106300E+00 -3.4863053800E+00 -3.6642365400E+00 + 30 2 4.8047915300E+00 1.0340452000E-01 -4.5201062700E+00 + 31 3 -1.3310748400E+00 -1.0903765300E+00 1.3043519700E+00 + 32 3 2.0065768900E+00 4.5267732800E+00 -4.6496078000E-01 + 33 3 -7.6392979000E-01 -2.1566928200E+00 -3.6773373000E-01 + 34 3 2.8953294300E+00 3.6457328500E+00 -1.6719959800E+00 + 35 3 -2.6358745700E+00 2.0275311000E-01 3.0872061600E+00 + 36 3 1.0561540100E+00 5.6545207000E+00 1.6511110400E+00 + 37 3 4.3113722000E-01 -3.2352289900E+00 -1.8495723100E+00 + 38 3 4.2695602000E+00 2.1622890000E+00 -3.2672901100E+00 } Driver = VelocityVerlet{ diff --git a/docs/_downloads/md4.dftb_in.hsd b/docs/_downloads/md4.dftb_in.hsd index be2a6cb7..3ca137a8 100644 --- a/docs/_downloads/md4.dftb_in.hsd +++ b/docs/_downloads/md4.dftb_in.hsd @@ -1,5 +1,44 @@ Geometry = GenFormat { - <<< "md4.geom.gen" + 38 C + C O H + 1 1 0.4469595035E-01 0.2529558175E+01 -0.1237983814E+00 + 2 1 0.2160942367E+01 0.1199476067E+01 -0.1241863960E+00 + 3 1 -0.7325846755E+00 0.1292868801E+01 -0.1236191448E+00 + 4 1 0.1383660048E+01 -0.3721159847E-01 -0.1245940646E+00 + 5 1 0.1473213839E+01 0.2453846794E+01 -0.1239594138E+00 + 6 1 -0.4486165248E-01 0.3849069978E-01 -0.1241845107E+00 + 7 1 -0.5681235339E+00 0.3790420463E+01 -0.1238335077E+00 + 8 1 0.3562827209E+01 0.1194100677E+01 -0.1240699930E+00 + 9 1 -0.2134470588E+01 0.1298235821E+01 -0.1229465921E+00 + 10 1 0.1996477554E+01 -0.1298074482E+01 -0.1254392990E+00 + 11 1 0.2232605606E+01 0.3662075036E+01 -0.1239434906E+00 + 12 1 -0.8042555395E+00 -0.1169736431E+01 -0.1243904196E+00 + 13 1 0.1856181398E+00 0.4971522637E+01 -0.1239750438E+00 + 14 1 0.4300246847E+01 0.2385469320E+01 -0.1238324738E+00 + 15 1 -0.2871888043E+01 0.1068668396E+00 -0.1229598052E+00 + 16 1 0.1242735371E+01 -0.2479187349E+01 -0.1257654891E+00 + 17 1 0.1578233909E+01 0.4923857382E+01 -0.1239599285E+00 + 18 1 0.3653345610E+01 0.3619652513E+01 -0.1238582784E+00 + 19 1 -0.2224990843E+01 -0.1127314702E+01 -0.1237430184E+00 + 20 1 -0.1498864530E+00 -0.2431525092E+01 -0.1251961717E+00 + 21 1 0.2350236805E+01 0.6184385522E+01 -0.1239787480E+00 + 22 1 0.4454367135E+01 0.4861944104E+01 -0.1236643894E+00 + 23 1 -0.3026008875E+01 -0.2369611293E+01 -0.1237583478E+00 + 24 1 -0.9218838642E+00 -0.3692048664E+01 -0.1254536167E+00 + 25 2 0.3769269472E+01 0.6107088122E+01 -0.1239691046E+00 + 26 2 -0.2340906938E+01 -0.3614741316E+01 -0.1248378403E+00 + 27 2 0.1849773806E+01 0.7285130323E+01 -0.1240351365E+00 + 28 2 0.5663236278E+01 0.4888445899E+01 -0.1232448070E+00 + 29 2 -0.4234882059E+01 -0.2396107594E+01 -0.1229176670E+00 + 30 2 -0.4214130966E+00 -0.4792789273E+01 -0.1261667627E+00 + 31 3 -0.1662088874E+01 0.3872936652E+01 -0.1238316668E+00 + 32 3 0.4111616566E+01 0.2441351018E+00 -0.1241527155E+00 + 33 3 -0.2683260102E+01 0.2248201954E+01 -0.1224310526E+00 + 34 3 0.3090453545E+01 -0.1380596619E+01 -0.1258899643E+00 + 35 3 -0.3140779633E+00 0.5949512591E+01 -0.1240082215E+00 + 36 3 0.5398173612E+01 0.2359333320E+01 -0.1237163677E+00 + 37 3 -0.3969820095E+01 0.1330032447E+00 -0.1223975560E+00 + 38 3 0.1742436584E+01 -0.3457178671E+01 -0.1264282512E+00 } Driver = VelocityVerlet{ diff --git a/docs/_downloads/md4.geom.gen b/docs/_downloads/md4.geom.gen deleted file mode 100644 index 1ab52787..00000000 --- a/docs/_downloads/md4.geom.gen +++ /dev/null @@ -1,40 +0,0 @@ - 38 C - C O H - 1 1 0.4469595035E-01 0.2529558175E+01 -0.1237983814E+00 - 2 1 0.2160942367E+01 0.1199476067E+01 -0.1241863960E+00 - 3 1 -0.7325846755E+00 0.1292868801E+01 -0.1236191448E+00 - 4 1 0.1383660048E+01 -0.3721159847E-01 -0.1245940646E+00 - 5 1 0.1473213839E+01 0.2453846794E+01 -0.1239594138E+00 - 6 1 -0.4486165248E-01 0.3849069978E-01 -0.1241845107E+00 - 7 1 -0.5681235339E+00 0.3790420463E+01 -0.1238335077E+00 - 8 1 0.3562827209E+01 0.1194100677E+01 -0.1240699930E+00 - 9 1 -0.2134470588E+01 0.1298235821E+01 -0.1229465921E+00 - 10 1 0.1996477554E+01 -0.1298074482E+01 -0.1254392990E+00 - 11 1 0.2232605606E+01 0.3662075036E+01 -0.1239434906E+00 - 12 1 -0.8042555395E+00 -0.1169736431E+01 -0.1243904196E+00 - 13 1 0.1856181398E+00 0.4971522637E+01 -0.1239750438E+00 - 14 1 0.4300246847E+01 0.2385469320E+01 -0.1238324738E+00 - 15 1 -0.2871888043E+01 0.1068668396E+00 -0.1229598052E+00 - 16 1 0.1242735371E+01 -0.2479187349E+01 -0.1257654891E+00 - 17 1 0.1578233909E+01 0.4923857382E+01 -0.1239599285E+00 - 18 1 0.3653345610E+01 0.3619652513E+01 -0.1238582784E+00 - 19 1 -0.2224990843E+01 -0.1127314702E+01 -0.1237430184E+00 - 20 1 -0.1498864530E+00 -0.2431525092E+01 -0.1251961717E+00 - 21 1 0.2350236805E+01 0.6184385522E+01 -0.1239787480E+00 - 22 1 0.4454367135E+01 0.4861944104E+01 -0.1236643894E+00 - 23 1 -0.3026008875E+01 -0.2369611293E+01 -0.1237583478E+00 - 24 1 -0.9218838642E+00 -0.3692048664E+01 -0.1254536167E+00 - 25 2 0.3769269472E+01 0.6107088122E+01 -0.1239691046E+00 - 26 2 -0.2340906938E+01 -0.3614741316E+01 -0.1248378403E+00 - 27 2 0.1849773806E+01 0.7285130323E+01 -0.1240351365E+00 - 28 2 0.5663236278E+01 0.4888445899E+01 -0.1232448070E+00 - 29 2 -0.4234882059E+01 -0.2396107594E+01 -0.1229176670E+00 - 30 2 -0.4214130966E+00 -0.4792789273E+01 -0.1261667627E+00 - 31 3 -0.1662088874E+01 0.3872936652E+01 -0.1238316668E+00 - 32 3 0.4111616566E+01 0.2441351018E+00 -0.1241527155E+00 - 33 3 -0.2683260102E+01 0.2248201954E+01 -0.1224310526E+00 - 34 3 0.3090453545E+01 -0.1380596619E+01 -0.1258899643E+00 - 35 3 -0.3140779633E+00 0.5949512591E+01 -0.1240082215E+00 - 36 3 0.5398173612E+01 0.2359333320E+01 -0.1237163677E+00 - 37 3 -0.3969820095E+01 0.1330032447E+00 -0.1223975560E+00 - 38 3 0.1742436584E+01 -0.3457178671E+01 -0.1264282512E+00 diff --git a/docs/_downloads/md3.geom.gen b/docs/_downloads/md5.dftb_in.hsd similarity index 50% rename from docs/_downloads/md3.geom.gen rename to docs/_downloads/md5.dftb_in.hsd index 03a822df..c5103a67 100644 --- a/docs/_downloads/md3.geom.gen +++ b/docs/_downloads/md5.dftb_in.hsd @@ -1,3 +1,4 @@ +Geometry = GenFormat { 38 C C O H 1 1 -3.2103390000E-01 6.4976606000E-01 6.1134966000E-01 @@ -38,3 +39,85 @@ C O H 36 3 1.0561540100E+00 5.6545207000E+00 1.6511110400E+00 37 3 4.3113722000E-01 -3.2352289900E+00 -1.8495723100E+00 38 3 4.2695602000E+00 2.1622890000E+00 -3.2672901100E+00 +} + +Driver = VelocityVerlet{ + TimeStep [fs] = 0.5 + Thermostat = None {} + XlbomdFast { + IntegrationSteps = 5 + Scale = 0.5 # scalekappa (only for fast option with 1 scf cycle) + TransientSteps = 10 + } + Velocities [AA/ps] { + 0.63060001 10.71652407 0.41599521 + -4.78167517 -0.67726160 6.81193886 + 3.98425977 1.00737908 -10.59008962 + -5.00836769 -4.17503533 6.23338156 + -6.98937694 -6.67991962 13.49283670 + 2.60129853 2.94191649 -6.17377828 + 5.45307788 4.06412641 -12.66174802 + -7.65333453 -3.97065257 6.97104050 + -10.13358053 2.65525500 1.71478235 + 2.43208042 7.32942823 4.28579643 + -4.30000399 3.49584166 3.08283261 + 2.24408800 -6.45559687 0.04066731 + -1.94541508 3.92663760 -0.72998677 + 5.60486436 3.94060376 -3.20947636 + 3.53019985 4.56545155 -1.48062150 + 7.81517642 2.25960070 4.82188329 + -0.50193981 -4.94744725 3.06413849 + -0.19059520 4.33561964 2.36256475 + 0.09466765 -0.51960301 5.72471343 + 4.47619173 7.41074772 1.11201016 + 3.27922874 -5.35329287 -2.56702569 + 3.99264878 -8.45260216 -4.11369388 + -1.77619915 -3.53622712 -7.62449802 + 7.38469860 -1.25504906 0.63982263 + -4.58383155 2.77913648 -3.36202315 + 2.57174728 3.16284242 -2.42263621 + -1.51584311 4.83348853 -8.50814642 + 3.19719689 -5.10152266 4.80391910 + -1.82283885 -4.42665140 -0.61092820 + 0.70148376 -13.29987273 5.73299098 + -48.12863500 6.61689320 -3.55300242 + -7.79595968 7.24986202 -7.89475790 + 19.47014048 -24.23046733 -19.62986878 + -22.48734706 8.85056458 5.45198051 + -8.26315843 12.84226567 -16.40492287 + -27.33024406 29.56557052 -25.50583462 + -20.88278228 1.24410318 -14.82956937 + 16.44412954 -1.14851662 13.23381502 + } + Steps = 20000 + MovedAtoms = 1:-1 +} + + +Hamiltonian = DFTB { + ForceEvaluation = Dynamics + SCC = Yes + SCCTolerance = 1e-6 + Filling = Fermi { + Temperature [Kelvin] = 400 + } + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slako/" + Separator = "-" + Suffix = ".skf" + } + MaxAngularMomentum = { + H = "s" + O = "p" + C = "p" + } +} + +Options = { + RandomSeed = 3871906 + WriteDetailedOut = No +} + +Analysis { + WriteBandOut = No +} diff --git a/docs/inputs/moleculardynamics/xlbomd/dftb_in.hsd b/docs/inputs/moleculardynamics/xlbomd/dftb_in.hsd deleted file mode 100644 index 3672a2be..00000000 --- a/docs/inputs/moleculardynamics/xlbomd/dftb_in.hsd +++ /dev/null @@ -1,84 +0,0 @@ -Geometry = GenFormat { - <<< "geom.gen" -} - -Driver = VelocityVerlet{ - TimeStep [fs] = 0.5 - Thermostat = None {} - XlbomdFast { - IntegrationSteps = 5 - Scale = 0.5 # scalekappa (only for fast option with 1 scf cycle) - TransientSteps = 10 - } - Velocities [AA/ps] { - 0.63060001 10.71652407 0.41599521 - -4.78167517 -0.67726160 6.81193886 - 3.98425977 1.00737908 -10.59008962 - -5.00836769 -4.17503533 6.23338156 - -6.98937694 -6.67991962 13.49283670 - 2.60129853 2.94191649 -6.17377828 - 5.45307788 4.06412641 -12.66174802 - -7.65333453 -3.97065257 6.97104050 - -10.13358053 2.65525500 1.71478235 - 2.43208042 7.32942823 4.28579643 - -4.30000399 3.49584166 3.08283261 - 2.24408800 -6.45559687 0.04066731 - -1.94541508 3.92663760 -0.72998677 - 5.60486436 3.94060376 -3.20947636 - 3.53019985 4.56545155 -1.48062150 - 7.81517642 2.25960070 4.82188329 - -0.50193981 -4.94744725 3.06413849 - -0.19059520 4.33561964 2.36256475 - 0.09466765 -0.51960301 5.72471343 - 4.47619173 7.41074772 1.11201016 - 3.27922874 -5.35329287 -2.56702569 - 3.99264878 -8.45260216 -4.11369388 - -1.77619915 -3.53622712 -7.62449802 - 7.38469860 -1.25504906 0.63982263 - -4.58383155 2.77913648 -3.36202315 - 2.57174728 3.16284242 -2.42263621 - -1.51584311 4.83348853 -8.50814642 - 3.19719689 -5.10152266 4.80391910 - -1.82283885 -4.42665140 -0.61092820 - 0.70148376 -13.29987273 5.73299098 - -48.12863500 6.61689320 -3.55300242 - -7.79595968 7.24986202 -7.89475790 - 19.47014048 -24.23046733 -19.62986878 - -22.48734706 8.85056458 5.45198051 - -8.26315843 12.84226567 -16.40492287 - -27.33024406 29.56557052 -25.50583462 - -20.88278228 1.24410318 -14.82956937 - 16.44412954 -1.14851662 13.23381502 - } - Steps = 20000 - MovedAtoms = 1:-1 -} - - -Hamiltonian = DFTB { - ForceEvaluation = Dynamics - SCC = Yes - SCCTolerance = 1e-6 - Filling = Fermi { - Temperature [Kelvin] = 400 - } - SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" - Separator = "-" - Suffix = ".skf" - } - MaxAngularMomentum = { - H = "s" - O = "p" - C = "p" - } -} - -Options = { - RandomSeed = 3871906 - WriteDetailedOut = No -} - -Analysis { - WriteBandOut = No -} diff --git a/docs/inputs/moleculardynamics/xlbomd/geom.gen b/docs/inputs/moleculardynamics/xlbomd/geom.gen deleted file mode 100644 index 03a822df..00000000 --- a/docs/inputs/moleculardynamics/xlbomd/geom.gen +++ /dev/null @@ -1,40 +0,0 @@ -38 C -C O H - 1 1 -3.2103390000E-01 6.4976606000E-01 6.1134966000E-01 - 2 1 9.6328881000E-01 2.6810143600E+00 2.4672770000E-02 - 3 1 3.7008025000E-01 -1.9148818000E-01 -3.4608252000E-01 - 4 1 1.7062543300E+00 1.8667277800E+00 -9.7432192000E-01 - 5 1 -4.6635000000E-04 2.0405072500E+00 8.3279825000E-01 - 6 1 1.3552255700E+00 4.6696619000E-01 -1.1164276800E+00 - 7 1 -1.2084626700E+00 3.5055440000E-02 1.4611567900E+00 - 8 1 1.2838829500E+00 4.0436668700E+00 2.3580619000E-01 - 9 1 1.7368624000E-01 -1.5974433500E+00 -5.6605157000E-01 - 10 1 2.7167114800E+00 2.5171334100E+00 -1.7385943600E+00 - 11 1 -6.7994802000E-01 2.7815041000E+00 1.8784723000E+00 - 12 1 2.1407047300E+00 -2.9303542000E-01 -2.0652228400E+00 - 13 1 -1.9292987000E+00 7.5069414000E-01 2.4361290700E+00 - 14 1 6.4765831000E-01 4.7324463100E+00 1.2977432600E+00 - 15 1 8.3835424000E-01 -2.2447042900E+00 -1.5758687500E+00 - 16 1 3.4495481300E+00 1.6997917600E+00 -2.6509048200E+00 - 17 1 -1.6506211100E+00 2.1200052600E+00 2.7154073500E+00 - 18 1 -3.6777644000E-01 4.1391518900E+00 2.0732747000E+00 - 19 1 1.9139484800E+00 -1.6634948600E+00 -2.2349815200E+00 - 20 1 3.1011552300E+00 3.5961796000E-01 -2.8927181400E+00 - 21 1 -2.4832568600E+00 2.8190296100E+00 3.7147392800E+00 - 22 1 -1.0551337700E+00 4.8836022000E+00 3.2217757000E+00 - 23 1 2.5647743600E+00 -2.3565660000E+00 -3.3888315300E+00 - 24 1 3.8672443600E+00 -3.7443306000E-01 -3.9283627100E+00 - 25 2 -2.2570870700E+00 4.2401457300E+00 3.7669234400E+00 - 26 2 3.5670952200E+00 -1.7034416800E+00 -4.2202391900E+00 - 27 2 -3.4531757200E+00 2.3849873100E+00 4.3012718900E+00 - 28 2 -8.5119925000E-01 5.9864947800E+00 3.6250608000E+00 - 29 2 2.2689106300E+00 -3.4863053800E+00 -3.6642365400E+00 - 30 2 4.8047915300E+00 1.0340452000E-01 -4.5201062700E+00 - 31 3 -1.3310748400E+00 -1.0903765300E+00 1.3043519700E+00 - 32 3 2.0065768900E+00 4.5267732800E+00 -4.6496078000E-01 - 33 3 -7.6392979000E-01 -2.1566928200E+00 -3.6773373000E-01 - 34 3 2.8953294300E+00 3.6457328500E+00 -1.6719959800E+00 - 35 3 -2.6358745700E+00 2.0275311000E-01 3.0872061600E+00 - 36 3 1.0561540100E+00 5.6545207000E+00 1.6511110400E+00 - 37 3 4.3113722000E-01 -3.2352289900E+00 -1.8495723100E+00 - 38 3 4.2695602000E+00 2.1622890000E+00 -3.2672901100E+00 diff --git a/docs/moleculardynamics/bornoppenheimer.rst b/docs/moleculardynamics/bornoppenheimer.rst index 046ebaff..b49371d4 100644 --- a/docs/moleculardynamics/bornoppenheimer.rst +++ b/docs/moleculardynamics/bornoppenheimer.rst @@ -24,7 +24,6 @@ highest vibrational period in the system. 1 fs is a common choice. The .. only:: builder_html See :download:`the full input <../_downloads/md3.dftb_in.hsd>` - and :download:`geometry <../_downloads/md3.geom.gen>`. The input file specifies initial velocities of the atoms :: @@ -43,5 +42,4 @@ example by using the following input .. only:: builder_html See :download:`the full input <../_downloads/md4.dftb_in.hsd>` - and :download:`geometry <../_downloads/md4.geom.gen>`. diff --git a/docs/moleculardynamics/startinggeometry.rst b/docs/moleculardynamics/startinggeometry.rst index ffd7cf81..58614d79 100644 --- a/docs/moleculardynamics/startinggeometry.rst +++ b/docs/moleculardynamics/startinggeometry.rst @@ -5,15 +5,14 @@ Preparing for an MD calculation The initial structure for starting a molecular dynamics simulation should usually be structurally relaxed. This is to remove excess potential energy which -would rapidly exchange into kinetic energy. +would rapidly exchange into kinetic energy. The example below relaxes the geometry of a molecule (PTCDA) to a local miniumum, prior to performing molecular dynamics. .. only:: builder_html - See :download:`the full input <../_downloads/md1.dftb_in.hsd>` and the - initial :download:`starting geometry <../_downloads/md1.geom.gen>` + See :download:`the full input <../_downloads/md1.dftb_in.hsd>` Vibrational modes @@ -24,12 +23,15 @@ calculated, for future comparision with the power spectrum of the system. .. only:: builder_html - See :download:`the full input <../_downloads/md2.dftb_in.hsd>` and the - geometry :download:`geometry <../_downloads/md2.geom.gen>` + See the :download:`dftb_in.hsd <../_downloads/md2.dftb_in.hsd>` file and the + relaxed geometry :download:`geometry <../_downloads/md2.geom.gen>` Calculating the modes ~~~~~~~~~~~~~~~~~~~~~ .. only:: builder_html - See :download:`the modes input <../_downloads/md2.modes_in.hsd>` + See the :download:`modes_in.hsd <../_downloads/md2.modes_in.hsd>` file. This + example uses the same :download:`geometry <../_downloads/md2.geom.gen>` as + the second derivative calculation above. + diff --git a/docs/moleculardynamics/xlbomd.rst b/docs/moleculardynamics/xlbomd.rst index 78983878..18b84b00 100644 --- a/docs/moleculardynamics/xlbomd.rst +++ b/docs/moleculardynamics/xlbomd.rst @@ -13,6 +13,5 @@ to non-SCC DFTB. .. only:: builder_html - See :download:`the full input - <../inputs/moleculardynamics/xlbomd/dftb_in.hsd>` and the - :download:`geometry <../inputs/moleculardynamics/xlbomd/geom.gen>` + See :download:`the full input <../_downloads/md5.dftb_in.hsd>` + From 084c3867779e6ca90667dba89814fcd1e078f889 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Sun, 22 Jul 2018 23:45:22 -0600 Subject: [PATCH 08/14] More MD material --- .../moleculardynamics/annealSW/dftb_in.hsd | 8 ++++---- docs/moleculardynamics/analysis.rst | 15 ++++++++++++++ docs/moleculardynamics/annealing.rst | 20 +++++++++++++++++-- docs/moleculardynamics/bornoppenheimer.rst | 2 +- docs/moleculardynamics/index.rst | 1 + docs/moleculardynamics/xlbomd.rst | 15 ++++++++------ 6 files changed, 48 insertions(+), 13 deletions(-) create mode 100644 docs/moleculardynamics/analysis.rst diff --git a/docs/inputs/moleculardynamics/annealSW/dftb_in.hsd b/docs/inputs/moleculardynamics/annealSW/dftb_in.hsd index 5691a631..81393930 100644 --- a/docs/inputs/moleculardynamics/annealSW/dftb_in.hsd +++ b/docs/inputs/moleculardynamics/annealSW/dftb_in.hsd @@ -3,15 +3,15 @@ Geometry = GenFormat { } Driver = VelocityVerlet { - - TimeStep [Femtosecond] = 2.0 # Using a thermostat, so conserved - # properties of dynamics are less + + # Using a thermostat, so conserved properties of dynamics are less # # important + TimeStep [Femtosecond] = 2.0 Thermostat = Andersen { # Probabalistically replaces atomic velocities from a - # Maxwell-Boltzmann distribution + # Maxwell-Boltzmann distribution ReselectProbability = 0.2 ReselectIndividually = Yes diff --git a/docs/moleculardynamics/analysis.rst b/docs/moleculardynamics/analysis.rst new file mode 100644 index 00000000..86b582b1 --- /dev/null +++ b/docs/moleculardynamics/analysis.rst @@ -0,0 +1,15 @@ +.. highlight:: none + +************ +Analysing MD +************ + +MD simulations contain various information about the system. Fluctuations and +correlations in the ground state encode information about excitations +(fluctuation-dissipation theorem) and transport (Einstein relation and also the +Green-Kubo relations). + +The velocity-velocity auto-correlation encodes the (anharmonic) vibrational +modes, while the dipole auto-correlation contains information on the mode +intensities. Both of these can be evaluated from the information in `md.out` - +more information to follow. diff --git a/docs/moleculardynamics/annealing.rst b/docs/moleculardynamics/annealing.rst index 84406b52..c268d5b6 100644 --- a/docs/moleculardynamics/annealing.rst +++ b/docs/moleculardynamics/annealing.rst @@ -4,7 +4,18 @@ Simulated annealing ******************* -By heating up a system, and then allowing it to slowly cool, stable minima. +By heating up a system, and then allowing it to slowly cool, stable minima can +be found. If the cooling is sufficiently (logarithmically) slow, then the global +minima will be found, however this is not usually practical. More realistically, +several heating and cooling experiments can find some stable structures, or +investigate the stability of known geometries. + +The first example anneals away a Stone-Wales defect in a graphene sheet. This is +acheived by heating the system up to a high (5000K) temperature where C-C bonds +start to break, holding it at these temperatures for a while and then cooling to +a low temperature. The high temperature is above the usual disociation +temperature of graphene, but since only a relatively short (2.4 ps) time is +computed, using a higher temperature accelerates the annealing. .. only:: builder_html @@ -13,7 +24,12 @@ By heating up a system, and then allowing it to slowly cool, stable minima. <../inputs/moleculardynamics/annealSW/80_SW.gen>`. -The annealing process can be used to find alternative local minina. +The annealing process can also be used to find alternative local minina. Here +two vacancies in a graphene sheet are heated. Depending on the initial +conditions, the system anneals to different final structures. The starting +velocities are chosen at random, so depending on the seed value for the random +generator (several different cases are given in the input file) a different +final geometry is obtained. .. only:: builder_html diff --git a/docs/moleculardynamics/bornoppenheimer.rst b/docs/moleculardynamics/bornoppenheimer.rst index b49371d4..a27f8c7f 100644 --- a/docs/moleculardynamics/bornoppenheimer.rst +++ b/docs/moleculardynamics/bornoppenheimer.rst @@ -34,7 +34,7 @@ The input file specifies initial velocities of the atoms :: . } -The initial velocities can be user suplied, however it is more common to +The initial velocities can be user supplied, however it is more common to generate them by thermalising the system starting from an initial Maxwell-Boltzmann distribution of atomic velocities. These can be generated for example by using the following input diff --git a/docs/moleculardynamics/index.rst b/docs/moleculardynamics/index.rst index 41f4a284..c84b373e 100644 --- a/docs/moleculardynamics/index.rst +++ b/docs/moleculardynamics/index.rst @@ -18,4 +18,5 @@ or to explore the range of structural minima the system can adopt. startinggeometry.rst bornoppenheimer.rst xlbomd.rst + analysis.rst annealing.rst diff --git a/docs/moleculardynamics/xlbomd.rst b/docs/moleculardynamics/xlbomd.rst index 18b84b00..bfaaccbc 100644 --- a/docs/moleculardynamics/xlbomd.rst +++ b/docs/moleculardynamics/xlbomd.rst @@ -4,12 +4,15 @@ Speeding up SCC MD ****************** -Instead of standard Born-Oppenheimer dynamics there are two methods in use to -propogate the atomic positions and electronic structure, either the -Car-Parrinello scheme or extended Lagrangian Born-Oppenheimer dynamics. DFTB+ -supports the second of these methods, which (when stable) produces equivalent -dynamics to conventional Born-Oppenheimer molecular dynamics with similar costs -to non-SCC DFTB. +Instead of standard Born-Oppenheimer (BO) dynamics, there are two methods in use +to propagate the atomic positions and electronic structure, either the +Car-Parrinello scheme or extended Lagrangian (XL) Born-Oppenheimer +dynamics. DFTB+ supports the second of these methods, which (when stable) +produces equivalent dynamics to conventional Born-Oppenheimer molecular dynamics +but with similar (lower) costs to non-SCC DFTB. + +This example uses the fast XL-BOMD method with a single SCC step for each +geometry. .. only:: builder_html From fb02889b615bfd2e998e32c9b7019fd9eebee1e9 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Tue, 24 Jul 2018 07:41:03 -0600 Subject: [PATCH 09/14] Added parser version to one input --- docs/_downloads/md4.dftb_in.hsd | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/_downloads/md4.dftb_in.hsd b/docs/_downloads/md4.dftb_in.hsd index 3ca137a8..0cc23332 100644 --- a/docs/_downloads/md4.dftb_in.hsd +++ b/docs/_downloads/md4.dftb_in.hsd @@ -71,8 +71,20 @@ Hamiltonian = DFTB { } } +Analysis = { + WriteBandOut = No +} + Options = { RandomSeed = 3871906 WriteDetailedOut = No - WriteBandOut = No +} + +ParserOptions = { + ParserVersion = 5 +} + +# if run in parallel, allow openMP threads +Parallel = { + UseOmpThreads = Yes } From 58839ea8da237a8ed300cf743516f6c0dba67913 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Tue, 24 Jul 2018 10:24:55 -0600 Subject: [PATCH 10/14] Set parser version in inputs --- docs/_downloads/md1.dftb_in.hsd | 12 +++++++++++- docs/_downloads/md2.dftb_in.hsd | 12 ++++++++++++ docs/_downloads/md2.modes_in.hsd | 3 +++ docs/_downloads/md3.dftb_in.hsd | 24 ++++++++++++++++++++++-- docs/_downloads/md4.dftb_in.hsd | 10 +++++++++- docs/_downloads/md5.dftb_in.hsd | 22 +++++++++++++++++++++- 6 files changed, 78 insertions(+), 5 deletions(-) diff --git a/docs/_downloads/md1.dftb_in.hsd b/docs/_downloads/md1.dftb_in.hsd index bc559d22..da1e744e 100644 --- a/docs/_downloads/md1.dftb_in.hsd +++ b/docs/_downloads/md1.dftb_in.hsd @@ -41,11 +41,11 @@ Geometry = GenFormat { 38 3 0.1742211893E+01 -0.3457319437E+01 -0.1226020479E+00 } +# Optimise geometry Driver = ConjugateGradient { MaxForceComponent = 1e-5 } - Hamiltonian = DFTB { SCC = Yes SCCTolerance = 1E-7 @@ -63,3 +63,13 @@ Hamiltonian = DFTB { H = "s" } } + +# This file uses the 5th input format +ParserOptions = { + ParserVersion = 5 +} + +# if run in MPI parallel, allow openMP threads to be used +Parallel = { + UseOmpThreads = Yes +} diff --git a/docs/_downloads/md2.dftb_in.hsd b/docs/_downloads/md2.dftb_in.hsd index 90d2cc5b..b1417de9 100644 --- a/docs/_downloads/md2.dftb_in.hsd +++ b/docs/_downloads/md2.dftb_in.hsd @@ -2,7 +2,9 @@ Geometry = GenFormat { <<< "md2.geom.gen" } +# Calculate second derivatives of energy Driver = SecondDerivatives { + # Specified finite difference step Delta = 1e-4 } @@ -24,3 +26,13 @@ Hamiltonian = DFTB { H = "s" } } + +# This file uses the 5th input format +ParserOptions = { + ParserVersion = 5 +} + +# if run in MPI parallel, allow openMP threads to be used +Parallel = { + UseOmpThreads = Yes +} diff --git a/docs/_downloads/md2.modes_in.hsd b/docs/_downloads/md2.modes_in.hsd index bb6c2a79..d8e3deef 100644 --- a/docs/_downloads/md2.modes_in.hsd +++ b/docs/_downloads/md2.modes_in.hsd @@ -19,3 +19,6 @@ SlaterKosterFiles = Type2FileNames { Hessian = { <<< "hessian.out" } + +# This file uses the 3rd input format of the modes code +InputVersion = 3 diff --git a/docs/_downloads/md3.dftb_in.hsd b/docs/_downloads/md3.dftb_in.hsd index cdf865d5..698cfadd 100644 --- a/docs/_downloads/md3.dftb_in.hsd +++ b/docs/_downloads/md3.dftb_in.hsd @@ -42,9 +42,16 @@ C O H } Driver = VelocityVerlet{ + + # Possibly should be a bit smaller for real calculations: TimeStep [fs] = 0.5 + + # Use the NVE ensemble (as its a molecule, V is infinite) Thermostat = None {} - Velocities [AA/ps] { + + # Specify the initial velocities of the atoms to avoid having a 'burn + # in' period to get to a 'typical' microstate + Velocities [AA/ps] { # This is the same unit as xyz format output 0.63060001 10.71652407 0.41599521 -4.78167517 -0.67726160 6.81193886 3.98425977 1.00737908 -10.59008962 @@ -84,7 +91,9 @@ Driver = VelocityVerlet{ -20.88278228 1.24410318 -14.82956937 16.44412954 -1.14851662 13.23381502 } - Steps = 20000 + + Steps = 20000 # 10 ps total + MovedAtoms = 1:-1 } @@ -109,10 +118,21 @@ Hamiltonian = DFTB { Options = { RandomSeed = 3871906 + # speed up a bit by suppressing some file writing WriteDetailedOut = No } Analysis { + # speed up a bit by suppressing some file writing WriteBandOut = No } +# This file uses the 5th input format +ParserOptions = { + ParserVersion = 5 +} + +# if run in MPI parallel, allow openMP threads to be used +Parallel = { + UseOmpThreads = Yes +} diff --git a/docs/_downloads/md4.dftb_in.hsd b/docs/_downloads/md4.dftb_in.hsd index 0cc23332..e99cc8d8 100644 --- a/docs/_downloads/md4.dftb_in.hsd +++ b/docs/_downloads/md4.dftb_in.hsd @@ -42,13 +42,18 @@ Geometry = GenFormat { } Driver = VelocityVerlet{ + # Time step for MD TimeStep [fs] = 1.0 + # Use thermostat to maintain temperature Thermostat = NoseHoover { Temperature [Kelvin] = 400 + # Approximately the highest vibrational frequency of the molecule CouplingStrength [cm^-1] = 3200 } + # total of 20 ps Steps = 20000 MovedAtoms = 1:-1 + # save every 100 steps MDRestartFrequency = 100 } @@ -72,19 +77,22 @@ Hamiltonian = DFTB { } Analysis = { + # speed up a bit by suppressing some file writing WriteBandOut = No } Options = { RandomSeed = 3871906 + # speed up a bit by suppressing some file writing WriteDetailedOut = No } +# This file uses the 5th input format ParserOptions = { ParserVersion = 5 } -# if run in parallel, allow openMP threads +# if run in MPI parallel, allow openMP threads to be used Parallel = { UseOmpThreads = Yes } diff --git a/docs/_downloads/md5.dftb_in.hsd b/docs/_downloads/md5.dftb_in.hsd index c5103a67..f943463a 100644 --- a/docs/_downloads/md5.dftb_in.hsd +++ b/docs/_downloads/md5.dftb_in.hsd @@ -44,12 +44,17 @@ C O H Driver = VelocityVerlet{ TimeStep [fs] = 0.5 Thermostat = None {} + + # extended Lagrangian dynamics, using the fast option XlbomdFast { IntegrationSteps = 5 Scale = 0.5 # scalekappa (only for fast option with 1 scf cycle) TransientSteps = 10 } - Velocities [AA/ps] { + + # Specify the initial velocities of the atoms to avoid having a 'burn + # in' period to get to a 'typical' microstate + Velocities [AA/ps] { # This is the same unit as xyz format output 0.63060001 10.71652407 0.41599521 -4.78167517 -0.67726160 6.81193886 3.98425977 1.00737908 -10.59008962 @@ -95,7 +100,10 @@ Driver = VelocityVerlet{ Hamiltonian = DFTB { + + # use the corrected forces for XL-BOMD ForceEvaluation = Dynamics + SCC = Yes SCCTolerance = 1e-6 Filling = Fermi { @@ -115,9 +123,21 @@ Hamiltonian = DFTB { Options = { RandomSeed = 3871906 + # speed up a bit by suppressing some file writing WriteDetailedOut = No } Analysis { + # speed up a bit by suppressing some file writing WriteBandOut = No } + +# This file uses the 5th input format +ParserOptions = { + ParserVersion = 5 +} + +# if run in MPI parallel, allow openMP threads to be used +Parallel = { + UseOmpThreads = Yes +} From 9bb482d6b5863e5f3de68aa07c8696e48739fa19 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Tue, 24 Jul 2018 10:33:54 -0600 Subject: [PATCH 11/14] Rename dftb_in.hsd files --- .../annealSW/{dftb_in.hsd => annealSW_dftb_in.hsd} | 0 .../annealV2/{dftb_in.hsd => annealV2_dftb_in.hsd} | 0 docs/moleculardynamics/annealing.rst | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename docs/inputs/moleculardynamics/annealSW/{dftb_in.hsd => annealSW_dftb_in.hsd} (100%) rename docs/inputs/moleculardynamics/annealV2/{dftb_in.hsd => annealV2_dftb_in.hsd} (100%) diff --git a/docs/inputs/moleculardynamics/annealSW/dftb_in.hsd b/docs/inputs/moleculardynamics/annealSW/annealSW_dftb_in.hsd similarity index 100% rename from docs/inputs/moleculardynamics/annealSW/dftb_in.hsd rename to docs/inputs/moleculardynamics/annealSW/annealSW_dftb_in.hsd diff --git a/docs/inputs/moleculardynamics/annealV2/dftb_in.hsd b/docs/inputs/moleculardynamics/annealV2/annealV2_dftb_in.hsd similarity index 100% rename from docs/inputs/moleculardynamics/annealV2/dftb_in.hsd rename to docs/inputs/moleculardynamics/annealV2/annealV2_dftb_in.hsd diff --git a/docs/moleculardynamics/annealing.rst b/docs/moleculardynamics/annealing.rst index c268d5b6..b347ca5e 100644 --- a/docs/moleculardynamics/annealing.rst +++ b/docs/moleculardynamics/annealing.rst @@ -20,7 +20,7 @@ computed, using a higher temperature accelerates the annealing. .. only:: builder_html See :download:`the full input - <../inputs/moleculardynamics/annealSW/dftb_in.hsd>` and :download:`geometry + <../inputs/moleculardynamics/annealSW/annealSW_dftb_in.hsd>` and :download:`geometry <../inputs/moleculardynamics/annealSW/80_SW.gen>`. @@ -34,6 +34,6 @@ final geometry is obtained. .. only:: builder_html See :download:`the full input - <../inputs/moleculardynamics/annealV2/dftb_in.hsd>` and :download:`geometry + <../inputs/moleculardynamics/annealV2/annealV2_dftb_in.hsd>` and :download:`geometry <../inputs/moleculardynamics/annealV2/80_V2.gen>`. From 031fd148be3b59150f4b55e74ae990d9f145e1f0 Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Thu, 29 Nov 2018 18:24:43 +0000 Subject: [PATCH 12/14] Small changes on the introduction --- docs/introduction.rst | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/docs/introduction.rst b/docs/introduction.rst index bd6011c0..3fe464d0 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -7,26 +7,35 @@ mechanical atomistic software package `DFTB+ `_. The examples assume that you have the `latest stable version `_ of DFTB+ installed (although -many of them may run also with older versions). Additionally they require some -parameterisation files (Slater-Koster files), which can be downloaded -from `dftb.org `_. +many of the examples may run also with older versions). Additionally the +examples require some parameterisation files (Slater-Koster files), which can be +downloaded from `dftb.org `_ (see below). -The recipes often only show the relevant part of the input. In order to obtain -the full input and in order to run the examples, you should download the archive -containing all the inputs of the individual recipes. +The description of the recipes often only shows the relevant part of the +input. In order to obtain the full input files and to run the examples, you +should download the archive file containing all the inputs of the individual +recipes. .. only :: builder_html or readthedocs See :download:`archive with all inputs <_downloads/archives/recipes.tar.bz2>`. -In the various recipes, the directory, where the full self-containing input can -be found within this archive, is indicated in square brackets right after the -section title (e.g. [Input: `recipes/basics/firstcalc/`]). +Once unpacked, the full self-contained input files can be found at locations +given in square brackets after the section title of each example (e.g. [Input: +`recipes/basics/firstcalc/`]) in the root folder of the archive. -After unpacking the archive, you can also automatically download all -Slater-Koster-files needed by the examples by issuing :: + +Getting Slater-Koster data +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +After unpacking the archive you can also automatically download all the +Slater-Koster-files needed by the examples by issuing the command:: ./scripts/get_slakos -in the root folder of the archive. Then you should be able to run each example -by calling ``dftb+`` from the corresponding input folder. +in the root folder of the archive. You should then be able to run each example +by calling ``dftb+`` from the corresponding input folder (assuming that dftb+ is +installed in your executable path). + +For some examples, there is also a supplied script file in the directory to run +multistage calculations, this is called ``run.sh``. From 12f87e8f99acb6478df0e48e4dc2dca92a1600be Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Fri, 30 Nov 2018 00:35:42 +0000 Subject: [PATCH 13/14] MD examples plus some restructuring --- docs/Makefile | 2 +- .../moleculardynamics/XLBOMD/dftb_in.hsd} | 4 +- .../moleculardynamics/annealSW/80_SW.gen | 0 .../moleculardynamics/annealSW/dftb_in.hsd} | 2 +- .../moleculardynamics/annealV2/80_V2.gen | 0 .../moleculardynamics/annealV2/dftb_in.hsd} | 2 +- .../initialstructre/dftb_in.hsd} | 2 +- .../recipes/moleculardynamics/md/dftb_in.hsd} | 2 +- .../moleculardynamics/thermalise/dftb_in.hsd} | 2 +- .../moleculardynamics/vibrations/dftb_in.hsd} | 7 +- .../moleculardynamics/vibrations/geom.gen} | 0 .../vibrations/modes_in.hsd} | 6 +- docs/conf.py | 2 +- docs/introduction.rst | 47 ++++---- docs/moleculardynamics/analysis.rst | 4 +- docs/moleculardynamics/annealing.rst | 24 ++-- docs/moleculardynamics/bornoppenheimer.rst | 41 +++++-- docs/moleculardynamics/startinggeometry.rst | 104 ++++++++++++++---- docs/moleculardynamics/xlbomd.rst | 61 ++++++++-- 19 files changed, 222 insertions(+), 90 deletions(-) rename docs/{_downloads/md5.dftb_in.hsd => _archives/recipes/moleculardynamics/XLBOMD/dftb_in.hsd} (98%) rename docs/{inputs => _archives/recipes}/moleculardynamics/annealSW/80_SW.gen (100%) rename docs/{inputs/moleculardynamics/annealSW/annealSW_dftb_in.hsd => _archives/recipes/moleculardynamics/annealSW/dftb_in.hsd} (97%) rename docs/{inputs => _archives/recipes}/moleculardynamics/annealV2/80_V2.gen (100%) rename docs/{inputs/moleculardynamics/annealV2/annealV2_dftb_in.hsd => _archives/recipes/moleculardynamics/annealV2/dftb_in.hsd} (97%) rename docs/{_downloads/md1.dftb_in.hsd => _archives/recipes/moleculardynamics/initialstructre/dftb_in.hsd} (98%) rename docs/{_downloads/md3.dftb_in.hsd => _archives/recipes/moleculardynamics/md/dftb_in.hsd} (99%) rename docs/{_downloads/md4.dftb_in.hsd => _archives/recipes/moleculardynamics/thermalise/dftb_in.hsd} (98%) rename docs/{_downloads/md2.dftb_in.hsd => _archives/recipes/moleculardynamics/vibrations/dftb_in.hsd} (80%) rename docs/{_downloads/md2.geom.gen => _archives/recipes/moleculardynamics/vibrations/geom.gen} (100%) rename docs/{_downloads/md2.modes_in.hsd => _archives/recipes/moleculardynamics/vibrations/modes_in.hsd} (79%) diff --git a/docs/Makefile b/docs/Makefile index c83191c9..90879c99 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -17,4 +17,4 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_downloads/md5.dftb_in.hsd b/docs/_archives/recipes/moleculardynamics/XLBOMD/dftb_in.hsd similarity index 98% rename from docs/_downloads/md5.dftb_in.hsd rename to docs/_archives/recipes/moleculardynamics/XLBOMD/dftb_in.hsd index f943463a..73db4dea 100644 --- a/docs/_downloads/md5.dftb_in.hsd +++ b/docs/_archives/recipes/moleculardynamics/XLBOMD/dftb_in.hsd @@ -45,7 +45,7 @@ Driver = VelocityVerlet{ TimeStep [fs] = 0.5 Thermostat = None {} - # extended Lagrangian dynamics, using the fast option + # extended Lagrangian dynamics, using the 'fast' option XlbomdFast { IntegrationSteps = 5 Scale = 0.5 # scalekappa (only for fast option with 1 scf cycle) @@ -110,7 +110,7 @@ Hamiltonian = DFTB { Temperature [Kelvin] = 400 } SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" + Prefix = "../../slakos/mio-ext/" Separator = "-" Suffix = ".skf" } diff --git a/docs/inputs/moleculardynamics/annealSW/80_SW.gen b/docs/_archives/recipes/moleculardynamics/annealSW/80_SW.gen similarity index 100% rename from docs/inputs/moleculardynamics/annealSW/80_SW.gen rename to docs/_archives/recipes/moleculardynamics/annealSW/80_SW.gen diff --git a/docs/inputs/moleculardynamics/annealSW/annealSW_dftb_in.hsd b/docs/_archives/recipes/moleculardynamics/annealSW/dftb_in.hsd similarity index 97% rename from docs/inputs/moleculardynamics/annealSW/annealSW_dftb_in.hsd rename to docs/_archives/recipes/moleculardynamics/annealSW/dftb_in.hsd index 81393930..64dffcd4 100644 --- a/docs/inputs/moleculardynamics/annealSW/annealSW_dftb_in.hsd +++ b/docs/_archives/recipes/moleculardynamics/annealSW/dftb_in.hsd @@ -50,7 +50,7 @@ Hamiltonian = DFTB { # thermostat SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" + Prefix = "../../slakos/mio-ext/" Separator = "-" Suffix = ".skf" } diff --git a/docs/inputs/moleculardynamics/annealV2/80_V2.gen b/docs/_archives/recipes/moleculardynamics/annealV2/80_V2.gen similarity index 100% rename from docs/inputs/moleculardynamics/annealV2/80_V2.gen rename to docs/_archives/recipes/moleculardynamics/annealV2/80_V2.gen diff --git a/docs/inputs/moleculardynamics/annealV2/annealV2_dftb_in.hsd b/docs/_archives/recipes/moleculardynamics/annealV2/dftb_in.hsd similarity index 97% rename from docs/inputs/moleculardynamics/annealV2/annealV2_dftb_in.hsd rename to docs/_archives/recipes/moleculardynamics/annealV2/dftb_in.hsd index 5dfa6a69..cbc75e22 100644 --- a/docs/inputs/moleculardynamics/annealV2/annealV2_dftb_in.hsd +++ b/docs/_archives/recipes/moleculardynamics/annealV2/dftb_in.hsd @@ -50,7 +50,7 @@ Hamiltonian = DFTB { # thermostat SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" + Prefix = "../../slakos/mio-ext/" Separator = "-" Suffix = ".skf" } diff --git a/docs/_downloads/md1.dftb_in.hsd b/docs/_archives/recipes/moleculardynamics/initialstructre/dftb_in.hsd similarity index 98% rename from docs/_downloads/md1.dftb_in.hsd rename to docs/_archives/recipes/moleculardynamics/initialstructre/dftb_in.hsd index da1e744e..10008b8b 100644 --- a/docs/_downloads/md1.dftb_in.hsd +++ b/docs/_archives/recipes/moleculardynamics/initialstructre/dftb_in.hsd @@ -53,7 +53,7 @@ Hamiltonian = DFTB { Temperature [Kelvin] = 400 } SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" + Prefix = "../../slakos/mio-ext/" Separator = "-" Suffix = ".skf" } diff --git a/docs/_downloads/md3.dftb_in.hsd b/docs/_archives/recipes/moleculardynamics/md/dftb_in.hsd similarity index 99% rename from docs/_downloads/md3.dftb_in.hsd rename to docs/_archives/recipes/moleculardynamics/md/dftb_in.hsd index 698cfadd..a5fb4b99 100644 --- a/docs/_downloads/md3.dftb_in.hsd +++ b/docs/_archives/recipes/moleculardynamics/md/dftb_in.hsd @@ -105,7 +105,7 @@ Hamiltonian = DFTB { Temperature [Kelvin] = 400 } SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" + Prefix = "../../slakos/mio-ext/" Separator = "-" Suffix = ".skf" } diff --git a/docs/_downloads/md4.dftb_in.hsd b/docs/_archives/recipes/moleculardynamics/thermalise/dftb_in.hsd similarity index 98% rename from docs/_downloads/md4.dftb_in.hsd rename to docs/_archives/recipes/moleculardynamics/thermalise/dftb_in.hsd index e99cc8d8..c239ea03 100644 --- a/docs/_downloads/md4.dftb_in.hsd +++ b/docs/_archives/recipes/moleculardynamics/thermalise/dftb_in.hsd @@ -65,7 +65,7 @@ Hamiltonian = DFTB { Temperature [Kelvin] = 400 } SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" + Prefix = "../../slakos/mio-ext/" Separator = "-" Suffix = ".skf" } diff --git a/docs/_downloads/md2.dftb_in.hsd b/docs/_archives/recipes/moleculardynamics/vibrations/dftb_in.hsd similarity index 80% rename from docs/_downloads/md2.dftb_in.hsd rename to docs/_archives/recipes/moleculardynamics/vibrations/dftb_in.hsd index b1417de9..c2d8c263 100644 --- a/docs/_downloads/md2.dftb_in.hsd +++ b/docs/_archives/recipes/moleculardynamics/vibrations/dftb_in.hsd @@ -1,8 +1,9 @@ Geometry = GenFormat { - <<< "md2.geom.gen" + # previously relaxed geometry + <<< "geom.gen" } -# Calculate second derivatives of energy +# Calculate the second derivatives of the energy Driver = SecondDerivatives { # Specified finite difference step Delta = 1e-4 @@ -16,7 +17,7 @@ Hamiltonian = DFTB { Temperature [Kelvin] = 400 } SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" + Prefix = "../../slakos/mio-ext/" Separator = "-" Suffix = ".skf" } diff --git a/docs/_downloads/md2.geom.gen b/docs/_archives/recipes/moleculardynamics/vibrations/geom.gen similarity index 100% rename from docs/_downloads/md2.geom.gen rename to docs/_archives/recipes/moleculardynamics/vibrations/geom.gen diff --git a/docs/_downloads/md2.modes_in.hsd b/docs/_archives/recipes/moleculardynamics/vibrations/modes_in.hsd similarity index 79% rename from docs/_downloads/md2.modes_in.hsd rename to docs/_archives/recipes/moleculardynamics/vibrations/modes_in.hsd index d8e3deef..713b3ecf 100644 --- a/docs/_downloads/md2.modes_in.hsd +++ b/docs/_archives/recipes/moleculardynamics/vibrations/modes_in.hsd @@ -1,6 +1,6 @@ -# Neededs the equilibrium geometry, at which the Hessian had been calculated +# Needs the equilibrium geometry, at which the Hessian had been calculated Geometry = GenFormat { - <<< md2.geom.gen + <<< geom.gen } DisplayModes = { @@ -10,7 +10,7 @@ DisplayModes = { # You need to specify the SK-files, as the mass of the elements is needed SlaterKosterFiles = Type2FileNames { - Prefix = "../../slako/" + Prefix = "../../slakos/mio-ext/" Separator = "-" Suffix = ".skf" } diff --git a/docs/conf.py b/docs/conf.py index 7e008e1b..035dffdb 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -194,7 +194,7 @@ def setup(app): def create_archives(app): - '''Creates an .tar.xz archive in _downloads for each entry in _archives.''' + '''Creates a .tar.bz2 archive in _downloads for each entry in _archives.''' import os import tarfile diff --git a/docs/introduction.rst b/docs/introduction.rst index c706e22a..a5ae7b9d 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -8,35 +8,42 @@ mechanical atomistic software package `DFTB+ `_. The examples assume that you have the `latest stable version `_ of DFTB+ installed (although -many of the examples may run also with older versions). Additionally the -examples require some parameterisation files (Slater-Koster files), which can be -downloaded from `dftb.org `_ (see below). +many of the examples can also be run older versions of the code). Additionally +the examples require some parameterisation files (Slater-Koster files), which +can be downloaded from `dftb.org `_ (see below). The description of the recipes often only shows the relevant part of the -input. In order to obtain the full input files and to run the examples, you -should download the archive file containing all the inputs of the individual -recipes. +input. + +.. only :: latexpdf or latex + + In order to obtain the full input files and to run the examples, you + should visit the `online version `_ of + this document, which includes links to download the archive file containing all + the inputs of the individual recipes. .. only :: builder_html or readthedocs - See :download:`archive with all inputs <_downloads/archives/recipes.tar.bz2>`. + In order to obtain the full input files and to run the examples, see the + :download:`archive with all inputs <_downloads/archives/recipes.tar.bz2>`. -Once unpacked, the full self-contained input files can be found at locations -given in square brackets after the section title of each example (e.g. [Input: -`recipes/basics/firstcalc/`]) in the root folder of the archive. + Once unpacked, the full self-contained input files can be found at locations + given in square brackets after the section title of each example + (e.g. [Input: `recipes/basics/firstcalc/`]) in the root folder of the + archive. -Getting Slater-Koster data -~~~~~~~~~~~~~~~~~~~~~~~~~~ + Getting Slater-Koster data + ~~~~~~~~~~~~~~~~~~~~~~~~~~ -After unpacking the archive you can also automatically download all the -Slater-Koster-files needed by the examples by issuing the command:: + After unpacking the archive you can also automatically download all the + Slater-Koster-files needed by the examples by issuing the command:: - ./scripts/get_slakos + ./scripts/get_slakos -in the root folder of the archive. You should then be able to run each example -by calling ``dftb+`` from the corresponding input folder (assuming that dftb+ is -installed in your executable path). + in the root folder of the archive. You should then be able to run each example + by calling ``dftb+`` from the corresponding input folder (assuming that dftb+ is + installed in your executable path). -For some examples, there is also a supplied script file in the directory to run -multistage calculations, this is called ``run.sh``. + For some examples, there is also a supplied script file in the directory to run + multistage calculations, this is called ``run.sh``. diff --git a/docs/moleculardynamics/analysis.rst b/docs/moleculardynamics/analysis.rst index 86b582b1..c371e233 100644 --- a/docs/moleculardynamics/analysis.rst +++ b/docs/moleculardynamics/analysis.rst @@ -11,5 +11,5 @@ Green-Kubo relations). The velocity-velocity auto-correlation encodes the (anharmonic) vibrational modes, while the dipole auto-correlation contains information on the mode -intensities. Both of these can be evaluated from the information in `md.out` - -more information to follow. +intensities. Both of these can be evaluated from the output of the code - more +information to follow on this topic. diff --git a/docs/moleculardynamics/annealing.rst b/docs/moleculardynamics/annealing.rst index b347ca5e..7494698b 100644 --- a/docs/moleculardynamics/annealing.rst +++ b/docs/moleculardynamics/annealing.rst @@ -4,6 +4,10 @@ Simulated annealing ******************* +.. only :: builder_html or readthedocs + + [Input: `recipes/moleculardynamics/annealSW/`] + By heating up a system, and then allowing it to slowly cool, stable minima can be found. If the cooling is sufficiently (logarithmically) slow, then the global minima will be found, however this is not usually practical. More realistically, @@ -17,23 +21,17 @@ a low temperature. The high temperature is above the usual disociation temperature of graphene, but since only a relatively short (2.4 ps) time is computed, using a higher temperature accelerates the annealing. -.. only:: builder_html - - See :download:`the full input - <../inputs/moleculardynamics/annealSW/annealSW_dftb_in.hsd>` and :download:`geometry - <../inputs/moleculardynamics/annealSW/80_SW.gen>`. +Annealing to multiple minima +---------------------------- + +.. only :: builder_html or readthedocs + [Input: `recipes/moleculardynamics/annealV2/`] + The annealing process can also be used to find alternative local minina. Here two vacancies in a graphene sheet are heated. Depending on the initial conditions, the system anneals to different final structures. The starting velocities are chosen at random, so depending on the seed value for the random generator (several different cases are given in the input file) a different -final geometry is obtained. - -.. only:: builder_html - - See :download:`the full input - <../inputs/moleculardynamics/annealV2/annealV2_dftb_in.hsd>` and :download:`geometry - <../inputs/moleculardynamics/annealV2/80_V2.gen>`. - +final defect geometry is obtained by the same cycle of heating and cooling. diff --git a/docs/moleculardynamics/bornoppenheimer.rst b/docs/moleculardynamics/bornoppenheimer.rst index a27f8c7f..02f780a5 100644 --- a/docs/moleculardynamics/bornoppenheimer.rst +++ b/docs/moleculardynamics/bornoppenheimer.rst @@ -4,6 +4,10 @@ Dynamics in the ground state **************************** +.. only :: builder_html or readthedocs + + [Input: `recipes/moleculardynamics/md/`] + Dynamics on the Born-Oppenheimer ground state energy surface can be performed in DFTB+ by setting the input geometry driver to be `VelocityVerlet` :: @@ -21,10 +25,6 @@ DFTB+ by setting the input geometry driver to be `VelocityVerlet` :: The velocity Verlet driver should have a time step on the scale of ~10x the highest vibrational period in the system. 1 fs is a common choice. The -.. only:: builder_html - - See :download:`the full input <../_downloads/md3.dftb_in.hsd>` - The input file specifies initial velocities of the atoms :: Velocities [AA/ps] { @@ -33,13 +33,34 @@ The input file specifies initial velocities of the atoms :: . . } + +Thermalising a system +--------------------- + +.. only :: builder_html or readthedocs + + [Input: `recipes/moleculardynamics/thermalise/`] -The initial velocities can be user supplied, however it is more common to -generate them by thermalising the system starting from an initial +The initial velocities of atoms can be user supplied, however it is more common +to generate them by thermalising the system starting from an initial Maxwell-Boltzmann distribution of atomic velocities. These can be generated for -example by using the following input +example by using the following input:: + + Thermostat = NoseHoover { + # Target temperature + Temperature [Kelvin] = 400 + # Approximately the highest vibrational frequency of the molecule + CouplingStrength [cm^-1] = 3200 + } + +within the ``VelocityVerlet`` input block. The initial values of the velocities +are set from a random number generator, hence to make the calculation repeatable +this is set to a specific value :: + + Options = { + RandomSeed = 3871906 + } -.. only:: builder_html - - See :download:`the full input <../_downloads/md4.dftb_in.hsd>` +However, for real calculations, it would be common to use a fully random choice, +by omitting the ``RandomSeed`` value. diff --git a/docs/moleculardynamics/startinggeometry.rst b/docs/moleculardynamics/startinggeometry.rst index 58614d79..8ce78404 100644 --- a/docs/moleculardynamics/startinggeometry.rst +++ b/docs/moleculardynamics/startinggeometry.rst @@ -3,35 +3,101 @@ Preparing for an MD calculation =============================== -The initial structure for starting a molecular dynamics simulation should -usually be structurally relaxed. This is to remove excess potential energy which -would rapidly exchange into kinetic energy. +.. only :: builder_html or readthedocs + + [Input: `recipes/moleculardynamics/initialstructre/`] -The example below relaxes the geometry of a molecule (PTCDA) to a local -miniumum, prior to performing molecular dynamics. +The initial structure for starting a molecular dynamics simulation should +usually be fully structurally relaxed. This is done to remove any excess +potential energy, which would otherwise rapidly convert into kinetic energy (so +heating up the system). -.. only:: builder_html - - See :download:`the full input <../_downloads/md1.dftb_in.hsd>` +This example relaxes the geometry of a molecule (PTCDA) to a local miniumum, +prior to performing molecular dynamics. +After running the relaxation, the output file ``geo_end.gen`` is now suitable to +use as a starting structure for MD (or for other property calculations). Vibrational modes ================= -Once at a structural minimum the quasi-harmonic vibrational modes can be -calculated, for future comparision with the power spectrum of the system. +.. only :: builder_html or readthedocs + + [Input: `recipes/moleculardynamics/vibrations/`] + +Once at a structural minimum, the quasi-harmonic vibrational modes of the atoms +in the system can be calculated. These can then be compated with the power +spectrum of the system, as determined by molecular dynamics. + +The vibrational modes can be obtained from the mass-weighted Hessian matrix of +the system. This can be calculated by ``DFTB+`` from finite difference second +derivatives of the energy with respect to atom positions (technically, the first +derivatives of the forces are actually used). + +This derivative calculation can be enabled as an alternative choice of the +Driver:: + + Driver = SecondDerivatives { + Delta = 1E-4 + } + +The provided example also sets the size of the finite difference step used to +differentiate the energy as 0.0001 atomic units. -.. only:: builder_html - - See the :download:`dftb_in.hsd <../_downloads/md2.dftb_in.hsd>` file and the - relaxed geometry :download:`geometry <../_downloads/md2.geom.gen>` +The modes are known as quasi-harmonic, since depending on the numerical step +size these derivatives will include a contribution from higher even derivatives +of the function. Hence, for accurate evaluation of harmonic frequencies, the +smallest stable choice of the step size should be used (however, a carefull +choice of this value can sometimes be used to include anharonicity in the +calculated vibrational energies, see for example `Jones and Briddon 1998 +`_). + +Running the code will produce a file called ``hessian.out`` which contains the +derivative information. Calculating the modes ~~~~~~~~~~~~~~~~~~~~~ -.. only:: builder_html - - See the :download:`modes_in.hsd <../_downloads/md2.modes_in.hsd>` file. This - example uses the same :download:`geometry <../_downloads/md2.geom.gen>` as - the second derivative calculation above. +The ``modes`` code can read the Hessian matrix and calculate the vibrational +modes. An example input file is included in this directory using the +``hessian.out`` file that is produced by the DFTB+ calculation using the +supplied ``dftb_in.hsd``. + +The general structure of the input for modes is similar to DFTB+, also being in +the hsd format. The code expects a ``modes_in.hsd`` file, which contains blocks +for the geometry, Hessian and the Slater-Koster files (used to get the mass of +the atoms). A typical input looks like:: + + + # Needs the equilibrium geometry, at which the Hessian had been calculated + Geometry = GenFormat { + <<< geom.gen + } + + DisplayModes = { + PlotModes = -20:-1 # Take the top 10 modes + Animate = Yes # make xyz files showing the atoms moving + } + + # You need to specify the SK-files, as the mass of the elements is needed + SlaterKosterFiles = Type2FileNames { + Prefix = "../../slakos/mio-ext/" + Separator = "-" + Suffix = ".skf" + } + + # Include the Hessian, which was calculated by DFTB+ + Hessian = { + <<< "hessian.out" + } + + # This file uses the 3rd input format of the modes code + InputVersion = 3 + +Here, the code produces animations of several modes, which can be viewed for +example using the `jmol `_ cross platform viewer +:: + + jmol mode_114.xyz & +for the highest frequency stretch mode of this molecule. diff --git a/docs/moleculardynamics/xlbomd.rst b/docs/moleculardynamics/xlbomd.rst index bfaaccbc..2188be32 100644 --- a/docs/moleculardynamics/xlbomd.rst +++ b/docs/moleculardynamics/xlbomd.rst @@ -4,17 +4,56 @@ Speeding up SCC MD ****************** -Instead of standard Born-Oppenheimer (BO) dynamics, there are two methods in use -to propagate the atomic positions and electronic structure, either the -Car-Parrinello scheme or extended Lagrangian (XL) Born-Oppenheimer -dynamics. DFTB+ supports the second of these methods, which (when stable) -produces equivalent dynamics to conventional Born-Oppenheimer molecular dynamics -but with similar (lower) costs to non-SCC DFTB. +.. only :: builder_html or readthedocs -This example uses the fast XL-BOMD method with a single SCC step for each -geometry. + [Input: `recipes/moleculardynamics/XLBOMD/`] -.. only:: builder_html - - See :download:`the full input <../_downloads/md5.dftb_in.hsd>` +Instead of standard Born-Oppenheimer (BO) molecular dynamics, there are several +alternative methods that can propagate both the atomic positions and electronic +structure simultaneously, often with substantial improvements in computational +speed. +These are either the Car-Parrinello scheme or extended Lagrangian (XL) +Born-Oppenheimer dynamics. DFTB+ supports the second of these methods, which +(when stable) produces SCC equivalent dynamics to conventional Born-Oppenheimer +molecular dynamics but with similar (lower) costs to non-SCC DFTB. + +This example uses the fast XL-BOMD method, with a single SCC step for each +geometry once the calculation starts. Here the dynamics of an extended +Lagrangian is used to predict the charges for each time step, but without using +a self-consistent loop. Fast XL-BOMD is potentially less stable, so should only +be used for systems which show good SCC behaviour (molecules without +degeneracies or solids with wide band gaps). + +To enable XL dynamics, the ``VelocityVerlet{}`` block should be modified to +contain an extra section:: + + XlbomdFast { + IntegrationSteps = 5 + Scale = 0.5 + TransientSteps = 10 + } + +This instructs the code to use 5 time steps to integrate the equations of motion +(EOM) for the system with an initial 10 steps of Born-Oppenheimer dynamics +before starting the XL dynamics. The initial BO steps lead to a more stable +start for the XL dynamics. The scaling factor is used to also increase stability +of the XL-EOMs, and should be in the range of (0..1], where the largest value +which is stable should be used (this can only be determined by testing). + +Due to the reduced requirements on SCC during XL-BOMD dynamics, the standard +DFTB forces are usually not sufficiently accurate due to increased +self-consistency errors. Hence an extra command should be added to the +``Hamiltonian {}`` block:: + + ForceEvaluation = Dynamics + +This enables an additional correction in the forces, which can be used for +``Fermi`` fillings. This correction can also be used in other calculations where +the forces are evaluated with limited self-consistency (for example to speed up +geometry relaxation be relaxing the ``SCCTolerance``). + +In the special case of the electronic temperature of the system being set to be +0, there is a faster version of this correction which can be used:: + + ForceEvaluation = DynamicsT0 From 31633dca28bb5b4346917df92b17e374b6dffc7d Mon Sep 17 00:00:00 2001 From: Ben Hourahine Date: Fri, 30 Nov 2018 00:46:53 +0000 Subject: [PATCH 14/14] Hide file path if not html --- docs/waveplot/firststeps.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/waveplot/firststeps.rst b/docs/waveplot/firststeps.rst index 414365e5..50187498 100644 --- a/docs/waveplot/firststeps.rst +++ b/docs/waveplot/firststeps.rst @@ -2,7 +2,9 @@ The first steps with Waveplot ***************************** -[Input: `recipes/waveplot/firststeps/`] +.. only :: builder_html or readthedocs + + [Input: `recipes/waveplot/firststeps/`] Making a DFTB+ calculation ==========================