{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Usage of Dataset class, the CO molecule as example\n", "\n", "In this tutorial, the basics of the `Dataset` class are briefly reviewed in a convergence study of the CO molecule, before presenting an example of application where the polarizability tensor $\\alpha$ is computed. It is advised to have done the [tutorial](./CH4.ipynb) on the methane molecule before in order to be familiar with the fundamentals of `Dataset` calculations. " ] }, { "cell_type": "code", "execution_count": 145, "metadata": { "scrolled": true }, "outputs": [], "source": [ "from BigDFT import Datasets as D\n", "from BigDFT import Calculators as C\n", "from BigDFT import Inputfiles as I\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Convergence of the ground state of the CO molecule" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this example, the convergence analysis of the Ground State (GS) energy of the CO molecule is performed with respect to the size of the simulation domain. \n", "\n", "First, we instantiate both the calculator and the Dataset objects." ] }, { "cell_type": "code", "execution_count": 146, "metadata": { "scrolled": true }, "outputs": [], "source": [ "calc = C.SystemCalculator(omp=2,mpi_run='mpirun -np 4',skip=True,verbose=False)\n", "study = D.Dataset(label='CO',run_dir='conv-CO',posinp='CO_posinp.xyz',molecule_shape='linear')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The object `study` is characterized by its label 'CO_GS' and contains the path `run_dir` in which all the calculations of the dataset will be performed. The variable `molecule_shape` has been introduced to show how further information can be passed to the dataset instances. For reminder, global options can be extracted as follows" ] }, { "cell_type": "code", "execution_count": 147, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'label': 'CO', 'run_dir': 'conv-CO', 'posinp': 'CO_posinp.xyz', 'molecule_shape': 'linear'}\n" ] } ], "source": [ "print(study.global_options())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, the input file is created while essential computational parameters are provided." ] }, { "cell_type": "code", "execution_count": 148, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# Define the default parameters of the input file\n", "inp = I.Inputfile()\n", "inp.set_hgrid(0.37)\n", "inp.set_scf_convergence(gnrm=1.0e-5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The convergence analysis will be performed on the values of rmult.\n", "\n", "We prepare the study for the convergence analysis by appending the run associated to the values of rmult. Each run is characterized by an `id` and contains the `InputFile` object as input as well as the runner used to perform the calculation. If the same `id` is provided more than once, the function gives a `Value Error`." ] }, { "cell_type": "code", "execution_count": 149, "metadata": { "scrolled": true }, "outputs": [], "source": [ "rmult = [5.0,6.0,7.0,8.0]\n", "\n", "for r in rmult:\n", " inp.set_rmult(coarse=r,fine=9.0)\n", " study.append_run(id={'rmult':r},runner=calc,input=inp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following member of the `Dataset` class shows how to refer to the various calculation of `study`." ] }, { "cell_type": "code", "execution_count": 150, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[{'calc': , 'runs': [0, 1, 2, 3]}]\n", "[{'rmult': 5.0}, {'rmult': 6.0}, {'rmult': 7.0}, {'rmult': 8.0}]\n" ] } ], "source": [ "print(study.calculators)\n", "print(study.ids)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A particular instance is accessed by" ] }, { "cell_type": "code", "execution_count": 151, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'rmult': 7.0}\n", "{'label': 'CO', 'run_dir': 'conv-CO', 'posinp': 'CO_posinp.xyz', 'molecule_shape': 'linear', 'input': {'dft': {'hgrids': 0.37, 'gnrm_cv': 1e-05, 'rmult': [7.0, 9.0]}, 'lin_general': {'rpnrm_cv': 'default'}, 'mix': {'rpnrm_cv': 'default'}}}\n" ] } ], "source": [ "print(study.ids[2])\n", "print(study.runs[2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`study.names` contains a list of strings with the ids of the run. May be useful for labelling." ] }, { "cell_type": "code", "execution_count": 152, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "['rmult__5.0', 'rmult__6.0', 'rmult__7.0', 'rmult__8.0']" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "study.names" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The appended simulation can be executed with the run method. The `skip=True` in the runner instance guarantees that computation already performed are not executed again." ] }, { "cell_type": "code", "execution_count": 153, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.240 MB\n", " Walltime since initialization: 00:00:00.002416237\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.172 MB\n", " Walltime since initialization: 00:00:00.002035260\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.984 MB\n", " Walltime since initialization: 00:00:00.002722207\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.168 MB\n", " Walltime since initialization: 00:00:00.001309965\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.948 MB\n", " Walltime since initialization: 00:00:00.001916676\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.044 MB\n", " Walltime since initialization: 00:00:00.003671661\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.996 MB\n", " Walltime since initialization: 00:00:00.003537731\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.852 MB\n", " Walltime since initialization: 00:00:00.002670475\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.964 MB\n", " Walltime since initialization: 00:00:00.003039964\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.920 MB\n", " Walltime since initialization: 00:00:00.002309739\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.944 MB\n", " Walltime since initialization: 00:00:00.002341033\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.036 MB\n", " Walltime since initialization: 00:00:00.001929867\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.040 MB\n", " Walltime since initialization: 00:00:00.002977071\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.096 MB\n", " Walltime since initialization: 00:00:00.003468013\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.164 MB\n", " Walltime since initialization: 00:00:00.002740734\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.064 MB\n", " Walltime since initialization: 00:00:00.002684471\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n" ] }, { "data": { "text/plain": [ "{0: ,\n", " 1: ,\n", " 2: ,\n", " 3: }" ] }, "execution_count": 153, "metadata": {}, "output_type": "execute_result" } ], "source": [ "study.run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analyzing the dataset output\n", "\n", "The class member `study.results` contains a dictionary with the logfiles of the computations performed by the run method, returned in the order of which the `append_run` was performed." ] }, { "cell_type": "code", "execution_count": 154, "metadata": { "scrolled": true }, "outputs": [], "source": [ "results = study.results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Several operation can be performed on the results by using the methods of the `Logfile` class. \n", "\n", "For example, the total energy w.r.t. the domain size is obtained as" ] }, { "cell_type": "code", "execution_count": 155, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5.0 -21.661153985020135 rmult__5.0\n", "6.0 -21.66134584205134 rmult__6.0\n", "7.0 -21.6613579335895 rmult__7.0\n", "8.0 -21.661359464443258 rmult__8.0\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for ci in study.calculators[0]['runs']:\n", " print(study.ids[ci]['rmult'],results[ci].energy,study.names[ci])\n", " plt.scatter(study.ids[ci]['rmult'],results[ci].energy,label=study.names[ci])\n", "plt.legend()\n", "plt.title('Energy',size=12)\n", "plt.ylim(-21.661,-21.662)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Other useful quantities can be extract using the methods of the `Logfile` class, for instance" ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-0.0002296574, -0.0002296574, 0.09288163]\n", "[-1.07897861 -0.5212773 -0.44461433 -0.44461428 -0.33423529]\n", "[5.0, 9.0]\n", "{'P vector': [-0.0002296574, -0.0002296574, 0.09288163], 'norm(P)': 0.0928822004}\n" ] } ], "source": [ "print(results[0].dipole)\n", "print(results[0].evals[0][0])\n", "print(results[0].log['dft']['rmult'])\n", "print(results[0].log['Electric Dipole Moment (AU)'])" ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dos = results[0].get_dos(label=study.names[0])\n", "dos.append_from_bandarray(results[2].evals,label=study.names[2])\n", "dos.plot(sigma=0.2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, results associated to specific id and/or attribute can be extracted as follows:" ] }, { "cell_type": "code", "execution_count": 158, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[,\n", " ,\n", " ,\n", " ]" ] }, "execution_count": 158, "metadata": {}, "output_type": "execute_result" } ], "source": [ "study.fetch_results()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If an attribute and/or an id is provided, `fetch_results` extracts only the wanted results, for instance" ] }, { "cell_type": "code", "execution_count": 159, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-21.661153985020135, -21.66134584205134, -21.6613579335895, -21.661359464443258]\n", "[-21.661359464443258]\n" ] } ], "source": [ "print(study.fetch_results(attribute='energy'))\n", "print(study.fetch_results({'rmult': 8.0},attribute='energy'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Post processing analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is also possible to define a post-processing function that is passed to the `Dataset` instance. This function\n", "is called after the run and the output of `study.run` and contains the output of the post-processing function.\n", "We show some examples." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1) Extraction of the ground state dipole" ] }, { "cell_type": "code", "execution_count": 160, "metadata": { "scrolled": true }, "outputs": [], "source": [ "def get_dipole(dataset):\n", " dipole = dataset.fetch_results(attribute='dipole')\n", " return dipole\n", "\n", "study.set_postprocessing_function(get_dipole)" ] }, { "cell_type": "code", "execution_count": 161, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.188 MB\n", " Walltime since initialization: 00:00:00.002320176\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.116 MB\n", " Walltime since initialization: 00:00:00.001857607\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.880 MB\n", " Walltime since initialization: 00:00:00.002457699\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.920 MB\n", " Walltime since initialization: 00:00:00.001436096\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.136 MB\n", " Walltime since initialization: 00:00:00.001975332\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.192 MB\n", " Walltime since initialization: 00:00:00.002590704\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.024 MB\n", " Walltime since initialization: 00:00:00.004530220\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.972 MB\n", " Walltime since initialization: 00:00:00.001923389\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.976 MB\n", " Walltime since initialization: 00:00:00.003120294\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.968 MB\n", " Walltime since initialization: 00:00:00.003271214\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.192 MB\n", " Walltime since initialization: 00:00:00.003475566\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.140 MB\n", " Walltime since initialization: 00:00:00.001982148\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.068 MB\n", " Walltime since initialization: 00:00:00.003002721\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.948 MB\n", " Walltime since initialization: 00:00:00.002069531\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.040 MB\n", " Walltime since initialization: 00:00:00.002824836\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.864 MB\n", " Walltime since initialization: 00:00:00.002868074\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n" ] } ], "source": [ "dipole_GS = study.run();" ] }, { "cell_type": "code", "execution_count": 162, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[[-0.0002296574, -0.0002296574, 0.09288163],\n", " [-3.391146e-05, -3.391146e-05, 0.09150228],\n", " [-2.716707e-06, -2.716707e-06, 0.09138863],\n", " [-1.027985e-05, -1.027985e-05, 0.09137423]]" ] }, "execution_count": 162, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dipole_GS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2) Extraction of the box size" ] }, { "cell_type": "code", "execution_count": 163, "metadata": { "scrolled": true }, "outputs": [], "source": [ "def get_size(dataset): # how to do def get_size(study,unit)\n", " sizes = []\n", " results = dataset.fetch_results()\n", " for calc,res in enumerate(results):\n", " sizes.append(res.log['Sizes of the simulation domain']['AU'])\n", " return sizes\n", "\n", "study.set_postprocessing_function(get_size)" ] }, { "cell_type": "code", "execution_count": 164, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.096 MB\n", " Walltime since initialization: 00:00:00.001892042\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.912 MB\n", " Walltime since initialization: 00:00:00.002937710\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.148 MB\n", " Walltime since initialization: 00:00:00.002323018\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__5.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.040 MB\n", " Walltime since initialization: 00:00:00.002103268\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Memory Consumption Report:\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Tot. No. of Deallocations: 0\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.132 MB\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Walltime since initialization: 00:00:00.001781993\n", " Max No. of dictionaries used: 1127 Peak Value (MB): 0.000\n", " #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.124 MB\n", " Walltime since initialization: 00:00:00.001959716\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.020 MB\n", " Walltime since initialization: 00:00:00.002936658\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__6.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.848 MB\n", " Walltime since initialization: 00:00:00.001439685\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.124 MB\n", " Walltime since initialization: 00:00:00.002528723\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.076 MB\n", " Walltime since initialization: 00:00:00.002172121\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.144 MB\n", " Run already performed, found final file: forces_rmult__7.0.xyz\n", " Walltime since initialization: 00:00:00.002709484\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.096 MB\n", " Walltime since initialization: 00:00:00.003000579\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.024 MB\n", " Walltime since initialization: 00:00:00.001800861\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.000 MB\n", " Walltime since initialization: 00:00:00.002194757\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.096 MB\n", " Walltime since initialization: 00:00:00.002099085\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_rmult__8.0.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.228 MB\n", " Walltime since initialization: 00:00:00.001375382\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n" ] } ], "source": [ "boxsize = study.run();" ] }, { "cell_type": "code", "execution_count": 165, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[[15.54, 15.54, 15.91],\n", " [18.87, 18.87, 18.87],\n", " [21.83, 21.83, 21.83],\n", " [25.16, 25.16, 25.16]]" ] }, "execution_count": 165, "metadata": {}, "output_type": "execute_result" } ], "source": [ "boxsize" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computation of the statical polarizability tensor $\\alpha$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We choose a single value of `rmult`, the lowest among the ones computed in the GS analysis for which a satisfactory convergence is obtained. \n", "The statical polarizability tensor of the CO molecule is then computed." ] }, { "cell_type": "code", "execution_count": 166, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "rmult value : 7.0\n" ] } ], "source": [ "ind = 2\n", "print('rmult value : ',study.ids[ind]['rmult'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The input file is defined for the statical polarizability computation" ] }, { "cell_type": "code", "execution_count": 167, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'dft': {'hgrids': 0.37, 'gnrm_cv': 1e-05, 'rmult': [7.0, 9.0]}, 'lin_general': {'rpnrm_cv': 'default'}, 'mix': {'rpnrm_cv': 'default'}}\n" ] } ], "source": [ "inp.set_rmult(coarse=study.ids[ind]['rmult'],fine = 9.0)\n", "print(inp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, let us define a dataset (called ef, i.e. electric field) for the computation of $\\alpha$ using an electric field intensity of $1e^{-2} V/m$, which is assumed compatible with the linear response regime. " ] }, { "cell_type": "code", "execution_count": 168, "metadata": { "scrolled": true }, "outputs": [], "source": [ "intensity = 1.e-2 \n", "ef = D.Dataset(label='alpha',run_dir='CO_alpha',posinp='CO_posinp.xyz',\n", " input=inp,d0=dipole_GS[ind],F=intensity)\n", "for idir,coord in enumerate(['x','y','z']):\n", " efi = np.zeros(3)\n", " efi[idir] = intensity\n", " inp.apply_electric_field(efi.tolist())\n", " ef.append_run({'id':coord,'F':intensity},runner=calc,input=inp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This yields the following elements in the dataset" ] }, { "cell_type": "code", "execution_count": 169, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[{'id': 'x', 'F': 0.01}, {'id': 'y', 'F': 0.01}, {'id': 'z', 'F': 0.01}]" ] }, "execution_count": 169, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ef.ids" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lastly, let us write a post-processing function on how to compute $\\alpha$" ] }, { "cell_type": "code", "execution_count": 170, "metadata": { "scrolled": true }, "outputs": [], "source": [ "def extract_alpha(ef):\n", " \"\"\"\n", " alpha_ij isthe i-th component of the vector d-d0, \n", " computed with a field in the j-th direction,\n", " divided for the intensity of the field.\n", " \"\"\"\n", " d0 = np.array(ef.get_global_option('d0'));\n", " F = ef.get_global_option('F');\n", " d = ef.fetch_results(attribute='dipole');\n", " alpha = np.mat(np.zeros(9)).reshape(3,3)\n", " for idir in range(3):\n", " alpha[idir] = (np.array(d[idir])-d0)/F\n", " return alpha\n", "\n", "ef.set_postprocessing_function(extract_alpha)" ] }, { "cell_type": "code", "execution_count": 171, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Run already performed, found final file: forces_F__0.01,id__x.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.044 MB\n", " Walltime since initialization: 00:00:00.001600831\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__x.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.176 MB\n", " Run already performed, found final file: forces_F__0.01,id__x.xyz\n", " Walltime since initialization: 00:00:00.001526451\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.196 MB\n", " Walltime since initialization: 00:00:00.002919425\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__x.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.212 MB\n", " Walltime since initialization: 00:00:00.001484765\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__y.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.040 MB\n", " Walltime since initialization: 00:00:00.001618805\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__y.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.980 MB\n", " Walltime since initialization: 00:00:00.002415710\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__y.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.192 MB\n", " Walltime since initialization: 00:00:00.003128113\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__y.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.980 MB\n", " Walltime since initialization: 00:00:00.001501875\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__z.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.208 MB\n", " Walltime since initialization: 00:00:00.002225970\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__z.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 12.784 MB\n", " Walltime since initialization: 00:00:00.001519930\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__z.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.152 MB\n", " Walltime since initialization: 00:00:00.002236353\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n", " Run already performed, found final file: forces_F__0.01,id__z.xyz\n", " Memory Consumption Report:\n", " Tot. No. of Allocations: 0\n", " Tot. No. of Deallocations: 0\n", " Remaining Memory (B): 0\n", " Memory occupation:\n", " Peak Value (MB): 0.000\n", " for the array: null\n", " in the routine: null\n", " Memory Peak of process: 13.208 MB\n", " Walltime since initialization: 00:00:00.002061216\n", " Max No. of dictionaries used: 1127 #( 1052 still in use)\n", " Number of dictionary folders allocated: 1\n" ] } ], "source": [ "alpha = ef.run();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The polarizability tensor is then" ] }, { "cell_type": "code", "execution_count": 172, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "matrix([[ 1.26637417e+01, -2.31315400e-04, 4.23620000e-02],\n", " [-2.31315400e-04, 1.26637417e+01, 4.23620000e-02],\n", " [ 4.21875400e-04, 4.21875400e-04, 1.60751070e+01]])" ] }, "execution_count": 172, "metadata": {}, "output_type": "execute_result" } ], "source": [ "alpha" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.12" } }, "nbformat": 4, "nbformat_minor": 2 }