Silicon variable cell relaxation
In this example we optimise both atomic positions and lattice geometry of a rattled silicon structure using a Stillinger-Weber potential.
We build an initial structure by first rattling the positions and than the lattice geometry:
using AtomsBase
using AtomsBuilder
using LinearAlgebra
using Unitful
using UnitfulAtomic
silicon_posrattle = rattle!(bulk(:Si, cubic=true) * (2, 2, 2), 0.1u"Å")
F = I + 1e-3randn(3, 3)
new_cell_vectors = tuple([F * v for v in cell_vectors(silicon_posrattle)]...)
silicon_rattle = AbstractSystem(silicon_posrattle; cell_vectors=new_cell_vectors)FlexibleSystem(Si₆₄, periodicity = TTT):
cell_vectors : [ 10.8675 -0.00817589 0.0226533;
-0.00485057 10.8427 -0.0132603;
0.00760798 0.00408008 10.8614]u"Å"
and optimise with variablecell=true
using EmpiricalPotentials
using GeometryOptimization
sw = StillingerWeber()
silicon = minimize_energy!(silicon_posrattle, sw;
variablecell=true, verbosity=1, tol_virial=1e-4u"hartree").system Geometry optimisation convergence (in atomic units)
┌─────┬─────────────────┬───────────┬─────────────┬─────────────┬──────────┬────────┐
│ n │ Energy │ log10(ΔE) │ max(Force) │ max(Virial) │ Pressure │ Δtime │
├─────┼─────────────────┼───────────┼─────────────┼─────────────┼──────────┼────────┤
│ 0 │ -10.12844067818 │ │ 0.0514283 │ 0.252037 │ -0.077 │ 820ms │
│ 1 │ -10.13245733484 │ │ 0.0436166 │ 0.166766 │ 0.1 │ 47.8ms │
│ 2 │ -10.14866541652 │ -1.79 │ 0.0354781 │ 0.738425 │ -0.72 │ 4.26ms │
│ 3 │ -10.18257306971 │ -1.47 │ 0.0150072 │ 0.41404 │ 0.13 │ 4.11ms │
│ 4 │ -10.18883188754 │ -2.20 │ 0.0105303 │ 0.150641 │ 0.1 │ 4.05ms │
│ 5 │ -10.18917527951 │ -3.46 │ 0.0104247 │ 0.0536617 │ -0.037 │ 3.99ms │
│ 6 │ -10.18947971212 │ -3.52 │ 0.00982323 │ 0.0601431 │ -0.015 │ 51.2ms │
│ 7 │ -10.19004190710 │ -3.25 │ 0.00892988 │ 0.14621 │ 0.1 │ 4.08ms │
│ 8 │ -10.19089738231 │ -3.07 │ 0.00763021 │ 0.17071 │ -0.058 │ 4.02ms │
│ 9 │ -10.19280045610 │ -2.72 │ 0.00453262 │ 0.143652 │ -0.1 │ 3.98ms │
│ 10 │ -10.19329999992 │ -3.30 │ 0.0044127 │ 0.0454136 │ 0.041 │ 3.94ms │
│ 11 │ -10.19340057927 │ -4.00 │ 0.00454143 │ 0.0143024 │ 0.0052 │ 4.00ms │
│ 12 │ -10.19346726959 │ -4.18 │ 0.00419013 │ 0.0508175 │ -0.048 │ 3.95ms │
│ 13 │ -10.19382119782 │ -3.45 │ 0.00334614 │ 0.0844046 │ 0.03 │ 4.01ms │
│ 14 │ -10.19447740124 │ -3.18 │ 0.00440762 │ 0.0755705 │ 0.058 │ 4.00ms │
│ 15 │ -10.19456675513 │ -4.05 │ 0.00459075 │ 0.0184073 │ -0.012 │ 3.98ms │
│ 16 │ -10.19460171701 │ -4.46 │ 0.00432081 │ 0.0169448 │ -0.0059 │ 3.90ms │
│ 17 │ -10.19466660263 │ -4.19 │ 0.0041513 │ 0.051692 │ 0.041 │ 3.92ms │
│ 18 │ -10.19479547995 │ -3.89 │ 0.0037846 │ 0.0605513 │ -0.014 │ 3.91ms │
│ 19 │ -10.19510144055 │ -3.51 │ 0.00202329 │ 0.0879415 │ -0.053 │ 3.95ms │
│ 20 │ -10.19528905277 │ -3.73 │ 0.00207417 │ 0.035042 │ 0.03 │ 3.93ms │
│ 21 │ -10.19533809837 │ -4.31 │ 0.0018965 │ 0.00664892 │ 0.0053 │ 3.98ms │
│ 22 │ -10.19534581043 │ -5.11 │ 0.0018591 │ 0.0134 │ -0.013 │ 3.94ms │
│ 23 │ -10.19537238986 │ -4.58 │ 0.00199953 │ 0.0226025 │ 0.0092 │ 3.95ms │
│ 24 │ -10.19549328094 │ -3.92 │ 0.000981043 │ 0.0441439 │ 0.035 │ 4.00ms │
│ 25 │ -10.19552784164 │ -4.46 │ 0.00108736 │ 0.0096425 │ -0.0061 │ 3.94ms │
│ 26 │ -10.19553516558 │ -5.14 │ 0.00119957 │ 0.00472437 │ -0.0031 │ 3.95ms │
│ 27 │ -10.19553971774 │ -5.34 │ 0.00116028 │ 0.0115116 │ 0.01 │ 4.01ms │
│ 28 │ -10.19554876765 │ -5.04 │ 0.00102907 │ 0.0135485 │ -0.0025 │ 3.95ms │
│ 29 │ -10.19557312965 │ -4.61 │ 0.000974823 │ 0.032921 │ -0.018 │ 3.97ms │
│ 30 │ -10.19561037966 │ -4.43 │ 0.000891763 │ 0.0217733 │ 0.018 │ 4.16ms │
│ 31 │ -10.19563177941 │ -4.67 │ 0.00100764 │ 0.0046215 │ 0.0043 │ 4.23ms │
│ 32 │ -10.19563387840 │ -5.68 │ 0.000957499 │ 0.00511407 │ -0.0049 │ 4.27ms │
│ 33 │ -10.19563726583 │ -5.47 │ 0.000949885 │ 0.00673112 │ 0.0031 │ 4.13ms │
│ 34 │ -10.19566559313 │ -4.55 │ 0.000631534 │ 0.0294533 │ 0.024 │ 4.20ms │
│ 35 │ -10.19568854667 │ -4.64 │ 0.00070927 │ 0.0082042 │ -0.0054 │ 4.41ms │
│ 36 │ -10.19569396744 │ -5.27 │ 0.00057461 │ 0.0045535 │ -0.0029 │ 4.38ms │
│ 37 │ -10.19569518374 │ -5.91 │ 0.000578819 │ 0.00535028 │ 0.0045 │ 4.36ms │
│ 38 │ -10.19569699251 │ -5.74 │ 0.00060577 │ 0.00390301 │ -0.00042 │ 4.22ms │
│ 39 │ -10.19570041424 │ -5.47 │ 0.000486021 │ 0.0135749 │ -0.0072 │ 4.39ms │
│ 40 │ -10.19570787943 │ -5.13 │ 0.000455921 │ 0.012519 │ 0.0095 │ 4.40ms │
│ 41 │ -10.19571771926 │ -5.01 │ 0.000413372 │ 0.00433674 │ 0.0039 │ 4.29ms │
│ 42 │ -10.19571866666 │ -6.02 │ 0.000414934 │ 0.00235209 │ -0.0023 │ 4.39ms │
│ 43 │ -10.19571907673 │ -6.39 │ 0.000411588 │ 0.00182684 │ 0.00052 │ 4.36ms │
│ 44 │ -10.19572141841 │ -5.63 │ 0.000329228 │ 0.00999873 │ 0.0086 │ 4.38ms │
│ 45 │ -10.19572636998 │ -5.31 │ 0.00025438 │ 0.00579132 │ -0.0031 │ 4.00ms │
│ 46 │ -10.19572849859 │ -5.67 │ 0.00025963 │ 0.00301264 │ -0.002 │ 3.91ms │
│ 47 │ -10.19572874609 │ -6.61 │ 0.000249099 │ 0.00250583 │ 0.0015 │ 3.87ms │
│ 48 │ -10.19572894767 │ -6.70 │ 0.000223383 │ 0.00113807 │ 0.0001 │ 3.88ms │
│ 49 │ -10.19572914696 │ -6.70 │ 0.000224068 │ 0.00308685 │ -0.0017 │ 3.94ms │
│ 50 │ -10.19572953478 │ -6.41 │ 0.000199246 │ 0.00321785 │ 0.0023 │ 3.98ms │
│ 51 │ -10.19573078896 │ -5.90 │ 9.59166e-5 │ 0.00238101 │ 0.0021 │ 4.02ms │
│ 52 │ -10.19573103274 │ -6.61 │ 9.23404e-5 │ 0.0011391 │ -0.00098 │ 3.93ms │
│ 53 │ -10.19573107755 │ -7.35 │ 9.54561e-5 │ 0.000318688 │ -6.5e-5 │ 3.92ms │
│ 54 │ -10.19573111230 │ -7.46 │ 8.70741e-5 │ 0.00115947 │ 0.001 │ 3.99ms │
│ 55 │ -10.19573125770 │ -6.84 │ 8.0425e-5 │ 0.00158246 │ -0.00075 │ 3.90ms │
│ 56 │ -10.19573147457 │ -6.66 │ 5.58237e-5 │ 0.00121542 │ -0.00088 │ 3.96ms │
│ 57 │ -10.19573150589 │ -7.50 │ 5.07904e-5 │ 0.000819711 │ 0.00038 │ 3.93ms │
│ 58 │ -10.19573152143 │ -7.81 │ 4.58294e-5 │ 0.000311028 │ 7.4e-5 │ 3.93ms │
│ 59 │ -10.19573153021 │ -8.06 │ 4.44957e-5 │ 0.000521014 │ -0.00033 │ 4.04ms │
│ 60 │ -10.19573154074 │ -7.98 │ 4.35862e-5 │ 0.000497541 │ 0.00032 │ 3.98ms │
│ 61 │ -10.19573162185 │ -7.09 │ 4.84023e-5 │ 0.00108027 │ 0.0009 │ 3.96ms │
│ 62 │ -10.19573169881 │ -7.11 │ 4.82579e-5 │ 0.00082778 │ -0.00069 │ 3.93ms │
│ 63 │ -10.19573172087 │ -7.66 │ 4.47178e-5 │ 0.000190195 │ -9.1e-5 │ 3.90ms │
│ 64 │ -10.19573172592 │ -8.30 │ 4.63976e-5 │ 0.000360802 │ 0.00034 │ 3.86ms │
│ 65 │ -10.19573174528 │ -7.71 │ 4.82062e-5 │ 0.000715134 │ -0.00031 │ 3.89ms │
│ 66 │ -10.19573182784 │ -7.08 │ 2.63274e-5 │ 0.00105959 │ -0.00082 │ 3.89ms │
│ 67 │ -10.19573185257 │ -7.61 │ 2.80561e-5 │ 0.000656454 │ 0.00028 │ 3.95ms │
│ 68 │ -10.19573186162 │ -8.04 │ 2.72234e-5 │ 0.000227127 │ 8.0e-5 │ 3.92ms │
│ 69 │ -10.19573186477 │ -8.50 │ 2.71831e-5 │ 0.00020433 │ -0.00018 │ 3.98ms │
│ 70 │ -10.19573186648 │ -8.77 │ 2.67467e-5 │ 0.000123351 │ 7.0e-5 │ 3.91ms │
│ 71 │ -10.19573187361 │ -8.15 │ 2.42622e-5 │ 0.000388602 │ 0.00031 │ 3.93ms │
│ 72 │ -10.19573188920 │ -7.81 │ 1.85334e-5 │ 0.000505678 │ -0.00041 │ 3.94ms │
│ 73 │ -10.19573189840 │ -8.04 │ 1.80209e-5 │ 0.000121906 │ -8.0e-5 │ 4.00ms │
│ 74 │ -10.19573189923 │ -9.08 │ 1.82038e-5 │ 9.94963e-5 │ 9.7e-5 │ 3.94ms │
│ 75 │ -10.19573190047 │ -8.91 │ 1.831e-5 │ 0.000181981 │ -6.9e-5 │ 3.98ms │
│ 76 │ -10.19573191148 │ -7.96 │ 1.59959e-5 │ 0.000571866 │ -0.00046 │ 4.00ms │
│ 77 │ -10.19573192283 │ -7.94 │ 1.45232e-5 │ 0.000462536 │ 0.0002 │ 3.93ms │
│ 78 │ -10.19573192834 │ -8.26 │ 1.587e-5 │ 0.000228372 │ 7.7e-5 │ 35.8ms │
│ 79 │ -10.19573193014 │ -8.75 │ 1.55959e-5 │ 0.000155992 │ -0.00014 │ 4.08ms │
│ 80 │ -10.19573193093 │ -9.10 │ 1.51791e-5 │ 6.95934e-5 │ 1.9e-5 │ 3.94ms │
│ 81 │ -10.19573193216 │ -8.91 │ 1.46084e-5 │ 0.00016992 │ 0.00013 │ 3.90ms │
│ 82 │ -10.19573193613 │ -8.40 │ 1.01828e-5 │ 0.000331238 │ -0.00026 │ 3.88ms │
│ 83 │ -10.19573194171 │ -8.25 │ 7.2184e-6 │ 0.000116028 │ -8.1e-5 │ 3.93ms │
│ 84 │ -10.19573194215 │ -9.36 │ 6.81109e-6 │ 5.11605e-5 │ 4.5e-5 │ 3.90ms │
│ 85 │ -10.19573194227 │ -9.93 │ 6.707e-6 │ 3.37159e-5 │ -5.9e-6 │ 3.88ms │
│ 86 │ -10.19573194262 │ -9.45 │ 5.81795e-6 │ 0.000109888 │ -9.5e-5 │ 3.86ms │
│ 87 │ -10.19573194333 │ -9.15 │ 3.94469e-6 │ 0.000116445 │ 5.0e-5 │ 3.91ms │
│ 88 │ -10.19573194384 │ -9.29 │ 2.27801e-6 │ 8.26007e-5 │ 2.9e-5 │ 3.90ms │
│ 89 │ -10.19573194398 │ -9.85 │ 1.71226e-6 │ 5.06044e-5 │ -3.9e-5 │ 3.86ms │Final structure:
siliconFlexibleSystem(Si₆₄, periodicity = TTT):
cell_vectors : [ 10.8619 -4.01233e-06 9.20214e-05;
5.31915e-06 10.8619 3.63612e-05;
-9.28785e-05 -3.2668e-05 10.8619]u"Å"