Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edit documentation #6

Merged
merged 1 commit into from
Aug 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions docs/source/developer_guide/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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 <https://tox.wiki/en/latest/>`_::
Expand All @@ -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 <https://black.readthedocs.io>`_ formatter,
Expand All @@ -45,15 +45,14 @@ Continuous integration
``aiida-aimall`` comes with a ``.github`` folder that contains continuous integration tests on every commit using `GitHub Actions <https://github.com/features/actions>`_. It will:

#. run all tests
#. build the documentation
#. check coding style and version number (not required to pass by default)

Building the documentation
++++++++++++++++++++++++++

#. Install the ``docs`` extra::

pip install -e .[docs]
pip install -e ".[docs]"

#. Edit the individual documentation pages::

Expand Down
4 changes: 2 additions & 2 deletions docs/source/installation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
20 changes: 14 additions & 6 deletions docs/source/reference/api/auto/aiida_aimall/workchains/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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


Expand Down Expand Up @@ -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:
Expand All @@ -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()

Expand All @@ -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()

Expand Down Expand Up @@ -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()

Expand Down
184 changes: 86 additions & 98 deletions docs/source/tutorials/aimqbcalculation.ipynb

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions docs/source/tutorials/aimqbgroupcalculation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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)$$"
]
Expand All @@ -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."
]
},
{
Expand All @@ -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`."
]
},
{
Expand Down Expand Up @@ -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."
]
},
{
Expand Down Expand Up @@ -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."
]
},
{
Expand Down
82 changes: 38 additions & 44 deletions docs/source/tutorials/aimqbparameters.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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 |"
]
},
{
Expand Down Expand Up @@ -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`."
]
},
{
Expand Down Expand Up @@ -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`."
]
},
{
Expand Down Expand Up @@ -163,11 +162,6 @@
"source": [
"aim_input = AimqbParameters(parameter_dict={'naat': 'two','nproc':4})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
}
],
"metadata": {
Expand Down
Loading
Loading