Skip to content

Commit

Permalink
improved logo
Browse files Browse the repository at this point in the history
  • Loading branch information
simongravelle committed Aug 27, 2023
1 parent 63f4407 commit 7b9b85c
Show file tree
Hide file tree
Showing 18 changed files with 254,884 additions and 23,469 deletions.
2,014 changes: 2,014 additions & 0 deletions code/final.data

Large diffs are not rendered by default.

2,814 changes: 2,814 additions & 0 deletions code/initial.data

Large diffs are not rendered by default.

84 changes: 53 additions & 31 deletions code/run.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,69 +2,91 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"step N temp epot ekin press vol\n",
"0 35 428.15 1.45E+00 4.34E+01 1.49E+03 1.73E+03\n",
"100 35 358.28 -4.98E-01 3.63E+01 9.48E+02 1.73E+03\n",
"200 35 321.0 -3.46E-01 3.25E+01 8.55E+02 1.73E+03\n",
"300 35 308.8 -4.78E-01 3.13E+01 8.00E+02 1.73E+03\n",
"400 35 305.24 -6.28E-01 3.09E+01 8.14E+02 1.73E+03\n",
"500 35 302.34 -5.69E-01 3.06E+01 8.13E+02 1.73E+03\n",
"600 35 303.93 -7.52E-01 3.08E+01 8.18E+02 1.73E+03\n",
"700 35 290.1 6.30E-01 2.94E+01 1.03E+03 1.73E+03\n",
"800 35 298.39 -2.68E-01 3.02E+01 8.94E+02 1.73E+03\n",
"900 35 295.79 -6.95E-02 3.00E+01 9.00E+02 1.73E+03\n",
"1000 35 298.14 -1.71E-01 3.02E+01 9.35E+02 1.73E+03\n"
"0 1400 nan 4.55E+05 NAN NAN 2.40E+04\n"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[2], line 13\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mmain\u001b[39;00m \u001b[39mimport\u001b[39;00m MolecularDynamics\n\u001b[1;32m 3\u001b[0m x \u001b[39m=\u001b[39m MolecularDynamics(number_atoms\u001b[39m=\u001b[39m\u001b[39m1400\u001b[39m,\n\u001b[1;32m 4\u001b[0m Lx\u001b[39m=\u001b[39m\u001b[39m40\u001b[39m,\n\u001b[1;32m 5\u001b[0m Ly\u001b[39m=\u001b[39m\u001b[39m40\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 11\u001b[0m seed\u001b[39m=\u001b[39m\u001b[39m519817\u001b[39m,\n\u001b[1;32m 12\u001b[0m )\n\u001b[0;32m---> 13\u001b[0m x\u001b[39m.\u001b[39;49mrun()\n",
"File \u001b[0;32m~/Git/Personal/mdcourse.github.io/code/main.py:369\u001b[0m, in \u001b[0;36mMolecularDynamics.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 367\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"Perform the loop over time.\"\"\"\u001b[39;00m\n\u001b[1;32m 368\u001b[0m \u001b[39mfor\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mstep \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39m0\u001b[39m, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmaximum_steps\u001b[39m+\u001b[39m\u001b[39m1\u001b[39m):\n\u001b[0;32m--> 369\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mintegrate_equation_of_motion()\n\u001b[1;32m 370\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mwrap_in_box()\n\u001b[1;32m 371\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtau_temp \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[0;32m~/Git/Personal/mdcourse.github.io/code/main.py:385\u001b[0m, in \u001b[0;36mMolecularDynamics.integrate_equation_of_motion\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 383\u001b[0m atoms_velocity_Dt2 \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39matoms_velocities \u001b[39m+\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39matoms_accelerations\u001b[39m*\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtime_step\u001b[39m/\u001b[39m\u001b[39m2\u001b[39m\n\u001b[1;32m 384\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39matoms_positions \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39matoms_positions \u001b[39m+\u001b[39m atoms_velocity_Dt2\u001b[39m*\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtime_step\n\u001b[0;32m--> 385\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39matoms_accelerations \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mevaluate_LJ_force()\u001b[39m/\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39matom_mass\n\u001b[1;32m 386\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39matoms_velocities \u001b[39m=\u001b[39m atoms_velocity_Dt2 \u001b[39m+\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39matoms_accelerations\u001b[39m*\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtime_step\u001b[39m/\u001b[39m\u001b[39m2\u001b[39m\n",
"File \u001b[0;32m~/Git/Personal/mdcourse.github.io/code/main.py:313\u001b[0m, in \u001b[0;36mUtilities.evaluate_LJ_force\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 311\u001b[0m box_size \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mdiff(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mbox_boundaries)\u001b[39m.\u001b[39mreshape(\u001b[39m3\u001b[39m)\n\u001b[1;32m 312\u001b[0m rij_xyz \u001b[39m=\u001b[39m (np\u001b[39m.\u001b[39mremainder(position_i \u001b[39m-\u001b[39m position_j \u001b[39m+\u001b[39m box_size\u001b[39m/\u001b[39m\u001b[39m2.\u001b[39m, box_size) \u001b[39m-\u001b[39m box_size\u001b[39m/\u001b[39m\u001b[39m2.\u001b[39m)\u001b[39m.\u001b[39mT\n\u001b[0;32m--> 313\u001b[0m rij \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39msqrt(np\u001b[39m.\u001b[39;49msum(rij_xyz\u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49m\u001b[39m2\u001b[39;49m))\n\u001b[1;32m 314\u001b[0m \u001b[39mif\u001b[39;00m rij \u001b[39m<\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcut_off:\n\u001b[1;32m 315\u001b[0m dU_dr \u001b[39m=\u001b[39m \u001b[39m48\u001b[39m\u001b[39m/\u001b[39mrij\u001b[39m*\u001b[39m(\u001b[39m1\u001b[39m\u001b[39m/\u001b[39mrij\u001b[39m*\u001b[39m\u001b[39m*\u001b[39m\u001b[39m12\u001b[39m\u001b[39m-\u001b[39m\u001b[39m0.5\u001b[39m\u001b[39m/\u001b[39mrij\u001b[39m*\u001b[39m\u001b[39m*\u001b[39m\u001b[39m6\u001b[39m)\n",
"File \u001b[0;32m<__array_function__ internals>:200\u001b[0m, in \u001b[0;36msum\u001b[0;34m(*args, **kwargs)\u001b[0m\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
]
}
],
"source": [
"from main import MolecularDynamics\n",
"\n",
"x = MolecularDynamics(number_atoms=35,\n",
" Lx=12,\n",
" maximum_steps=1000,\n",
" thermo = 100,\n",
" dump = 100, \n",
" tau_temp = 100,\n",
" seed=69817,\n",
"x = MolecularDynamics(number_atoms=1400,\n",
" Lx=40,\n",
" Ly=40,\n",
" Lz=15,\n",
" maximum_steps=100,\n",
" thermo = 10,\n",
" dump = 10, \n",
" tau_temp = 0.01,\n",
" seed=519817,\n",
" )\n",
"x.run()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"step N temp epot ekin press vol\n",
"0 11 270.0 -2.04E-03 8.05E+00 4.60E+01 8.00E+03\n",
"1000 46 60.0 -1.73E-01 8.05E+00 4.45E+01 8.00E+03\n"
"0 1400 300.0 4.32E+10 1.25E+03 4.94E+11 2.40E+04\n"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[1], line 13\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mmain\u001b[39;00m \u001b[39mimport\u001b[39;00m MonteCarlo\n\u001b[1;32m 3\u001b[0m x \u001b[39m=\u001b[39m MonteCarlo(number_atoms\u001b[39m=\u001b[39m\u001b[39m1400\u001b[39m,\n\u001b[1;32m 4\u001b[0m Lx\u001b[39m=\u001b[39m\u001b[39m40\u001b[39m,\n\u001b[1;32m 5\u001b[0m Ly\u001b[39m=\u001b[39m\u001b[39m40\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 11\u001b[0m thermo \u001b[39m=\u001b[39m \u001b[39m10\u001b[39m,\n\u001b[1;32m 12\u001b[0m )\n\u001b[0;32m---> 13\u001b[0m x\u001b[39m.\u001b[39;49mrun()\n",
"File \u001b[0;32m~/Git/Personal/mdcourse.github.io/code/main.py:427\u001b[0m, in \u001b[0;36mMonteCarlo.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 425\u001b[0m \u001b[39mfor\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mstep \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39m0\u001b[39m, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmaximum_steps\u001b[39m+\u001b[39m\u001b[39m1\u001b[39m):\n\u001b[1;32m 426\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdisplace_mc \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 427\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mmonte_carlo_displacement()\n\u001b[1;32m 428\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmu \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 429\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmonte_carlo_insert_delete()\n",
"File \u001b[0;32m~/Git/Personal/mdcourse.github.io/code/main.py:441\u001b[0m, in \u001b[0;36mMonteCarlo.monte_carlo_displacement\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 439\u001b[0m atom_id \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mrandom\u001b[39m.\u001b[39mrandint(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mnumber_atoms)\n\u001b[1;32m 440\u001b[0m trial_atoms_positions[atom_id] \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m (np\u001b[39m.\u001b[39mrandom\u001b[39m.\u001b[39mrandom(\u001b[39m3\u001b[39m)\u001b[39m-\u001b[39m\u001b[39m0.5\u001b[39m)\u001b[39m*\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdisplace_mc\n\u001b[0;32m--> 441\u001b[0m trial_Epot \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mcalculate_potential_energy(trial_atoms_positions)\n\u001b[1;32m 442\u001b[0m acceptation_probability \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mmin([\u001b[39m1\u001b[39m, np\u001b[39m.\u001b[39mexp(\u001b[39m-\u001b[39mbeta\u001b[39m*\u001b[39m(trial_Epot\u001b[39m-\u001b[39mEpot))])\n\u001b[1;32m 443\u001b[0m \u001b[39mif\u001b[39;00m np\u001b[39m.\u001b[39mrandom\u001b[39m.\u001b[39mrandom() \u001b[39m<\u001b[39m\u001b[39m=\u001b[39m acceptation_probability:\n",
"File \u001b[0;32m~/Git/Personal/mdcourse.github.io/code/main.py:298\u001b[0m, in \u001b[0;36mUtilities.calculate_potential_energy\u001b[0;34m(self, atoms_positions, number_atoms)\u001b[0m\n\u001b[1;32m 296\u001b[0m energy_potential \u001b[39m=\u001b[39m \u001b[39m0\u001b[39m\n\u001b[1;32m 297\u001b[0m \u001b[39mfor\u001b[39;00m position_i \u001b[39min\u001b[39;00m atoms_positions:\n\u001b[0;32m--> 298\u001b[0m r \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mcalculate_r(position_i, atoms_positions, number_atoms)\n\u001b[1;32m 299\u001b[0m energy_potential_i \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39msum(\u001b[39m4\u001b[39m\u001b[39m*\u001b[39m(\u001b[39m1\u001b[39m\u001b[39m/\u001b[39mnp\u001b[39m.\u001b[39mpower(r[r\u001b[39m>\u001b[39m\u001b[39m0\u001b[39m], \u001b[39m12\u001b[39m)\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m\u001b[39m/\u001b[39mnp\u001b[39m.\u001b[39mpower(r[r\u001b[39m>\u001b[39m\u001b[39m0\u001b[39m], \u001b[39m6\u001b[39m)))\n\u001b[1;32m 300\u001b[0m energy_potential \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m energy_potential_i\n",
"File \u001b[0;32m~/Git/Personal/mdcourse.github.io/code/main.py:291\u001b[0m, in \u001b[0;36mUtilities.calculate_r\u001b[0;34m(self, position_i, positions_j, number_atoms)\u001b[0m\n\u001b[1;32m 289\u001b[0m rij \u001b[39m=\u001b[39m (np\u001b[39m.\u001b[39mremainder(position_i \u001b[39m-\u001b[39m positions_j \u001b[39m+\u001b[39m box_size\u001b[39m/\u001b[39m\u001b[39m2.\u001b[39m, box_size) \u001b[39m-\u001b[39m box_size\u001b[39m/\u001b[39m\u001b[39m2.\u001b[39m)\u001b[39m.\u001b[39mT\n\u001b[1;32m 290\u001b[0m \u001b[39mfor\u001b[39;00m dim \u001b[39min\u001b[39;00m np\u001b[39m.\u001b[39marange(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdimensions):\n\u001b[0;32m--> 291\u001b[0m rij2 \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m np\u001b[39m.\u001b[39;49mpower(rij[dim, :], \u001b[39m2\u001b[39;49m)\n\u001b[1;32m 292\u001b[0m \u001b[39mreturn\u001b[39;00m np\u001b[39m.\u001b[39msqrt(rij2)\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
]
}
],
"source": [
"from main import MonteCarlo\n",
"\n",
"x = MonteCarlo(number_atoms=10,\n",
" Lx=20,\n",
" maximum_steps=1000,\n",
" displace_mc = None,\n",
" mu = -3,\n",
" seed=69837,\n",
" dump = 1000,\n",
" thermo = 1000,\n",
" )\n",
"x = MonteCarlo(number_atoms=1400,\n",
" Lx=40,\n",
" Ly=40,\n",
" Lz=15,\n",
" maximum_steps=5000,\n",
" displace_mc = 0.5,\n",
" seed=6987,\n",
" dump = 10,\n",
" thermo = 10,\n",
" )\n",
"x.run()"
]
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "bc88dd36",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading

0 comments on commit 7b9b85c

Please sign in to comment.