Commit e4b81861 authored by ggandus's avatar ggandus
Browse files

Merge branch 'master' of gitlab.ethz.ch:danielep/mmm_2019

parents 1ceabedd 67cb68a7
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.ticker as tck \n",
"import scipy\n",
"from scipy.special import sph_harm\n",
"from ase.io import read\n",
"from ase import neighborlist\n",
"from ase.visualize import view\n",
"from pylab import * "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### plot preferences"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"\n",
"SMALL_SIZE = 8 #8\n",
"MEDIUM_SIZE = 12 #20\n",
"BIGGER_SIZE = 12 #12\n",
"\n",
"plt.rc('font', size=SMALL_SIZE) # controls default text sizes\n",
"plt.rc('axes', titlesize=MEDIUM_SIZE) # fontsize of the axes title\n",
"plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels\n",
"plt.rc('xtick', labelsize=MEDIUM_SIZE) # fontsize of the tick labels\n",
"plt.rc('ytick', labelsize=MEDIUM_SIZE) # fontsize of the tick labels\n",
"plt.rc('legend', fontsize=MEDIUM_SIZE) # legend fontsize\n",
"plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Read files"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"trajectory = read('trajectory.xyz', index=':')\n",
"energy = np.loadtxt('energy.dat')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"view(trajectory)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Compute distances between center of mass and the atom that moves "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"distance = np.empty(0)\n",
"for frame in trajectory:\n",
" distance=np.append(distance,np.linalg.norm(frame.get_positions()[3]))\n",
"\n",
"distance/=3.405"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Compute $Q_l$ with $l=6$\n",
"\n",
"$\n",
"q_{lm} = \\frac{1}{N_{bonds}} \\sum_{N_n} y_{lm} (\\theta_{ij}, \\phi_{ij})\n",
"$\n",
"\n",
"$\n",
"Q_l^2 = \\frac{4 \\pi}{2l+1} \\sum_{m=-l}^l |q_{lm}|^2\n",
"$"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"#the desired Ql\n",
"l = 6\n",
"rcut = 3.405*1.391\n",
"\n",
"#update the cutoff for each frame\n",
"for frame in trajectory: \n",
" array_rcut = [ rcut for number_of_atoms in frame ]\n",
" new_neighbour_list = neighborlist.NeighborList(array_rcut, self_interaction=False, bothways=True)\n",
" new_neighbour_list.update(frame)\n",
"\n",
"\n",
"#compute Ql for each frame\n",
"Ql = np.empty(len(trajectory))\n",
"i = 0\n",
"\n",
"for frame in trajectory:\n",
" nbonds = 0\n",
" qlm = np.zeros(2*l+1) \n",
" \n",
" for atom in frame:\n",
" nlist = new_neighbour_list.get_neighbors(atom.index)[0]\n",
" \n",
" for theneig in nlist: #cycle over the neighbours\n",
" #get angles and distances\n",
" nbonds = nbonds+1\n",
" rij = frame[theneig].position - atom.position\n",
" dist = np.linalg.norm(rij)\n",
" phi_ij = np.arccos(rij[2]/dist)\n",
" theta_ij = np.arctan2(rij[1],rij[0])\n",
" if theta_ij < 0:\n",
" theta_ij += 2*np.pi\n",
" \n",
" #move in spherical coordinates space\n",
" # In a like-oriented coordinate system at j,\n",
" #the spherical coordinates of atom i are:\n",
" if theta_ij <= np.pi:\n",
" theta_ji = theta_ij + np.pi\n",
" elif theta_ij > np.pi:\n",
" theta_ji = theta_ij - np.pi\n",
" if np.absolute(theta_ji-2*np.pi)<0.0001:\n",
" theta_ji=0.0\n",
" phi_ji = np.pi-phi_ij\n",
" \n",
" #compute spherical harmonics and perform qml summation \n",
" qlm = qlm + np.array([ sph_harm(m,l,theta_ij,phi_ij) for m in range(-l,l+1) ])\n",
" \n",
" qlm = np.real(qlm*np.conj(qlm)/(nbonds*nbonds))\n",
" #prefactor and second summation\n",
" Ql[i] = np.sqrt(np.pi *4 /(2*l+1)*np.sum(qlm))\n",
" i += 1\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Compute asphericity"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"I = np.empty([0,3])\n",
"for frame in trajectory:\n",
" I = np.append(I,[frame.get_moments_of_inertia()],axis=0)\n",
"\n",
"I = I.transpose()\n",
"asph = ((I[0]- I[1])**2 + (I[0]- I[2])**2 + (I[2]- I[1])**2 )/ (I[0]**2 + I[1]**2 + I[2]**2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Energy representation"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"heigh of the barrier: 0.36929849170829243 eV/ε\n"
]
}
],
"source": [
"energy = np.loadtxt('energy.dat')\n",
"energy = np.transpose(energy)\n",
"epsilon = 119*8.616733e-5 #eV\n",
"energy[1] *= 27.1442/epsilon\n",
"min_e = np.min(energy[1])\n",
"energy[1] -= min_e\n",
"\n",
"fig = plt.plot(energy[0],energy[1],color='crimson', lw=2)\n",
"#get the axis just defined\n",
"ax = plt.gca()\n",
"ax.set_ylabel(\"V/$\\epsilon$\")\n",
"ax.set_xlabel(\"replicas\")\n",
"\n",
"# ---- create a second axis (ax2) ----\n",
"\n",
"# axis ticks\n",
"vec_tick =[]\n",
"vec_tick_values=[]\n",
"for i in range (0,len(energy[0])): \n",
" vec_tick.append(i)\n",
" vec_tick_values.append(round(Ql[i]*100.,2))\n",
" \n",
"ax2 = ax.twiny() \n",
"ax2.set_xticks(vec_tick)\n",
"ax2.set_xticklabels(vec_tick_values)\n",
"ax2.set_xlabel(\"$Q_l$ (x 100)\")\n",
"\n",
"\n",
"# ---- create a third axis (ax3) ----\n",
"\n",
"vec_tick =[]\n",
"vec_tick_values=[]\n",
"for i in range (0,len(energy[0])): \n",
" vec_tick.append(i)\n",
" vec_tick_values.append(round(asph[i]*100.,2))\n",
"\n",
"ax3 = ax.twiny() \n",
"ax3.set_xticks(vec_tick)\n",
"ax3.set_xticklabels(vec_tick_values)\n",
"ax3.set_xlabel(\"asphericity (x 100)\")\n",
"\n",
"# customising position of this third axes\n",
"ax3.xaxis.set_ticks_position(\"top\")\n",
"ax3.xaxis.set_label_position(\"top\")\n",
"ax3.spines[\"top\"].set_position((\"axes\", +1.35))\n",
"\n",
"# ---- create a forth axis (ax4) ----\n",
"\n",
"vec_tick =[]\n",
"vec_tick_values=[]\n",
"for i in range (0,len(energy[0])): \n",
" vec_tick.append(i)\n",
" vec_tick_values.append(round(distance[i],2))\n",
"\n",
"ax4 = ax.twiny() \n",
"ax4.set_xticks(vec_tick)\n",
"ax4.set_xticklabels(vec_tick_values)\n",
"ax4.set_xlabel(\"distance\")\n",
"\n",
"# customising position of this third axes\n",
"ax4.xaxis.set_ticks_position(\"top\")\n",
"ax4.xaxis.set_label_position(\"top\")\n",
"ax4.spines[\"top\"].set_position((\"axes\",+ 1.7))\n",
"plt.subplots_adjust(left=0.2, right=0.75, top=0.6, bottom=0.12)\n",
"plt.savefig(\"LJ38_neb.png\", dpi=400,transparent=True)\n",
"plt.show()\n",
"print('heigh of the barrier: ', np.max(energy[1])-energy[1][0], 'eV/ε')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(1,2,figsize=(10, 4),sharex='all',squeeze ='False')\n",
"\n",
"#FIRST PLOT\n",
"ax[0].plot(energy[0],asph, lw=2)\n",
"ax[0].set_ylabel(\"asphericity\")\n",
"ax[0].set_xlabel(\"replicas\")\n",
"\n",
"#SECOND PLOT\n",
"ax[1].plot(energy[0],Ql, color = 'orange',lw=2)\n",
"ax[1].set_ylabel(\"$Q_l$\")\n",
"ax[1].set_xlabel(\"replicas\")\n",
"\n",
"plt.subplots_adjust( hspace=1)\n",
"plt.tight_layout()\n",
"#plt.savefig(\"Order_parameters.png\", dpi=300,transparent=True)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### PER DANIELE:\n",
"Volevo far salvare solo i valori di Q6 e Q4 e far loro plottare uno rispetto all'altro. Come mostrato qua sotto si tratterebbe di due righe, giusto per verificare abbiano capito i comandi di plot fondamentali"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'Q6' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-11-e1a8b64ac527>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mQ6\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mQ4\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlw\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'Q6' is not defined"
]
}
],
"source": [
"plt.plot(Q6,Q4, lw=2)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
%% Cell type:code id: tags:
``` python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as tck
import scipy
from scipy.special import sph_harm
from ase.io import read
from ase import neighborlist
from ase.visualize import view
from pylab import *
```
%% Cell type:markdown id: tags:
##### plot preferences
%% Cell type:code id: tags:
``` python
SMALL_SIZE = 8 #8
MEDIUM_SIZE = 12 #20
BIGGER_SIZE = 12 #12
plt.rc('font', size=SMALL_SIZE) # controls default text sizes
plt.rc('axes', titlesize=MEDIUM_SIZE) # fontsize of the axes title
plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels
plt.rc('xtick', labelsize=MEDIUM_SIZE) # fontsize of the tick labels
plt.rc('ytick', labelsize=MEDIUM_SIZE) # fontsize of the tick labels
plt.rc('legend', fontsize=MEDIUM_SIZE) # legend fontsize
plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title
```
%% Cell type:markdown id: tags:
##### Read files
%% Cell type:code id: tags:
``` python
trajectory = read('trajectory.xyz', index=':')
energy = np.loadtxt('energy.dat')
```
%% Cell type:code id: tags:
``` python
view(trajectory)
```
%% Cell type:markdown id: tags:
##### Compute distances between center of mass and the atom that moves
%% Cell type:code id: tags:
``` python
distance = np.empty(0)
for frame in trajectory:
distance=np.append(distance,np.linalg.norm(frame.get_positions()[3]))
distance/=3.405
```
%% Cell type:markdown id: tags:
##### Compute $Q_l$ with $l=6$
$
q_{lm} = \frac{1}{N_{bonds}} \sum_{N_n} y_{lm} (\theta_{ij}, \phi_{ij})
$
$
Q_l^2 = \frac{4 \pi}{2l+1} \sum_{m=-l}^l |q_{lm}|^2
$
%% Cell type:code id: tags:
``` python
#the desired Ql
l = 6
rcut = 3.405*1.391
#update the cutoff for each frame
for frame in trajectory:
array_rcut = [ rcut for number_of_atoms in frame ]
new_neighbour_list = neighborlist.NeighborList(array_rcut, self_interaction=False, bothways=True)
new_neighbour_list.update(frame)
#compute Ql for each frame
Ql = np.empty(len(trajectory))
i = 0
for frame in trajectory:
nbonds = 0
qlm = np.zeros(2*l+1)
for atom in frame:
nlist = new_neighbour_list.get_neighbors(atom.index)[0]
for theneig in nlist: #cycle over the neighbours
#get angles and distances
nbonds = nbonds+1
rij = frame[theneig].position - atom.position
dist = np.linalg.norm(rij)
phi_ij = np.arccos(rij[2]/dist)
theta_ij = np.arctan2(rij[1],rij[0])
if theta_ij < 0:
theta_ij += 2*np.pi
#move in spherical coordinates space
# In a like-oriented coordinate system at j,
#the spherical coordinates of atom i are:
if theta_ij <= np.pi:
theta_ji = theta_ij + np.pi
elif theta_ij > np.pi:
theta_ji = theta_ij - np.pi
if np.absolute(theta_ji-2*np.pi)<0.0001:
theta_ji=0.0
phi_ji = np.pi-phi_ij
#compute spherical harmonics and perform qml summation
qlm = qlm + np.array([ sph_harm(m,l,theta_ij,phi_ij) for m in range(-l,l+1) ])
qlm = np.real(qlm*np.conj(qlm)/(nbonds*nbonds))
#prefactor and second summation
Ql[i] = np.sqrt(np.pi *4 /(2*l+1)*np.sum(qlm))
i += 1
```
%% Cell type:markdown id: tags:
##### Compute asphericity
%% Cell type:code id: tags:
``` python
I = np.empty([0,3])
for frame in trajectory:
I = np.append(I,[frame.get_moments_of_inertia()],axis=0)
I = I.transpose()
asph = ((I[0]- I[1])**2 + (I[0]- I[2])**2 + (I[2]- I[1])**2 )/ (I[0]**2 + I[1]**2 + I[2]**2)
```
%% Cell type:markdown id: tags:
##### Energy representation
%% Cell type:code id: tags:
``` python
energy = np.loadtxt('energy.dat')
energy = np.transpose(energy)
epsilon = 119*8.616733e-5 #eV
energy[1] *= 27.1442/epsilon
min_e = np.min(energy[1])
energy[1] -= min_e
fig = plt.plot(energy[0],energy[1],color='crimson', lw=2)
#get the axis just defined
ax = plt.gca()
ax.set_ylabel("V/$\epsilon$")
ax.set_xlabel("replicas")
# ---- create a second axis (ax2) ----
# axis ticks
vec_tick =[]
vec_tick_values=[]
for i in range (0,len(energy[0])):
vec_tick.append(i)
vec_tick_values.append(round(Ql[i]*100.,2))
ax2 = ax.twiny()
ax2.set_xticks(vec_tick)
ax2.set_xticklabels(vec_tick_values)
ax2.set_xlabel("$Q_l$ (x 100)")
# ---- create a third axis (ax3) ----
vec_tick =[]
vec_tick_values=[]
for i in range (0,len(energy[0])):
vec_tick.append(i)
vec_tick_values.append(round(asph[i]*100.,2))
ax3 = ax.twiny()
ax3.set_xticks(vec_tick)
ax3.set_xticklabels(vec_tick_values)
ax3.set_xlabel("asphericity (x 100)")
# customising position of this third axes
ax3.xaxis.set_ticks_position("top")
ax3.xaxis.set_label_position("top")
ax3.spines["top"].set_position(("axes", +1.35))