diff --git a/Exercise sheet 9/data_l1.5_k0.08_w3_d1.5_20221124103953.hdf5 b/Exercise sheet 9/data_l1.5_k0.08_w3_d1.5_20221124103953.hdf5 new file mode 100644 index 0000000..b647eeb Binary files /dev/null and b/Exercise sheet 9/data_l1.5_k0.08_w3_d1.5_20221124103953.hdf5 differ diff --git a/Exercise sheet 9/exercise_sheet_09.ipynb b/Exercise sheet 9/exercise_sheet_09.ipynb index a52b4ef..e0fcbf8 100644 --- a/Exercise sheet 9/exercise_sheet_09.ipynb +++ b/Exercise sheet 9/exercise_sheet_09.ipynb @@ -233,29 +233,106 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "e506d9a5", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "filename: ./data_l1.5_k0.08_w3_d1.5_20221124112842.hdf5\n", + "current_time :\t\t\t 1669285905.690512\n", + "delta :\t\t\t 1.5\n", + "equil_sweeps :\t\t\t 100\n", + "kappa :\t\t\t 0.08\n", + "lamb :\t\t\t 1.5\n", + "measure_sweeps :\t\t\t 2\n", + "measurements :\t\t\t 0\n", + "num_sites :\t\t\t 81\n", + "start time :\t\t\t 1669285819.6413248\n", + "width :\t\t\t 3\n", + "[ 0.06375525 0.11291112 0.17949721 ... 0.04632559 0.00727746\n", + " -0.00997054]\n" + ] + }, + { + "data": { + "text/plain": [ + "(array([ 29., 212., 821., 2077., 2958., 3007., 2033., 890., 235.,\n", + " 28.]),\n", + " array([-0.48756734, -0.389454 , -0.29134068, -0.19322737, -0.09511404,\n", + " 0.00299929, 0.10111262, 0.19922595, 0.29733926, 0.3954526 ,\n", + " 0.49356592], dtype=float32),\n", + " )" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "import h5py\n", "import numpy as np\n", "from matplotlib import pyplot as plt\n", "\n", "# Load data\n", - "output_filename = \"preliminary_simulation.h5\"\n", - "with h5py.File(output_filename,'r') as f:\n", - " handler = f[\"mean-magn\"]\n", - " mean_magn = np.array(handler)\n", - " kappas = handler.attrs[\"kappas\"]\n", + "import glob\n", + "import os\n", "\n", - "# Plotterdeplotterdeplot\n", - "plt.figure()\n", - "plt.errorbar(kappas,[m[0] for m in mean_magn],yerr=[m[1] for m in mean_magn],fmt='-o')\n", - "plt.xlabel(r\"$\\kappa$\")\n", - "plt.ylabel(r\"$|m|$\")\n", - "plt.title(r\"Absolute field average on $3^4$ lattice, $\\lambda = 1.5$\")\n", - "plt.show()" + "list_of_files = glob.glob('./data*.hdf5') # * means all if need specific format then *.csv\n", + "latest_file = max(list_of_files, key=os.path.getctime)\n", + "print('filename:', latest_file)\n", + "\n", + "#output_filename = \"data_l1.5_k0.08_w3_d1.5_20221124103953.hdf5\"\n", + "#output_filename = latest_file\n", + "output_filename = \"testding.hdf5\"\n", + "with h5py.File(output_filename,'r') as f:\n", + " #print(np.array(f[\"magnetizations\"]))\n", + " handler = f[\"magnetizations\"]\n", + " for key in handler.attrs.keys():\n", + " print(key, ':\\t\\t\\t', handler.attrs[key])\n", + " magnetizations = np.array(handler)\n", + " print(magnetizations)\n", + " kappa = handler.attrs[\"kappa\"]\n", + "\n", + "from matplotlib import pyplot as plt\n", + "plt.hist(magnetizations)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "89d85e77", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.06375525, 0.11291112, 0.17949721, ..., 0.04632559,\n", + " 0.00727746, -0.00997054], dtype=float32)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "magnetizations" ] }, { diff --git a/Exercise sheet 9/latticescalar.py b/Exercise sheet 9/latticescalar.py index 8eb8156..405c705 100644 --- a/Exercise sheet 9/latticescalar.py +++ b/Exercise sheet 9/latticescalar.py @@ -100,8 +100,8 @@ def main(): # Prepare file with h5py.File(output_filename,'a') as f: - if not "mean-magn" in f: - dataset = f.create_dataset("magnetizations", (0,), maxshape=(None,), chunks=True) + if not "magnetizations" in f: + dataset = f.create_dataset("magnetizations", (0,), maxshape=(None,), dtype='f', chunks=True, compression="gzip") # store some information as metadata for the data set dataset.attrs["lamb"] = lamb dataset.attrs["kappa"] = kappa @@ -112,7 +112,9 @@ def main(): dataset.attrs["measure_sweeps"] = measure_sweeps dataset.attrs["measurements"] = measurements dataset.attrs["start time"] = starttime - + else: + # continue taking measurements (e.g. when previous run was interrupted) + measurements_done = len(f["magnetizations"]) # Measure # TODO: Does mean_magn need to be a list? @@ -126,10 +128,10 @@ def main(): with h5py.File(output_filename,'a') as f: # enlarge the data set dataset = f["magnetizations"] - dataset.resize(measurements, axis=0) + dataset.resize(len(dataset) + len(magnetizations), axis=0) # copy the data to the new space at the end of the dataset dataset[-len(magnetizations):] = magnetizations - dataset.attrs["current_time"] = time.asctime() + dataset.attrs["current_time"] = time.time() magnetizations.clear() if measurements_done == measurements: break diff --git a/Exercise sheet 9/testding.hdf5 b/Exercise sheet 9/testding.hdf5 new file mode 100644 index 0000000..3bc61ff Binary files /dev/null and b/Exercise sheet 9/testding.hdf5 differ