| 1 |
Madelung Energy Sample Calculation |
| 2 |
|
| 3 |
The sample in this directory provides a way of checking the value of |
| 4 |
the Madelung Energy for a perfect crystal of NaCl. The relevant |
| 5 |
quantities are: |
| 6 |
|
| 7 |
M (Madelung constant) = 1.74756 |
| 8 |
a (lattice constant) = 5.65 Angstroms |
| 9 |
q^2 / (4 pi e0 a) = 58.77233 kcal / mol |
| 10 |
M q^2 / (4 pi e0 a) = 102.708173 kcal / mol |
| 11 |
|
| 12 |
The file NaCl.md contains 8000 ions, so the total electrostatic energy |
| 13 |
of the perfect crystal in this file should be: |
| 14 |
|
| 15 |
V_electrostatic = -821665.38 kcal / mol |
| 16 |
|
| 17 |
Using different electrostatic calculation methods, we can get quite |
| 18 |
close to this value. |
| 19 |
|
| 20 |
For example, with : |
| 21 |
electrostaticSummationMethod = "shifted_force"; |
| 22 |
electrostaticScreeningMethod = "damped"; |
| 23 |
cutoffRadius = 28; |
| 24 |
dampingAlpha = 0.14159292; |
| 25 |
switchingRadius = 28; |
| 26 |
|
| 27 |
The resultant electrostatic potential is: -821667.88 kcal / mol |
| 28 |
|
| 29 |
To obtain values for the electrostatic potential in OpenMD, we add the |
| 30 |
ELECTROSTATIC_POTENTIAL keyword to the end of the statFileFormat: |
| 31 |
|
| 32 |
statFileFormat = "TIME|TOTAL_ENERGY|POTENTIAL_ENERGY|KINETIC_ENERGY|TEMPERATURE|PRESSURE|VOLUME|CONSERVED_QUANTITY|ELECTROSTATIC_POTENTIAL"; |
| 33 |
|
| 34 |
Note: Converging the Madelung energy often requires quite the use of |
| 35 |
very large cutoff distances (on the order of 28 Angstroms). This can |
| 36 |
result in extremely large neighbor lists, well beyond the size |
| 37 |
normally encountered by OpenMD. If you are interested in Madelung |
| 38 |
energy calculations, you may need to recompile OpenMD after making |
| 39 |
changes to the following parameters in |
| 40 |
|
| 41 |
src/UseTheForce/DarkSide/neighborLists.F90 : |
| 42 |
|
| 43 |
integer, save :: listMultiplier = 200 |
| 44 |
integer, parameter :: maxAllocations = 25 |
| 45 |
|
| 46 |
|
| 47 |
This recompilation should not be required in future versions of OpenMD. |