From 3c2825f3d5e30c72c4bd9a904b2c9f272625f745 Mon Sep 17 00:00:00 2001 From: kmlefran Date: Mon, 19 Aug 2024 11:44:13 -0400 Subject: [PATCH] Edit documentation --- docs/source/developer_guide/index.rst | 7 +- docs/source/installation/index.md | 4 +- .../auto/aiida_aimall/workchains/index.rst | 20 +- docs/source/tutorials/aimqbcalculation.ipynb | 184 ++++++++---------- .../tutorials/aimqbgroupcalculation.ipynb | 10 +- docs/source/tutorials/aimqbparameters.ipynb | 82 ++++---- docs/source/tutorials/aimtogaussian.ipynb | 114 +++++------ docs/source/tutorials/controllers.ipynb | 35 +++- docs/source/tutorials/index.md | 29 +-- docs/source/tutorials/makewfx.ipynb | 4 +- docs/source/tutorials/quantumsoftware.ipynb | 19 +- .../tutorials/substituentparameter.ipynb | 19 +- 12 files changed, 249 insertions(+), 278 deletions(-) diff --git a/docs/source/developer_guide/index.rst b/docs/source/developer_guide/index.rst index 0da996e..b5537de 100644 --- a/docs/source/developer_guide/index.rst +++ b/docs/source/developer_guide/index.rst @@ -8,7 +8,7 @@ Running the tests The following will discover and run all unit test:: pip install --upgrade pip - pip install -e .[testing] + pip install -e ".[testing]" pytest -v You can also run the tests in a virtual environment with `tox `_:: @@ -21,7 +21,7 @@ Automatic coding style checks Enable enable automatic checks of code sanity and coding style:: - pip install -e .[pre-commit] + pip install -e ".[pre-commit]" pre-commit install After this, the `black `_ formatter, @@ -45,7 +45,6 @@ Continuous integration ``aiida-aimall`` comes with a ``.github`` folder that contains continuous integration tests on every commit using `GitHub Actions `_. It will: #. run all tests -#. build the documentation #. check coding style and version number (not required to pass by default) Building the documentation @@ -53,7 +52,7 @@ Building the documentation #. Install the ``docs`` extra:: - pip install -e .[docs] + pip install -e ".[docs]" #. Edit the individual documentation pages:: diff --git a/docs/source/installation/index.md b/docs/source/installation/index.md index 6e1c049..d45610e 100644 --- a/docs/source/installation/index.md +++ b/docs/source/installation/index.md @@ -150,13 +150,13 @@ Using the commands above, you will set up a code that uses the first `aimqb` bin You can find out the absolute path to this binary using the `which` command: ```console -which aimall +which aimqb ``` If this is not the AIMQB version you want to run, pass the correct absolute path as the filepath executable. ::: -`aiida-aimall` also provides workflows to automatically interface with electronic structure programs. Many workflows, by default, interface with [Gaussian Software](https://gaussian.com). To use Gaussian software in these workflows, +`aiida-aimall` also provides workflows to automatically interface with electronic structure programs. Many workflows, by default, interface with [Gaussian Software](https://gaussian.com). To use Gaussian software in these workflows, an AiiDA code instance must also be setup for Gaussian Software, following similar steps to the above setup of AIMAll software. ::::{tab-set} diff --git a/docs/source/reference/api/auto/aiida_aimall/workchains/index.rst b/docs/source/reference/api/auto/aiida_aimall/workchains/index.rst index f903e37..b5e80a1 100644 --- a/docs/source/reference/api/auto/aiida_aimall/workchains/index.rst +++ b/docs/source/reference/api/auto/aiida_aimall/workchains/index.rst @@ -65,16 +65,11 @@ Attributes .. autoapisummary:: - aiida_aimall.workchains.old_stdout aiida_aimall.workchains.GaussianCalculation aiida_aimall.workchains.AimqbParameters aiida_aimall.workchains.AimqbCalculation -.. py:data:: old_stdout - - - .. py:data:: GaussianCalculation @@ -359,7 +354,8 @@ Attributes Bases: :py:obj:`aiida.engine.WorkChain` - A workchain to generate and validate inputs. One of SinglefileData, Smiles as Str or StructureData should be provided + A workchain to generate and validate inputs. One of SinglefileData, Smiles as Str or StructureData should be + provided .. py:method:: define(spec) :classmethod: @@ -372,12 +368,18 @@ Attributes .. py:method:: is_xyz_input() + Validates if xyz_file was provided as input + .. py:method:: is_smiles_input() + Validates if smiles was provided as input + .. py:method:: is_structure_input() + Validates if structure was provided as input + .. py:method:: validate_input() @@ -386,9 +388,13 @@ Attributes .. py:method:: create_structure_from_xyz() + Convert the xyzfile to StructureData + .. py:method:: structure_in_context() + Store the input structure in context, to make consistent with the results of xyz_file or SMILES input + .. py:method:: get_molecule_inputs_step() @@ -464,6 +470,8 @@ Attributes .. py:method:: get_substituent_inputs_step() + Get a dictionary of the substituent input for a given SMILES + .. py:method:: g16_opt() diff --git a/docs/source/tutorials/aimqbcalculation.ipynb b/docs/source/tutorials/aimqbcalculation.ipynb index 5c67273..7ba2a59 100644 --- a/docs/source/tutorials/aimqbcalculation.ipynb +++ b/docs/source/tutorials/aimqbcalculation.ipynb @@ -11,15 +11,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The simplest use of `aiida-aimall` is in running `AIMQB` calculation jobs. This class can be found in `aiida-aimall.calculations`. Input for these calculations is simple and straightforward. Inputs that are required are\n", - " - parameters (`AimqbParameters`)\n", - " - file (`SinglefileData`)\n", - " - code (`Code`)\n", + "## Inputs\n", + "The simplest use of `aiida-aimall` is in running `AIMQB` calculation jobs through [AimqbCalculations](../reference/api/auto/aiida_aimall/calculations/index.rst#aiida_aimall.calculations.AimqbCalculation). This class can be found in `aiida_aimall.calculations`. Input for these calculations is simple and straightforward. Inputs that are required are\n", + "\n", + " - parameters ([AimqbParameters](../reference/api/auto/aiida_aimall/data/index.rst#aiida_aimall.data.AimqbParameters), see [the AimqbParameters tutorial](aimqbparameters.ipynb))\n", + " - file (`SinglefileData`), a .wfn, .wfx, or .fchk file\n", + " - code (`Code`, [see setup instructions](../installation/index.md#code) )\n", " - metadata.resources (`dict`)\n", "\n", - "There are two other inputs (`group_atoms` and `attached_atom_int`) that are required for using the `AimqbGroupParser` to compute group properties, but are not in use here in the default. Those will be explained in another tutorial.\n", + "### Optional Input\n", + "\n", + "There are two other inputs (`group_atoms` and `attached_atom_int`) that are required for using the [AimqbGroupParser](../reference/api/auto/aiida_aimall/parsers/index.rst#aiida_aimall.parsers.AimqbGroupParser) to compute group properties, but are not in use here in the default. Those will be explained in another tutorial.\n", "\n", - "The `AimqbParameters` input can be generated following instructions in other tutorials. The `SinglefileData` input can either be created from an absolute path to the file, or by providing the file as a string.\n", + "## Setting up and running an AIMQB calculation\n", + "\n", + "The `AimqbParameters` input can be generated following instructions [in another tutorial](aimqbparameters.ipynb). The `SinglefileData` input can either be created from an absolute path to the file, or by providing the file as a string.\n", "\n", " ```python\n", "from aiida.orm import SinglefileData\n", @@ -27,13 +33,13 @@ "\n", "input_file = SinglefileData('/absolute/path/to/file')\n", "\n", - "input_file = SinglefileData('io.BytesIO(wfx_file_string.encode())')\n", + "input_file = SinglefileData(io.BytesIO(wfx_file_string.encode()))\n", "```" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -63,6 +69,13 @@ "node = submit(builder)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Output Structure" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -72,7 +85,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -81,13 +94,13 @@ "\n", "\n", - "\n", "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", "\n", "\n", "N4\n", @@ -95,19 +108,18 @@ "InstalledCode (4)\n", "aimall@localhost\n", "\n", - "\n", + "\n", "\n", - "N114129\n", - "\n", - "AimqbCalculation (114129)\n", - "State: finished\n", - "Exit Code: 0\n", + "N116981\n", + "\n", + "AimqbCalculation (116981)\n", + "State: waiting\n", "\n", - "\n", - "\n", - "N4->N114129\n", - "\n", - "\n", + "\n", + "\n", + "N4->N116981\n", + "\n", + "\n", "INPUT_CALC\n", "code\n", "\n", @@ -118,108 +130,80 @@ "SinglefileData (46050)\n", "file.txt\n", "\n", - "\n", + "\n", "\n", - "N46050->N114129\n", - "\n", - "\n", + "N46050->N116981\n", + "\n", + "\n", "INPUT_CALC\n", "file\n", "\n", - "\n", + "\n", "\n", - "N114126\n", + "N116978\n", "\n", - "AimqbParameters (114126)\n", + "AimqbParameters (116978)\n", "\n", - "\n", + "\n", "\n", - "N114126->N114129\n", + "N116978->N116981\n", "\n", "\n", "INPUT_CALC\n", "parameters\n", "\n", - "\n", + "\n", "\n", - "N114127\n", + "N116979\n", "\n", - "Int (114127)\n", + "Int (116979)\n", "value: 1\n", "\n", - "\n", - "\n", - "N114127->N114129\n", - "\n", - "\n", + "\n", + "\n", + "N116979->N116981\n", + "\n", + "\n", "INPUT_CALC\n", "attached_atom_int\n", "\n", - "\n", + "\n", "\n", - "N114128\n", + "N116980\n", "\n", - "List (114128)\n", + "List (116980)\n", "\n", - "\n", - "\n", - "N114128->N114129\n", - "\n", - "\n", + "\n", + "\n", + "N116980->N116981\n", + "\n", + "\n", "INPUT_CALC\n", "group_atoms\n", "\n", - "\n", + "\n", "\n", - "N114130\n", - "\n", - "RemoteData (114130)\n", - "@localhost\n", + "N116982\n", + "\n", + "RemoteData (116982)\n", + "@localhost\n", "\n", - "\n", + "\n", "\n", - "N114129->N114130\n", - "\n", - "\n", - "CREATE\n", - "remote_folder\n", - "\n", - "\n", - "\n", - "N114133\n", - "\n", - "FolderData (114133)\n", - "\n", - "\n", - "\n", - "N114129->N114133\n", - "\n", - "\n", - "CREATE\n", - "retrieved\n", - "\n", - "\n", - "\n", - "N114134\n", - "\n", - "Dict (114134)\n", - "\n", - "\n", - "\n", - "N114129->N114134\n", - "\n", - "\n", - "CREATE\n", - "output_parameters\n", + "N116981->N116982\n", + "\n", + "\n", + "CREATE\n", + "remote_folder\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 11, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -238,12 +222,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The retrieved node is of type `FolderData`, by default only containing the output .sum file from the AIMQB calculation. The other main output node of interest is the `output_parameters` node. This node is a `Dict` object, with keys for the Localisation-Delocalization matrix of Matta (ldm), atomic properties for all atoms in the molecule (atomic_properties), all bond critical point properties (bcp_properties), and, if `atlaprhocps` was true in `aim_input`, a dictionary containing all valence shell charge concentrations (cc_properties). atomic_properties and cc_properties have keys corresponding to the labels of all atoms in the molecule. bcp_properties keys are all pairs of bonded atoms of format A1-B2 for atoms A1 and B2, for example." + "The retrieved node is of type `FolderData`, by default only containing the output .sum file from the `AIMQB` calculation. The other main output node of interest is the `output_parameters` node. This node is a `Dict` object, with keys for the Localisation-Delocalization (ldm) matrix of Matta, atomic properties for all atoms in the molecule (`atomic_properties`), all bond critical point properties (`bcp_properties`), and, if `atlaprhocps` was true in `aim_input`, a dictionary containing all valence shell charge concentrations (`cc_properties`). `atomic_properties` and `cc_properties` have keys corresponding to the labels of all atoms in the molecule. `bcp_properties` keys are all pairs of bonded atoms of format A1-B2 for a bond between atoms A1 and B2, for example." ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -259,7 +243,9 @@ "BCP Property Keys\n", "dict_keys(['C1-H2', 'C3-C1', 'C3-O9', 'C4-C3', 'C5-C4', 'C6-C5', 'C6-C7', 'C7-C8', 'C8-O9', 'C8-H17', 'C8-H18', 'H10-C1', 'H11-C4', 'H12-C4', 'H13-C5', 'H14-C6', 'H15-C7', 'H16-C7'])\n", "CC Property Keys\n", - "dict_keys(['C1', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'H2', 'O9', 'H10', 'H11', 'H12', 'H13', 'H14', 'H15', 'H16', 'H17', 'H18'])\n" + "dict_keys(['C1', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'H2', 'O9', 'H10', 'H11', 'H12', 'H13', 'H14', 'H15', 'H16', 'H17', 'H18'])\n", + "Numerical labels of some charge concentrations\n", + "dict_keys(['4', '5'])\n" ] } ], @@ -278,7 +264,9 @@ "print('BCP Property Keys')\n", "print(output_dict['bcp_properties'].keys())\n", "print('CC Property Keys')\n", - "print(output_dict['cc_properties'].keys())\n" + "print(output_dict['cc_properties'].keys())\n", + "print('Numerical labels of some charge concentrations')\n", + "print(output_dict['cc_properties']['O9'].keys())" ] }, { @@ -290,7 +278,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -302,7 +290,7 @@ "BCP Property Keys\n", "dict_keys(['G', 'H', 'V', 'rho', 'xyz', 'lambda1', 'lambda2', 'lambda3', 'DelSqRho', 'Ellipticity'])\n", "CC Property Keys\n", - "dict_keys(['4', '5'])\n" + "dict_keys(['rho', 'xyz', 'delsqrho', 'distFromNuc'])\n" ] } ], @@ -312,7 +300,7 @@ "print('BCP Property Keys')\n", "print(output_dict['bcp_properties']['C1-H2'].keys())\n", "print('CC Property Keys')\n", - "print(output_dict['cc_properties']['O9'].keys())" + "print(output_dict['cc_properties']['O9']['4'].keys())" ] } ], diff --git a/docs/source/tutorials/aimqbgroupcalculation.ipynb b/docs/source/tutorials/aimqbgroupcalculation.ipynb index 808081c..f747d0f 100644 --- a/docs/source/tutorials/aimqbgroupcalculation.ipynb +++ b/docs/source/tutorials/aimqbgroupcalculation.ipynb @@ -27,7 +27,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Further, delocalization indeces between the substituent and the substrate to which is attached are also calculated by summing pairwise delocalization indeces between atoms in the group and those not.\n", + "Further, delocalization indices between the substituent and the substrate to which is attached are also calculated by summing pairwise delocalization indeces between atoms in the group (R) and those in the substrate (G).\n", "\n", "$$ DI(R,G) = \\sum_{\\Omega\\in R}\\sum_{\\Lambda\\in G} DI(\\Omega,\\Lambda)$$" ] @@ -36,7 +36,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The group properties are designed to be calculated in a molecule treated in only two parts - the substituent, R and the substrate, G. All atoms are either assigned to either the substrate or substituent, and the substituent should be connected amongst itself. Inputs for the atoms can be provided to `AimqbCalculation` to enable use of the `AimqbGroupParser`. These are provided as `group_atoms`, a List of atom integer numeric labels corresponding to the atom order in the input file. Further, the atom of the substituent attached to the substrate should be given as `attached_atom_int`. An example is shown here for the methyl substituent attached to a generic substrate G." + "The group properties are designed to be calculated in a molecule treated in only two parts - the substituent, R and the substrate, G. All atoms are either assigned to either the substrate or substituent, and the substituent should be connected amongst itself. Inputs for the atoms can be provided to [AimqbCalculation](../reference/api/auto/aiida_aimall/calculations/index.rst#aiida_aimall.calculations.AimqbCalculation) to enable use of the [AimqbGroupParser](../reference/api/auto/aiida_aimall/parsers/index.rst#aiida_aimall.parsers.AimqbGroupParser). These are provided as `group_atoms`, a `List` of atom integer numeric labels corresponding to the atom order in the input file. Further, the atom of the substituent attached to the substrate should be given as `attached_atom_int`. An example is shown here for the methyl substituent attached to a generic substrate G." ] }, { @@ -52,7 +52,7 @@ "source": [ "Default parameters are provided. By the authors' convention, 1 is the default for the atom in the substituent that is attached to the substrate. Further, the default substrate is assumed to be a single atom, with numeric label 2. Therefore, the default value of `group_atoms` is every atom in the molecule whose label is not 2. If the `group_atoms` and `attached_atom_int` are not provided, these values are used. \n", "\n", - "With the definitions in place, computing group properties with `AimqbGroupCalculation` is simple, providing this additional input, and specifying the `AimqbGroupParser`." + "With the definitions in place, computing group properties with `AimqbCalculation` is simple, providing an additional input to metadata, specifying the entry point for `AimqbGroupParser`." ] }, { @@ -105,7 +105,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The provenance graph will have the same structure as that for using the `AimqbBaseParser`. The difference is in the keys of output_parameters." + "The provenance graph will have the same structure as that for using the default `AimqbBaseParser`. The difference is in the keys of output_parameters." ] }, { @@ -294,7 +294,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Here, we see we have the usual output from before - cc_properties, bcp_properties, atomic_properties. These are identical to the AimqbBaseParser. The group parser additionall provides the graph_descriptor and group_descriptor keys. The graph descriptor focuses on properties of the atom that is attached to the substrate - it collects the atomic properties for that atom, and the CC and BCP properties for all charge concentrations and BCPs associated with it. In this way, the substituent is described by these properties." + "Here, we see we have the usual output from before - `cc_properties`, `bcp_properties`, `atomic_properties`. These are identical to the `AimqbBaseParser`. The group parser additionall provides the graph_descriptor and group_descriptor keys. The graph descriptor focuses on properties of the atom that is attached to the substrate - it collects the atomic properties for that atom, and the CC and BCP properties for all charge concentrations and BCPs associated with it. In this way, the substituent is described by these properties." ] }, { diff --git a/docs/source/tutorials/aimqbparameters.ipynb b/docs/source/tutorials/aimqbparameters.ipynb index 20fe319..2799903 100644 --- a/docs/source/tutorials/aimqbparameters.ipynb +++ b/docs/source/tutorials/aimqbparameters.ipynb @@ -4,53 +4,52 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Creating AimqbParameters data types" + "# Creating Instances of the AimqbParameters Data Type" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "`aiida-aimall` provides a data class to validate the inputs to `AIMQB`. This is provided throught the `AimqbParameters` from `aiida-aimall.data`. `AimqbParameters` takes a dictionary as input and validates that the keys are valid AIMQB command line input, and that their associated values of the correct datatype. Further, for use in `aiida-aimall` calculations and workflows, the `nogui` option is automatically added.\n", + "`aiida-aimall` provides a data class to validate the inputs provided to `AIMQB`. This is provided through the [AimqbParameters](../reference/api/auto/aiida_aimall/data/index.rst#aiida_aimall.data.AimqbParameters) from `aiida_aimall.data`. `AimqbParameters` takes a dictionary as input and validates that the keys are valid AIMQB command line input, and that their associated values are of the correct datatype. These parameters are then used in [AimqbCalculations](../reference/api/auto/aiida_aimall/calculations/index.rst#aiida_aimall.calculations.AimqbCalculation) Further, for use in `aiida-aimall` calculations and workflows, the `nogui` option is automatically added for all instances of `AimqbParameters`. Therefore, the `nogui` option should not be passed as `AimqbParameters` input.\n", "\n", "## Supported Options\n", "\n", - "The list of supported command line options match the documentation on [AIMAll's website](https://aim.tkgristmill.com/manual/aimqb/aimqb.html). For meaning of each option, please refer to the AIMQB manual. The list of supported options is given here. Currently, only the datatype is verified; checks are not in place to ensure that strings are in a set of accepted values, for instance.\n", + "The list of supported command line options from [AIMAll's website](https://aim.tkgristmill.com/manual/aimqb/aimqb.html) is given in the below table. Currently, only the datatype is verified; checks are not in place to ensure that strings are in a set of accepted values. For instance, `iasmesh` should be one of sparse/medium/fine/veryfine/superfine, but `AimqbParameters` only validates that a string was provided. If an incorrect option were provided, the `AimqbCalculation` that these parameters were provided to would fail.\n", "\n", - "| Command Line | Data Type |\n", - "| ----------- | ----------- |\n", - "| bim | str |\n", - "| iasmesh | str |\n", - "| capture | str |\n", - "| boaq | str|\n", - "| ehren | int|\n", - "| feynman | bool | \n", - "| iasprops | bool |\n", - "| magprops | bool |\n", - "|source | bool |\n", - "| iaswrite |bool |\n", - "| atidsprop | str|\n", - "| encomp | int | \n", - "|warn | bool |\n", - "| scp | str|\n", - "|delmog | bool |\n", - "| skipint | bool |\n", - "| f2w | str | \n", - "| f2wonly | bool |\n", - "|atoms | str|\n", - "|mir | float|\n", - "|cpconn | str |\n", - "|intveeaa| str |\n", - "|atlaprhocps | bool |\n", - "|wsp | bool |\n", - "| nproc | int |\n", - "| naat | int |\n", - "|shm_lmax | int|\n", - "|maxmem | int |\n", - "|verifyw | str|\n", - "|saw| bool| \n", - "|autonnacps | bool|\n", - "\n" + "| Command Line | Data Type | Description | Valid Options | Default |\n", + "| ----------- | ----------- | ----------- | ----------- |----------- |\n", + "| bim | str | Basin integration method | auto/proaim/promega/promega1/promega5 | auto |\n", + "| iasmesh | str | Target spacing between adjacent IAS paths | sparse/medium/fine/veryfine/superfine | fine |\n", + "| capture | str | Gradient path capture method | auto/basic/extended | auto |\n", + "| boaq | str| Basin outer angular quadrature | auto/auto_gs2/auto_gs4/gs1/gs2/gs3/gs4/gs5/gs6 /gs7/gs8/gs9/gs10/gs15/gs20/gs25 /gs30/gs35/gs40/gs45/gs50/gs55/gs60 /leb23/leb25/leb27/leb29/leb31/leb32 | auto |\n", + "| ehren | int| Whether and how to calculate atomic Ehrenfest forces | 0/1/2 | 0 |\n", + "| feynman | bool | Print Feynman force data to file | False/True | False |\n", + "| iasprops | bool | Calculate IAS Properties | False/True | False |\n", + "| magprops | str | Method for calculating magnetic response properties | none/igaim/csgtb/giao | none |\n", + "|source | bool | Print atomic source contributions to electron density at critical points | False/True | False |\n", + "| iaswrite |bool | Write IAS data to .iasviz files | False/True | False | \n", + "| atidsprop | str| Controls calculation of isodensity surface properties | no/0.001/all | 0.001 |\n", + "| encomp | int | Atomic energy components to calculate | 0/1/2/3/4 | 1 |\n", + "|warn | bool | Show warning message boxes when appropriate | False/True | True |\n", + "| scp | str| Show calculation progress in log window | false/true/some | some |\n", + "|delmog | bool | Delete the .mog files | False/True | True | \n", + "| skipint | bool | Skip atomic integrations | False/True | False |\n", + "| f2w | str | Filetype to create from .fchk | wfx/wfn | wfx |\n", + "| f2wonly | bool | Only create wfx from .fchk, not run calculation | False/True | False | \n", + "|atoms | str| Which atoms to determine critical point connectivity and properties | all/i,j,k... (i,j,k... atoms to calculate), all_i,j,k | all |\n", + "|mir | float| Maximum atomic integration radius | auto/10.0/12.0/13.5/etc. | auto\n", + "|cpconn | str | Intensity of search for connectivity between CPs | moderate/complex/simple/basic | moderate |\n", + "|intveeaa| str | Algorithm for Vee(A,A) calculatiosn | old/new | new |\n", + "|atlaprhocps | bool | Find Laplacian of Electron Density Critical Points | False/True | False |\n", + "|wsp | bool | Wrote a molecular graph and other special GradRho paths to .mgpviz | False/True | True |\n", + "| nproc | int | Number of processors to use | 1/2/etc. | 1|\n", + "| naat | int | Number of atoms to calculate at a time | 1/2/etc. | 1 | \n", + "|shm_lmax | int| Controls printing of Spherical Harmonic Moments | -1/0/1/2/etc. | 5 |\n", + "|maxmem | int | Memory to use | 800/1200/1800/2400/etc. | 800 for 32 bit, 2400 for 64 bit |\n", + "|verifyw | str| Whether to verify wavefunction or ONLY verify wavefunction | yes/no/only | yes | \n", + "|saw| bool| *No description in documentation* |False/True | False |\n", + "|autonnacps | bool| Automatically incorporate NNACPs | False/True | True |" ] }, { @@ -81,7 +80,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "You can view the command line parameters that an `AimqbCalculation` will synthesize from the generated data using the `cmdline_params` method, passing an example input file name." + "You can view the command line parameters that an `AimqbCalculation` will synthesize from the generated data using the `cmdline_params` method, passing an example input file name. Note how `-nogui` is included despite not being provided to `AimqbParameters`." ] }, { @@ -135,7 +134,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Passing an incorrect datatype for any given key will result in an error." + "Passing an incorrect datatype for any given key will result in an error, as seen below when a string 'two' is passed to `naat`." ] }, { @@ -163,11 +162,6 @@ "source": [ "aim_input = AimqbParameters(parameter_dict={'naat': 'two','nproc':4})" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] } ], "metadata": { diff --git a/docs/source/tutorials/aimtogaussian.ipynb b/docs/source/tutorials/aimtogaussian.ipynb index 266345b..9a31fe6 100644 --- a/docs/source/tutorials/aimtogaussian.ipynb +++ b/docs/source/tutorials/aimtogaussian.ipynb @@ -11,9 +11,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Though not explicitly directly integrated with AIMAll software, `aiida-aimall` provides a workchain to take a SMILES string of a substituent as input, and generate and run a Gaussian calculation. This is provided in part due to workflows used by the authors in automating creation of data for large numbers of substituents automatically. The `SmilesToGaussianWorkchain` provides this functionality. It uses the RDKit package to convert the SMILES input to a molecular geometry, and then provides that to the Gaussian calculation.\n", + "Though not explicitly directly integrated with AIMAll software, `aiida-aimall` provides a workchain to take a [SMILES](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) string of a substituent as input, and generate and run a Gaussian calculation. This is provided in part due to workflows used by the authors in automating creation of data for large numbers of substituents automatically. The [SmilesToGaussianWorkchain](../reference/api/auto/aiida_aimall/workchains/index.rst#aiida_aimall.workchains.SmilesToGaussianWorkchain). SmilesToGaussianWorkchain provides this functionality. It uses the RDKit package to convert the SMILES input to a molecular geometry through an MMFF94 optimization, and then provides that to the Gaussian calculation.\n", "\n", - "The SMILES provides should have exactly one asterisk indicating the point of attachment of the substituent to the substrate. **In the generated geometry, this \\* will be replaced with a hydrogen.** For example a valid input SMILES is \"\\*C\" for a methyl group, but a methylene group with SMILES \"\\*C\\*\" or methane with SMILES \"C\" are invalid SMILES for input in this `WorkChain`. If such inputs are passed, an exception will be raised." + "The SMILES provides should have exactly one asterisk indicating the point of attachment of the substituent to the substrate. **In the generated geometry, this \\* will be replaced with a hydrogen.** For example a valid input SMILES is \"\\*C\" for a methyl group, but a methylene group with SMILES \"\\*C\\*\" or methane with SMILES \"C\" are invalid SMILES for input in this `WorkChain`. If such inputs are passed, an exception will be raised. SMILES without placeholder atoms can be provided to [GaussianToAIMWorkChain](../reference/api/auto/aiida_aimall/workchains/index.rst#aiida_aimall.workchains.GaussianToAIMWorkChain)." ] }, { @@ -25,31 +25,11 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 2, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida/storage/psql_dos/backend.py:271: SAWarning: Object of type not in session, add operation along 'DbUser.dbnodes' will not proceed\n", - " with session.begin_nested() as savepoint:\n", - "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida/storage/psql_dos/orm/querybuilder/main.py:182: SAWarning: Object of type not in session, add operation along 'DbUser.dbnodes' will not proceed (This warning originated from the Session 'autoflush' process, which was invoked automatically in response to a user-initiated operation.)\n", - " result = build.query.count()\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ + "%%capture\n", "from aiida import load_profile\n", "from aiida.plugins import WorkflowFactory\n", "from aiida.orm import Str, load_code, Dict\n", @@ -89,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -98,7 +78,7 @@ "\n", "\n", - "\n", "\n", "Exit Code: 0\n", "\n", "\n", - "\n", + "\n", "N114289->N114290\n", "\n", "\n", @@ -138,7 +118,7 @@ "Exit Code: 0\n", "\n", "\n", - "\n", + "\n", "N114289->N114292\n", "\n", "\n", @@ -154,7 +134,7 @@ "Exit Code: 0\n", "\n", "\n", - "\n", + "\n", "N114289->N114294\n", "\n", "\n", @@ -170,7 +150,7 @@ "Exit Code: 0\n", "\n", "\n", - "\n", + "\n", "N114289->N114296\n", "\n", "\n", @@ -186,7 +166,7 @@ "Exit Code: 0\n", "\n", "\n", - "\n", + "\n", "N114289->N114298\n", "\n", "\n", @@ -200,7 +180,7 @@ "Dict (114301)\n", "\n", "\n", - "\n", + "\n", "N114289->N114301\n", "\n", "\n", @@ -216,7 +196,7 @@ "Exit Code: 0\n", "\n", "\n", - "\n", + "\n", "N114289->N114304\n", "\n", "\n", @@ -231,7 +211,7 @@ "file.txt\n", "\n", "\n", - "\n", + "\n", "N114289->N114305\n", "\n", "\n", @@ -246,7 +226,7 @@ "gaussian@localhost\n", "\n", "\n", - "\n", + "\n", "N3->N114289\n", "\n", "\n", @@ -254,7 +234,7 @@ "gaussian_code\n", "\n", "\n", - "\n", + "\n", "N3->N114298\n", "\n", "\n", @@ -269,7 +249,7 @@ "*C\n", "\n", "\n", - "\n", + "\n", "N114283->N114289\n", "\n", "\n", @@ -277,7 +257,7 @@ "smiles\n", "\n", "\n", - "\n", + "\n", "N114283->N114290\n", "\n", "\n", @@ -291,7 +271,7 @@ "Dict (114284)\n", "\n", "\n", - "\n", + "\n", "N114284->N114289\n", "\n", "\n", @@ -299,7 +279,7 @@ "gaussian_parameters\n", "\n", "\n", - "\n", + "\n", "N114284->N114292\n", "\n", "\n", @@ -307,7 +287,7 @@ "parameters\n", "\n", "\n", - "\n", + "\n", "N114284->N114296\n", "\n", "\n", @@ -322,7 +302,7 @@ "value: 4\n", "\n", "\n", - "\n", + "\n", "N114285->N114289\n", "\n", "\n", @@ -337,7 +317,7 @@ "value: 6400\n", "\n", "\n", - "\n", + "\n", "N114286->N114289\n", "\n", "\n", @@ -352,7 +332,7 @@ "value: 604800\n", "\n", "\n", - "\n", + "\n", "N114287->N114289\n", "\n", "\n", @@ -367,7 +347,7 @@ "False\n", "\n", "\n", - "\n", + "\n", "N114288->N114289\n", "\n", "\n", @@ -381,7 +361,7 @@ "Dict (114291)\n", "\n", "\n", - "\n", + "\n", "N114290->N114291\n", "\n", "\n", @@ -389,7 +369,7 @@ "result\n", "\n", "\n", - "\n", + "\n", "N114291->N114292\n", "\n", "\n", @@ -397,7 +377,7 @@ "smiles_dict\n", "\n", "\n", - "\n", + "\n", "N114291->N114294\n", "\n", "\n", @@ -411,7 +391,7 @@ "Dict (114293)\n", "\n", "\n", - "\n", + "\n", "N114292->N114293\n", "\n", "\n", @@ -419,7 +399,7 @@ "result\n", "\n", "\n", - "\n", + "\n", "N114293->N114298\n", "\n", "\n", @@ -434,7 +414,7 @@ "CH4\n", "\n", "\n", - "\n", + "\n", "N114294->N114295\n", "\n", "\n", @@ -442,7 +422,7 @@ "result\n", "\n", "\n", - "\n", + "\n", "N114295->N114298\n", "\n", "\n", @@ -457,7 +437,7 @@ "output.wfx\n", "\n", "\n", - "\n", + "\n", "N114296->N114297\n", "\n", "\n", @@ -465,7 +445,7 @@ "result\n", "\n", "\n", - "\n", + "\n", "N114297->N114304\n", "\n", "\n", @@ -480,7 +460,7 @@ "@localhost\n", "\n", "\n", - "\n", + "\n", "N114298->N114299\n", "\n", "\n", @@ -494,7 +474,7 @@ "FolderData (114300)\n", "\n", "\n", - "\n", + "\n", "N114298->N114300\n", "\n", "\n", @@ -502,7 +482,7 @@ "retrieved\n", "\n", "\n", - "\n", + "\n", "N114298->N114301\n", "\n", "\n", @@ -517,7 +497,7 @@ "value: -40.5200736323\n", "\n", "\n", - "\n", + "\n", "N114298->N114302\n", "\n", "\n", @@ -532,7 +512,7 @@ "CH4\n", "\n", "\n", - "\n", + "\n", "N114298->N114303\n", "\n", "\n", @@ -540,7 +520,7 @@ "output_structure\n", "\n", "\n", - "\n", + "\n", "N114300->N114304\n", "\n", "\n", @@ -548,7 +528,7 @@ "retrieved_folder\n", "\n", "\n", - "\n", + "\n", "N114304->N114305\n", "\n", "\n", @@ -559,16 +539,15 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 15, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "from aiida.orm import load_node\n", "from aiida.tools.visualization import Graph\n", "\n", "# workchain_node = load_node(114229)\n", @@ -604,11 +583,6 @@ "\n", "`SmilesToGaussianWorkchain` attempts to find a wavefunction file name from the provided Gaussian input. It does so by looking in the \"input_parameters\" section of the input dictionary for entries with \"wfx\" in the name. If for some reason this is not working, you can also pass `wfxname` as an input to explicitly find the wfx file name." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] } ], "metadata": { diff --git a/docs/source/tutorials/controllers.ipynb b/docs/source/tutorials/controllers.ipynb index 3373825..6656b38 100644 --- a/docs/source/tutorials/controllers.ipynb +++ b/docs/source/tutorials/controllers.ipynb @@ -19,9 +19,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida_submission_controller/base.py:28: AiidaDeprecationWarning: `objects` property is deprecated, use `collection` instead. (this will be removed in v3)\n", + " self._group, _ = orm.Group.objects.get_or_create(self.group_label)\n", + "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida_submission_controller/from_group.py:26: AiidaDeprecationWarning: `objects` property is deprecated, use `collection` instead. (this will be removed in v3)\n", + " self._parent_group = orm.Group.objects.get(\n", + "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida_submission_controller/base.py:28: AiidaDeprecationWarning: `objects` property is deprecated, use `collection` instead. (this will be removed in v3)\n", + " self._group, _ = orm.Group.objects.get_or_create(self.group_label)\n", + "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida_submission_controller/from_group.py:26: AiidaDeprecationWarning: `objects` property is deprecated, use `collection` instead. (this will be removed in v3)\n", + " self._parent_group = orm.Group.objects.get(\n", + "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida_submission_controller/base.py:28: AiidaDeprecationWarning: `objects` property is deprecated, use `collection` instead. (this will be removed in v3)\n", + " self._group, _ = orm.Group.objects.get_or_create(self.group_label)\n", + "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida_submission_controller/from_group.py:26: AiidaDeprecationWarning: `objects` property is deprecated, use `collection` instead. (this will be removed in v3)\n", + " self._parent_group = orm.Group.objects.get(\n", + "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida_submission_controller/base.py:28: AiidaDeprecationWarning: `objects` property is deprecated, use `collection` instead. (this will be removed in v3)\n", + " self._group, _ = orm.Group.objects.get_or_create(self.group_label)\n", + "/Users/chemlab/anaconda3/envs/aiida/lib/python3.12/site-packages/aiida_submission_controller/from_group.py:26: AiidaDeprecationWarning: `objects` property is deprecated, use `collection` instead. (this will be removed in v3)\n", + " self._parent_group = orm.Group.objects.get(\n" + ] + } + ], "source": [ "from aiida import orm\n", "from aiida.orm import Dict, load_group\n", @@ -161,7 +184,15 @@ "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.12.3" } }, diff --git a/docs/source/tutorials/index.md b/docs/source/tutorials/index.md index 1c76f6f..1e2dbf8 100644 --- a/docs/source/tutorials/index.md +++ b/docs/source/tutorials/index.md @@ -2,7 +2,7 @@ # Tutorials -`aiida-aimall` provides numerous `CalcFunctions`, `WorkChain`s, `FromGroupSubmissionController`s. Explore the documents below to learn how to use the numerous features provided. +`aiida-aimall` provides numerous `CalcFunction`, `WorkChain`, and `FromGroupSubmissionController`. Explore the documents below to learn how to use the numerous features provided. ```{toctree} :hidden: true @@ -25,8 +25,6 @@ makewfx.ipynb :text-align: center :shadow: md -Instructions to create the `AimqbParameters` datatype used throughout `aiida-aimall` - +++ ```{button-ref} aimqbparameters @@ -43,8 +41,6 @@ Instructions to create the `AimqbParameters` datatype used throughout `aiida-aim :text-align: center :shadow: md -Instructions to setup, launch, and analyze the results of the `AimqbCalculation` `CalcJob` class. - +++ ```{button-ref} aimqbcalculation @@ -63,12 +59,10 @@ Instructions to setup, launch, and analyze the results of the `AimqbCalculation` ::::{grid} 2 :gutter: 3 -:::{grid-item-card} {fa}`info-circle;mr-1` `Group Properties` +:::{grid-item-card} {fa}`info-circle;mr-1` Substituent/Functional Group Properties :text-align: center :shadow: md -Using `aiida-aimall` to compute group properties. - +++ ```{button-ref} aimqbgroupcalculation @@ -80,12 +74,10 @@ Using `aiida-aimall` to compute group properties. ``` ::: -:::{grid-item-card} {fa}`info-circle;mr-1` Workflow +:::{grid-item-card} {fa}`info-circle;mr-1` Setting up Gaussian calculations with SMILES :text-align: center :shadow: md -Workflow to generate a Gaussian calculation from a Substituent SMILES - +++ ```{button-ref} aimtogaussian @@ -101,12 +93,10 @@ Workflow to generate a Gaussian calculation from a Substituent SMILES ::::{grid} 2 :gutter: 3 -:::{grid-item-card} {fa}`info-circle;mr-1` `One step Workflow` +:::{grid-item-card} {fa}`info-circle;mr-1` One step Workflow :text-align: center :shadow: md -Using `aiida-aimall` to compute group properties. - +++ ```{button-ref} quantumsoftware @@ -118,12 +108,10 @@ Using `aiida-aimall` to compute group properties. ``` ::: -:::{grid-item-card} {fa}`info-circle;mr-1` `Multi Step Workflow` +:::{grid-item-card} {fa}`info-circle;mr-1` Multi Step Workflow :text-align: center :shadow: md -Workflow to start at a Gaussian calculation, optimize a molecule, run AIM, reorient, run Gaussian single point, run AIM, and get resulting substituent properties. - +++ ```{button-ref} substituentparameter @@ -140,12 +128,10 @@ Workflow to start at a Gaussian calculation, optimize a molecule, run AIM, reori ::::{grid} 2 :gutter: 3 -:::{grid-item-card} {fa}`info-circle;mr-1` `Breaking the process into controllers` +:::{grid-item-card} {fa}`info-circle;mr-1` Breaking the process into controllers :text-align: center :shadow: md -Use controllers to compute substituent properties for a large set of substituents. - +++ ```{button-ref} controllers @@ -157,11 +143,10 @@ Use controllers to compute substituent properties for a large set of substituent ``` ::: -:::{grid-item-card} {fa}`info-circle;mr-1` `Generating WFX from other calculations` +:::{grid-item-card} {fa}`info-circle;mr-1` Generating WFX from other Output Files :text-align: center :shadow: md -Workflow to generate .wfx files from MOLDEN, .fchk, or CP2K atom log files +++ diff --git a/docs/source/tutorials/makewfx.ipynb b/docs/source/tutorials/makewfx.ipynb index 3fbd3bd..a26f0bf 100644 --- a/docs/source/tutorials/makewfx.ipynb +++ b/docs/source/tutorials/makewfx.ipynb @@ -11,7 +11,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Many different versions of computational software for electronic structure calculations are in use. Should you wish to run AIM calculations, but may not have wfx files as the output of this software, `aiida-aimall` provides functionality to generate wfx files from some output and automatically run AIM calculations on the outputs. To do this, we use the `qc-iodata` package of Paul Ayer's Horton software\n", + "Many different versions of computational software for electronic structure calculations are in use. Should you wish to run AIM calculations, but may not have wfx files as the output of this software, `aiida-aimall` provides functionality to generate wfx files from some output and automatically run AIM calculations on the outputs in the [GenerateWFXToAIMWorkchain](../reference/api/auto/aiida_aimall/workchains/index.rst#aiida_aimall.workchains.GenerateWFXToAIMWorkchain). To do this, we use the `qc-iodata` package of Paul Ayer's Horton software\n", "\n", "Supported output file formats are:\n", " * Molden\n", @@ -440,7 +440,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Here we can view the provenance for the `AimqbCalculation` generated after creating the wfx file with `iodata-convert` through `aiida_shell`. Note that in this instance the `ShellJob` has an exit code 410 due to some stderr being printed. The error displayed is just a notice regarding `iodata-convert` fixing the incorrect Molden format that was generated by Orca." + "Here we can view the provenance for the [AimqbCalculations](../reference/api/auto/aiida_aimall/calculations/index.rst#aiida_aimall.calculations.AimqbCalculation) generated after creating the wfx file with `iodata-convert` through `aiida_shell`. Note that in this instance the `ShellJob` has an exit code 410 due to some stderr being printed. The error displayed is just a notice regarding `iodata-convert` fixing the incorrect Molden format that was generated by Orca." ] } ], diff --git a/docs/source/tutorials/quantumsoftware.ipynb b/docs/source/tutorials/quantumsoftware.ipynb index a31b4e3..a52ee2b 100644 --- a/docs/source/tutorials/quantumsoftware.ipynb +++ b/docs/source/tutorials/quantumsoftware.ipynb @@ -11,7 +11,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The primary electronic structure software that `aiida-aimall` is integrated with is Gaussian software. Here, a base functionality is provided to run an AIMQB calculation on the .wfx file resulting from a Gaussian calcuation. The `GaussianToAIMWorkChain` accepts any **one** of the following as inputs:\n", + "The primary electronic structure software that `aiida-aimall` is integrated with is Gaussian software. Here, a base functionality is provided to run an AIMQB calculation on the .wfx file resulting from a Gaussian calcuation. The [GaussianToAIMWorkChain](../reference/api/auto/aiida_aimall/workchains/index.rst#aiida_aimall.workchains.GaussianToAIMWorkChain) accepts any **one** of the following as inputs:\n", " - `smiles`, the SMILES of the molecule provided as type `orm.Str`\n", " - `structure`, an `orm.StructureData` of the molecule\n", " - `xyz_file`, a `orm.SinglefileData` of a .xyz file\n", @@ -524,7 +524,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Here, the main output of the workchain is specified as the output parameters of the `AimqbCalculation`. The structure of this has been discussed in other tutorials. The provenance graph is displayed to see. Gaussian output can be queried for." + "Here, the main output of the workchain is specified as the output parameters of the [AimqbCalculations](../reference/api/auto/aiida_aimall/calculations/index.rst#aiida_aimall.calculations.AimqbCalculation). The structure of this has been discussed in other tutorials. The provenance graph is displayed to see. Gaussian output can be queried for." ] }, { @@ -553,7 +553,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Options are provided for integrating other electronic structure software through the use of `aiida-shell`, as provided in the `QMToAIMWorkchain`. An example is given here for ORCA software. For this, you can provide a setup `ShellCode` instance for the code being run, or a `Str` of the command used to run the software. The authors note that by default settings on some compute clusters, AiiDA commands may be restricted. In the author's case, providing \"orca\" to the input results in an error due to the script used in Multifactor Authentication, due to attempts to use the `which orca` command. In light of this, depending on your compute resources, the authors suggest setting up a `ShellCode` instance\n", + "Options are provided for integrating other electronic structure software through the use of `aiida-shell`, as provided in the [QMToAIMWorkchain](../reference/api/auto/aiida_aimall/workchains/index.rst#aiida_aimall.workchains.QMToAIMWorkchain). An example is given here for ORCA software. For this, you can provide a setup `ShellCode` instance for the code being run, or a `Str` of the command used to run the software. \n", + "\n", + "### Author's Note on `shell_code` input options\n", + "\n", + "The authors note that by default settings on some compute clusters, AiiDA commands may be restricted. In the author's case, providing \"orca\" to the input results in an error due to the script used in Multifactor Authentication, due to attempts to use the `which orca` command. In light of this, depending on your compute resources, the authors suggest setting up a `ShellCode` instance.\n", "\n", "```python\n", "from aiida_shell import ShellCode\n", @@ -624,7 +628,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Here, the orca output files requested are directly stored on the provenance graph. No parser is provided, though the ability to define parsers is available in `aiida-shell`. For the purposes of `aiida-aimall` you can specify which files you want, get them and manually parse the content. [Documentation on using custom parsers can be found here.](https://aiida-shell.readthedocs.io/en/latest/howto.html#custom-output-parsing) The authors recommend creating a fork of `aiida-aimall`, adding the parser function you wish to use to the `workchains.py` file, and providing `parser=your_parser_function_name` to `launch_shell_job` in the `QMToAIMWorkchain` if you wish to use a custom parser." + "Here, the relevant ORCA output files requested are directly stored on the provenance graph. No parser is provided, though the ability to define parsers is available in `aiida-shell`. For the purposes of `aiida-aimall` you can specify which files you want, get them and manually parse the content. [Documentation on using custom parsers can be found here.](https://aiida-shell.readthedocs.io/en/latest/howto.html#custom-output-parsing) The authors recommend creating a fork of `aiida-aimall`, adding the parser function you wish to use to the `workchains.py` file, and providing `parser=your_parser_function_name` to `launch_shell_job` in the `QMToAIMWorkchain` if you wish to use a custom parser." ] }, { @@ -1093,13 +1097,6 @@ ")\n", "graph.graphviz" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/docs/source/tutorials/substituentparameter.ipynb b/docs/source/tutorials/substituentparameter.ipynb index a1351f1..b35bd87 100644 --- a/docs/source/tutorials/substituentparameter.ipynb +++ b/docs/source/tutorials/substituentparameter.ipynb @@ -11,18 +11,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The substituent parameter protocol developed by the authors is able to be fully automated in `aiida-aimall` through use of the `SubstituentParameterWorkchain`. This workchain undertakes the following steps\n", + "The substituent parameter protocol developed by the authors is able to be fully automated in `aiida-aimall` through use of the [SubstituentParameterWorkchain](../reference/api/auto/aiida_aimall/workchains/index.rst#aiida_aimall.workchains.SubstituentParameterWorkChain). This workchain undertakes the following steps\n", + "\n", "1. Gaussian optimization of the input structure\n", "2. performs AIM on the output wfx file\n", "3. Uses that AIM calculation to reorient the molecule\n", "4. Runs a Gaussian singlepoint on the resulting structure\n", - "5. Runs AIM on the resulting file using the `AimqbGroupParser`, with the group being set to all atoms except for atom 2 (typically a substrate hydrogen)\n", + "5. Runs AIM on the resulting file using the [AimqbGroupParser](../reference/api/auto/aiida_aimall/parsers/index.rst#aiida_aimall.parsers.AimqbGroupParser), with the group being set to all atoms except for atom 2 (typically a substrate hydrogen)\n", "\n", "Inputs are similar to other parts of the package that have already been used. You should provide as inputs to the builder:\n", + "\n", "1. structure (`orm.StructureData`)\n", - "2. g16_code - setup code for Gaussian Software\n", - "3. aim_code - setup code for AIMQB software\n", - "4. aim_params (`aiida_aimall.data.AimqbParameters`)\n", + "2. g16_code - setup code for `Gaussian` Software\n", + "3. aim_code - setup code for `AIMQB` software\n", + "4. aim_params ([AimqbParameters](../reference/api/auto/aiida_aimall/data/index.rst#aiida_aimall.data.AimqbParameters))\n", "5. g16_opt_params (`orm.Dict`) - parameters for the Gaussian optimization calculation\n", "6. g16_sp_params (`orm.Dict`) - parameters for the Gaussian singlepoint calculation. **Note that the route parameters should include \"nosymmetry\":None in the dictionary as a key/value pair\n", "7. wfx_filename (`orm.Str`) - if the wfx filename in the Gaussian parameters inputs is different than \"output.wfx\", provide the actual wfx filename here." @@ -998,13 +1000,6 @@ ")\n", "graph.graphviz" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {