diff --git a/Solution.ipynb b/Solution.ipynb index 6d65a49..be2221f 100644 --- a/Solution.ipynb +++ b/Solution.ipynb @@ -135,6 +135,16 @@ "We prepare inputs for a range of temperature and run them for 1 ns (500k steps)" ] }, + { + "cell_type": "code", + "execution_count": 4, + "id": "9a745592", + "metadata": {}, + "outputs": [], + "source": [ + "Ts=[300, 400, 500, 600, 700, 800, 900, 1000]" + ] + }, { "cell_type": "code", "execution_count": 4, @@ -1236,7 +1246,7 @@ } ], "source": [ - "Ts=[300, 400, 500, 600, 700, 800, 900, 1000]\n", + "# this box takes a while to run!\n", "for T in Ts:\n", " with cd(\"1a/T\"+str(T)):\n", " with open(\"../../grompp.mdp\") as f:\n", @@ -1317,13 +1327,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.085998 0.085998 0.085998 0.085998\n", - "PLUMED: 1 Prepare dependencies 1001 0.001929 0.000002 0.000002 0.000010\n", - "PLUMED: 2 Sharing data 1001 0.009440 0.000009 0.000009 0.000264\n", - "PLUMED: 3 Waiting for data 1001 0.003132 0.000003 0.000003 0.000020\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.010204 0.000010 0.000010 0.000046\n", - "PLUMED: 5 Applying (backward loop) 1001 0.013545 0.000014 0.000013 0.000023\n", - "PLUMED: 6 Update 1001 0.008510 0.000009 0.000008 0.000054\n" + "PLUMED: 1 0.092092 0.092092 0.092092 0.092092\n", + "PLUMED: 1 Prepare dependencies 1001 0.002127 0.000002 0.000002 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.010291 0.000010 0.000009 0.000256\n", + "PLUMED: 3 Waiting for data 1001 0.003283 0.000003 0.000003 0.000022\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011092 0.000011 0.000010 0.000055\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014850 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009367 0.000009 0.000008 0.000060\n" ] }, { @@ -1380,13 +1390,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109276 0.109276 0.109276 0.109276\n", - "PLUMED: 1 Prepare dependencies 1001 0.002251 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011733 0.000012 0.000011 0.000356\n", - "PLUMED: 3 Waiting for data 1001 0.003752 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012967 0.000013 0.000012 0.000063\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017234 0.000017 0.000016 0.000031\n", - "PLUMED: 6 Update 1001 0.010736 0.000011 0.000010 0.000074\n" + "PLUMED: 1 0.092041 0.092041 0.092041 0.092041\n", + "PLUMED: 1 Prepare dependencies 1001 0.002032 0.000002 0.000001 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.010318 0.000010 0.000009 0.000275\n", + "PLUMED: 3 Waiting for data 1001 0.003435 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011163 0.000011 0.000010 0.000044\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014768 0.000015 0.000014 0.000034\n", + "PLUMED: 6 Update 1001 0.009524 0.000010 0.000008 0.000060\n" ] }, { @@ -1443,13 +1453,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108920 0.108920 0.108920 0.108920\n", - "PLUMED: 1 Prepare dependencies 1001 0.002247 0.000002 0.000002 0.000013\n", - "PLUMED: 2 Sharing data 1001 0.011654 0.000012 0.000011 0.000322\n", - "PLUMED: 3 Waiting for data 1001 0.003864 0.000004 0.000004 0.000042\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.013138 0.000013 0.000012 0.000063\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016975 0.000017 0.000016 0.000030\n", - "PLUMED: 6 Update 1001 0.010540 0.000011 0.000010 0.000074\n" + "PLUMED: 1 0.092507 0.092507 0.092507 0.092507\n", + "PLUMED: 1 Prepare dependencies 1001 0.002068 0.000002 0.000001 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010422 0.000010 0.000010 0.000318\n", + "PLUMED: 3 Waiting for data 1001 0.003303 0.000003 0.000003 0.000022\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011159 0.000011 0.000010 0.000047\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014961 0.000015 0.000014 0.000032\n", + "PLUMED: 6 Update 1001 0.009591 0.000010 0.000008 0.000066\n" ] }, { @@ -1506,13 +1516,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108925 0.108925 0.108925 0.108925\n", - "PLUMED: 1 Prepare dependencies 1001 0.002253 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011627 0.000012 0.000010 0.000390\n", - "PLUMED: 3 Waiting for data 1001 0.003766 0.000004 0.000003 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012820 0.000013 0.000012 0.000064\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016841 0.000017 0.000016 0.000032\n", - "PLUMED: 6 Update 1001 0.010740 0.000011 0.000010 0.000077\n" + "PLUMED: 1 0.092000 0.092000 0.092000 0.092000\n", + "PLUMED: 1 Prepare dependencies 1001 0.002023 0.000002 0.000001 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010264 0.000010 0.000009 0.000320\n", + "PLUMED: 3 Waiting for data 1001 0.003399 0.000003 0.000003 0.000022\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011264 0.000011 0.000010 0.000047\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014655 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009479 0.000009 0.000008 0.000066\n" ] }, { @@ -1569,13 +1579,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.110137 0.110137 0.110137 0.110137\n", - "PLUMED: 1 Prepare dependencies 1001 0.002307 0.000002 0.000002 0.000013\n", - "PLUMED: 2 Sharing data 1001 0.011833 0.000012 0.000011 0.000351\n", - "PLUMED: 3 Waiting for data 1001 0.003880 0.000004 0.000004 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.013026 0.000013 0.000012 0.000065\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016799 0.000017 0.000016 0.000033\n", - "PLUMED: 6 Update 1001 0.010730 0.000011 0.000010 0.000077\n" + "PLUMED: 1 0.092450 0.092450 0.092450 0.092450\n", + "PLUMED: 1 Prepare dependencies 1001 0.002074 0.000002 0.000002 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010134 0.000010 0.000009 0.000276\n", + "PLUMED: 3 Waiting for data 1001 0.003320 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011425 0.000011 0.000010 0.000050\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014631 0.000015 0.000014 0.000033\n", + "PLUMED: 6 Update 1001 0.009758 0.000010 0.000009 0.000062\n" ] }, { @@ -1632,13 +1642,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.110282 0.110282 0.110282 0.110282\n", - "PLUMED: 1 Prepare dependencies 1001 0.002283 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011797 0.000012 0.000011 0.000345\n", - "PLUMED: 3 Waiting for data 1001 0.003837 0.000004 0.000003 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.013092 0.000013 0.000012 0.000063\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016755 0.000017 0.000016 0.000030\n", - "PLUMED: 6 Update 1001 0.010614 0.000011 0.000010 0.000078\n" + "PLUMED: 1 0.092317 0.092317 0.092317 0.092317\n", + "PLUMED: 1 Prepare dependencies 1001 0.002099 0.000002 0.000002 0.000017\n", + "PLUMED: 2 Sharing data 1001 0.010220 0.000010 0.000009 0.000278\n", + "PLUMED: 3 Waiting for data 1001 0.003334 0.000003 0.000003 0.000023\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011214 0.000011 0.000010 0.000047\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014770 0.000015 0.000014 0.000031\n", + "PLUMED: 6 Update 1001 0.009562 0.000010 0.000008 0.000061\n" ] }, { @@ -1695,13 +1705,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108376 0.108376 0.108376 0.108376\n", - "PLUMED: 1 Prepare dependencies 1001 0.002244 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011646 0.000012 0.000010 0.000337\n", - "PLUMED: 3 Waiting for data 1001 0.003791 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012900 0.000013 0.000012 0.000064\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016808 0.000017 0.000016 0.000030\n", - "PLUMED: 6 Update 1001 0.010502 0.000010 0.000010 0.000077\n" + "PLUMED: 1 0.092449 0.092449 0.092449 0.092449\n", + "PLUMED: 1 Prepare dependencies 1001 0.002043 0.000002 0.000002 0.000017\n", + "PLUMED: 2 Sharing data 1001 0.010275 0.000010 0.000009 0.000266\n", + "PLUMED: 3 Waiting for data 1001 0.003478 0.000003 0.000003 0.000022\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011323 0.000011 0.000010 0.000046\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014776 0.000015 0.000014 0.000029\n", + "PLUMED: 6 Update 1001 0.009766 0.000010 0.000008 0.000061\n" ] }, { @@ -1758,13 +1768,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.106845 0.106845 0.106845 0.106845\n", - "PLUMED: 1 Prepare dependencies 1001 0.002173 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011350 0.000011 0.000010 0.000357\n", - "PLUMED: 3 Waiting for data 1001 0.003784 0.000004 0.000004 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012625 0.000013 0.000012 0.000063\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017130 0.000017 0.000016 0.000029\n", - "PLUMED: 6 Update 1001 0.010609 0.000011 0.000010 0.000086\n" + "PLUMED: 1 0.092447 0.092447 0.092447 0.092447\n", + "PLUMED: 1 Prepare dependencies 1001 0.002069 0.000002 0.000002 0.000014\n", + "PLUMED: 2 Sharing data 1001 0.010400 0.000010 0.000010 0.000255\n", + "PLUMED: 3 Waiting for data 1001 0.003405 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011504 0.000011 0.000011 0.000046\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014948 0.000015 0.000014 0.000033\n", + "PLUMED: 6 Update 1001 0.009404 0.000009 0.000009 0.000061\n" ] }, { @@ -1939,7 +1949,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "id": "bcab8bf0", "metadata": { "execution": { @@ -1951,7 +1961,8 @@ }, "outputs": [], "source": [ - "Tmax=800" + "Tmax=800\n", + "Ts=np.geomspace(300,Tmax,32)" ] }, { @@ -3545,9 +3556,8 @@ } ], "source": [ - "Ts=np.geomspace(300,Tmax,16)\n", - "#subprocess.run(\"mkdir -p 1_parallel_tempering/16reps\",shell=True)\n", - "with cd(\"1b/16reps\"):\n", + "# this box takes a while to run!\n", + "with cd(\"1b/32reps\"):\n", " for i in range(len(Ts)):\n", " with cd(\"replica{}\".format(i)):\n", " with open(\"../../../grompp.mdp\") as f:\n", @@ -3563,7 +3573,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "817d9685", "metadata": { "execution": { @@ -3607,7 +3617,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "877434d6", "metadata": { "execution": { @@ -3664,13 +3674,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.085725 0.085725 0.085725 0.085725\n", - "PLUMED: 1 Prepare dependencies 1001 0.001912 0.000002 0.000002 0.000010\n", - "PLUMED: 2 Sharing data 1001 0.009337 0.000009 0.000009 0.000256\n", - "PLUMED: 3 Waiting for data 1001 0.003116 0.000003 0.000003 0.000020\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.010253 0.000010 0.000010 0.000046\n", - "PLUMED: 5 Applying (backward loop) 1001 0.013664 0.000014 0.000013 0.000022\n", - "PLUMED: 6 Update 1001 0.008482 0.000008 0.000008 0.000065\n" + "PLUMED: 1 0.090283 0.090283 0.090283 0.090283\n", + "PLUMED: 1 Prepare dependencies 1001 0.001998 0.000002 0.000001 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.009986 0.000010 0.000009 0.000266\n", + "PLUMED: 3 Waiting for data 1001 0.003193 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.010955 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014539 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009344 0.000009 0.000008 0.000057\n" ] }, { @@ -3727,13 +3737,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.100018 0.100018 0.100018 0.100018\n", - "PLUMED: 1 Prepare dependencies 1001 0.002073 0.000002 0.000002 0.000014\n", - "PLUMED: 2 Sharing data 1001 0.010233 0.000010 0.000009 0.000318\n", - "PLUMED: 3 Waiting for data 1001 0.003468 0.000003 0.000003 0.000039\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.011230 0.000011 0.000010 0.000059\n", - "PLUMED: 5 Applying (backward loop) 1001 0.015050 0.000015 0.000014 0.000031\n", - "PLUMED: 6 Update 1001 0.009286 0.000009 0.000008 0.000075\n" + "PLUMED: 1 0.091145 0.091145 0.091145 0.091145\n", + "PLUMED: 1 Prepare dependencies 1001 0.002002 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010173 0.000010 0.000009 0.000264\n", + "PLUMED: 3 Waiting for data 1001 0.003270 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011068 0.000011 0.000011 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.015032 0.000015 0.000015 0.000028\n", + "PLUMED: 6 Update 1001 0.009298 0.000009 0.000008 0.000060\n" ] }, { @@ -3790,27 +3800,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107905 0.107905 0.107905 0.107905\n", - "PLUMED: 1 Prepare dependencies 1001 0.002220 0.000002 0.000002 0.000022\n", - "PLUMED: 2 Sharing data 1001 0.011717 0.000012 0.000011 0.000342\n", - "PLUMED: 3 Waiting for data 1001 0.003790 0.000004 0.000004 0.000026\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012707 0.000013 0.000012 0.000058\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016920 0.000017 0.000016 0.000033\n", - "PLUMED: 6 Update 1001 0.010888 0.000011 0.000010 0.000090\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "+++ Loading the PLUMED kernel runtime +++\n", - "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "PLUMED: 1 0.090897 0.090897 0.090897 0.090897\n", + "PLUMED: 1 Prepare dependencies 1001 0.002092 0.000002 0.000002 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010071 0.000010 0.000009 0.000255\n", + "PLUMED: 3 Waiting for data 1001 0.003381 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011126 0.000011 0.000010 0.000062\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014544 0.000015 0.000014 0.000029\n", + "PLUMED: 6 Update 1001 0.009246 0.000009 0.000008 0.000057\n", "PLUMED: PLUMED is starting\n", "PLUMED: Version: 2.8.0 (git: ddb59d16b) compiled on May 17 2022 at 19:07:56\n", "PLUMED: Please cite these papers when using PLUMED [1][2]\n", @@ -3851,15 +3847,29 @@ "PLUMED: [1] The PLUMED consortium, Nat. Methods 16, 670 (2019)\n", "PLUMED: [2] Tribello, Bonomi, Branduardi, Camilloni, and Bussi, Comput. Phys. Commun. 185, 604 (2014)\n", "PLUMED: Please read and cite where appropriate!\n", - "PLUMED: Finished setup\n", + "PLUMED: Finished setup\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "+++ Loading the PLUMED kernel runtime +++\n", + "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109196 0.109196 0.109196 0.109196\n", - "PLUMED: 1 Prepare dependencies 1001 0.002216 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011795 0.000012 0.000011 0.000392\n", - "PLUMED: 3 Waiting for data 1001 0.003840 0.000004 0.000004 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012889 0.000013 0.000012 0.000060\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016875 0.000017 0.000016 0.000033\n", - "PLUMED: 6 Update 1001 0.010723 0.000011 0.000010 0.000077\n" + "PLUMED: 1 0.090466 0.090466 0.090466 0.090466\n", + "PLUMED: 1 Prepare dependencies 1001 0.001991 0.000002 0.000001 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010066 0.000010 0.000009 0.000255\n", + "PLUMED: 3 Waiting for data 1001 0.003405 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011021 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014642 0.000015 0.000014 0.000033\n", + "PLUMED: 6 Update 1001 0.009120 0.000009 0.000008 0.000056\n" ] }, { @@ -3916,13 +3926,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109394 0.109394 0.109394 0.109394\n", - "PLUMED: 1 Prepare dependencies 1001 0.002215 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011588 0.000012 0.000010 0.000401\n", - "PLUMED: 3 Waiting for data 1001 0.003796 0.000004 0.000004 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012817 0.000013 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016993 0.000017 0.000016 0.000035\n", - "PLUMED: 6 Update 1001 0.010611 0.000011 0.000010 0.000078\n" + "PLUMED: 1 0.094982 0.094982 0.094982 0.094982\n", + "PLUMED: 1 Prepare dependencies 1001 0.002018 0.000002 0.000002 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.011020 0.000011 0.000009 0.000254\n", + "PLUMED: 3 Waiting for data 1001 0.003375 0.000003 0.000003 0.000030\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.012080 0.000012 0.000011 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.016923 0.000017 0.000014 0.000033\n", + "PLUMED: 6 Update 1001 0.008946 0.000009 0.000008 0.000058\n" ] }, { @@ -3979,27 +3989,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107522 0.107522 0.107522 0.107522\n", - "PLUMED: 1 Prepare dependencies 1001 0.002142 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011510 0.000011 0.000011 0.000396\n", - "PLUMED: 3 Waiting for data 1001 0.003780 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012533 0.000013 0.000012 0.000060\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016832 0.000017 0.000016 0.000032\n", - "PLUMED: 6 Update 1001 0.010325 0.000010 0.000009 0.000080\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "+++ Loading the PLUMED kernel runtime +++\n", - "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "PLUMED: 1 0.090997 0.090997 0.090997 0.090997\n", + "PLUMED: 1 Prepare dependencies 1001 0.002017 0.000002 0.000001 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.010066 0.000010 0.000009 0.000252\n", + "PLUMED: 3 Waiting for data 1001 0.003368 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011044 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014840 0.000015 0.000014 0.000029\n", + "PLUMED: 6 Update 1001 0.009275 0.000009 0.000008 0.000055\n", "PLUMED: PLUMED is starting\n", "PLUMED: Version: 2.8.0 (git: ddb59d16b) compiled on May 17 2022 at 19:07:56\n", "PLUMED: Please cite these papers when using PLUMED [1][2]\n", @@ -4040,15 +4036,29 @@ "PLUMED: [1] The PLUMED consortium, Nat. Methods 16, 670 (2019)\n", "PLUMED: [2] Tribello, Bonomi, Branduardi, Camilloni, and Bussi, Comput. Phys. Commun. 185, 604 (2014)\n", "PLUMED: Please read and cite where appropriate!\n", - "PLUMED: Finished setup\n", + "PLUMED: Finished setup\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "+++ Loading the PLUMED kernel runtime +++\n", + "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108969 0.108969 0.108969 0.108969\n", - "PLUMED: 1 Prepare dependencies 1001 0.002387 0.000002 0.000002 0.000013\n", - "PLUMED: 2 Sharing data 1001 0.011569 0.000012 0.000011 0.000368\n", - "PLUMED: 3 Waiting for data 1001 0.003879 0.000004 0.000004 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012863 0.000013 0.000012 0.000066\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016790 0.000017 0.000016 0.000042\n", - "PLUMED: 6 Update 1001 0.010803 0.000011 0.000010 0.000078\n" + "PLUMED: 1 0.090765 0.090765 0.090765 0.090765\n", + "PLUMED: 1 Prepare dependencies 1001 0.002006 0.000002 0.000001 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.009933 0.000010 0.000009 0.000251\n", + "PLUMED: 3 Waiting for data 1001 0.003396 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011115 0.000011 0.000010 0.000047\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014670 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009200 0.000009 0.000008 0.000055\n" ] }, { @@ -4105,13 +4115,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109613 0.109613 0.109613 0.109613\n", - "PLUMED: 1 Prepare dependencies 1001 0.002356 0.000002 0.000002 0.000016\n", - "PLUMED: 2 Sharing data 1001 0.011722 0.000012 0.000011 0.000322\n", - "PLUMED: 3 Waiting for data 1001 0.003796 0.000004 0.000003 0.000024\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012662 0.000013 0.000012 0.000068\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016926 0.000017 0.000016 0.000029\n", - "PLUMED: 6 Update 1001 0.010427 0.000010 0.000010 0.000076\n" + "PLUMED: 1 0.092468 0.092468 0.092468 0.092468\n", + "PLUMED: 1 Prepare dependencies 1001 0.002088 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010096 0.000010 0.000009 0.000279\n", + "PLUMED: 3 Waiting for data 1001 0.003438 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011358 0.000011 0.000011 0.000045\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014655 0.000015 0.000014 0.000031\n", + "PLUMED: 6 Update 1001 0.009668 0.000010 0.000008 0.000068\n" ] }, { @@ -4168,13 +4178,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.184163 0.184163 0.184163 0.184163\n", - "PLUMED: 1 Prepare dependencies 1001 0.002298 0.000002 0.000002 0.000014\n", - "PLUMED: 2 Sharing data 1001 0.012567 0.000013 0.000011 0.000378\n", - "PLUMED: 3 Waiting for data 1001 0.004113 0.000004 0.000004 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.013624 0.000014 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.018258 0.000018 0.000017 0.000041\n", - "PLUMED: 6 Update 1001 0.080583 0.000081 0.000009 0.069584\n" + "PLUMED: 1 0.091462 0.091462 0.091462 0.091462\n", + "PLUMED: 1 Prepare dependencies 1001 0.002015 0.000002 0.000002 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.010062 0.000010 0.000009 0.000257\n", + "PLUMED: 3 Waiting for data 1001 0.003402 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011032 0.000011 0.000010 0.000046\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014728 0.000015 0.000014 0.000028\n", + "PLUMED: 6 Update 1001 0.009103 0.000009 0.000008 0.000065\n" ] }, { @@ -4231,13 +4241,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.106989 0.106989 0.106989 0.106989\n", - "PLUMED: 1 Prepare dependencies 1001 0.002260 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011455 0.000011 0.000010 0.000379\n", - "PLUMED: 3 Waiting for data 1001 0.003785 0.000004 0.000003 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012818 0.000013 0.000012 0.000058\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016727 0.000017 0.000016 0.000029\n", - "PLUMED: 6 Update 1001 0.010444 0.000010 0.000010 0.000076\n" + "PLUMED: 1 0.091096 0.091096 0.091096 0.091096\n", + "PLUMED: 1 Prepare dependencies 1001 0.001990 0.000002 0.000001 0.000010\n", + "PLUMED: 2 Sharing data 1001 0.010097 0.000010 0.000009 0.000264\n", + "PLUMED: 3 Waiting for data 1001 0.003378 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011065 0.000011 0.000010 0.000044\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014868 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009433 0.000009 0.000008 0.000068\n" ] }, { @@ -4294,13 +4304,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108772 0.108772 0.108772 0.108772\n", - "PLUMED: 1 Prepare dependencies 1001 0.002195 0.000002 0.000002 0.000013\n", - "PLUMED: 2 Sharing data 1001 0.011819 0.000012 0.000011 0.000408\n", - "PLUMED: 3 Waiting for data 1001 0.003789 0.000004 0.000003 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012691 0.000013 0.000012 0.000060\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016796 0.000017 0.000016 0.000033\n", - "PLUMED: 6 Update 1001 0.010606 0.000011 0.000010 0.000079\n" + "PLUMED: 1 0.091814 0.091814 0.091814 0.091814\n", + "PLUMED: 1 Prepare dependencies 1001 0.002075 0.000002 0.000002 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010098 0.000010 0.000009 0.000263\n", + "PLUMED: 3 Waiting for data 1001 0.003435 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011234 0.000011 0.000010 0.000044\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014762 0.000015 0.000014 0.000034\n", + "PLUMED: 6 Update 1001 0.009640 0.000010 0.000008 0.000072\n" ] }, { @@ -4357,13 +4367,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107356 0.107356 0.107356 0.107356\n", - "PLUMED: 1 Prepare dependencies 1001 0.002299 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011622 0.000012 0.000011 0.000339\n", - "PLUMED: 3 Waiting for data 1001 0.003807 0.000004 0.000003 0.000026\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012853 0.000013 0.000012 0.000057\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016832 0.000017 0.000016 0.000031\n", - "PLUMED: 6 Update 1001 0.010662 0.000011 0.000010 0.000072\n" + "PLUMED: 1 0.092509 0.092509 0.092509 0.092509\n", + "PLUMED: 1 Prepare dependencies 1001 0.002065 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010237 0.000010 0.000009 0.000276\n", + "PLUMED: 3 Waiting for data 1001 0.003478 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011307 0.000011 0.000011 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.015027 0.000015 0.000015 0.000031\n", + "PLUMED: 6 Update 1001 0.009609 0.000010 0.000008 0.000064\n" ] }, { @@ -4420,13 +4430,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109216 0.109216 0.109216 0.109216\n", - "PLUMED: 1 Prepare dependencies 1001 0.002202 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011757 0.000012 0.000010 0.000383\n", - "PLUMED: 3 Waiting for data 1001 0.003831 0.000004 0.000004 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012772 0.000013 0.000012 0.000075\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016854 0.000017 0.000016 0.000032\n", - "PLUMED: 6 Update 1001 0.010510 0.000010 0.000009 0.000087\n" + "PLUMED: 1 0.092049 0.092049 0.092049 0.092049\n", + "PLUMED: 1 Prepare dependencies 1001 0.002000 0.000002 0.000002 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010155 0.000010 0.000009 0.000268\n", + "PLUMED: 3 Waiting for data 1001 0.003385 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011369 0.000011 0.000011 0.000045\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014724 0.000015 0.000014 0.000030\n", + "PLUMED: 6 Update 1001 0.009547 0.000010 0.000008 0.000067\n" ] }, { @@ -4483,13 +4493,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107561 0.107561 0.107561 0.107561\n", - "PLUMED: 1 Prepare dependencies 1001 0.002292 0.000002 0.000002 0.000013\n", - "PLUMED: 2 Sharing data 1001 0.011656 0.000012 0.000011 0.000338\n", - "PLUMED: 3 Waiting for data 1001 0.003828 0.000004 0.000003 0.000026\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012689 0.000013 0.000012 0.000057\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016647 0.000017 0.000016 0.000029\n", - "PLUMED: 6 Update 1001 0.010396 0.000010 0.000010 0.000075\n" + "PLUMED: 1 0.093675 0.093675 0.093675 0.093675\n", + "PLUMED: 1 Prepare dependencies 1001 0.002096 0.000002 0.000002 0.000010\n", + "PLUMED: 2 Sharing data 1001 0.010227 0.000010 0.000009 0.000264\n", + "PLUMED: 3 Waiting for data 1001 0.003447 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011506 0.000011 0.000011 0.000044\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014908 0.000015 0.000014 0.000037\n", + "PLUMED: 6 Update 1001 0.009993 0.000010 0.000009 0.000083\n" ] }, { @@ -4546,13 +4556,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109337 0.109337 0.109337 0.109337\n", - "PLUMED: 1 Prepare dependencies 1001 0.002230 0.000002 0.000002 0.000013\n", - "PLUMED: 2 Sharing data 1001 0.011572 0.000012 0.000010 0.000343\n", - "PLUMED: 3 Waiting for data 1001 0.003821 0.000004 0.000003 0.000026\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012756 0.000013 0.000012 0.000056\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016840 0.000017 0.000016 0.000032\n", - "PLUMED: 6 Update 1001 0.010276 0.000010 0.000009 0.000074\n" + "PLUMED: 1 0.091279 0.091279 0.091279 0.091279\n", + "PLUMED: 1 Prepare dependencies 1001 0.001990 0.000002 0.000001 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010243 0.000010 0.000009 0.000263\n", + "PLUMED: 3 Waiting for data 1001 0.003385 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011260 0.000011 0.000010 0.000045\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014644 0.000015 0.000014 0.000028\n", + "PLUMED: 6 Update 1001 0.009188 0.000009 0.000008 0.000062\n" ] }, { @@ -4609,13 +4619,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.105667 0.105667 0.105667 0.105667\n", - "PLUMED: 1 Prepare dependencies 1001 0.002208 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011423 0.000011 0.000010 0.000328\n", - "PLUMED: 3 Waiting for data 1001 0.003724 0.000004 0.000003 0.000025\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012603 0.000013 0.000012 0.000071\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016943 0.000017 0.000016 0.000028\n", - "PLUMED: 6 Update 1001 0.010258 0.000010 0.000009 0.000070\n" + "PLUMED: 1 0.091677 0.091677 0.091677 0.091677\n", + "PLUMED: 1 Prepare dependencies 1001 0.001933 0.000002 0.000001 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010101 0.000010 0.000009 0.000270\n", + "PLUMED: 3 Waiting for data 1001 0.003314 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011236 0.000011 0.000011 0.000045\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014618 0.000015 0.000014 0.000032\n", + "PLUMED: 6 Update 1001 0.009583 0.000010 0.000009 0.000068\n" ] }, { @@ -4672,13 +4682,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.106909 0.106909 0.106909 0.106909\n", - "PLUMED: 1 Prepare dependencies 1001 0.002324 0.000002 0.000002 0.000013\n", - "PLUMED: 2 Sharing data 1001 0.011549 0.000012 0.000011 0.000384\n", - "PLUMED: 3 Waiting for data 1001 0.003747 0.000004 0.000003 0.000026\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012841 0.000013 0.000012 0.000060\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016871 0.000017 0.000016 0.000031\n", - "PLUMED: 6 Update 1001 0.010550 0.000011 0.000010 0.000074\n" + "PLUMED: 1 0.091153 0.091153 0.091153 0.091153\n", + "PLUMED: 1 Prepare dependencies 1001 0.002009 0.000002 0.000001 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010014 0.000010 0.000009 0.000256\n", + "PLUMED: 3 Waiting for data 1001 0.003350 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011218 0.000011 0.000010 0.000044\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014612 0.000015 0.000014 0.000025\n", + "PLUMED: 6 Update 1001 0.009529 0.000010 0.000009 0.000066\n" ] }, { @@ -4735,13 +4745,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.155931 0.155931 0.155931 0.155931\n", - "PLUMED: 1 Prepare dependencies 1001 0.002261 0.000002 0.000002 0.000015\n", - "PLUMED: 2 Sharing data 1001 0.011946 0.000012 0.000005 0.000328\n", - "PLUMED: 3 Waiting for data 1001 0.003968 0.000004 0.000004 0.000025\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.013152 0.000013 0.000012 0.000055\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017480 0.000017 0.000016 0.000040\n", - "PLUMED: 6 Update 1001 0.054273 0.000054 0.000009 0.043517\n" + "PLUMED: 1 0.091343 0.091343 0.091343 0.091343\n", + "PLUMED: 1 Prepare dependencies 1001 0.001993 0.000002 0.000001 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010113 0.000010 0.000009 0.000302\n", + "PLUMED: 3 Waiting for data 1001 0.003226 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011162 0.000011 0.000010 0.000046\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014844 0.000015 0.000014 0.000027\n", + "PLUMED: 6 Update 1001 0.009491 0.000009 0.000008 0.000068\n" ] }, { @@ -4798,13 +4808,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108946 0.108946 0.108946 0.108946\n", - "PLUMED: 1 Prepare dependencies 1001 0.002214 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011857 0.000012 0.000011 0.000341\n", - "PLUMED: 3 Waiting for data 1001 0.003890 0.000004 0.000004 0.000040\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012929 0.000013 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016790 0.000017 0.000016 0.000027\n", - "PLUMED: 6 Update 1001 0.010635 0.000011 0.000010 0.000077\n" + "PLUMED: 1 0.092004 0.092004 0.092004 0.092004\n", + "PLUMED: 1 Prepare dependencies 1001 0.002083 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010131 0.000010 0.000009 0.000278\n", + "PLUMED: 3 Waiting for data 1001 0.003240 0.000003 0.000003 0.000022\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011270 0.000011 0.000011 0.000047\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014585 0.000015 0.000014 0.000032\n", + "PLUMED: 6 Update 1001 0.009489 0.000009 0.000008 0.000065\n" ] }, { @@ -4861,13 +4871,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109578 0.109578 0.109578 0.109578\n", - "PLUMED: 1 Prepare dependencies 1001 0.002203 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011644 0.000012 0.000010 0.000346\n", - "PLUMED: 3 Waiting for data 1001 0.003780 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012926 0.000013 0.000012 0.000060\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016883 0.000017 0.000016 0.000028\n", - "PLUMED: 6 Update 1001 0.010727 0.000011 0.000010 0.000089\n" + "PLUMED: 1 0.091974 0.091974 0.091974 0.091974\n", + "PLUMED: 1 Prepare dependencies 1001 0.001955 0.000002 0.000001 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010088 0.000010 0.000009 0.000278\n", + "PLUMED: 3 Waiting for data 1001 0.003432 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011052 0.000011 0.000010 0.000046\n", + "PLUMED: 5 Applying (backward loop) 1001 0.015033 0.000015 0.000014 0.000027\n", + "PLUMED: 6 Update 1001 0.009585 0.000010 0.000008 0.000069\n" ] }, { @@ -4924,13 +4934,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.110031 0.110031 0.110031 0.110031\n", - "PLUMED: 1 Prepare dependencies 1001 0.002244 0.000002 0.000002 0.000014\n", - "PLUMED: 2 Sharing data 1001 0.011952 0.000012 0.000011 0.000337\n", - "PLUMED: 3 Waiting for data 1001 0.003814 0.000004 0.000004 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012999 0.000013 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016768 0.000017 0.000016 0.000029\n", - "PLUMED: 6 Update 1001 0.010707 0.000011 0.000010 0.000082\n" + "PLUMED: 1 0.093131 0.093131 0.093131 0.093131\n", + "PLUMED: 1 Prepare dependencies 1001 0.002003 0.000002 0.000001 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.010130 0.000010 0.000009 0.000286\n", + "PLUMED: 3 Waiting for data 1001 0.003328 0.000003 0.000003 0.000022\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011267 0.000011 0.000010 0.000046\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014872 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009558 0.000010 0.000009 0.000070\n" ] }, { @@ -4987,13 +4997,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107248 0.107248 0.107248 0.107248\n", - "PLUMED: 1 Prepare dependencies 1001 0.002120 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011497 0.000011 0.000010 0.000364\n", - "PLUMED: 3 Waiting for data 1001 0.003814 0.000004 0.000003 0.000026\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012690 0.000013 0.000012 0.000056\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016691 0.000017 0.000016 0.000031\n", - "PLUMED: 6 Update 1001 0.010559 0.000011 0.000010 0.000072\n" + "PLUMED: 1 0.103982 0.103982 0.103982 0.103982\n", + "PLUMED: 1 Prepare dependencies 1001 0.001995 0.000002 0.000001 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.009945 0.000010 0.000009 0.000279\n", + "PLUMED: 3 Waiting for data 1001 0.003369 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011335 0.000011 0.000011 0.000058\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014481 0.000014 0.000014 0.000027\n", + "PLUMED: 6 Update 1001 0.022226 0.000022 0.000008 0.012792\n" ] }, { @@ -5050,13 +5060,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109339 0.109339 0.109339 0.109339\n", - "PLUMED: 1 Prepare dependencies 1001 0.002177 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011662 0.000012 0.000011 0.000351\n", - "PLUMED: 3 Waiting for data 1001 0.003836 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012824 0.000013 0.000012 0.000059\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017278 0.000017 0.000016 0.000044\n", - "PLUMED: 6 Update 1001 0.010610 0.000011 0.000010 0.000076\n" + "PLUMED: 1 0.091234 0.091234 0.091234 0.091234\n", + "PLUMED: 1 Prepare dependencies 1001 0.001975 0.000002 0.000002 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010194 0.000010 0.000009 0.000274\n", + "PLUMED: 3 Waiting for data 1001 0.003260 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011070 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014523 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009292 0.000009 0.000008 0.000068\n" ] }, { @@ -5113,13 +5123,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.106956 0.106956 0.106956 0.106956\n", - "PLUMED: 1 Prepare dependencies 1001 0.002209 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011703 0.000012 0.000011 0.000357\n", - "PLUMED: 3 Waiting for data 1001 0.003790 0.000004 0.000003 0.000025\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012537 0.000013 0.000012 0.000058\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016842 0.000017 0.000016 0.000033\n", - "PLUMED: 6 Update 1001 0.010345 0.000010 0.000009 0.000070\n" + "PLUMED: 1 0.090748 0.090748 0.090748 0.090748\n", + "PLUMED: 1 Prepare dependencies 1001 0.002070 0.000002 0.000001 0.000010\n", + "PLUMED: 2 Sharing data 1001 0.010051 0.000010 0.000009 0.000258\n", + "PLUMED: 3 Waiting for data 1001 0.003400 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.010971 0.000011 0.000010 0.000054\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014494 0.000014 0.000014 0.000025\n", + "PLUMED: 6 Update 1001 0.009156 0.000009 0.000008 0.000059\n" ] }, { @@ -5176,13 +5186,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.117309 0.117309 0.117309 0.117309\n", - "PLUMED: 1 Prepare dependencies 1001 0.002256 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.012197 0.000012 0.000011 0.000431\n", - "PLUMED: 3 Waiting for data 1001 0.003884 0.000004 0.000003 0.000032\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.013096 0.000013 0.000012 0.000072\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017672 0.000018 0.000016 0.000037\n", - "PLUMED: 6 Update 1001 0.011058 0.000011 0.000010 0.000144\n" + "PLUMED: 1 0.091739 0.091739 0.091739 0.091739\n", + "PLUMED: 1 Prepare dependencies 1001 0.001952 0.000002 0.000001 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010372 0.000010 0.000010 0.000279\n", + "PLUMED: 3 Waiting for data 1001 0.003431 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011330 0.000011 0.000010 0.000045\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014659 0.000015 0.000014 0.000028\n", + "PLUMED: 6 Update 1001 0.009180 0.000009 0.000008 0.000061\n" ] }, { @@ -5239,13 +5249,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109109 0.109109 0.109109 0.109109\n", - "PLUMED: 1 Prepare dependencies 1001 0.002357 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011554 0.000012 0.000010 0.000351\n", - "PLUMED: 3 Waiting for data 1001 0.003859 0.000004 0.000003 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012908 0.000013 0.000012 0.000059\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017160 0.000017 0.000016 0.000030\n", - "PLUMED: 6 Update 1001 0.010538 0.000011 0.000010 0.000091\n" + "PLUMED: 1 0.091340 0.091340 0.091340 0.091340\n", + "PLUMED: 1 Prepare dependencies 1001 0.002004 0.000002 0.000001 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010017 0.000010 0.000009 0.000261\n", + "PLUMED: 3 Waiting for data 1001 0.003324 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011240 0.000011 0.000011 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014565 0.000015 0.000014 0.000027\n", + "PLUMED: 6 Update 1001 0.009401 0.000009 0.000009 0.000059\n" ] }, { @@ -5302,13 +5312,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108654 0.108654 0.108654 0.108654\n", - "PLUMED: 1 Prepare dependencies 1001 0.002171 0.000002 0.000002 0.000009\n", - "PLUMED: 2 Sharing data 1001 0.011552 0.000012 0.000011 0.000362\n", - "PLUMED: 3 Waiting for data 1001 0.003809 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012647 0.000013 0.000012 0.000060\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016829 0.000017 0.000016 0.000041\n", - "PLUMED: 6 Update 1001 0.010743 0.000011 0.000010 0.000076\n" + "PLUMED: 1 0.090818 0.090818 0.090818 0.090818\n", + "PLUMED: 1 Prepare dependencies 1001 0.001992 0.000002 0.000001 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010008 0.000010 0.000009 0.000272\n", + "PLUMED: 3 Waiting for data 1001 0.003259 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011018 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014499 0.000014 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009323 0.000009 0.000008 0.000061\n" ] }, { @@ -5365,13 +5375,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.129701 0.129701 0.129701 0.129701\n", - "PLUMED: 1 Prepare dependencies 1001 0.002232 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011811 0.000012 0.000011 0.000354\n", - "PLUMED: 3 Waiting for data 1001 0.003780 0.000004 0.000003 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012784 0.000013 0.000012 0.000062\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016891 0.000017 0.000016 0.000030\n", - "PLUMED: 6 Update 1001 0.031344 0.000031 0.000010 0.020753\n" + "PLUMED: 1 0.091139 0.091139 0.091139 0.091139\n", + "PLUMED: 1 Prepare dependencies 1001 0.002068 0.000002 0.000001 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010054 0.000010 0.000009 0.000258\n", + "PLUMED: 3 Waiting for data 1001 0.003331 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011097 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014529 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009293 0.000009 0.000008 0.000060\n" ] }, { @@ -5428,13 +5438,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108801 0.108801 0.108801 0.108801\n", - "PLUMED: 1 Prepare dependencies 1001 0.002227 0.000002 0.000002 0.000014\n", - "PLUMED: 2 Sharing data 1001 0.011678 0.000012 0.000011 0.000392\n", - "PLUMED: 3 Waiting for data 1001 0.003838 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012891 0.000013 0.000012 0.000067\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016857 0.000017 0.000016 0.000030\n", - "PLUMED: 6 Update 1001 0.010591 0.000011 0.000010 0.000085\n" + "PLUMED: 1 0.091541 0.091541 0.091541 0.091541\n", + "PLUMED: 1 Prepare dependencies 1001 0.002075 0.000002 0.000002 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010329 0.000010 0.000009 0.000260\n", + "PLUMED: 3 Waiting for data 1001 0.003399 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011266 0.000011 0.000011 0.000044\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014753 0.000015 0.000014 0.000027\n", + "PLUMED: 6 Update 1001 0.009299 0.000009 0.000008 0.000060\n" ] }, { @@ -5491,13 +5501,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108672 0.108672 0.108672 0.108672\n", - "PLUMED: 1 Prepare dependencies 1001 0.002142 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011709 0.000012 0.000011 0.000351\n", - "PLUMED: 3 Waiting for data 1001 0.003786 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012859 0.000013 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017036 0.000017 0.000016 0.000035\n", - "PLUMED: 6 Update 1001 0.010416 0.000010 0.000009 0.000077\n" + "PLUMED: 1 0.091310 0.091310 0.091310 0.091310\n", + "PLUMED: 1 Prepare dependencies 1001 0.002052 0.000002 0.000001 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.009957 0.000010 0.000009 0.000259\n", + "PLUMED: 3 Waiting for data 1001 0.003346 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011200 0.000011 0.000011 0.000054\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014763 0.000015 0.000014 0.000027\n", + "PLUMED: 6 Update 1001 0.009363 0.000009 0.000008 0.000061\n" ] }, { @@ -5554,27 +5564,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109690 0.109690 0.109690 0.109690\n", - "PLUMED: 1 Prepare dependencies 1001 0.002251 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011656 0.000012 0.000011 0.000297\n", - "PLUMED: 3 Waiting for data 1001 0.003821 0.000004 0.000003 0.000023\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012915 0.000013 0.000012 0.000076\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017104 0.000017 0.000016 0.000037\n", - "PLUMED: 6 Update 1001 0.010597 0.000011 0.000009 0.000099\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "+++ Loading the PLUMED kernel runtime +++\n", - "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "PLUMED: 1 0.091300 0.091300 0.091300 0.091300\n", + "PLUMED: 1 Prepare dependencies 1001 0.002040 0.000002 0.000002 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010206 0.000010 0.000009 0.000258\n", + "PLUMED: 3 Waiting for data 1001 0.003354 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011101 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014684 0.000015 0.000014 0.000036\n", + "PLUMED: 6 Update 1001 0.009438 0.000009 0.000008 0.000058\n", "PLUMED: PLUMED is starting\n", "PLUMED: Version: 2.8.0 (git: ddb59d16b) compiled on May 17 2022 at 19:07:56\n", "PLUMED: Please cite these papers when using PLUMED [1][2]\n", @@ -5615,15 +5611,29 @@ "PLUMED: [1] The PLUMED consortium, Nat. Methods 16, 670 (2019)\n", "PLUMED: [2] Tribello, Bonomi, Branduardi, Camilloni, and Bussi, Comput. Phys. Commun. 185, 604 (2014)\n", "PLUMED: Please read and cite where appropriate!\n", - "PLUMED: Finished setup\n", + "PLUMED: Finished setup\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "+++ Loading the PLUMED kernel runtime +++\n", + "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108345 0.108345 0.108345 0.108345\n", - "PLUMED: 1 Prepare dependencies 1001 0.002212 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011528 0.000012 0.000010 0.000306\n", - "PLUMED: 3 Waiting for data 1001 0.003882 0.000004 0.000003 0.000024\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012615 0.000013 0.000012 0.000072\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016836 0.000017 0.000016 0.000039\n", - "PLUMED: 6 Update 1001 0.010549 0.000011 0.000010 0.000076\n" + "PLUMED: 1 0.091801 0.091801 0.091801 0.091801\n", + "PLUMED: 1 Prepare dependencies 1001 0.002049 0.000002 0.000001 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010117 0.000010 0.000009 0.000266\n", + "PLUMED: 3 Waiting for data 1001 0.003427 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011202 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014843 0.000015 0.000014 0.000028\n", + "PLUMED: 6 Update 1001 0.009571 0.000010 0.000009 0.000058\n" ] }, { @@ -5654,7 +5664,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "634f0cae", "metadata": { "execution": { @@ -5685,7 +5695,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "0604b6c4", "metadata": { "execution": { @@ -5699,10 +5709,10 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, @@ -5725,7 +5735,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "7d242eb1", "metadata": { "execution": { @@ -5747,7 +5757,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "a1ecb708", "metadata": { "execution": { @@ -5760,7 +5770,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAwjElEQVR4nO3dd3xUZfb48c9JIUCA0EIJoUpHekAQdWUVFUSwiysW1EVWWdu6rrruWtbfqvvVtQu4COqiiwXFgKx1QUWlhBJKQgmhhYQktCRAQtr5/TGDjnFIbspkMpPzfr3uKzP33ufOeShzcu/TRFUxxhhjygrxdwDGGGPqJksQxhhjvLIEYYwxxitLEMYYY7yyBGGMMcarMH8HUJNat26tXbp08XcYxhgTMNasWXNAVaO9HQuqBNGlSxcSEhL8HYYxxgQMEdl9qmP2iMkYY4xXliCMMcZ4ZQnCGGOMV5YgjDHGeGUJwhhjjFc+TRAicpGIbBWRFBF5wMvx3iLyg4icEJH7vBwPFZF1IrLYl3EaY4z5JZ8lCBEJBV4BxgJ9gWtFpG+Z0w4BdwLPnOIydwHJvorRGGPMqfnyDmI4kKKqqapaCMwHJnqeoKpZqroaKCpbWERigYuB2T6M0RgTpNKP5PPRujR/hxHQfJkgOgB7Pd6nufc59TxwP1Ba3kkiMlVEEkQkITs7u9JBGmOC07Ofb+OedxNZuiXL36EELF8mCPGyz9HqRCIyHshS1TUVnauqr6lqnKrGRUd7HS1ujKlnCopK+GzzfgAeX5zEieISP0cUmHyZINKAjh7vY4F0h2VHARNEZBeuR1O/FpF5NRueMSZYfZmcydETxdz2q27sPHCMud/t8ndIAcmXCWI10ENEuopIA2ASEO+koKo+qKqxqtrFXe5/qjrZd6EaY4LJwnXptG0Wwf0X9ub8Pm156avtZOYW+DusgOOzBKGqxcB04DNcPZHeU9XNIjJNRKYBiEg7EUkD7gUeFpE0EWnmq5iMMcHvyPFCvt6WxYSBMYSGCH8Z34eiUuWp/27xd2gBx6ezuarqEmBJmX0zPV7vx/XoqbxrLAOW+SA8Y0wQ+mRjBkUlysRBrj4xnVtFMvXsbry8NIXrzuhEXJeWfo4wcNhIamNMUPl4XTrd2zShX8xPDyNuH30a7aMa8kj8ZkpKHfWVMViCMMYEkbTDx1m16xCXDopB5KeOlI0bhPHQuD5sTs/l3dV7y7mC8WQJwhgTND5e7+ooefLxkqfxA9pzRteW/N9nWzhyvLC2QwtIliCMMUFBVfl4/T6Gdm5Bx5aNf3FcRHh0Qj9y8ot47ottfogw8FiCMMYEheSMPLZlHuXSQTGnPKdP+2ZMHtGZf6/YTXJGbi1GF5gsQRhjgsLH6/cRFiJcPODUCQLg3jE9iWoUzqPxm1G1BuvyWIIwxgS80lIlPjGdc3pG0zKyQbnnNm/cgPsu7MXKnYdYvCGjliIMTJYgjDEBb+XOQ2TkFDCxnMdLniYN60S/mGb8fUkyxwuLfRxd4LIEYYwJeB+v30fjBqGM6dvW0fmhIcJjE/qRkVPAjGU7fBxd4LIEYYwJaCeKS1iyMYML+7WjcQPnk0PEdWnJpYNimPVNKnsOHvdhhIHLEoQxJqAt3ZJNbkGx48dLnh4c14ewEOFvnyT5ILLAZwnCGBPQPl6/j9ZNGnBW99aVLtu2WUN+/+sefJGUydfbbMGxsixBGGMCVm5BEV9tyWL8gBjCQqv2dXbzWV3o2jqSxxZtprC43AUs6x1LEMaYgPXpxv0UFpdW6fHSSRFhofx1fF9Ss4/xxvc7azC6wGcJwhgTsBau30fnVo0Z1LF5ta4zuncbzuvdhhe+3E6WLSz0I0sQxpiAtD+ngB9SDzJxUIefzdxaVX8Z35eiEuXpT7fWQHTBwRKEMSYgLUpMR5Vy516qjC6tI7nl7K4sWJvGmt2Ha+Sagc4ShDEmIC1cv48BsVF0i25SY9ecPro7bZtFcN/7iew9ZGMjLEEYYwJOSlYem9Nzva77UB2REWG8dO0QDh49wWWvfs+GtCM1ev1A49MEISIXichWEUkRkQe8HO8tIj+IyAkRuc9jf0cRWSoiySKyWUTu8mWcxpjAsnBdOiEClwxsX+PXHt61JR/efiYNw0O4ZtYKvkjKrPHPCBQ+SxAiEgq8AowF+gLXikjfMqcdAu4Enimzvxj4g6r2AUYAd3gpa4wJQN+lHCBh16Eql1dVPk7cx6jurWnTtGENRvaT7m2a8tHto+jZtglT/53AG9/Vz+6vvryDGA6kqGqqqhYC84GJnieoapaqrgaKyuzPUNW17td5QDJQs/eSxpha98GaNCa/vpKrZ/3A7G9Tq7Qew9o9h9l7KL/GHy+VFd00gvlTR3J+n7Y8uiiJxxclUVJav9aP8GWC6AB4rg6eRhW+5EWkCzAYWFkzYRlj/OHd1Xv44weJjDqtNRf0bccTnyTzh/cTKSgqqdR1Fq5Lp2F4CBf2czZza3U0ahDKzMlDmTKqC3O+28nv5q0hv7By8QYyXyYIbx2TK5V+RaQJsAC4W1W9rg8oIlNFJEFEErKzbS4VY+qieSt286cFGzmnRzSzb4zj1euGcM/5Pflw7T6ueW0FmQ4HpxWVlPLJxgzO79OWpg3DfRy1S2iI8Mgl/fjr+L58kZzJpH+tIDvvRK18tr/5MkGkAR093scC6U4Li0g4ruTwtqp+eKrzVPU1VY1T1bjo6OgqB2uM8Y03v9/Fwws3cV7vNrx2w1AahocSEiLcdX4PZk4eyvbMPC55aTnr9lQ89uDb7dkcOlbIpT5+vOTNzWd1ZdbkoWzdn8vlM74jJetorcdQ23yZIFYDPUSkq4g0ACYB8U4KimtY5OtAsqr+04cxGmN8aPa3qTwSv5kL+rZlxuShRISF/uz4Rae348PbzyQiPIRrXlvBgjVp5V5v4bp0mjcO55ye/vll8IJ+7Xh36kjyC0u4/NXvWJF60C9x1BafJQhVLQamA5/hamR+T1U3i8g0EZkGICLtRCQNuBd4WETSRKQZMAq4Hvi1iKx3b+N8FasxpubN/HoHT3ySzLj+7XjluiE0CPP+ddO7XTPi7ziLuM4t+MP7iTyxOInikl/OqnrsRDFfJGVycf/2p7xWbRjYsTkf3T6KNs0acv3rK1m4bp/fYvE158svVYGqLgGWlNk30+P1flyPnspajvc2DGNMAHj5f9t55vNtXDIwhueuHljhVNwtIhvw5s3D+X+fJDN7+U62Zubx8rVDiGr8UzvD50n7yS8q4dLB/u/Q2LFlYxZMO5Pb5iVw97vr2XvoONN/3b1G5oSqrKT0XJIycrlyqLev0uqxkdTGmBqjqjz/5Tae+Xwblw3u4Cg5nBQeGsKjE/rx9BX9WZF6kImvLCclK+/H4x+tS6dD80YM7dTCV+FXSlTjcN68eTiXDe7As19s408LNlDk5c7HlzJy8rn5jdU8+/lWjp0orvHrW4IwxtQIVeXZz7fx/JfbuXJoLM9c5Tw5eLpmWCfmTx3B0RMlXPrK93yVnEl23gmWb89m4qAYQkLqzsOFiLBQ/nn1QO48rwfvJaRx8xurK91tt6pyC4qYMnc1x04UM3fKMCIjav6BkCUIY0y1qSpPfbqFl5emcO3wjvzjigGEVuOLfGjnlsRPH0XX1pHc+lYCd7yzllKlTjxeKktEuHdMT/5xxQCWpxzgd/PW+HxluqKSUm6ft5aUrKPMmDyU3u2a+eRzLEEYY6pFVXnik2RmfZ3K5BGd+H+X9q+R3/Jjmjfi/WkjmTAwhlU7D9GnfTN6tm1aAxH7xtXDOvL3y/qzdGs297y33mejrlWVBz/cyPKUAzx5eX/O6lH5tbid8mkjtTEmuKkqjy1K4o3vd3HTmV145JK+NdpQ2zA8lOevGcSvekbTtXVkjV3XV64d3omjBcX8vyXJNI0I48nL+9d4w/WLX6XwwZo07j6/B1fFday4QDVYgjDGVNmsb1J54/td/Pbsrjw0ro9PevGICJcPqfkeOr7y23O6kVdQxIv/S6FJRBh/vrjm/lw+WJPGc19u48qhsdx1Xo8auWZ5LEEYE8SKS0pZujWbX/WMrvGxA5v25fDs51sZe3o7nyWHQHXPmJ7kFhQze/lOmjYM567zq/9lvnz7AR5YsIGzurfm75fV/J2JN9YGYUwQm7diN799K4G/L0mu0evmF5Zw1/x1tIxsUGtfVoFERPjr+L5cOTSW577cxpzl1ZsufMv+XH43bw3d2zTh1cmnHnRY0yxBGBOkSkqVOd/tokFoCG98v4tPNmTU2LWf/G8yO7KP8cxVA2kR2aDGrhtMQkKEpy7vz9jT2/H44iTeW7234kJe7M8pYMrc1TSOCGXulGE0q6VJCsEShDFB64ukTPYcOs7/XTWAwZ2a86cFG9h54Fi1r7t0SxZv/bCbW87qytk9bILM8oSFhvD8pEGc0zOaBz7cUOkknVdQxJQ3VpNXUMzcm4bTPqqRjyL1zhKEMUFqzvKdxLZoxMX92/Pyb4YQFirc/vbaag3kOnj0BH/8YAO92zXljxf2qsFog1dEWCizJg9laOcW3P3uOpZuzXJUrqiklNvfXsu2zDxevW4IfWN8M9ahPJYgjAlCiXuPsGrXIaaM6kpYaAgdmjfiuWsGkZyRy6Pxm6t0TVXlTws2kptfxPOTBtEwPLTiQgZwLTz0+k3D6NWuKdP+vYaVFcwCq6o8/NEmvt1+gCcv6++32WstQRgThF5fvpMmEWFcHfdT99DRvdpwx+jTmL96b4XTanszf/VevkzO5P6Levls5G4wa9YwnDenDCe2RSNueTOBDWlHTnnuy/9L4d2Evdz56+5cPcy3Yx3KYwnCmCCTfiSfTzZmMGlYx1+sunbP+T05o2tLHl64iW2Zeae4wi+lZh/l8UVJnNW9NTeP6lrTIdcbrZpE8PatI2jeOJwb56xiu5e/gw/XpvHsF9u4fHAH7hnT0w9R/sQShDFB5s3vd6Gq3DSqyy+OhYWG8NK1g4mMCON389Y4mgG0qKSUe95dT4OwEJ65amCdmiwvELWLasjbt55BWGgI181eyZ6Dx3889n3KAf60YAMju7XiqSsG+L37sCUIY4LIsRPFvLNqD2P7tye2RWOv57Rp1pAXrx3EzgPHeOijjaiWP2fQS19tJzEthycv70+7qIa+CLve6dwqknm3nEFhSSnXvb6C/TkFbN2fx23z1tC1dSQzrx/q10WRTvJ/BMaYGvN+wl7yCoq59azyHwOdeVpr7h3Tk4/Xp/POqj2nPC9h1yFeXprCFUNiGde/fU2HW6/1ateUN6cM59DRQia/vpIpc1fRKDyUuVOGE9Wo9sY6lMcShDFB4uTAuCGdmjPYwaI6t5/bnV/1jOax+CQ27cv5xfG8giLueW89HVo04tEJfX0Rcr03sGNzZt84jL2HjnMkv4g5Nw2jQ/PaHetQHksQxgSJkwPjbj27m6PzQ0KE564ZRKsmDbj97bXk5Bf97Pij8UnsO5zPc1cP+kVjt6k5I09rxYLfnckH087k9A5R/g7nZyxBGBMkXl+eSmyLRlzQt63jMi0jG/Dyb4aQfiSf+z9I/LE94pMNGSxYm8b00d2J69LSVyEbt9M7RPllIFxFfJogROQiEdkqIiki8oCX471F5AcROSEi91WmrDHB5OP1+3gvoWpz9YBrYNzqXYd/HBhXGUM7t+CBsb35bHMmry/fSUZOPg99tJGBsVH8vhamlDZ1V4XTfYvI5cDTQBtA3JuqarnpTkRCgVeAMUAasFpE4lU1yeO0Q8CdwKVVKGtMUFi4bh93v7segIKiEm4Y2aXS1/A2MK4ybjmrK6t2HuKp/27hw7X7KCwu5blrBhFehTWlTfBw8rf/D2CCqkapajNVbVpRcnAbDqSoaqqqFgLzgYmeJ6hqlqquBooqW9aYYPDNtmzuez+Rkd1acX6fNvz1480sXLevUtcob2CcUyLC/101kJjmjUjKyOWvl/SlW3STKl3LBA8nCwZlqmpVJpPvAHjeM6cBZ9R0WRGZCkwF6NSpU+WjNMZPNqQdYdq8NfRo25RZNwylQWgIN81dxR/eT6RpwzDO6+OsLaG8gXGVEdUonDemDGNF6iEm+XF6B1N3OLmDSBCRd0XkWhG5/OTmoJy3IYBOV/F2XFZVX1PVOFWNi462qYdNYNh54BhT5q6mZWQD3nTP8d8wPJR/3RBH3/bNuP3ttRVO6AbOBsZVRrfoJvzmjE5+H8Fr6gYnCaIZcBy4ALjEvY13UC4N8Pw1JBZIdxhXdcoaU6dl5RVww5yVKPDWzcNp0+yn0clNG7p+i49t0Yhb30zwOj7Bk9OBccZURYUJQlWneNludnDt1UAPEekqIg2ASUC8w7iqU9aYOiuvoIib5qzmQF4hc24a5vU5f6smEfz7ljNo1iicG+asIiXrqNdrVXZgnDGVVWGCEJFYEflIRLJEJFNEFohIhV0lVLUYmA58BiQD76nqZhGZJiLT3NduJyJpwL3AwyKSJiLNTlW26tU0xv9OFJcwbd4atmXmMWPyEAZ1bH7Kc2OaN+LftwwnROCG11ey70j+L86p7MA4YypLKpqoS0S+AN4B/u3eNRm4TlXH+Di2SouLi9OEhAR/h2HML5SWKnfOX8fiDRn88+qBXD7EWXfUzek5TJq1guimEbw3bSStm0T8eOyqmd+TkVPAsvvOrfTYB2NOEpE1qhrn7ZiTf1XRqjpXVYvd2xuAtQYb45Cq8rdPkli8IYMHxvZ2nBwA+sVEMWfKMNJz8rlxzipyC1w9wqszMM4Yp5z8yzogIpNFJNS9TQYq7l5hjAFg5tepzP1uFzeP6spt51T+cdCwLi2Zcd1Qtu7P49Y3EigoKqn2wDhjnHCSIG4Grgb2AxnAle59xpgKfLAmjac/3cKEgTE8fHGfKncfHd27Df+8ZhCrdx9iytzV1R4YZ4wTFQ6UU9U9wIRaiMWYoLIy9SB/WrCBs7q3rpGV2CYMjCE3v4iHF24iRKj2wDhjKnLKBCEi96vqP0TkJbwMUlPVO30amTEBTFV5+tMttGvWsEZXB5s8ojPhocLREyU1MjDOmPKUdwdxcnoN6xZkTCX9kHqQtXuO8LeJ/WgS4WRGG+euGWZTypjaccp/uaq6yP3yuKq+73lMRK7yaVTGBLhXlqYQ3TSCq+JsTiMTuJzc9z7ocJ8xBli35zDfpRzkt2d3pWF4qL/DMabKymuDGAuMAzqIyIseh5oBxb4OzJhA9crSFJo3Due6Mzr7OxRjqqW8h6PpuNofJgBrPPbnAff4MihjAlVyRi5fJmdx75ieRNZw24Mxta28NohEIFFE3lHVsgv6GGO8eGVpCk0iwrixCqvCGVPXOPkVp4uIPAn0BX6cl1hVbYYwYzzsyD7KJxszmPar04hqbAPYTOBz0kg9F5iBq91hNPAWP03cZ4xxm7FsBxFhIdxiazOYIOEkQTRS1a9wzfy6W1UfBX7t27CMCSxph4+zcN0+Jg3r9LMZV40JZE4eMRWISAiwXUSmA/uANr4Ny5jAMuvrVETgtl/Zk1cTPJzcQdwNNAbuBIYC1wM3+jAmYwJKVm4B7ybs5YohsbSPauTvcIypMU4m61vtfnkUmOLbcIwJPLOX76S4pJTfnXuav0MxpkaVN1BuEV4m6TtJVW2GV1PvHT5WyLwVu5kwMIbOrSL9HY4xNaq8O4hnai0KYwLU3O93cbywhNtHd/d3KMbUuPIGyn1d3YuLyEXAC0AoMFtVnypzXNzHxwHHgZtUda372D3ArbjuYjYCU1S1oLoxGVNT8gqKeOO7nVzYry092zb1dzjG1LgKG6lFZKeIpJbdHJQLBV4BxuIaZHetiPQtc9pYoId7m4prvAUi0gFXo3icqp6OK8FMqkS9jPG5eSv2kFtQzPTRPfwdijE+4aSba5zH64bAVUBLB+WGAymqmgogIvOBiUCSxzkTgbdUVYEVItJcRNp7xNZIRIpw9aJKd/CZxtQK17rQqZzTM5r+sVH+DscYn6jwDkJVD3ps+1T1eZwNlOsA7PV4n+beV+E5qroPVxvIHlzrYOeo6ufePkREpopIgogkZGdnOwjLmOqbv2oPB44WMt3aHkwQc/KIaYjHFici0wAnD1y9LcBbtleU13NEpAWuu4uuQAwQKSKTvX2Iqr6mqnGqGhcdHe0gLGOqp7C4lFnfpDK8S0uGd3VyM21MYHLyiOlZj9fFwC7gagfl0gDP5bRi+eVjolOdcz6wU1WzAUTkQ+BMYJ6DzzXGpz5cm0ZGTgFPXzHA36EY41NOBsqNruK1VwM9RKQrruk5JgG/KXNOPDDd3T5xBq5HSRkisgcYISKNgXzgPGxtbFMHqCqzl+9kQGwUZ/do7e9wjPEpJ4+YWonIiyKyVkTWiMgLItKqonKqWgxMBz4DkoH3VHWziExzP6YCWAKkAinAv4Db3WVXAh8Aa3F1cQ0BXqt89YypWZvTc0nJOso1wzri6qVtTPBy8ohpPvANcIX7/XXAu7geA5VLVZfgSgKe+2Z6vFbgjlOUfQR4xEF8xtSaRYnphIUI405vX/HJxgQ4Jwmipar+zeP9EyJyqY/iMabOKi1VFiWmc3aP1rSIbODvcIzxOSezuS4VkUkiEuLergY+8XVgxtQ1a/YcJj2ngAmDYvwdijG1wkmCuA14Byh0b/OBe0UkT0RyfRmcMXVJ/Pp0IsJCGNO3nb9DMaZWOOnFZJPMmHqvuKSUJRszOL9vW5pEOHkya0zgc/QvXUQmAOe43y5T1cW+C8mYuue7HQc5eKyQCQPt8ZKpP5x0c30KuAvXHEpJwF3ufcbUG/Hr02naMIxze9lofVN/OLmDGAcMUtVSABF5E1gHPODLwIypKwqKSvh8834uOr0dEWGh/g7HmFrjpJEaoLnHa5u60tQry7ZmkXei2HovmXrHyR3Ek8A6EVmKa3K9c4AHfRqVMXVIfGI6rZs0YGS3CicQMCaoOOnF9B8RWQYMc+/6k6ru92lUxtQReQVFfJWcxaRhHQkLdXrDbUxwcNpfbyRwFq7pukOBj3wWkTF1yBdJmZwoLrXHS6ZectKL6VVgGq5J8zYBt4nIK74OzJi6ID4xnQ7NGzGkUwt/h2JMrXNyB/Er4HT3xHonezFt9GlUxtQBh44Vsnz7AW49u5vN3GrqJScPVbcCnTzedwQ2+CYcY+qOJRszKC5VGxxn6i0ndxCtgGQRWeV+Pwz4QUTiAVR1gq+CM8af4hPT6d6mCX3a22wzpn5ykiD+6vMojKlj0o/ks2rnIe4d09MeL5l6y0k3169rIxBj6pLFG1zLp9vjJVOfWcduY7yIT0xnQGwUXVpH+jsUY/zGEoQxZaRmH2XTvly7ezD1nqMEISKNRKRXZS8uIheJyFYRSRGRX0zuJy4vuo9vEJEhHseai8gHIrJFRJJFZGRlP9+YqohPTEcExg+wBGHqNycD5S4B1gOfut8POtmDqYJyocArwFigL3CtiPQtc9pYoId7mwrM8Dj2AvCpqvYGBgLJFX2mMdWlqsQnpjO8S0vaRTX0dzjG+JWTO4hHgeHAEQBVXQ90cVBuOJCiqqmqenKp0ollzpkIvKUuK4DmItJeRJrhmhTwdfdnFqrqEQefaUy1bE7PJTX7mE2tYQzOEkSxquZU4dodgL0e79Pc+5yc0w3IBuaKyDoRmS0iXlsLRWSqiCSISEJ2dnYVwjTmJ4sS0wkLEcad3t7foRjjd04SxCYR+Q0QKiI9ROQl4HsH5bx1HleH54QBQ4AZqjoYOMYpFihS1ddUNU5V46KjbbUvU3WlpcqixHTO7tGaFpEN/B2OMX7nJEH8HugHnADeAXKAux2US8M1LcdJsUC6w3PSgDRVXene/wGuhGGMz6zZc5j0nAJ7vGSMm5ME0UtV/6yqw9zbw6pa4KDcaqCHiHQVkQbAJKBs43Y8cIO7N9MIIEdVM9zrTez16Dl1Hq71sI3xmfj16USEhTCmbzt/h2JMneBkqo1/ikh74H1gvqpudnJhVS0WkenAZ7jWkJijqptFZJr7+ExgCa41r1OA48AUj0v8HnjbnVxSyxwzpkZl5RawcN0+xvRtS5MIp8ukGBPcnEy1MVpE2gFXA6+5exi9q6pPOCi7BFcS8Nw30+O1Anecoux6IK6izzCmJjy+OIkTJaXcO6anv0Mxps5wNFBOVfer6ou4Fg5aj03gZ4LI0q1ZLN6QwfTR3ekW3cTf4RhTZzgZKNdHRB4VkU3Ay7h6MMX6PDJjakF+YQl/WbiJ06Ijue1X3fwdjjF1ipOHrXOB/wAXqGrZXkjGBLQXvtpO2uF83p06goiwUH+HY0yd4qQNYkRtBGJMbduyP5fZ36ZydVwsZ3Rr5e9wjKlzTpkgROQ9Vb1aRDby8wFugqt9eYDPozPGR0pLlYc+3EizRuE8OLaPv8Mxpk4q7w7iLvfP8bURiDG16T+r97B2zxH+efVAGzVtzCmcspFaVTPcL29X1d2eG3B77YRnTM3Lyivgqf9u4czTWnHZ4LLTgxljTnLSzXWMl31jazoQY2rL3xYnc6K4lCcuPd3WmzamHOW1QfwO151CNxHZ4HGoKfCdrwMzxheWbc1iUWI6947paWMejKlAeW0Q7wD/BZ7k5zOp5qnqIZ9GZYwP5BeW8JePbcyDMU6dMkG414DIAa4FEJE2QEOgiYg0UdU9tROiMTXjxf9tZ+8hG/NgjFOOlhwVke3ATuBrYBeuOwtjAsaW/bn86xsb82BMZThppH4CGAFsU9WuuKbetjYIEzBszIMxVeMkQRSp6kEgRERCVHUpMMi3YRlTM0pKlee/3MbaPUd4+OI+NubBmEpwMhfTERFpAnyDa32GLKDYt2EZU33bM/O4f8EG1u05wvgB7W3MgzGV5CRBTAQKgHuA64Ao4HFfBmVMdRSVlDJz2Q5e+l8KkRGhPH/NICYOirExD8ZUkpPJ+o55vH3Th7EYU20b03L44weJbNmfx8UD2vPYhH60bhLh77CMCUjlDZTLw8skffw0WV8zH8dmjGMFRSU8/+V2/vVtKq0iGzDr+qFc2M/WljamOsobB9G0NgMxpqpW7TzEAws2kHrgGNfEdeShcX2Iahzu77CMCXiOlhwVkbNEZIr7dWsR6eqw3EUislVEUkTkAS/HRURedB/fICJDyhwPFZF1IrLYyeeZ+kVVeXxRElfP+oHCklLm3XIGT185wJKDMTWkwjYIEXkEiAN64VpdrgEwDxhVQblQ4BVck/2lAatFJF5VkzxOGwv0cG9nADPcP0+6C0gG7HGW+YVPN+1nznc7uXZ4Jx6+uA+REU76XBhjnHJyB3EZMAE4BuBedtTJ46fhQIqqpqpqITAfV48oTxOBt9RlBdBcRNoDiEgscDEw21FNTL1SWFzK059uoUebJvxtYj9LDsb4gJMEUaiqirvBWkQiHV67A7DX432ae5/Tc54H7gdKy/sQEZkqIgkikpCdne0wNBPo/rNqD7sOHufBcb0JC3X0pNQYU0lO/me9JyKzcP12/1vgS+BfDsp563SuTs4RkfFAlqquqehDVPU1VY1T1bjo6GgHYZlAl1tQxAtfbWdkt1aM7tXG3+EYE7TKvS8X18iid4HeQC6udoi/quoXDq6dBnT0eB8LpDs850pggoiMwzWDbDMRmaeqkx18rglyM5ft4NCxQh4a18cGvxnjQ+UmCFVVEVmoqkMBJ0nB02qgh7vH0z5gEvCbMufEA9NFZD6uxukc91KnD7o3RORc4D5LDgYgIyef15fvZOKgGPrHRvk7HGOCmpOWvRUiMkxVV1fmwqpaLCLTgc+AUGCOqm4WkWnu4zOBJcA4IAU4DkypVPSm3nn2822own0X9PJ3KMYEPScJYjRwm4jsxtWT6eRI6gEVFVTVJbiSgOe+mR6vFbijgmssA5Y5iNMEuaT0XBasTePWs7rSsWVjf4djTNBzkiDG+jwKYxx46tMtNGsYzvTRPfwdijH1gpPJ+nbXRiDGlOfb7dl8sy2bhy+2aTSMqS3WgdzUeSWlyt+XbCG2RSOuH9nZ3+EYU29YgjB13sJ1+0jOyOWPF/YiIizU3+EYU29YgjB1WkFRCc9+vpUBsVFcMiDG3+EYU69YgjB12pzvdpKeU8CDY/sQEmKD4oypTZYgTJ116FghM5bu4LzebRh5Wit/h2NMvWMJwtRZL361nWOFxTwwtre/QzGmXrIEYeqk1OyjvL1yN9cM60SPtra4oTH+YAnC1DmqyqOLkmgYFso9Y2xQnDH+YgnC1Dmfbc7km23Z3DOmJ22aNvR3OMbUW5YgTJ2SX1jC3xYn0btdU26wQXHG+JWt02jqlFeXpbDvSD7vTh1hK8UZ42f2P9DUGbsOHGPW16lcNrgDZ3Szbq3G+JslCFMnuBqmN9MgLIQHrVurMXWCJQhTJ3yRlMmyrdncfX4P2jSzhmlj6gJLEMbvCopKeHxxEj3bNuHGM7v4OxxjjJs1Uhu/e3XZDtIO5zN/6gjCrWHamDrD/jcav9p98Bgzv97BxEExjLCGaWPqFEsQxq8eW5REeIjw0Lg+/g7FGFOGTxOEiFwkIltFJEVEHvByXETkRffxDSIyxL2/o4gsFZFkEdksInf5Mk7jH18mZfK/LVncM6Ynba1h2pg6x2cJQkRCgVeAsUBf4FoR6VvmtLFAD/c2FZjh3l8M/EFV+wAjgDu8lDUBrKCohMcWb7aGaWPqMF/eQQwHUlQ1VVULgfnAxDLnTATeUpcVQHMRaa+qGaq6FkBV84BkoIMPYzW1bMayHew9lM9jE063hmlj6ihf/s/sAOz1eJ/GL7/kKzxHRLoAg4GV3j5ERKaKSIKIJGRnZ1c3ZlMLtuzPZcbXO7hkYIwtBGRMHebLBOFtfUitzDki0gRYANytqrnePkRVX1PVOFWNi46OrnKwpnYcLyzmjrfXEtUonL+Ot6eGxtRlvhwHkQZ09HgfC6Q7PUdEwnElh7dV9UMfxmlq0SMfbyb1wDHm3XIG0U0j/B2OMaYcvryDWA30EJGuItIAmATElzknHrjB3ZtpBJCjqhkiIsDrQLKq/tOHMZpatHDdPt5fk8b00d0Z1b21v8MxxlTAZ3cQqlosItOBz4BQYI6qbhaRae7jM4ElwDggBTgOTHEXHwVcD2wUkfXufQ+p6hJfxWt8a+eBY/z5o40M79KSu86zVeKMCQQ+nWrD/YW+pMy+mR6vFbjDS7nleG+fMAHoRHEJ099ZS3hYCC9cO8jWeTAmQNhcTMbnnlyyhc3pucy+IY72UY38HY4xxiH7VS4Irdp5iOtfX8meg8f9HQqfbd7PG9/v4uZRXTm/b1t/h2OMqQRLEEHm0LFCpr+zlm+3H+CmN1Zx5Hih32LZdySf+z/YQP8OUfxpbC+/xWGMqRpLEEFEVfnj+4kcOV7E3yb2I+1wPr99K4GCopJaj6WopJQ7/7OOklLl5d8MJiIstNZjMMZUjyWIIPLm97v4aksWD47rzfUju/DsVQNZvesw972fSGlp2TGKvvXcF9tYs/swf7+8P51bRdbqZxtjaoY1UgeJpPRc/r5kC7/u3Yab3JPfXTIwhvQj+Tz53y10aNGIB8f6fkrt44XFLFyXzoyvdzBpWEcmDIzx+WcaY3zDEkQQOF5YzO//s5bmjcP5vysH4Bpn6DL1nG6kHc5n1tepxLZozPUjOld4vcLiUsJChJAQZz2NTxSX8M22AyxKTOfL5EyOF5bQv0MUj1zSr8p1Msb4nyWIIPD4oqQfp69o1eTn01eICI9c0peMnHwe+XgTMVENOa/PL3sTFZWU8u32bBas2ccXyZmEhwi92jWld/tm9G7XlN7tmtGrXVOiGoUDUFKq/LDjIIsS0/nvpgxyC4pp0TicSwd3YMLAGIZ1aUmowwRjjKmbxDVWLTjExcVpQkKCv8OoVYs3pDP9nXXcfu5p3H9R71Oed7ywmEmvrWB75lHevW0EA2Kbo6psTs/lw7X7iE/cx4GjhbRoHM74ATGEhgjJGbls2Z9HTn7Rj9eJiWpI97ZNSUrP5cDREzSJCOOCvm25ZFAMZ3VvbVN3GxNgRGSNqsZ5PWYJInDtPXSccS9+y2nRTXh/2sgKv5yz8gq4/NXvKSgqYcqorixKTGfL/jzCQ4Xzerfl8iEdOLdXGxqE/XQdVSUz9wTJ+3PZuj+PLRm5bMs8SudWjZkwMIbRvdvQMNx6KBkTqCxBBKHiklKunvUD2zOPsuSus+nYsrGjcilZeVwx4wdy8osY3Kk5lw+JZXz/9rSIbODjiI0xdVF5CcLaIAJQXkERjy1KYu2eI7wwaZDj5ADQvU1TFv/+LIpLla6trfupMebULEEEEFUlPjGdJz5J5sDRE9x+7mlMHFT5lVgrk1CMMfWXJYgAsS0zj78s3MTKnYcYEBvF7BviGNixub/DMsYEMUsQddzRE8W88OU25n63iyYNw/j7Zf25ZlhH60JqjPE5SxB10IniEpIz8li7+zCzvtlBZu4Jrh3ekT9e2JuW1phsjKklliD8rKRU2ZaZx8a0HBLTjrAhLYct+3MpKnH1LuvfIYqZk4cyuFMLP0dqjKlvLEH4yaFjhcxfvYe3V+xh35F8AJo2DGNAbBS3nt2NAR2iGNCxOTFRDX82dYYxxtQWSxC1bNO+HN78fhfxiemcKC5lZLdW3DumJ4M7NadLq0jH8x8ZY4yv+TRBiMhFwAtAKDBbVZ8qc1zcx8cBx4GbVHWtk7KBJOd4EV9vz+at73eRsPswjcJDuXJoLDee2YWebZv6OzxjjPHKZwlCREKBV4AxQBqwWkTiVTXJ47SxQA/3dgYwAzjDYdk6qbiklK2Zeazfe4R1e46wbs9hdmQfA6Bzq8b8ZXxfrhwa++Okd8YYU1f58g5iOJCiqqkAIjIfmAh4fslPBN5S13wfK0SkuYi0B7o4KFtjLnlpeY2suqZA+pF8jhe6rtUqsgGDO7Xg8iGxDO3cguFdWtojJGNMwPBlgugA7PV4n4brLqGiczo4LAuAiEwFpgJ06tSpSoGeFh1JYUlplcqWdVb31gzu1JwhnVoQ26KRNTAbYwKWLxOEt2/GsjMDnuocJ2VdO1VfA14D12R9lQnwpOcnDa5KMWOMCWq+TBBpQEeP97FAusNzGjgoa4wxxod8ubrLaqCHiHQVkQbAJCC+zDnxwA3iMgLIUdUMh2WNMcb4kM/uIFS1WESmA5/h6qo6R1U3i8g09/GZwBJcXVxTcHVznVJeWV/Faowx5pdswSBjjKnHylswyBYQNsYY45UlCGOMMV5ZgjDGGOOVJQhjjDFeBVUjtYhkA7urWLw1cKAGwwkEVufgV9/qC1bnyuqsqtHeDgRVgqgOEUk4VUt+sLI6B7/6Vl+wOtcke8RkjDHGK0sQxhhjvLIE8ZPX/B2AH1idg199qy9YnWuMtUEYY4zxyu4gjDHGeGUJwhhjjFf1IkGISEMRWSUiiSKyWUQec+9vKSJfiMh2988WHmUeFJEUEdkqIhf6L/rqEZFQEVknIovd74O6ziKyS0Q2ish6EUlw7wv2OjcXkQ9EZIuIJIvIyGCus4j0cv/9ntxyReTuIK/zPe7vrk0i8h/3d5rv66uqQb/hWqGuift1OLASGAH8A3jAvf8B4Gn3675AIhABdAV2AKH+rkcV634v8A6w2P0+qOsM7AJal9kX7HV+E7jV/boB0DzY6+xR91BgP9A5WOuMawnmnUAj9/v3gJtqo7714g5CXY6634a7NwUm4vrPhfvnpe7XE4H5qnpCVXfiWq9ieO1FXDNEJBa4GJjtsTuo63wKQVtnEWkGnAO8DqCqhap6hCCucxnnATtUdTfBXecwoJGIhAGNca2w6fP61osEAT8+alkPZAFfqOpKoK26VrDD/bON+/QOwF6P4mnufYHmeeB+oNRjX7DXWYHPRWSNiEx17wvmOncDsoG57keJs0UkkuCus6dJwH/cr4Oyzqq6D3gG2ANk4Fp583Nqob71JkGoaomqDsK1vvVwETm9nNPF2yV8EpiPiMh4IEtV1zgt4mVfQNXZbZSqDgHGAneIyDnlnBsMdQ4DhgAzVHUwcAzX44ZTCYY6A+BejngC8H5Fp3rZFzB1drctTMT1uCgGiBSRyeUV8bKvSvWtNwniJPft9zLgIiBTRNoDuH9muU9LAzp6FIvFdUsXSEYBE0RkFzAf+LWIzCO464yqprt/ZgEf4bq1DuY6pwFp7jtigA9wJYxgrvNJY4G1qprpfh+sdT4f2Kmq2apaBHwInEkt1LdeJAgRiRaR5u7XjXD9gW8B4oEb3afdCHzsfh0PTBKRCBHpCvQAVtVq0NWkqg+qaqyqdsF1G/4/VZ1MENdZRCJFpOnJ18AFwCaCuM6quh/YKyK93LvOA5II4jp7uJafHi9B8NZ5DzBCRBqLiOD6O06mNurr7xb6WuoFMABYB2zA9YXxV/f+VsBXwHb3z5YeZf6Mq/V/KzDW33WoZv3P5adeTEFbZ1zP4xPd22bgz8FeZ3cdBgEJ7n/fC4EW9aDOjYGDQJTHvqCtM/AYrl9qNwH/xtVDyef1tak2jDHGeFUvHjEZY4ypPEsQxhhjvLIEYYwxxitLEMYYY7yyBGGMMcarMH8HYEywEpGT3RAB2gEluKbFABiuqoV+CcwYh6ybqzG1QEQeBY6q6jP+jsUYp+wRkzHGGK8sQRhjjPHKEoQxxhivLEEYY4zxyhKEMcYYryxBGGOM8cq6uRpjjPHK7iCMMcZ4ZQnCGGOMV5YgjDHGeGUJwhhjjFeWIIwxxnhlCcIYY4xXliCMMcZ49f8B3LePM6xfsl0AAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -5772,7 +5782,7 @@ } ], "source": [ - "plt.plot(Ts,pop_pt)\n", + "plt.plot(Ts,pop_pt,\"x-\")\n", "plt.xlabel(\"T\")\n", "plt.ylabel(\"relative population\")\n", "plt.show()" @@ -5791,7 +5801,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "id": "80e83093", "metadata": { "execution": { @@ -5802,25 +5812,6 @@ } }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "turning H bonds into constraints...\n", - "turning H bonds into constraints...\n", - "Analysing residue names:\n", - "There are: 3 Protein residues\n", - "There are: 523 Water residues\n", - "Analysing Protein...\n", - "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n", - "Calculated rlist for 1x1 atom pair-list as 1.036 nm, buffer size 0.036 nm\n", - "Set rlist, assuming 4x4 atom pair-list, to 1.000 nm, buffer size 0.000 nm\n", - "Note that mdrun will redetermine rlist based on the actual pair-list setup\n", - "Calculating fourier grid dimensions for X Y Z\n", - "Using a fourier grid of 24x24x24, spacing 0.118 0.118 0.118\n", - "This run will generate roughly 12 Mb of data\n" - ] - }, { "name": "stderr", "output_type": "stream", @@ -5860,19 +5851,54 @@ "Command line:\n", " gmx_mpi grompp -p ../topol.top -f ../grompp.mdp -c ../conf.gro -pp processed.top\n", "\n", - "Setting the LD random seed to -44255049\n", + "Setting the LD random seed to 2143280311\n", + "\n", + "Back Off! I just backed up processed.top to ./#processed.top.1#\n", "Generated 2145 of the 2145 non-bonded parameter combinations\n", "Generating 1-4 interactions: fudge = 0.5\n", "Generated 2145 of the 2145 1-4 parameter combinations\n", "Excluding 3 bonded neighbours molecule type 'Protein'\n", - "Excluding 2 bonded neighbours molecule type 'SOL'\n", + "Excluding 2 bonded neighbours molecule type 'SOL'\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "turning H bonds into constraints...\n", + "turning H bonds into constraints...\n", + "Analysing residue names:\n", + "There are: 3 Protein residues\n", + "There are: 523 Water residues\n", + "Analysing Protein...\n", + "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n", "Estimate for the relative computational load of the PME mesh part: 0.19\n", "\n", - "GROMACS reminds you: \"And You Will Know That My Name is the Lord When I Lay My Vengeance Upon Thee.\" (Pulp Fiction)\n", + "Back Off! I just backed up topol.tpr to ./#topol.tpr.1#\n", + "\n", + "GROMACS reminds you: \"This Puke Stinks Like Beer\" (LIVE)\n", "\n" ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculated rlist for 1x1 atom pair-list as 1.036 nm, buffer size 0.036 nm\n", + "Set rlist, assuming 4x4 atom pair-list, to 1.000 nm, buffer size 0.000 nm\n", + "Note that mdrun will redetermine rlist based on the actual pair-list setup\n", + "Calculating fourier grid dimensions for X Y Z\n", + "Using a fourier grid of 24x24x24, spacing 0.118 0.118 0.118\n", + "This run will generate roughly 12 Mb of data\n" + ] } ], "source": [ @@ -5890,7 +5916,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "id": "c9fb3759", "metadata": { "execution": { @@ -5942,7 +5968,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "id": "51c9ab94", "metadata": { "execution": { @@ -6394,7 +6420,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "id": "d03cd1e4", "metadata": { "execution": { @@ -6444,18 +6470,12 @@ "Command line:\n", " gmx_mpi grompp -f ../grompp.mdp -c ../conf.gro -p ../topol.top\n", "\n", - "Setting the LD random seed to -8687747\n", + "Setting the LD random seed to -80025769\n", "Generated 2145 of the 2145 non-bonded parameter combinations\n", "Generating 1-4 interactions: fudge = 0.5\n", "Generated 2145 of the 2145 1-4 parameter combinations\n", "Excluding 3 bonded neighbours molecule type 'Protein'\n", - "Excluding 2 bonded neighbours molecule type 'SOL'\n", - "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", - "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n", - "Estimate for the relative computational load of the PME mesh part: 0.19\n", - "\n", - "GROMACS reminds you: \"I believe the big bang of self-driving cars is about to come.\" (Jen-Hsun Huang, CEO NVIDIA)\n", - "\n" + "Excluding 2 bonded neighbours molecule type 'SOL'\n" ] }, { @@ -6467,7 +6487,22 @@ "Analysing residue names:\n", "There are: 3 Protein residues\n", "There are: 523 Water residues\n", - "Analysing Protein...\n", + "Analysing Protein...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", + "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n", + "Estimate for the relative computational load of the PME mesh part: 0.19\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n", "Calculated rlist for 1x1 atom pair-list as 1.036 nm, buffer size 0.036 nm\n", "Set rlist, assuming 4x4 atom pair-list, to 1.000 nm, buffer size 0.000 nm\n", @@ -6481,6 +6516,11 @@ "name": "stderr", "output_type": "stream", "text": [ + "\n", + "Back Off! I just backed up topol.tpr to ./#topol.tpr.1#\n", + "\n", + "GROMACS reminds you: \"It all works because Avogadro's number is closer to infinity than to 10.\" (Ralph Baierlein)\n", + "\n", " :-) GROMACS - gmx mdrun, 2020.6-plumed-2.8.0 (-:\n", "\n", " GROMACS is written by:\n", @@ -6516,6 +6556,8 @@ "Command line:\n", " gmx_mpi mdrun -nsteps 5000\n", "\n", + "\n", + "Back Off! I just backed up md.log to ./#md.log.1#\n", "Compiled SIMD: SSE2, but for this host/run AVX_256 might be better (see log).\n", "The current CPU can measure timings more accurately than the code in\n", "gmx mdrun was configured to use. This might affect your simulation\n", @@ -6533,19 +6575,25 @@ "\n", "Using 24 OpenMP threads \n", "\n", + "\n", + "Back Off! I just backed up traj_comp.xtc to ./#traj_comp.xtc.1#\n", + "\n", + "Back Off! I just backed up ener.edr to ./#ener.edr.1#\n", "starting mdrun 'alanine dipeptide in vacuum in water'\n", "5000 steps, 10.0 ps.\n", "\n", "Writing final coordinates.\n", "\n", + "Back Off! I just backed up confout.gro to ./#confout.gro.1#\n", + "\n", "NOTE: Detected invalid cycle counts, probably because threads moved between CPU cores that do not have synchronized cycle counters. Will not print the cycle accounting.\n", "\n", " Core t (s) Wall t (s) (%)\n", - " Time: 667.737 27.823 2400.0\n", + " Time: 1958.671 81.611 2400.0\n", " (ns/day) (hour/ns)\n", - "Performance: 31.060 0.773\n", + "Performance: 10.589 2.267\n", "\n", - "GROMACS reminds you: \"Computer science is no more about computers than astronomy is about telescopes\" (Edsger Dijkstra)\n", + "GROMACS reminds you: \"If I Wanted You to Understand This, I Would Explain it Better\" (J. Cruijff)\n", "\n" ] } @@ -6567,7 +6615,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "id": "381d4e6d", "metadata": { "execution": { @@ -6617,18 +6665,12 @@ "Command line:\n", " gmx_mpi grompp -f ../grompp.mdp -c ../conf.gro -p topol_scaled1.0.top -o topol_scaled1.0.tpr\n", "\n", - "Setting the LD random seed to -35754499\n", + "Setting the LD random seed to 2079717087\n", "Generated 8515 of the 8515 non-bonded parameter combinations\n", "Generating 1-4 interactions: fudge = 0.5\n", "Generated 8515 of the 8515 1-4 parameter combinations\n", "Excluding 3 bonded neighbours molecule type 'Protein'\n", - "Excluding 2 bonded neighbours molecule type 'SOL'\n", - "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", - "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n", - "Estimate for the relative computational load of the PME mesh part: 0.19\n", - "\n", - "GROMACS reminds you: \"He's using code that only you and I know\" (Kate Bush)\n", - "\n" + "Excluding 2 bonded neighbours molecule type 'SOL'\n" ] }, { @@ -6641,7 +6683,21 @@ "There are: 3 Protein residues\n", "There are: 523 Water residues\n", "Analysing Protein...\n", - "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n", + "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", + "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Calculated rlist for 1x1 atom pair-list as 1.036 nm, buffer size 0.036 nm\n", "Set rlist, assuming 4x4 atom pair-list, to 1.000 nm, buffer size 0.000 nm\n", "Note that mdrun will redetermine rlist based on the actual pair-list setup\n", @@ -6654,6 +6710,12 @@ "name": "stderr", "output_type": "stream", "text": [ + "Estimate for the relative computational load of the PME mesh part: 0.19\n", + "\n", + "Back Off! I just backed up topol_scaled1.0.tpr to ./#topol_scaled1.0.tpr.1#\n", + "\n", + "GROMACS reminds you: \"There are only two hard things in computer science - cache invalidation, naming things and off-by-one errors.\" (Anonymous)\n", + "\n", " :-) GROMACS - gmx mdrun, 2020.6-plumed-2.8.0 (-:\n", "\n", " GROMACS is written by:\n", @@ -6689,6 +6751,8 @@ "Command line:\n", " gmx_mpi mdrun -rerun ../traj_comp.xtc -s ../topol.tpr\n", "\n", + "\n", + "Back Off! I just backed up md.log to ./#md.log.1#\n", "Compiled SIMD: SSE2, but for this host/run AVX_256 might be better (see log).\n", "The current CPU can measure timings more accurately than the code in\n", "gmx mdrun was configured to use. This might affect your simulation\n", @@ -6704,19 +6768,21 @@ "\n", "Using 24 OpenMP threads \n", "\n", + "\n", + "Back Off! I just backed up ener.edr to ./#ener.edr.1#\n", "starting md rerun 'alanine dipeptide in vacuum in water', reading coordinates from input trajectory '../traj_comp.xtc'\n", "\n", "Last frame 10 time 10.000 \n", "\n", - "NOTE: 39 % of the run time was spent in pair search,\n", + "NOTE: 33 % of the run time was spent in pair search,\n", " you might want to increase nstlist (this has no effect on accuracy)\n", "\n", " Core t (s) Wall t (s) (%)\n", - " Time: 3.590 0.150 2398.6\n", + " Time: 7.318 0.305 2399.0\n", " (ns/day) (hour/ns)\n", - "Performance: 5774.567 0.004\n", + "Performance: 2833.047 0.008\n", "\n", - "GROMACS reminds you: \"You Got to Relate to It\" (A.E. Torda)\n", + "GROMACS reminds you: \"#define QUESTION ((bb),| !(bb))\" (William Shakespeare)\n", "\n", " :-) GROMACS - gmx energy, 2020.6-plumed-2.8.0 (-:\n", "\n", @@ -6763,9 +6829,11 @@ " 5 LJ-14 6 Coulomb-14 7 LJ-(SR) 8 Disper.-corr. \n", " 9 Coulomb-(SR) 10 Coul.-recip. 11 Potential \n", "\n", - "Last energy frame read 10 time 10.000 \n", "\n", - "GROMACS reminds you: \"You Got to Relate to It\" (A.E. Torda)\n", + "Back Off! I just backed up energy.xvg to ./#energy.xvg.1#\n", + "Last energy frame read 10 time 10.000 \n", + "\n", + "GROMACS reminds you: \"#define QUESTION ((bb),| !(bb))\" (William Shakespeare)\n", "\n" ] }, @@ -6779,17 +6847,17 @@ "\n", "Energy Average Err.Est. RMSD Tot-Drift\n", "-------------------------------------------------------------------------------\n", - "Bond 13.5125 1.9 5.35734 -2.78374 (kJ/mol)\n", - "Angle 34.6824 2.4 6.98995 -11.6451 (kJ/mol)\n", - "Proper Dih. 46.2106 0.11 2.99447 1.66157 (kJ/mol)\n", - "Improper Dih. 2.66664 0.34 1.70936 0.527663 (kJ/mol)\n", - "LJ-14 12.6696 1.3 3.35121 6.34256 (kJ/mol)\n", - "Coulomb-14 196.975 2 6.8741 5.32992 (kJ/mol)\n", - "LJ (SR) 3326.46 50 134.146 -23.5108 (kJ/mol)\n", + "Bond 12.8501 0.93 5.54295 1.76035 (kJ/mol)\n", + "Angle 31.4149 3.3 9.29962 -14.1766 (kJ/mol)\n", + "Proper Dih. 45.7409 1.7 4.41161 -2.62365 (kJ/mol)\n", + "Improper Dih. 2.41675 0.48 1.38529 -0.191024 (kJ/mol)\n", + "LJ-14 13.6088 1.6 4.45048 3.70408 (kJ/mol)\n", + "Coulomb-14 195.498 2.7 6.9361 -11.1147 (kJ/mol)\n", + "LJ (SR) 3321.67 54 169.128 -173.23 (kJ/mol)\n", "Disper. corr. -188.172 0 0 0 (kJ/mol)\n", - "Coulomb (SR) -24676.5 80 240.509 18.3647 (kJ/mol)\n", - "Coul. recip. 130.712 0.83 5.64616 -5.30254 (kJ/mol)\n", - "Potential -21100.8 38 128.861 -11.0154 (kJ/mol)\n" + "Coulomb (SR) -24668.2 78 291.718 198.491 (kJ/mol)\n", + "Coul. recip. 135.806 3.5 12.0772 0.0296166 (kJ/mol)\n", + "Potential -21097.4 45 203.431 2.64933 (kJ/mol)\n" ] }, { @@ -6831,6 +6899,8 @@ "Command line:\n", " gmx_mpi mdrun -rerun ../traj_comp.xtc -s ../topol_scaled1.0.tpr\n", "\n", + "\n", + "Back Off! I just backed up md.log to ./#md.log.1#\n", "Compiled SIMD: SSE2, but for this host/run AVX_256 might be better (see log).\n", "The current CPU can measure timings more accurately than the code in\n", "gmx mdrun was configured to use. This might affect your simulation\n", @@ -6846,18 +6916,21 @@ "\n", "Using 24 OpenMP threads \n", "\n", + "\n", + "Back Off! I just backed up ener.edr to ./#ener.edr.1#\n", "starting md rerun 'alanine dipeptide in vacuum in water', reading coordinates from input trajectory '../traj_comp.xtc'\n", "\n", "Last frame 10 time 10.000 \n", "\n", - "NOTE: Detected invalid cycle counts, probably because threads moved between CPU cores that do not have synchronized cycle counters. Will not print the cycle accounting.\n", + "NOTE: 36 % of the run time was spent in pair search,\n", + " you might want to increase nstlist (this has no effect on accuracy)\n", "\n", " Core t (s) Wall t (s) (%)\n", - " Time: 3.567 0.149 2398.7\n", + " Time: 6.654 0.277 2398.9\n", " (ns/day) (hour/ns)\n", - "Performance: 5810.941 0.004\n", + "Performance: 3115.312 0.008\n", "\n", - "GROMACS reminds you: \"It Was My Pleasure\" (Pulp Fiction)\n", + "GROMACS reminds you: \"Take Your Medications and Preparations and Ram It Up Your Snout\" (F. Zappa)\n", "\n" ] }, @@ -6871,17 +6944,17 @@ "\n", "Energy Average Err.Est. RMSD Tot-Drift\n", "-------------------------------------------------------------------------------\n", - "Bond 13.5125 1.9 5.35734 -2.78374 (kJ/mol)\n", - "Angle 34.6824 2.4 6.98995 -11.6451 (kJ/mol)\n", - "Proper Dih. 46.2106 0.11 2.99447 1.66157 (kJ/mol)\n", - "Improper Dih. 2.66664 0.34 1.70936 0.527663 (kJ/mol)\n", - "LJ-14 12.6696 1.3 3.35121 6.34256 (kJ/mol)\n", - "Coulomb-14 196.975 2 6.8741 5.32992 (kJ/mol)\n", - "LJ (SR) 3326.46 50 134.146 -23.5108 (kJ/mol)\n", + "Bond 12.8501 0.93 5.54295 1.76035 (kJ/mol)\n", + "Angle 31.4149 3.3 9.29962 -14.1766 (kJ/mol)\n", + "Proper Dih. 45.7409 1.7 4.41161 -2.62365 (kJ/mol)\n", + "Improper Dih. 2.41675 0.48 1.38529 -0.191024 (kJ/mol)\n", + "LJ-14 13.6088 1.6 4.45048 3.70408 (kJ/mol)\n", + "Coulomb-14 195.498 2.7 6.9361 -11.1147 (kJ/mol)\n", + "LJ (SR) 3321.67 54 169.128 -173.23 (kJ/mol)\n", "Disper. corr. -188.172 0 0 0 (kJ/mol)\n", - "Coulomb (SR) -24676.5 80 240.509 18.3647 (kJ/mol)\n", - "Coul. recip. 130.712 0.83 5.64616 -5.30254 (kJ/mol)\n", - "Potential -21100.8 38 128.861 -11.0154 (kJ/mol)\n" + "Coulomb (SR) -24668.2 78 291.718 198.491 (kJ/mol)\n", + "Coul. recip. 135.806 3.5 12.0772 0.0296645 (kJ/mol)\n", + "Potential -21097.4 45 203.431 2.64933 (kJ/mol)\n" ] }, { @@ -6933,9 +7006,23 @@ " 5 LJ-14 6 Coulomb-14 7 LJ-(SR) 8 Disper.-corr. \n", " 9 Coulomb-(SR) 10 Coul.-recip. 11 Potential \n", "\n", + "\n", + "Back Off! I just backed up energy.xvg to ./#energy.xvg.1#\n", + "\r", + "Reading energy frame 0 time 0.000 \r", + "Reading energy frame 1 time 1.000 \r", + "Reading energy frame 2 time 2.000 \r", + "Reading energy frame 3 time 3.000 \r", + "Reading energy frame 4 time 4.000 \r", + "Reading energy frame 5 time 5.000 \r", + "Reading energy frame 6 time 6.000 \r", + "Reading energy frame 7 time 7.000 \r", + "Reading energy frame 8 time 8.000 \r", + "Reading energy frame 9 time 9.000 \r", + "Reading energy frame 10 time 10.000 \r", "Last energy frame read 10 time 10.000 \n", "\n", - "GROMACS reminds you: \"The three principal virtues of a programmer are Laziness, Impatience, and Hubris\" (Larry Wall)\n", + "GROMACS reminds you: \"To survive science you have to become science.\" (Gerrit Groenhof)\n", "\n" ] } @@ -6955,7 +7042,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "id": "f0d562ac", "metadata": { "execution": { @@ -6968,7 +7055,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -7001,7 +7088,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "id": "2d8935dc", "metadata": { "execution": { @@ -7051,18 +7138,12 @@ "Command line:\n", " gmx_mpi grompp -f ../grompp.mdp -c ../conf.gro -p topol_scaled_whole0.1.top -o topol_scaled_whole0.1.tpr\n", "\n", - "Setting the LD random seed to -276963400\n", + "Setting the LD random seed to -805658753\n", "Generated 8515 of the 8515 non-bonded parameter combinations\n", "Generating 1-4 interactions: fudge = 0.5\n", "Generated 8515 of the 8515 1-4 parameter combinations\n", "Excluding 3 bonded neighbours molecule type 'Protein'\n", - "Excluding 2 bonded neighbours molecule type 'SOL'\n", - "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", - "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n", - "Estimate for the relative computational load of the PME mesh part: 0.19\n", - "\n", - "GROMACS reminds you: \"Look at these, my work-strong arms\" (P.J. Harvey)\n", - "\n" + "Excluding 2 bonded neighbours molecule type 'SOL'\n" ] }, { @@ -7075,7 +7156,24 @@ "There are: 3 Protein residues\n", "There are: 523 Water residues\n", "Analysing Protein...\n", - "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n", + "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", + "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n", + "Estimate for the relative computational load of the PME mesh part: 0.19\n", + "\n", + "Back Off! I just backed up topol_scaled_whole0.1.tpr to ./#topol_scaled_whole0.1.tpr.1#\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Calculated rlist for 1x1 atom pair-list as 1.000 nm, buffer size 0.000 nm\n", "Set rlist, assuming 4x4 atom pair-list, to 1.000 nm, buffer size 0.000 nm\n", "Note that mdrun will redetermine rlist based on the actual pair-list setup\n", @@ -7088,6 +7186,9 @@ "name": "stderr", "output_type": "stream", "text": [ + "\n", + "GROMACS reminds you: \"... an excellent man, almost worthy of such a wife ...\" (Jane Eyre in Jane Eyre by Charlotte Bronte)\n", + "\n", " :-) GROMACS - gmx mdrun, 2020.6-plumed-2.8.0 (-:\n", "\n", " GROMACS is written by:\n", @@ -7123,6 +7224,8 @@ "Command line:\n", " gmx_mpi mdrun -rerun ../traj_comp.xtc -s ../topol_scaled_whole0.1.tpr\n", "\n", + "\n", + "Back Off! I just backed up md.log to ./#md.log.1#\n", "Compiled SIMD: SSE2, but for this host/run AVX_256 might be better (see log).\n", "The current CPU can measure timings more accurately than the code in\n", "gmx mdrun was configured to use. This might affect your simulation\n", @@ -7138,19 +7241,21 @@ "\n", "Using 24 OpenMP threads \n", "\n", + "\n", + "Back Off! I just backed up ener.edr to ./#ener.edr.1#\n", "starting md rerun 'alanine dipeptide in vacuum in water', reading coordinates from input trajectory '../traj_comp.xtc'\n", "\n", "Last frame 10 time 10.000 \n", "\n", - "NOTE: 38 % of the run time was spent in pair search,\n", + "NOTE: 36 % of the run time was spent in pair search,\n", " you might want to increase nstlist (this has no effect on accuracy)\n", "\n", " Core t (s) Wall t (s) (%)\n", - " Time: 3.232 0.135 2398.7\n", + " Time: 5.228 0.218 2399.0\n", " (ns/day) (hour/ns)\n", - "Performance: 6414.081 0.004\n", + "Performance: 3965.059 0.006\n", "\n", - "GROMACS reminds you: \"I try to identify myself with the atoms... I ask what I would do If I were a carbon atom or a sodium atom.\" (Linus Pauling)\n", + "GROMACS reminds you: \"I Live the Life They Wish They Did\" (Tricky)\n", "\n" ] }, @@ -7164,17 +7269,17 @@ "\n", "Energy Average Err.Est. RMSD Tot-Drift\n", "-------------------------------------------------------------------------------\n", - "Bond 13.5125 1.9 5.35734 -2.78374 (kJ/mol)\n", - "Angle 34.6824 2.4 6.98995 -11.6451 (kJ/mol)\n", - "Proper Dih. 4.62106 0.011 0.299447 0.166157 (kJ/mol)\n", - "Improper Dih. 0.266664 0.034 0.170936 0.0527663 (kJ/mol)\n", - "LJ-14 1.26696 0.13 0.335121 0.634256 (kJ/mol)\n", - "Coulomb-14 19.6975 0.2 0.687411 0.532991 (kJ/mol)\n", - "LJ (SR) 332.646 5 13.4146 -2.35111 (kJ/mol)\n", + "Bond 12.8501 0.93 5.54295 1.76035 (kJ/mol)\n", + "Angle 31.4149 3.3 9.29962 -14.1766 (kJ/mol)\n", + "Proper Dih. 4.57409 0.17 0.441161 -0.262365 (kJ/mol)\n", + "Improper Dih. 0.241675 0.048 0.138529 -0.0191024 (kJ/mol)\n", + "LJ-14 1.36088 0.16 0.445048 0.370408 (kJ/mol)\n", + "Coulomb-14 19.5498 0.27 0.693611 -1.11147 (kJ/mol)\n", + "LJ (SR) 332.167 5.4 16.9128 -17.3229 (kJ/mol)\n", "Disper. corr. -18.8172 0 0 0 (kJ/mol)\n", - "Coulomb (SR) -2467.65 8 24.0512 1.83647 (kJ/mol)\n", - "Coul. recip. 13.0712 0.083 0.564619 -0.53025 (kJ/mol)\n", - "Potential -2066.7 4.2 16.7944 -14.0875 (kJ/mol)\n" + "Coulomb (SR) -2466.83 7.8 29.1721 19.8498 (kJ/mol)\n", + "Coul. recip. 13.5806 0.35 1.20772 0.0029531 (kJ/mol)\n", + "Potential -2069.9 6.2 26.4716 -10.9089 (kJ/mol)\n" ] }, { @@ -7226,9 +7331,23 @@ " 5 LJ-14 6 Coulomb-14 7 LJ-(SR) 8 Disper.-corr. \n", " 9 Coulomb-(SR) 10 Coul.-recip. 11 Potential \n", "\n", + "\n", + "Back Off! I just backed up energy.xvg to ./#energy.xvg.1#\n", + "\r", + "Reading energy frame 0 time 0.000 \r", + "Reading energy frame 1 time 1.000 \r", + "Reading energy frame 2 time 2.000 \r", + "Reading energy frame 3 time 3.000 \r", + "Reading energy frame 4 time 4.000 \r", + "Reading energy frame 5 time 5.000 \r", + "Reading energy frame 6 time 6.000 \r", + "Reading energy frame 7 time 7.000 \r", + "Reading energy frame 8 time 8.000 \r", + "Reading energy frame 9 time 9.000 \r", + "Reading energy frame 10 time 10.000 \r", "Last energy frame read 10 time 10.000 \n", "\n", - "GROMACS reminds you: \"I try to identify myself with the atoms... I ask what I would do If I were a carbon atom or a sodium atom.\" (Linus Pauling)\n", + "GROMACS reminds you: \"I Live the Life They Wish They Did\" (Tricky)\n", "\n" ] } @@ -7266,7 +7385,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "id": "915064d4", "metadata": { "execution": { @@ -7283,7 +7402,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "id": "5242ec9d", "metadata": { "execution": { @@ -7323,64 +7442,64 @@ "10 1.0\n", "Name: 2, dtype: float64\n", "0 10.000000\n", - "1 9.999999\n", - "2 9.999999\n", + "1 10.000000\n", + "2 10.000000\n", "3 9.999999\n", - "4 10.000000\n", + "4 10.000001\n", "5 9.999998\n", - "6 9.999998\n", - "7 9.999997\n", - "8 10.000002\n", - "9 10.000000\n", + "6 9.999999\n", + "7 10.000001\n", + "8 10.000001\n", + "9 10.000001\n", "10 10.000000\n", "Name: 3, dtype: float64\n", "0 10.000004\n", - "1 10.000076\n", - "2 9.999995\n", - "3 10.000181\n", - "4 10.000004\n", - "5 9.999978\n", - "6 9.999987\n", - "7 10.000050\n", - "8 10.000005\n", - "9 9.999971\n", - "10 10.000004\n", + "1 10.000042\n", + "2 10.000014\n", + "3 10.000012\n", + "4 9.999997\n", + "5 9.999916\n", + "6 10.000000\n", + "7 10.000008\n", + "8 9.999977\n", + "9 9.999989\n", + "10 9.999997\n", "Name: 4, dtype: float64\n", "0 9.999994\n", - "1 10.000001\n", - "2 9.999998\n", - "3 9.999998\n", + "1 9.999998\n", + "2 10.000001\n", + "3 10.000004\n", "4 10.000002\n", - "5 10.000005\n", - "6 10.000007\n", - "7 10.000001\n", - "8 10.000004\n", - "9 9.999997\n", - "10 10.000003\n", + "5 9.999996\n", + "6 10.000000\n", + "7 9.999999\n", + "8 9.999999\n", + "9 10.000001\n", + "10 10.000000\n", "Name: 5, dtype: float64\n", "0 10.000010\n", - "1 10.000012\n", + "1 10.000011\n", "2 10.000012\n", - "3 10.000011\n", - "4 10.000012\n", + "3 10.000014\n", + "4 10.000009\n", "5 10.000010\n", - "6 10.000010\n", - "7 10.000013\n", - "8 10.000016\n", + "6 10.000008\n", + "7 10.000012\n", + "8 10.000014\n", "9 10.000012\n", - "10 10.000009\n", + "10 10.000011\n", "Name: 6, dtype: float64\n", "0 10.000000\n", - "1 10.000001\n", - "2 10.000001\n", + "1 10.000003\n", + "2 10.000003\n", "3 10.000002\n", - "4 10.000002\n", - "5 10.000004\n", - "6 10.000001\n", - "7 10.000003\n", - "8 10.000000\n", - "9 10.000001\n", - "10 10.000002\n", + "4 10.000003\n", + "5 10.000002\n", + "6 9.999999\n", + "7 9.999999\n", + "8 10.000002\n", + "9 10.000000\n", + "10 10.000004\n", "Name: 7, dtype: float64\n", "0 10.000001\n", "1 10.000001\n", @@ -7395,40 +7514,40 @@ "10 10.000001\n", "Name: 8, dtype: float64\n", "0 9.999997\n", - "1 9.999994\n", - "2 9.999995\n", - "3 9.999995\n", - "4 9.999998\n", - "5 9.999994\n", - "6 9.999999\n", - "7 9.999993\n", - "8 9.999996\n", - "9 9.999995\n", + "1 9.999991\n", + "2 9.999991\n", + "3 9.999992\n", + "4 9.999994\n", + "5 9.999996\n", + "6 9.999996\n", + "7 9.999995\n", + "8 9.999992\n", + "9 9.999996\n", "10 9.999996\n", "Name: 9, dtype: float64\n", - "0 10.000001\n", - "1 9.999996\n", - "2 10.000016\n", - "3 10.000010\n", - "4 9.999993\n", - "5 10.000004\n", - "6 10.000004\n", - "7 9.999992\n", - "8 10.000004\n", - "9 10.000000\n", - "10 10.000003\n", + "0 9.999997\n", + "1 10.000009\n", + "2 9.999993\n", + "3 10.000005\n", + "4 10.000014\n", + "5 10.000005\n", + "6 9.999998\n", + "7 10.000008\n", + "8 10.000012\n", + "9 9.999997\n", + "10 10.000013\n", "Name: 10, dtype: float64\n", "0 10.246152\n", - "1 10.257181\n", - "2 10.230649\n", - "3 10.216991\n", - "4 10.197422\n", - "5 10.164029\n", - "6 10.218407\n", - "7 10.177492\n", - "8 10.275196\n", - "9 10.161931\n", - "10 10.165529\n", + "1 10.284829\n", + "2 10.157962\n", + "3 10.135779\n", + "4 10.171296\n", + "5 10.190454\n", + "6 10.229319\n", + "7 10.196831\n", + "8 10.196758\n", + "9 10.109526\n", + "10 10.203299\n", "Name: 11, dtype: float64\n" ] } @@ -7462,7 +7581,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "id": "1260369f", "metadata": { "execution": { @@ -7512,18 +7631,12 @@ "Command line:\n", " gmx_mpi grompp -c ../../conf.gro -f ../../grompp.mdp -p ../../topol.top\n", "\n", - "Setting the LD random seed to -419693788\n", + "Setting the LD random seed to 1069470717\n", "Generated 2145 of the 2145 non-bonded parameter combinations\n", "Generating 1-4 interactions: fudge = 0.5\n", "Generated 2145 of the 2145 1-4 parameter combinations\n", "Excluding 3 bonded neighbours molecule type 'Protein'\n", - "Excluding 2 bonded neighbours molecule type 'SOL'\n", - "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", - "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n", - "Estimate for the relative computational load of the PME mesh part: 0.19\n", - "\n", - "GROMACS reminds you: \"When you get right down to it, almost every explanation Man came up with for anything until about 1926 was stupid.\" (Dave Barry)\n", - "\n" + "Excluding 2 bonded neighbours molecule type 'SOL'\n" ] }, { @@ -7536,7 +7649,21 @@ "There are: 3 Protein residues\n", "There are: 523 Water residues\n", "Analysing Protein...\n", - "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n", + "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", + "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Calculated rlist for 1x1 atom pair-list as 1.036 nm, buffer size 0.036 nm\n", "Set rlist, assuming 4x4 atom pair-list, to 1.000 nm, buffer size 0.000 nm\n", "Note that mdrun will redetermine rlist based on the actual pair-list setup\n", @@ -7549,6 +7676,12 @@ "name": "stderr", "output_type": "stream", "text": [ + "Estimate for the relative computational load of the PME mesh part: 0.19\n", + "\n", + "Back Off! I just backed up topol.tpr to ./#topol.tpr.1#\n", + "\n", + "GROMACS reminds you: \"I have had my results for a long time, but I do not yet know how I am to arrive at them.\" (Carl Friedrich Gauss)\n", + "\n", " :-) GROMACS - gmx grompp, 2020.6-plumed-2.8.0 (-:\n", "\n", " GROMACS is written by:\n", @@ -7584,18 +7717,12 @@ "Command line:\n", " gmx_mpi grompp -c ../../conf.gro -f ../../grompp.mdp -p ../topol_scaled1.0.top\n", "\n", - "Setting the LD random seed to -469962756\n", + "Setting the LD random seed to -1511515254\n", "Generated 8515 of the 8515 non-bonded parameter combinations\n", "Generating 1-4 interactions: fudge = 0.5\n", "Generated 8515 of the 8515 1-4 parameter combinations\n", "Excluding 3 bonded neighbours molecule type 'Protein'\n", - "Excluding 2 bonded neighbours molecule type 'SOL'\n", - "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", - "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n", - "Estimate for the relative computational load of the PME mesh part: 0.19\n", - "\n", - "GROMACS reminds you: \"When you get right down to it, almost every explanation Man came up with for anything until about 1926 was stupid.\" (Dave Barry)\n", - "\n" + "Excluding 2 bonded neighbours molecule type 'SOL'\n" ] }, { @@ -7608,7 +7735,24 @@ "There are: 3 Protein residues\n", "There are: 523 Water residues\n", "Analysing Protein...\n", - "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n", + "Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Number of degrees of freedom in T-Coupling group Protein is 53.95\n", + "Number of degrees of freedom in T-Coupling group SOL is 3135.05\n", + "Estimate for the relative computational load of the PME mesh part: 0.19\n", + "\n", + "Back Off! I just backed up topol.tpr to ./#topol.tpr.1#\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Calculated rlist for 1x1 atom pair-list as 1.036 nm, buffer size 0.036 nm\n", "Set rlist, assuming 4x4 atom pair-list, to 1.000 nm, buffer size 0.000 nm\n", "Note that mdrun will redetermine rlist based on the actual pair-list setup\n", @@ -7621,6 +7765,9 @@ "name": "stderr", "output_type": "stream", "text": [ + "\n", + "GROMACS reminds you: \"Those people who think they know everything are a great annoyance to those of us who do.\" (Isaac Asimov)\n", + "\n", " :-) GROMACS - gmx mdrun, 2020.6-plumed-2.8.0 (-:\n", "\n", " GROMACS is written by:\n", @@ -7651,8 +7798,6 @@ "\n", "GROMACS: gmx mdrun, version 2020.6-plumed-2.8.0\n", "Executable: /net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/bin/gmx_mpi\n", - "+++ Loading the PLUMED kernel runtime +++\n", - "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n", "Data prefix: /net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022\n", "Working dir: /scratch/bussi/masterclass-22-10-solution/2c\n", "Command line:\n", @@ -7664,11 +7809,17 @@ "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n", "+++ Loading the PLUMED kernel runtime +++\n", "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n", + "+++ Loading the PLUMED kernel runtime +++\n", + "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n", + "\n", + "Back Off! I just backed up md.log to ./#md.log.1#\n", + "\n", + "Back Off! I just backed up md.log to ./#md.log.1#\n", + "Compiled SIMD: SSE2, but for this host/run AVX_256 might be better (see log).\n", "The current CPU can measure timings more accurately than the code in\n", "gmx mdrun was configured to use. This might affect your simulation\n", "speed as accurate timings are needed for load-balancing.\n", "Please consider rebuilding gmx mdrun with the GMX_USE_RDTSCP=ON CMake option.\n", - "Compiled SIMD: SSE2, but for this host/run AVX_256 might be better (see log).\n", "The current CPU can measure timings more accurately than the code in\n", "gmx mdrun was configured to use. This might affect your simulation\n", "speed as accurate timings are needed for load-balancing.\n", @@ -7703,6 +7854,14 @@ "\n", "Using 12 OpenMP threads \n", "\n", + "\n", + "Back Off! I just backed up traj_comp.xtc to ./#traj_comp.xtc.1#\n", + "\n", + "Back Off! I just backed up ener.edr to ./#ener.edr.1#\n", + "\n", + "Back Off! I just backed up traj_comp.xtc to ./#traj_comp.xtc.1#\n", + "\n", + "Back Off! I just backed up ener.edr to ./#ener.edr.1#\n", "starting mdrun 'alanine dipeptide in vacuum in water'\n", "1000 steps, 2.0 ps.\n", "starting mdrun 'alanine dipeptide in vacuum in water'\n", @@ -7712,9 +7871,13 @@ "\n", "Writing final coordinates.\n", "\n", + "Back Off! I just backed up confout.gro to ./#confout.gro.1#\n", + "\n", + "Back Off! I just backed up confout.gro to ./#confout.gro.1#\n", + "\n", "NOTE: Detected invalid cycle counts, probably because threads moved between CPU cores that do not have synchronized cycle counters. Will not print the cycle accounting.\n", "\n", - "GROMACS reminds you: \"Oh My God ! It's the Funky Shit\" (Beastie Boys)\n", + "GROMACS reminds you: \"Your assumptions are your windows on the world. Scrub them off every once in a while, or the light won't come in.\" (Isaac Asimov)\n", "\n" ] } @@ -7733,7 +7896,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "id": "7a2c01f8", "metadata": { "execution": { @@ -7753,10 +7916,10 @@ "Replica-exchange molecular dynamics method for protein folding\r\n", "Replica exchange in temperature\r\n", "Replica exchange interval: 200\r\n", - "Replica random seed: -8405025\r\n", + "Replica random seed: -4301313\r\n", "Replica exchange information below: ex and x = exchange, pr = probability\r\n", "Replica exchange at step 200 time 0.40000\r\n", - "Repl 0 <-> 1 dE_term = 0.000e+00 (kT)\r\n", + "Repl 0 <-> 1 dE_term = -0.000e+00 (kT)\r\n", "Repl ex 0 x 1\r\n", "Repl pr 1.0\r\n", "Replica exchange at step 400 time 0.80000\r\n", @@ -7793,7 +7956,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "id": "ab414f65", "metadata": { "execution": { @@ -7825,6 +7988,16 @@ "## Exercise 2d: Find minimum scaling factor needed to cross the barrier" ] }, + { + "cell_type": "code", + "execution_count": 29, + "id": "33e246fb", + "metadata": {}, + "outputs": [], + "source": [ + "lambdas=[1.0,0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1]" + ] + }, { "cell_type": "code", "execution_count": 27, @@ -9196,7 +9369,7 @@ } ], "source": [ - "lambdas=[1.0,0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1]\n", + "#this box takes a while to run\n", "for l in lambdas:\n", " with cd(\"2d/l\"+str(l)):\n", " run_mpi(\"cp ../../2a/processed_selected.top processed_selected.top\")\n", @@ -9207,7 +9380,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 30, "id": "e312ef8f", "metadata": { "execution": { @@ -9264,13 +9437,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.089061 0.089061 0.089061 0.089061\n", - "PLUMED: 1 Prepare dependencies 1001 0.001923 0.000002 0.000002 0.000014\n", - "PLUMED: 2 Sharing data 1001 0.009556 0.000010 0.000002 0.000264\n", - "PLUMED: 3 Waiting for data 1001 0.003159 0.000003 0.000003 0.000021\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.010447 0.000010 0.000009 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.013800 0.000014 0.000013 0.000036\n", - "PLUMED: 6 Update 1001 0.008610 0.000009 0.000008 0.000061\n" + "PLUMED: 1 0.091916 0.091916 0.091916 0.091916\n", + "PLUMED: 1 Prepare dependencies 1001 0.001996 0.000002 0.000001 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.010454 0.000010 0.000009 0.000259\n", + "PLUMED: 3 Waiting for data 1001 0.003329 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011175 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014713 0.000015 0.000014 0.000025\n", + "PLUMED: 6 Update 1001 0.009302 0.000009 0.000008 0.000062\n" ] }, { @@ -9327,13 +9500,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107055 0.107055 0.107055 0.107055\n", - "PLUMED: 1 Prepare dependencies 1001 0.002284 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011515 0.000012 0.000011 0.000286\n", - "PLUMED: 3 Waiting for data 1001 0.003742 0.000004 0.000003 0.000023\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012726 0.000013 0.000012 0.000072\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016680 0.000017 0.000016 0.000029\n", - "PLUMED: 6 Update 1001 0.010423 0.000010 0.000010 0.000070\n" + "PLUMED: 1 0.091494 0.091494 0.091494 0.091494\n", + "PLUMED: 1 Prepare dependencies 1001 0.002040 0.000002 0.000001 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010125 0.000010 0.000009 0.000261\n", + "PLUMED: 3 Waiting for data 1001 0.003387 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011161 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014639 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009336 0.000009 0.000008 0.000058\n" ] }, { @@ -9390,13 +9563,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.110480 0.110480 0.110480 0.110480\n", - "PLUMED: 1 Prepare dependencies 1001 0.002247 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011739 0.000012 0.000011 0.000346\n", - "PLUMED: 3 Waiting for data 1001 0.003818 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.013082 0.000013 0.000012 0.000063\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017133 0.000017 0.000016 0.000031\n", - "PLUMED: 6 Update 1001 0.010691 0.000011 0.000010 0.000074\n" + "PLUMED: 1 0.091360 0.091360 0.091360 0.091360\n", + "PLUMED: 1 Prepare dependencies 1001 0.002026 0.000002 0.000001 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010217 0.000010 0.000009 0.000287\n", + "PLUMED: 3 Waiting for data 1001 0.003349 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011293 0.000011 0.000011 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014634 0.000015 0.000014 0.000030\n", + "PLUMED: 6 Update 1001 0.009294 0.000009 0.000008 0.000058\n" ] }, { @@ -9453,13 +9626,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108230 0.108230 0.108230 0.108230\n", - "PLUMED: 1 Prepare dependencies 1001 0.002269 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011706 0.000012 0.000011 0.000357\n", - "PLUMED: 3 Waiting for data 1001 0.003708 0.000004 0.000003 0.000046\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012688 0.000013 0.000012 0.000063\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016931 0.000017 0.000016 0.000050\n", - "PLUMED: 6 Update 1001 0.010421 0.000010 0.000009 0.000074\n" + "PLUMED: 1 0.093822 0.093822 0.093822 0.093822\n", + "PLUMED: 1 Prepare dependencies 1001 0.002083 0.000002 0.000001 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.010190 0.000010 0.000009 0.000244\n", + "PLUMED: 3 Waiting for data 1001 0.003433 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011125 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014630 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009266 0.000009 0.000008 0.000056\n" ] }, { @@ -9516,13 +9689,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107386 0.107386 0.107386 0.107386\n", - "PLUMED: 1 Prepare dependencies 1001 0.002207 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011548 0.000012 0.000011 0.000324\n", - "PLUMED: 3 Waiting for data 1001 0.003861 0.000004 0.000003 0.000039\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012682 0.000013 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016879 0.000017 0.000016 0.000033\n", - "PLUMED: 6 Update 1001 0.010415 0.000010 0.000010 0.000069\n" + "PLUMED: 1 0.092173 0.092173 0.092173 0.092173\n", + "PLUMED: 1 Prepare dependencies 1001 0.002011 0.000002 0.000001 0.000010\n", + "PLUMED: 2 Sharing data 1001 0.009920 0.000010 0.000009 0.000241\n", + "PLUMED: 3 Waiting for data 1001 0.003448 0.000003 0.000003 0.000025\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011430 0.000011 0.000011 0.000048\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014946 0.000015 0.000014 0.000032\n", + "PLUMED: 6 Update 1001 0.009377 0.000009 0.000008 0.000069\n" ] }, { @@ -9579,13 +9752,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108834 0.108834 0.108834 0.108834\n", - "PLUMED: 1 Prepare dependencies 1001 0.002131 0.000002 0.000002 0.000014\n", - "PLUMED: 2 Sharing data 1001 0.011850 0.000012 0.000007 0.000334\n", - "PLUMED: 3 Waiting for data 1001 0.003900 0.000004 0.000003 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012552 0.000013 0.000012 0.000063\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016933 0.000017 0.000016 0.000033\n", - "PLUMED: 6 Update 1001 0.010457 0.000010 0.000010 0.000088\n" + "PLUMED: 1 0.091318 0.091318 0.091318 0.091318\n", + "PLUMED: 1 Prepare dependencies 1001 0.002032 0.000002 0.000002 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010268 0.000010 0.000009 0.000274\n", + "PLUMED: 3 Waiting for data 1001 0.003289 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011096 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014600 0.000015 0.000014 0.000029\n", + "PLUMED: 6 Update 1001 0.009414 0.000009 0.000008 0.000057\n" ] }, { @@ -9642,13 +9815,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.103373 0.103373 0.103373 0.103373\n", - "PLUMED: 1 Prepare dependencies 1001 0.002165 0.000002 0.000002 0.000009\n", - "PLUMED: 2 Sharing data 1001 0.011412 0.000011 0.000011 0.000298\n", - "PLUMED: 3 Waiting for data 1001 0.003860 0.000004 0.000004 0.000022\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012460 0.000012 0.000012 0.000051\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017002 0.000017 0.000016 0.000031\n", - "PLUMED: 6 Update 1001 0.010465 0.000010 0.000009 0.000061\n" + "PLUMED: 1 0.094722 0.094722 0.094722 0.094722\n", + "PLUMED: 1 Prepare dependencies 1001 0.002102 0.000002 0.000001 0.000026\n", + "PLUMED: 2 Sharing data 1001 0.010142 0.000010 0.000009 0.000249\n", + "PLUMED: 3 Waiting for data 1001 0.003479 0.000003 0.000003 0.000023\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011294 0.000011 0.000011 0.000044\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014684 0.000015 0.000014 0.000037\n", + "PLUMED: 6 Update 1001 0.009470 0.000009 0.000008 0.000058\n" ] }, { @@ -9705,13 +9878,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109161 0.109161 0.109161 0.109161\n", - "PLUMED: 1 Prepare dependencies 1001 0.002281 0.000002 0.000002 0.000018\n", - "PLUMED: 2 Sharing data 1001 0.011687 0.000012 0.000011 0.000356\n", - "PLUMED: 3 Waiting for data 1001 0.003924 0.000004 0.000004 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012667 0.000013 0.000012 0.000064\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016817 0.000017 0.000016 0.000046\n", - "PLUMED: 6 Update 1001 0.010594 0.000011 0.000010 0.000074\n" + "PLUMED: 1 0.092056 0.092056 0.092056 0.092056\n", + "PLUMED: 1 Prepare dependencies 1001 0.002016 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010182 0.000010 0.000009 0.000258\n", + "PLUMED: 3 Waiting for data 1001 0.003335 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011142 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014822 0.000015 0.000014 0.000030\n", + "PLUMED: 6 Update 1001 0.009644 0.000010 0.000009 0.000059\n" ] }, { @@ -9768,13 +9941,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107941 0.107941 0.107941 0.107941\n", - "PLUMED: 1 Prepare dependencies 1001 0.002308 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011667 0.000012 0.000010 0.000341\n", - "PLUMED: 3 Waiting for data 1001 0.003839 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012637 0.000013 0.000012 0.000064\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016896 0.000017 0.000016 0.000030\n", - "PLUMED: 6 Update 1001 0.010438 0.000010 0.000009 0.000073\n" + "PLUMED: 1 0.091947 0.091947 0.091947 0.091947\n", + "PLUMED: 1 Prepare dependencies 1001 0.002049 0.000002 0.000001 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010217 0.000010 0.000009 0.000256\n", + "PLUMED: 3 Waiting for data 1001 0.003434 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011203 0.000011 0.000011 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.015064 0.000015 0.000014 0.000025\n", + "PLUMED: 6 Update 1001 0.009273 0.000009 0.000008 0.000060\n" ] }, { @@ -9831,13 +10004,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.116019 0.116019 0.116019 0.116019\n", - "PLUMED: 1 Prepare dependencies 1001 0.002236 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011624 0.000012 0.000011 0.000361\n", - "PLUMED: 3 Waiting for data 1001 0.003853 0.000004 0.000004 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012776 0.000013 0.000012 0.000062\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016817 0.000017 0.000016 0.000037\n", - "PLUMED: 6 Update 1001 0.018027 0.000018 0.000009 0.007608\n" + "PLUMED: 1 0.091945 0.091945 0.091945 0.091945\n", + "PLUMED: 1 Prepare dependencies 1001 0.002023 0.000002 0.000002 0.000007\n", + "PLUMED: 2 Sharing data 1001 0.010195 0.000010 0.000009 0.000269\n", + "PLUMED: 3 Waiting for data 1001 0.003424 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011296 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014680 0.000015 0.000014 0.000035\n", + "PLUMED: 6 Update 1001 0.009430 0.000009 0.000008 0.000057\n" ] }, { @@ -9867,7 +10040,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 31, "id": "c288a67f", "metadata": { "execution": { @@ -10018,7 +10191,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 32, "id": "13e337d0", "metadata": { "execution": { @@ -10035,7 +10208,7 @@ "0.375" ] }, - "execution_count": 30, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -10056,7 +10229,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 34, "id": "5c661285", "metadata": { "execution": { @@ -10068,15 +10241,10 @@ }, "outputs": [], "source": [ - "lambda_min=0.15" + "lambda_min=0.15\n", + "lambdas=np.linspace(1.0,lambda_min,6)" ] }, - { - "cell_type": "markdown", - "id": "0b14c978", - "metadata": {}, - "source": [] - }, { "cell_type": "code", "execution_count": 32, @@ -10743,7 +10911,7 @@ } ], "source": [ - "lambdas=np.linspace(1.0,lambda_min,6)\n", + "#this box takes a while to run\n", "with cd(\"3/6reps\"):\n", " with open(\"plumed.dat\",\"w\") as f:\n", " print(\"\",file=f) # empty\n", @@ -10757,7 +10925,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 35, "id": "e7daf4c8", "metadata": { "execution": { @@ -10772,18 +10940,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "grep: probabilities: No such file or directory\r\n", - "3/6reps/replica0/md.log:Repl average probabilities:\r\n", - "3/6reps/replica0/md.log-Repl 0 1 2 3 4 5\r\n", - "3/6reps/replica0/md.log-Repl .55 .47 .41 .30 .12\r\n", - "3/6reps/replica0/md.log-Repl number of exchanges:\r\n", - "3/6reps/replica0/md.log-Repl 0 1 2 3 4 5\r\n", - "--\r\n", - "3/6reps/replica0/md.log:Repl average number of exchanges:\r\n", - "3/6reps/replica0/md.log-Repl 0 1 2 3 4 5\r\n", - "3/6reps/replica0/md.log-Repl .57 .46 .42 .30 .12\r\n", - "3/6reps/replica0/md.log-\r\n", - "3/6reps/replica0/md.log-\r\n" + "grep: probabilities: No such file or directory\n", + "3/6reps/replica0/md.log:Repl average probabilities:\n", + "3/6reps/replica0/md.log-Repl 0 1 2 3 4 5\n", + "3/6reps/replica0/md.log-Repl .55 .47 .41 .30 .12\n", + "3/6reps/replica0/md.log-Repl number of exchanges:\n", + "3/6reps/replica0/md.log-Repl 0 1 2 3 4 5\n", + "--\n", + "3/6reps/replica0/md.log:Repl average number of exchanges:\n", + "3/6reps/replica0/md.log-Repl 0 1 2 3 4 5\n", + "3/6reps/replica0/md.log-Repl .57 .46 .42 .30 .12\n", + "3/6reps/replica0/md.log-\n", + "3/6reps/replica0/md.log-\n" ] } ], @@ -10803,7 +10971,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 36, "id": "a3622aa8", "metadata": { "execution": { @@ -10860,13 +11028,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108816 0.108816 0.108816 0.108816\n", - "PLUMED: 1 Prepare dependencies 1001 0.002204 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011569 0.000012 0.000010 0.000352\n", - "PLUMED: 3 Waiting for data 1001 0.003851 0.000004 0.000004 0.000024\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012580 0.000013 0.000012 0.000064\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016784 0.000017 0.000016 0.000037\n", - "PLUMED: 6 Update 1001 0.010536 0.000011 0.000009 0.000078\n" + "PLUMED: 1 0.091165 0.091165 0.091165 0.091165\n", + "PLUMED: 1 Prepare dependencies 1001 0.002075 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.009754 0.000010 0.000009 0.000250\n", + "PLUMED: 3 Waiting for data 1001 0.003255 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011189 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014746 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009348 0.000009 0.000008 0.000055\n" ] }, { @@ -10923,13 +11091,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.109582 0.109582 0.109582 0.109582\n", - "PLUMED: 1 Prepare dependencies 1001 0.002258 0.000002 0.000002 0.000019\n", - "PLUMED: 2 Sharing data 1001 0.011597 0.000012 0.000011 0.000395\n", - "PLUMED: 3 Waiting for data 1001 0.003912 0.000004 0.000004 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012810 0.000013 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017231 0.000017 0.000016 0.000032\n", - "PLUMED: 6 Update 1001 0.010829 0.000011 0.000010 0.000082\n" + "PLUMED: 1 0.091243 0.091243 0.091243 0.091243\n", + "PLUMED: 1 Prepare dependencies 1001 0.001989 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010143 0.000010 0.000009 0.000251\n", + "PLUMED: 3 Waiting for data 1001 0.003354 0.000003 0.000002 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011083 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014545 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009419 0.000009 0.000008 0.000060\n" ] }, { @@ -10986,13 +11154,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108457 0.108457 0.108457 0.108457\n", - "PLUMED: 1 Prepare dependencies 1001 0.002275 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011388 0.000011 0.000010 0.000364\n", - "PLUMED: 3 Waiting for data 1001 0.003782 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012787 0.000013 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016703 0.000017 0.000016 0.000036\n", - "PLUMED: 6 Update 1001 0.010636 0.000011 0.000010 0.000074\n" + "PLUMED: 1 0.091534 0.091534 0.091534 0.091534\n", + "PLUMED: 1 Prepare dependencies 1001 0.002018 0.000002 0.000001 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.010278 0.000010 0.000009 0.000256\n", + "PLUMED: 3 Waiting for data 1001 0.003398 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011329 0.000011 0.000011 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014719 0.000015 0.000014 0.000031\n", + "PLUMED: 6 Update 1001 0.009225 0.000009 0.000008 0.000063\n" ] }, { @@ -11049,27 +11217,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108432 0.108432 0.108432 0.108432\n", - "PLUMED: 1 Prepare dependencies 1001 0.002181 0.000002 0.000002 0.000013\n", - "PLUMED: 2 Sharing data 1001 0.011646 0.000012 0.000010 0.000373\n", - "PLUMED: 3 Waiting for data 1001 0.003762 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012846 0.000013 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016728 0.000017 0.000016 0.000033\n", - "PLUMED: 6 Update 1001 0.010387 0.000010 0.000010 0.000087\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "+++ Loading the PLUMED kernel runtime +++\n", - "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "PLUMED: 1 0.093062 0.093062 0.093062 0.093062\n", + "PLUMED: 1 Prepare dependencies 1001 0.002012 0.000002 0.000001 0.000011\n", + "PLUMED: 2 Sharing data 1001 0.010312 0.000010 0.000009 0.000263\n", + "PLUMED: 3 Waiting for data 1001 0.003453 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011439 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014898 0.000015 0.000014 0.000030\n", + "PLUMED: 6 Update 1001 0.009661 0.000010 0.000009 0.000060\n", "PLUMED: PLUMED is starting\n", "PLUMED: Version: 2.8.0 (git: ddb59d16b) compiled on May 17 2022 at 19:07:56\n", "PLUMED: Please cite these papers when using PLUMED [1][2]\n", @@ -11110,15 +11264,7 @@ "PLUMED: [1] The PLUMED consortium, Nat. Methods 16, 670 (2019)\n", "PLUMED: [2] Tribello, Bonomi, Branduardi, Camilloni, and Bussi, Comput. Phys. Commun. 185, 604 (2014)\n", "PLUMED: Please read and cite where appropriate!\n", - "PLUMED: Finished setup\n", - "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107412 0.107412 0.107412 0.107412\n", - "PLUMED: 1 Prepare dependencies 1001 0.002191 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011762 0.000012 0.000011 0.000349\n", - "PLUMED: 3 Waiting for data 1001 0.003762 0.000004 0.000004 0.000026\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012752 0.000013 0.000012 0.000056\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016943 0.000017 0.000016 0.000031\n", - "PLUMED: 6 Update 1001 0.010477 0.000010 0.000010 0.000084\n" + "PLUMED: Finished setup\n" ] }, { @@ -11133,6 +11279,14 @@ "name": "stdout", "output_type": "stream", "text": [ + "PLUMED: Cycles Total Average Minimum Maximum\n", + "PLUMED: 1 0.092980 0.092980 0.092980 0.092980\n", + "PLUMED: 1 Prepare dependencies 1001 0.002059 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010187 0.000010 0.000009 0.000251\n", + "PLUMED: 3 Waiting for data 1001 0.003470 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011443 0.000011 0.000011 0.000044\n", + "PLUMED: 5 Applying (backward loop) 1001 0.015032 0.000015 0.000014 0.000079\n", + "PLUMED: 6 Update 1001 0.009593 0.000010 0.000008 0.000054\n", "PLUMED: PLUMED is starting\n", "PLUMED: Version: 2.8.0 (git: ddb59d16b) compiled on May 17 2022 at 19:07:56\n", "PLUMED: Please cite these papers when using PLUMED [1][2]\n", @@ -11173,15 +11327,29 @@ "PLUMED: [1] The PLUMED consortium, Nat. Methods 16, 670 (2019)\n", "PLUMED: [2] Tribello, Bonomi, Branduardi, Camilloni, and Bussi, Comput. Phys. Commun. 185, 604 (2014)\n", "PLUMED: Please read and cite where appropriate!\n", - "PLUMED: Finished setup\n", + "PLUMED: Finished setup\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "+++ Loading the PLUMED kernel runtime +++\n", + "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107819 0.107819 0.107819 0.107819\n", - "PLUMED: 1 Prepare dependencies 1001 0.002138 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011584 0.000012 0.000011 0.000334\n", - "PLUMED: 3 Waiting for data 1001 0.003853 0.000004 0.000004 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012730 0.000013 0.000012 0.000061\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016732 0.000017 0.000016 0.000031\n", - "PLUMED: 6 Update 1001 0.010445 0.000010 0.000009 0.000100\n" + "PLUMED: 1 0.091703 0.091703 0.091703 0.091703\n", + "PLUMED: 1 Prepare dependencies 1001 0.002012 0.000002 0.000001 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.010086 0.000010 0.000009 0.000261\n", + "PLUMED: 3 Waiting for data 1001 0.003393 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011303 0.000011 0.000011 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014596 0.000015 0.000014 0.000030\n", + "PLUMED: 6 Update 1001 0.009471 0.000009 0.000008 0.000059\n" ] }, { @@ -11220,7 +11388,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 37, "id": "eeead280", "metadata": { "execution": { @@ -11251,7 +11419,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 38, "id": "a814f115", "metadata": { "execution": { @@ -11290,7 +11458,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 39, "id": "431f1900", "metadata": { "execution": { @@ -11312,7 +11480,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 40, "id": "f85db39c", "metadata": { "execution": { @@ -12340,6 +12508,7 @@ } ], "source": [ + "# this box takes a while to run\n", "with cd(\"3/6reps/\"):\n", " run_mpi(\"gmx_mpi trjcat -cat -f replica?/traj_comp.xtc -o traj.xtc\")\n", " for i in range(len(lambdas)):\n", @@ -12349,7 +12518,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "id": "e96eacf5", "metadata": { "execution": { @@ -12380,7 +12549,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 42, "id": "aaef318c", "metadata": { "execution": { @@ -12397,7 +12566,7 @@ "(6006, 6)" ] }, - "execution_count": 41, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -12408,7 +12577,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 43, "id": "e31e8c4e", "metadata": { "execution": { @@ -12444,7 +12613,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 44, "id": "0bf4b26c", "metadata": { "execution": { @@ -12489,7 +12658,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 45, "id": "8b16360f", "metadata": { "execution": { @@ -12522,7 +12691,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 46, "id": "9803df8a", "metadata": { "execution": { @@ -12539,7 +12708,7 @@ "(6006,)" ] }, - "execution_count": 45, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -12554,7 +12723,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 47, "id": "03b11150", "metadata": { "execution": { @@ -12583,7 +12752,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 48, "id": "ff6fed25", "metadata": { "execution": { @@ -12611,7 +12780,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 49, "id": "187e6448", "metadata": { "execution": { @@ -12650,7 +12819,6 @@ "id": "d1bc1b60", "metadata": {}, "source": [ - "Populations seem less noisy!\n", "\n", "Notice that we can also plot the weights that allow to compute averages at replicas different from the first one.\n", "\n", @@ -12659,7 +12827,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 50, "id": "6f4d220e", "metadata": { "execution": { @@ -12762,7 +12930,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 51, "id": "652f215e", "metadata": { "execution": { @@ -12804,7 +12972,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 52, "id": "112ed430", "metadata": { "execution": { @@ -12855,7 +13023,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 53, "id": "a2eab624", "metadata": { "execution": { @@ -12878,7 +13046,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 54, "id": "f322f46a", "metadata": { "execution": { @@ -12920,7 +13088,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 55, "id": "9ef5810e", "metadata": { "execution": { @@ -12980,7 +13148,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 56, "id": "baaa462d", "metadata": { "execution": { @@ -13010,7 +13178,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 57, "id": "c0ddf40c", "metadata": { "execution": { @@ -13048,7 +13216,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 58, "id": "a83ee8a3", "metadata": { "execution": { @@ -13087,7 +13255,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 59, "id": "6f36beec", "metadata": { "execution": { @@ -13234,7 +13402,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 60, "id": "8f71aed2", "metadata": { "execution": { @@ -13282,6 +13450,17 @@ "The setup is basically identical to the one in masterclass 21.5" ] }, + { + "cell_type": "code", + "execution_count": 61, + "id": "f88d65db", + "metadata": {}, + "outputs": [], + "source": [ + "# hardcoded here if I don't want to rerun previous boxes\n", + "optimal_lambdas=np.array([1.,0.7490915,0.54002926,0.37503371,0.24605241,0.15])" + ] + }, { "cell_type": "code", "execution_count": 60, @@ -13945,7 +14124,7 @@ } ], "source": [ - "\n", + "# this takes a while\n", "with cd(\"5/6reps\"):\n", " with open(\"plumed.dat\",\"w\") as f:\n", " print(\"\"\"\n", @@ -13984,7 +14163,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 62, "id": "13a312c9", "metadata": { "execution": { @@ -14012,7 +14191,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 63, "id": "635b1705", "metadata": { "execution": { @@ -14069,13 +14248,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107224 0.107224 0.107224 0.107224\n", - "PLUMED: 1 Prepare dependencies 1001 0.002281 0.000002 0.000002 0.000014\n", - "PLUMED: 2 Sharing data 1001 0.011772 0.000012 0.000010 0.000364\n", - "PLUMED: 3 Waiting for data 1001 0.003833 0.000004 0.000003 0.000026\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012677 0.000013 0.000012 0.000072\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016668 0.000017 0.000016 0.000031\n", - "PLUMED: 6 Update 1001 0.010380 0.000010 0.000009 0.000092\n" + "PLUMED: 1 0.092033 0.092033 0.092033 0.092033\n", + "PLUMED: 1 Prepare dependencies 1001 0.002104 0.000002 0.000002 0.000015\n", + "PLUMED: 2 Sharing data 1001 0.010230 0.000010 0.000009 0.000250\n", + "PLUMED: 3 Waiting for data 1001 0.003381 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011169 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014775 0.000015 0.000014 0.000035\n", + "PLUMED: 6 Update 1001 0.009514 0.000010 0.000009 0.000056\n" ] }, { @@ -14132,27 +14311,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.106643 0.106643 0.106643 0.106643\n", - "PLUMED: 1 Prepare dependencies 1001 0.002220 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011891 0.000012 0.000011 0.000328\n", - "PLUMED: 3 Waiting for data 1001 0.003812 0.000004 0.000003 0.000025\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012642 0.000013 0.000012 0.000057\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016691 0.000017 0.000016 0.000058\n", - "PLUMED: 6 Update 1001 0.010574 0.000011 0.000009 0.000082\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "+++ Loading the PLUMED kernel runtime +++\n", - "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "PLUMED: 1 0.092327 0.092327 0.092327 0.092327\n", + "PLUMED: 1 Prepare dependencies 1001 0.002092 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010137 0.000010 0.000009 0.000268\n", + "PLUMED: 3 Waiting for data 1001 0.003397 0.000003 0.000003 0.000021\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011290 0.000011 0.000010 0.000054\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014742 0.000015 0.000014 0.000030\n", + "PLUMED: 6 Update 1001 0.009562 0.000010 0.000008 0.000057\n", "PLUMED: PLUMED is starting\n", "PLUMED: Version: 2.8.0 (git: ddb59d16b) compiled on May 17 2022 at 19:07:56\n", "PLUMED: Please cite these papers when using PLUMED [1][2]\n", @@ -14193,15 +14358,29 @@ "PLUMED: [1] The PLUMED consortium, Nat. Methods 16, 670 (2019)\n", "PLUMED: [2] Tribello, Bonomi, Branduardi, Camilloni, and Bussi, Comput. Phys. Commun. 185, 604 (2014)\n", "PLUMED: Please read and cite where appropriate!\n", - "PLUMED: Finished setup\n", + "PLUMED: Finished setup\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "+++ Loading the PLUMED kernel runtime +++\n", + "+++ PLUMED_KERNEL=\"/net/sbp/sbpstore1/bussi/miniconda3/envs/plumed-masterclass-2022/lib/libplumedKernel.so\" +++\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.108198 0.108198 0.108198 0.108198\n", - "PLUMED: 1 Prepare dependencies 1001 0.002247 0.000002 0.000002 0.000011\n", - "PLUMED: 2 Sharing data 1001 0.011705 0.000012 0.000011 0.000338\n", - "PLUMED: 3 Waiting for data 1001 0.003761 0.000004 0.000003 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012625 0.000013 0.000012 0.000060\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016931 0.000017 0.000016 0.000032\n", - "PLUMED: 6 Update 1001 0.010498 0.000010 0.000010 0.000076\n" + "PLUMED: 1 0.091335 0.091335 0.091335 0.091335\n", + "PLUMED: 1 Prepare dependencies 1001 0.002040 0.000002 0.000002 0.000013\n", + "PLUMED: 2 Sharing data 1001 0.010122 0.000010 0.000009 0.000279\n", + "PLUMED: 3 Waiting for data 1001 0.003369 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011145 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014699 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009292 0.000009 0.000008 0.000056\n" ] }, { @@ -14258,13 +14437,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.110814 0.110814 0.110814 0.110814\n", - "PLUMED: 1 Prepare dependencies 1001 0.002385 0.000002 0.000002 0.000015\n", - "PLUMED: 2 Sharing data 1001 0.011971 0.000012 0.000011 0.000381\n", - "PLUMED: 3 Waiting for data 1001 0.003867 0.000004 0.000003 0.000028\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012822 0.000013 0.000012 0.000064\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017007 0.000017 0.000016 0.000027\n", - "PLUMED: 6 Update 1001 0.010589 0.000011 0.000010 0.000096\n" + "PLUMED: 1 0.091119 0.091119 0.091119 0.091119\n", + "PLUMED: 1 Prepare dependencies 1001 0.001986 0.000002 0.000002 0.000012\n", + "PLUMED: 2 Sharing data 1001 0.009956 0.000010 0.000009 0.000251\n", + "PLUMED: 3 Waiting for data 1001 0.003412 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011114 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014684 0.000015 0.000014 0.000030\n", + "PLUMED: 6 Update 1001 0.009175 0.000009 0.000008 0.000057\n" ] }, { @@ -14321,13 +14500,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107741 0.107741 0.107741 0.107741\n", - "PLUMED: 1 Prepare dependencies 1001 0.002212 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011981 0.000012 0.000011 0.000310\n", - "PLUMED: 3 Waiting for data 1001 0.003874 0.000004 0.000003 0.000023\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012658 0.000013 0.000012 0.000068\n", - "PLUMED: 5 Applying (backward loop) 1001 0.017082 0.000017 0.000016 0.000032\n", - "PLUMED: 6 Update 1001 0.010539 0.000011 0.000010 0.000073\n" + "PLUMED: 1 0.091733 0.091733 0.091733 0.091733\n", + "PLUMED: 1 Prepare dependencies 1001 0.002053 0.000002 0.000001 0.000014\n", + "PLUMED: 2 Sharing data 1001 0.010138 0.000010 0.000009 0.000272\n", + "PLUMED: 3 Waiting for data 1001 0.003430 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011154 0.000011 0.000010 0.000043\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014941 0.000015 0.000014 0.000026\n", + "PLUMED: 6 Update 1001 0.009502 0.000009 0.000009 0.000067\n" ] }, { @@ -14384,13 +14563,13 @@ "PLUMED: Please read and cite where appropriate!\n", "PLUMED: Finished setup\n", "PLUMED: Cycles Total Average Minimum Maximum\n", - "PLUMED: 1 0.107647 0.107647 0.107647 0.107647\n", - "PLUMED: 1 Prepare dependencies 1001 0.002221 0.000002 0.000002 0.000012\n", - "PLUMED: 2 Sharing data 1001 0.011672 0.000012 0.000011 0.000356\n", - "PLUMED: 3 Waiting for data 1001 0.003847 0.000004 0.000003 0.000027\n", - "PLUMED: 4 Calculating (forward loop) 1001 0.012533 0.000013 0.000012 0.000057\n", - "PLUMED: 5 Applying (backward loop) 1001 0.016881 0.000017 0.000016 0.000033\n", - "PLUMED: 6 Update 1001 0.010617 0.000011 0.000010 0.000071\n" + "PLUMED: 1 0.091905 0.091905 0.091905 0.091905\n", + "PLUMED: 1 Prepare dependencies 1001 0.002057 0.000002 0.000002 0.000010\n", + "PLUMED: 2 Sharing data 1001 0.010246 0.000010 0.000009 0.000267\n", + "PLUMED: 3 Waiting for data 1001 0.003370 0.000003 0.000003 0.000020\n", + "PLUMED: 4 Calculating (forward loop) 1001 0.011126 0.000011 0.000010 0.000042\n", + "PLUMED: 5 Applying (backward loop) 1001 0.014766 0.000015 0.000014 0.000032\n", + "PLUMED: 6 Update 1001 0.009375 0.000009 0.000008 0.000053\n" ] }, { @@ -14421,7 +14600,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 64, "id": "28177120", "metadata": { "execution": { @@ -14452,7 +14631,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 65, "id": "a2008fa9", "metadata": { "execution": { @@ -15468,6 +15647,7 @@ } ], "source": [ + "# this takes a while\n", "with cd(\"5/6reps/\"):\n", " run_mpi(\"gmx_mpi trjcat -cat -f replica?/traj_comp.xtc -o traj.xtc\")\n", " for i in range(len(optimal_lambdas)):\n", @@ -15918,6 +16098,7 @@ } ], "source": [ + "# this also takes a while\n", "with cd(\"5/6reps/\"):\n", " with open(\"plumed_ptmetad_process.dat\",\"w\") as f:\n", " print(\"\"\"\n", @@ -15953,7 +16134,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 66, "id": "7b83ad93", "metadata": { "execution": { @@ -15988,7 +16169,7 @@ "((6006, 6), (6006, 6))" ] }, - "execution_count": 67, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } @@ -16007,7 +16188,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 67, "id": "9ce7527b", "metadata": { "execution": { @@ -16019,6 +16200,7 @@ }, "outputs": [], "source": [ + "import wham\n", "kBT=0.00831446261815324*300\n", "w=wham.wham(energies+bias,T=kBT)\n", "# w[\"logW\"] are the Boltzmann factors\n", @@ -16034,7 +16216,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 68, "id": "d228e27d", "metadata": { "execution": { @@ -16061,7 +16243,7 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 69, "id": "51ba531b", "metadata": { "execution": { @@ -16081,7 +16263,6 @@ } ], "source": [ - "np.array(colvar[i].phi)\n", "print(\n", " np.sum(weights*np.logical_and(colvar_cat<2.0,colvar_cat>0))/\n", " np.sum(weights*np.logical_or(colvar_cat>2.0,colvar_cat<0))\n", @@ -16090,7 +16271,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 70, "id": "d60da8db", "metadata": { "execution": { @@ -16118,7 +16299,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 71, "id": "2c035ae0", "metadata": { "execution": { @@ -16146,66 +16327,80 @@ "plt.plot(Ts,pop_pt,label=\"pt\")\n", "plt.plot(Ts[0]/lambdas,pop_hrex,label=\"hrex\")\n", "plt.plot(Ts[0]/lambdas,pop_wham,label=\"wham\")\n", - "plt.plot(Ts[0]/optimal_lambdas,pop_metad,label=\"metad\")\n", + "plt.plot(Ts[0]/optimal_lambdas,pop_metad,label=\"metad+wham\")\n", "plt.show()\n" ] }, + { + "cell_type": "markdown", + "id": "6d0cd64f", + "metadata": {}, + "source": [ + "Weird, there is some difference. I now test the result using individual replicas" + ] + }, { "cell_type": "code", - "execution_count": 73, - "id": "eac05025", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-22T01:59:16.309183Z", - "iopub.status.busy": "2022-06-22T01:59:16.308862Z", - "iopub.status.idle": "2022-06-22T01:59:16.314394Z", - "shell.execute_reply": "2022-06-22T01:59:16.313529Z" - } - }, + "execution_count": 77, + "id": "a1f104db", + "metadata": {}, "outputs": [], "source": [ - "# using 1 replica:\n", - "colvar1=colvar_cat[:1001]\n", - "weights1=np.exp((bias[:1001,0]-np.max(bias[:1001,0]))/kBT)\n", - "weights1=np.exp(weights1)\n", - "weights1/=np.sum(weights1)" + "pop_metad_single=[]\n", + "for i in range(6):\n", + " colvar1=colvar_cat[1001*i:1001*(i+1)]\n", + " weights1=np.exp((bias[1001*i:1001*(i+1),i]-np.max(bias[1001*i:1001*(i+1),i]))/kBT)\n", + " weights1=np.exp(weights1)\n", + " weights1/=np.sum(weights1)\n", + " pop_metad_single.append(\n", + " np.sum(weights1*np.logical_and(colvar1<2.0,colvar1>0))/\n", + " np.sum(weights1*np.logical_or(colvar1>2.0,colvar1<0))\n", + " )" ] }, { "cell_type": "code", - "execution_count": 74, - "id": "52008079", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-22T01:59:16.319793Z", - "iopub.status.busy": "2022-06-22T01:59:16.319493Z", - "iopub.status.idle": "2022-06-22T01:59:16.327956Z", - "shell.execute_reply": "2022-06-22T01:59:16.327185Z" - } - }, + "execution_count": 78, + "id": "0d439830", + "metadata": {}, "outputs": [ { "data": { + "image/png": "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\n", "text/plain": [ - "0.040473957415800656" + "
" ] }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ - "(\n", - " np.sum(weights1*np.logical_and(colvar1<2.0,colvar1>0))/\n", - " np.sum(weights1*np.logical_or(colvar1>2.0,colvar1<0))\n", - ")" + "plt.plot(Ts,pop_pt,label=\"pt\")\n", + "plt.plot(Ts[0]/lambdas,pop_hrex,label=\"hrex\")\n", + "plt.plot(Ts[0]/lambdas,pop_wham,label=\"wham\")\n", + "plt.plot(Ts[0]/optimal_lambdas,pop_metad,label=\"metad+wham\")\n", + "plt.plot(Ts[0]/optimal_lambdas,pop_metad_single,label=\"metad\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "79db23c7", + "metadata": {}, + "source": [ + "Likely there is some convergence problem at small lambda!\n", + "\n", + "Compare with results from a longer simulation" ] }, { "cell_type": "code", "execution_count": null, - "id": "98940f7a", + "id": "af0e0ae2", "metadata": {}, "outputs": [], "source": []