Large displacements when using mc_rattle
Summary
I'm getting much larger displacements than a standard normal distribution when using the mc_rattle
function. From what I can tell from the documentation, the distribution of displacements using the Monte-Carlo rattle procedure should actually be weighted more towards zero than a standard normal distribution.
The structure is quite large and complicated (lattice parameters: a,b,c = 15, 15, 18) which is maybe where the complication is occurring.
Example
Here is an example using a rattle standard deviation of 0.01 Å. I plot the distribution of displacements produced by the mc_rattle
function versus the displacements drawn from a normal distribution.
import numpy as np
import seaborn as sns
from ase import Atoms
from hiphive.structure_generation.rattle import mc_rattle
rattle_std = 0.01
min_distance = 1.4
supercell_dict = {
'numbers': [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
'positions': [[ 5.46671102e+00, -1.25849219e+01, 3.76801767e+00], [ 5.46671102e+00, -1.25849219e+01, 1.29273852e+01], [ 5.46671102e+00, 1.25849219e+01, 8.34770146e+00], [ 5.46671102e+00, 1.25849219e+01, 1.75070690e+01], [ 5.46671102e+00, -1.16184997e+01, 2.63112907e-01], [ 5.46671102e+00, -1.16184997e+01, 9.42248048e+00], [ 5.46671102e+00, 1.16184997e+01, 4.84279669e+00], [ 5.46671102e+00, 1.16184997e+01, 1.40021643e+01], [ 5.46671102e+00, -9.37955333e+00, 2.49480636e+00], [ 5.46671102e+00, -9.37955333e+00, 1.16541739e+01], [ 5.46671102e+00, 9.37955333e+00, 7.07449015e+00], [ 5.46671102e+00, 9.37955333e+00, 1.62338577e+01], [ 5.46671102e+00, -8.99908266e+00, 6.67987239e+00], [ 5.46671102e+00, -8.99908266e+00, 1.58392400e+01], [ 5.46671102e+00, 8.99908266e+00, 2.10018860e+00], [ 5.46671102e+00, 8.99908266e+00, 1.12595562e+01], [ 5.46671102e+00, -5.85238087e+00, 5.32073330e+00], [ 5.46671102e+00, -5.85238087e+00, 1.44801009e+01], [ 5.46671102e+00, 5.85238087e+00, 7.41049512e-01], [ 5.46671102e+00, 5.85238087e+00, 9.90041709e+00], [ 5.46671102e+00, -6.76362943e+00, 8.86772980e+00], [ 5.46671102e+00, -6.76362943e+00, 1.80270974e+01], [ 5.46671102e+00, 6.76362943e+00, 4.28804601e+00], [ 5.46671102e+00, 6.76362943e+00, 1.34474136e+01], [ 5.46671102e+00, -3.37743017e+00, 8.44073500e-01], [ 5.46671102e+00, -3.37743017e+00, 1.00034411e+01], [ 5.46671102e+00, 3.37743017e+00, 5.42375729e+00], [ 5.46671102e+00, 3.37743017e+00, 1.45831249e+01], [ 5.46671102e+00, -2.50086278e+00, 4.29926562e+00], [ 5.46671102e+00, -2.50086278e+00, 1.34586332e+01], [ 5.46671102e+00, 2.50086278e+00, 8.87894941e+00], [ 5.46671102e+00, 2.50086278e+00, 1.80383170e+01], [ 5.46671102e+00, -1.92286840e-01, 2.13270972e+00], [ 5.46671102e+00, -1.92286840e-01, 1.12920773e+01], [ 5.46671102e+00, 1.92286840e-01, 6.71239351e+00], [ 5.46671102e+00, 1.92286840e-01, 1.58717611e+01], [ 7.48302367e+00, -2.32586901e+00, 6.87525070e+00], [ 7.48302367e+00, -2.32586901e+00, 1.60346183e+01], [ 3.45039837e+00, -2.32586901e+00, 6.87525070e+00], [ 3.45039837e+00, -2.32586901e+00, 1.60346183e+01], [ 7.48302367e+00, 2.32586901e+00, 2.29556691e+00], [ 7.48302367e+00, 2.32586901e+00, 1.14549345e+01], [ 3.45039837e+00, 2.32586901e+00, 2.29556691e+00], [ 3.45039837e+00, 2.32586901e+00, 1.14549345e+01], [ 7.48573025e+00, 6.85835125e+00, 6.88090629e+00], [ 7.48573025e+00, 6.85835125e+00, 1.60402739e+01], [ 3.44769179e+00, 6.85835125e+00, 6.88090629e+00], [ 3.44769179e+00, 6.85835125e+00, 1.60402739e+01], [ 7.48573025e+00, -6.85835125e+00, 2.30122250e+00], [ 7.48573025e+00, -6.85835125e+00, 1.14605901e+01], [ 3.44769179e+00, -6.85835125e+00, 2.30122250e+00], [ 3.44769179e+00, -6.85835125e+00, 1.14605901e+01], [ 2.01863825e+00, 2.26656879e+00, 6.83427830e+00], [ 2.01863825e+00, 2.26656879e+00, 1.59936459e+01], [ 8.91478379e+00, 2.26656879e+00, 6.83427830e+00], [ 8.91478379e+00, 2.26656879e+00, 1.59936459e+01], [ 2.01863825e+00, -2.26656879e+00, 2.25459452e+00], [ 2.01863825e+00, -2.26656879e+00, 1.14139621e+01], [ 8.91478379e+00, -2.26656879e+00, 2.25459452e+00], [ 8.91478379e+00, -2.26656879e+00, 1.14139621e+01], [ 8.16096439e+00, 2.30382099e-02, 9.09358804e+00], [ 8.16096439e+00, 2.30382099e-02, 1.82529556e+01], [ 2.77245765e+00, 2.30382099e-02, 9.09358804e+00], [ 2.77245765e+00, 2.30382099e-02, 1.82529556e+01], [ 8.16096439e+00, -2.30382099e-02, 4.51390426e+00], [ 8.16096439e+00, -2.30382099e-02, 1.36732718e+01], [ 2.77245765e+00, -2.30382099e-02, 4.51390426e+00], [ 2.77245765e+00, -2.30382099e-02, 1.36732718e+01], [ 2.64784036e+00, 4.59470551e+00, 6.29459571e-03], [ 2.64784036e+00, 4.59470551e+00, 9.16566217e+00], [ 8.28558168e+00, 4.59470551e+00, 6.29459571e-03], [ 8.28558168e+00, 4.59470551e+00, 9.16566217e+00], [ 2.64784036e+00, -4.59470551e+00, 4.58597838e+00], [ 2.64784036e+00, -4.59470551e+00, 1.37453460e+01], [ 8.28558168e+00, -4.59470551e+00, 4.58597838e+00], [ 8.28558168e+00, -4.59470551e+00, 1.37453460e+01], [ 2.75616206e+00, 4.59063192e+00, 4.58340814e+00], [ 2.75616206e+00, 4.59063192e+00, 1.37427757e+01], [ 8.17725998e+00, 4.59063192e+00, 4.58340814e+00], [ 8.17725998e+00, 4.59063192e+00, 1.37427757e+01], [ 2.75616206e+00, -4.59063192e+00, 3.72435658e-03], [ 2.75616206e+00, -4.59063192e+00, 9.16309193e+00], [ 8.17725998e+00, -4.59063192e+00, 3.72435658e-03], [ 8.17725998e+00, -4.59063192e+00, 9.16309193e+00], [ 7.17403657e+00, 8.31740406e+00, 5.45746131e+00], [ 7.17403657e+00, 8.31740406e+00, 1.46168289e+01], [ 3.75938547e+00, 8.31740406e+00, 5.45746131e+00], [ 3.75938547e+00, 8.31740406e+00, 1.46168289e+01], [ 7.17403657e+00, -8.31740406e+00, 8.77777519e-01], [ 7.17403657e+00, -8.31740406e+00, 1.00371451e+01], [ 3.75938547e+00, -8.31740406e+00, 8.77777519e-01], [ 3.75938547e+00, -8.31740406e+00, 1.00371451e+01], [ 7.24119543e+00, -7.73280140e-01, 8.14089626e+00], [ 7.24119543e+00, -7.73280140e-01, 1.73002638e+01], [ 3.69222661e+00, -7.73280140e-01, 8.14089626e+00], [ 3.69222661e+00, -7.73280140e-01, 1.73002638e+01], [ 7.24119543e+00, 7.73280140e-01, 3.56121248e+00], [ 7.24119543e+00, 7.73280140e-01, 1.27205800e+01], [ 3.69222661e+00, 7.73280140e-01, 3.56121248e+00], [ 3.69222661e+00, 7.73280140e-01, 1.27205800e+01], [ 7.24637282e+00, -9.17566070e-01, 5.38201269e+00], [ 7.24637282e+00, -9.17566070e-01, 1.45413803e+01], [ 3.68704922e+00, -9.17566070e-01, 5.38201269e+00], [ 3.68704922e+00, -9.17566070e-01, 1.45413803e+01], [ 7.24637282e+00, 9.17566070e-01, 8.02328906e-01], [ 7.24637282e+00, 9.17566070e-01, 9.96169648e+00], [ 3.68704922e+00, 9.17566070e-01, 8.02328906e-01], [ 3.68704922e+00, 9.17566070e-01, 9.96169648e+00], [ 1.73610769e+00, 3.69668510e+00, 8.29540204e+00], [ 1.73610769e+00, 3.69668510e+00, 1.74547696e+01], [ 9.19731435e+00, 3.69668510e+00, 8.29540204e+00], [ 9.19731435e+00, 3.69668510e+00, 1.74547696e+01], [ 1.73610769e+00, -3.69668510e+00, 3.71571825e+00], [ 1.73610769e+00, -3.69668510e+00, 1.28750858e+01], [ 9.19731435e+00, -3.69668510e+00, 3.71571825e+00], [ 9.19731435e+00, -3.69668510e+00, 1.28750858e+01], [ 1.82507733e+00, 3.79670952e+00, 5.52627674e+00], [ 1.82507733e+00, 3.79670952e+00, 1.46856443e+01], [ 9.10834470e+00, 3.79670952e+00, 5.52627674e+00], [ 9.10834470e+00, 3.79670952e+00, 1.46856443e+01], [ 1.82507733e+00, -3.79670952e+00, 9.46592954e-01], [ 1.82507733e+00, -3.79670952e+00, 1.01059605e+01], [ 9.10834470e+00, -3.79670952e+00, 9.46592954e-01], [ 9.10834470e+00, -3.79670952e+00, 1.01059605e+01], [ 7.32624544e+00, -8.35885942e+00, 3.64588958e+00], [ 7.32624544e+00, -8.35885942e+00, 1.28052572e+01], [ 3.60717660e+00, -8.35885942e+00, 3.64588958e+00], [ 3.60717660e+00, -8.35885942e+00, 1.28052572e+01], [ 7.32624544e+00, 8.35885942e+00, 8.22557337e+00], [ 7.32624544e+00, 8.35885942e+00, 1.73849409e+01], [ 3.60717660e+00, 8.35885942e+00, 8.22557337e+00], [ 3.60717660e+00, 8.35885942e+00, 1.73849409e+01], [ 7.25460665e+00, -3.62622080e+00, 8.37502461e+00], [ 7.25460665e+00, -3.62622080e+00, 1.75343922e+01], [ 3.67881539e+00, -3.62622080e+00, 8.37502461e+00], [ 3.67881539e+00, -3.62622080e+00, 1.75343922e+01], [ 7.25460665e+00, 3.62622080e+00, 3.79534082e+00], [ 7.25460665e+00, 3.62622080e+00, 1.29547084e+01], [ 3.67881539e+00, 3.62622080e+00, 3.79534082e+00], [ 3.67881539e+00, 3.62622080e+00, 1.29547084e+01], [ 1.88833316e+00, 9.27817184e-01, 5.35941760e+00], [ 1.88833316e+00, 9.27817184e-01, 1.45187852e+01], [ 9.04508888e+00, 9.27817184e-01, 5.35941760e+00], [ 9.04508888e+00, 9.27817184e-01, 1.45187852e+01], [ 1.88833316e+00, -9.27817184e-01, 7.79733811e-01], [ 1.88833316e+00, -9.27817184e-01, 9.93910138e+00], [ 9.04508888e+00, -9.27817184e-01, 7.79733811e-01], [ 9.04508888e+00, -9.27817184e-01, 9.93910138e+00], [ 7.21280801e+00, -5.49875377e+00, 8.20543781e-01], [ 7.21280801e+00, -5.49875377e+00, 9.97991135e+00], [ 3.72061403e+00, -5.49875377e+00, 8.20543781e-01], [ 3.72061403e+00, -5.49875377e+00, 9.97991135e+00], [ 7.21280801e+00, 5.49875377e+00, 5.40022757e+00], [ 7.21280801e+00, 5.49875377e+00, 1.45595951e+01], [ 3.72061403e+00, 5.49875377e+00, 5.40022757e+00], [ 3.72061403e+00, 5.49875377e+00, 1.45595951e+01], [ 7.31203432e+00, -3.74940015e+00, 5.45429624e+00], [ 7.31203432e+00, -3.74940015e+00, 1.46136638e+01], [ 3.62138771e+00, -3.74940015e+00, 5.45429624e+00], [ 3.62138771e+00, -3.74940015e+00, 1.46136638e+01], [ 7.31203432e+00, 3.74940015e+00, 8.74612452e-01], [ 7.31203432e+00, 3.74940015e+00, 1.00339800e+01], [ 3.62138771e+00, 3.74940015e+00, 8.74612452e-01], [ 3.62138771e+00, 3.74940015e+00, 1.00339800e+01], [ 7.34305622e+00, -5.48725275e+00, 3.73680311e+00], [ 7.34305622e+00, -5.48725275e+00, 1.28961707e+01], [ 3.59036582e+00, -5.48725275e+00, 3.73680311e+00], [ 3.59036582e+00, -5.48725275e+00, 1.28961707e+01], [ 7.34305622e+00, 5.48725275e+00, 8.31648690e+00], [ 7.34305622e+00, 5.48725275e+00, 1.74758545e+01], [ 3.59036582e+00, 5.48725275e+00, 8.31648690e+00], [ 3.59036582e+00, 5.48725275e+00, 1.74758545e+01], [ 1.75461471e+00, 8.82033617e-01, 8.28487741e+00], [ 1.75461471e+00, 8.82033617e-01, 1.74442450e+01], [ 9.17880733e+00, 8.82033617e-01, 8.28487741e+00], [ 9.17880733e+00, 8.82033617e-01, 1.74442450e+01], [ 1.75461471e+00, -8.82033617e-01, 3.70519362e+00], [ 1.75461471e+00, -8.82033617e-01, 1.28645612e+01], [ 9.17880733e+00, -8.82033617e-01, 3.70519362e+00], [ 9.17880733e+00, -8.82033617e-01, 1.28645612e+01], [ 6.89134643e+00, -2.23229712e+00, 2.33826273e+00], [ 6.89134643e+00, -2.23229712e+00, 1.14976303e+01], [ 4.04207561e+00, -2.23229712e+00, 2.33826273e+00], [ 4.04207561e+00, -2.23229712e+00, 1.14976303e+01], [ 6.89134643e+00, 2.23229712e+00, 6.91794651e+00], [ 6.89134643e+00, 2.23229712e+00, 1.60773141e+01], [ 4.04207561e+00, 2.23229712e+00, 6.91794651e+00], [ 4.04207561e+00, 2.23229712e+00, 1.60773141e+01], [ 1.42513302e+00, 2.37450521e+00, 2.27276573e+00], [ 1.42513302e+00, 2.37450521e+00, 1.14321333e+01], [ 9.50828902e+00, 2.37450521e+00, 2.27276573e+00], [ 9.50828902e+00, 2.37450521e+00, 1.14321333e+01], [ 1.42513302e+00, -2.37450521e+00, 6.85244952e+00], [ 1.42513302e+00, -2.37450521e+00, 1.60118171e+01], [ 9.50828902e+00, -2.37450521e+00, 6.85244952e+00], [ 9.50828902e+00, -2.37450521e+00, 1.60118171e+01], [ 6.88976894e+00, -6.98066048e+00, 6.85293978e+00], [ 6.88976894e+00, -6.98066048e+00, 1.60123074e+01], [ 4.04365310e+00, -6.98066048e+00, 6.85293978e+00], [ 4.04365310e+00, -6.98066048e+00, 1.60123074e+01], [ 6.88976894e+00, 6.98066048e+00, 2.27325600e+00], [ 6.88976894e+00, 6.98066048e+00, 1.14326236e+01], [ 4.04365310e+00, 6.98066048e+00, 2.27325600e+00], [ 4.04365310e+00, 6.98066048e+00, 1.14326236e+01], [ 5.46671102e+00, -1.14655096e+01, 6.81568908e+00], [ 5.46671102e+00, -1.14655096e+01, 1.59750567e+01], [ 5.46671102e+00, 1.14655096e+01, 2.23600530e+00], [ 5.46671102e+00, 1.14655096e+01, 1.13953729e+01], [ 5.46671102e+00, -6.91542740e+00, 2.35489968e+00], [ 5.46671102e+00, -6.91542740e+00, 1.15142673e+01], [ 5.46671102e+00, 6.91542740e+00, 6.93458347e+00], [ 5.46671102e+00, 6.91542740e+00, 1.60939510e+01], [ 5.46671102e+00, -2.28116568e+00, 6.75047909e+00], [ 5.46671102e+00, -2.28116568e+00, 1.59098467e+01], [ 5.46671102e+00, 2.28116568e+00, 2.17079530e+00], [ 5.46671102e+00, 2.28116568e+00, 1.13301629e+01]],
'cell': [[5.46671102, -13.78351964, 0.], [5.46671102, 13.78351964, 0.], [0., 0., 18.31873515]],
'pbc': [ True, True, True]
}
supercell = Atoms.fromdict(supercell_dict)
mc_displacements = mc_rattle(supercell, rattle_std, min_distance)
mc_displacement_norms = np.linalg.norm(mc_displacements, axis=1)
rs = np.random.RandomState(102)
normal_displacements = rs.normal(0.0, rattle_std, (len(supercell), 3))
normal_displacements_norms = np.linalg.norm(normal_displacements, axis=1)
ax = sns.distplot(mc_displacement_norms, label="MC")
ax = sns.distplot(normal_displacements_norms, label="Normal")
ax.legend()
print("MC distribution norms:\n\tmin: {:.4f}\n\tmax: {:.4f}\n\tavg: {:.4f}".format(
mc_displacement_norms.min(), mc_displacement_norms.max(), mc_displacement_norms.mean()
))
print("\nNormal distribution norms:\n\tmin: {:.4f}\n\tmax: {:.4f}\n\tavg: {:.4f}".format(
normal_displacements_norms.min(), normal_displacements_norms.max(), normal_displacements_norms.mean()
))
Which produces the following as output:
MC distribution norms:
min: 0.0083
max: 0.1057
avg: 0.0511
Normal distribution norms:
min: 0.0028
max: 0.0390
avg: 0.0161
As you can see, the average displacement of the MC distribution is ~5 times larger than the rattle standard deviation. Is this the expected behaviour?