Skip to content

Commit

Permalink
doc: Update docs (#1841)
Browse files Browse the repository at this point in the history
Co-authored-by: Tristan Youngs <[email protected]>
  • Loading branch information
rhinoella and trisyoungs authored Apr 15, 2024
1 parent 9bc2da2 commit db3f594
Show file tree
Hide file tree
Showing 57 changed files with 428 additions and 319 deletions.
246 changes: 111 additions & 135 deletions web/assets/scss/_content.scss

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion web/docs.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ latexDashes = true

[[menu.main]]
name = "User Guide"
url = "https://docs.projectdissolve.com/"
url = "https://docs.projectdissolve.com/userguide/"
weight = 3

[[menu.main]]
Expand Down
6 changes: 3 additions & 3 deletions web/docs/examples/argon/step1.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ type: docs
We need a suitable species to represent the argon atom in our simulation.

{{< action type="menu" text="Species &#8680; Create &#8680; Atomic..." />}}
{{< step text="Select argon (Ar) from the periodic table" />}}
{{< action type="mouse" text="Select argon (Ar) from the periodic table" />}}

You will now see that a new tab called 'Ar' has appeared containing the new species, showing a single argon atom located at (0,0,0). If you go to the **Forcefield** section you can view the details of the species contents (which is not a lot!). Our argon atom currently has no atom type assigned to it (the "AtomType" column in the table is empty), but we will remedy this in the next step. All atoms **must** be assigned an atom type before the simulation can proceed.
You will now see that a new tab called {{<gui-tab type="species" text="Ar">}} has appeared containing the new species. In the {{<gui-tab type="species" text="Atoms">}} section on the left you can see the single argon atom located at (0,0,0). and underneath that the summary of intramolecular terms holding your species together which, for a single atom, isn't a lot! Our argon atom currently has no atom type assigned to it (the "AtomType" (AT) column in the table is empty), but we will remedy this in the next step. All atoms **must** be assigned an atom type before the simulation can proceed.

{{< tip text="An atom type contains descriptive interaction parameters for a particular type of atom, and optionally an associated atomic charge. They describe the core interatomic interactions in your system, and define the pair potentials between atoms." />}}

Note also the presence of the **Isotopologues** section which allows us to define isotopes for specific atom types, and which we'll return to later.
Note also the presence of the {{<gui-tab text="Isotopologues" type="threeSpecies">}} section which allows us to define isotopes for specific atom types, and which we'll return to later.

{{< tip text="Isotopologue definitions depend on atom types, so all atom types should be defined before setting up isotopologues." />}}

Expand Down
30 changes: 24 additions & 6 deletions web/docs/examples/argon/step2.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,31 @@ title: Step 2 - Set up a Forcefield
type: docs
---

To simulate any system we need to supply suitable parameters to describe the interactions between atoms, both internally within the same species and externally between atoms of the same (and different) species. The {{< gui-tab type="ff" >}} tab is always available, and summarises the atom types used over all defined species and the resulting pair potentials, as well as master intramolecular definitions (which we aren't using in this example). You can also set other important options, such as the range of the generated pair potentials and the truncation schemes.
To simulate any system we need to supply suitable parameters to describe the interactions between atoms, both internally within the same species and externally between atoms of the same (and different) species. The {{<gui-tab type="ff" text="Forcefield">}} tab is always available, and summarises the atom types used over all defined species and the resulting pair potentials, as well as master intramolecular definitions (which we aren't using in this example). You can also set other important options, such as the range of the generated pair potentials and the truncation schemes.

We'll now describe the interactions for your argon species by taking the terms from one of Dissolve's [built-in forcefields]({{< ref "ff" >}}).

{{< action type="tabs" >}}Go to the {{< gui-tab type="species" text="Ar" >}} species tab{{< /action >}}

{{< step text="By selecting the tab containing the Argon species you are making it 'active', and so it will be the target of any actions triggered from the _Species_ menu." />}}
{{< tip text="By selecting the tab containing the Argon species you are making it 'active', and so it will be the target of any actions triggered from the _Species_ menu." />}}

{{< action type="menu" text="Species &#8680; Add Forcefield Terms..." />}}

{{< step >}}From the available forcefields choose `OPLSAA2005/NobleGases` and click {{< gui-button text="Next" icon="arrowright" >}}{{< /step >}}
{{< action type="mouse" >}}
From the available forcefields choose `OPLSAA2005/NobleGases` and click {{< gui-button text="Next" icon="arrowright" >}}{{< /action >}}

{{< step >}}Here we choose how to assign atom types to the species - the default option of _Determine atom types for all atoms_ uses connectivity descriptions in the forcefield to try and automatically choose which type to use. Leave this option selected and click {{< gui-button text="Next" icon="arrowright" >}}{{< /step >}}
{{< step >}}
Here we choose how to assign atom types to the species - the default option of _Determine atom types for all atoms_ uses connectivity descriptions in the forcefield to try and automatically choose which type to use.

{{< step >}}There will be no conflicts between the proposed atom types and existing ones defined in the main simulation (since there aren't any) so click {{< gui-button text="Finish" icon="true" >}} to complete the wizard{{< /step >}}
Leave this option selected and click {{< gui-button text="Next" icon="arrowright" >}}{{< /step >}}

{{< step >}}
There will be no conflicts between the proposed atom types and existing ones defined in the main simulation (since there aren't any) so click {{< gui-button text="Next" icon="arrowright" >}}{{< /step >}}

{{< step >}}
We will let Dissolve apply intramolecular terms to the whole species (there aren't any anyway), so leave this section as it is and click {{< gui-button text="Next" icon="arrowright" >}}{{< /step >}}

{{< step >}} Dissolve will check to see if there are naming conflicts between new and existing master terms, just as it did for the atom types. There will be none as, again, we had no master terms to start with, so click {{< gui-button text="Finish" icon="true" >}} to exit the wizard {{< /step >}}

{{< tip text="For more complicated (molecular) species the wizard also handles how _intra_-molecular terms are generated. You also may have to deal with potential naming conflicts with existing terms in the main simulation, which the _Add Forcefield Terms_ wizard will help you resolve." />}}

Expand All @@ -27,7 +37,15 @@ If you now return to the {{< gui-tab type="ff" text="Forcefield" >}} tab you wil

By default, Dissolve will generate all the necessary pair potentials for the current set of atom types automatically - these are listed in the **Pair Potentials** section where you can also select individual potentials and visualise them in the associated plot.

Before we move on we need to set an option related to the charges to use. Along with van der Waals parameters atomic charges are the second important component in describing interactions between atoms. In Dissolve these charges can either be taken from the atom types and included in the tabulated pair potentials, or located on species atoms and calculated analytically. Dissolve automatically detects the most appropriate scheme but is wary of systems or species where there are too many atoms with zero charge, as is the case here. As such, we must force a choice - in the **Charge Source** group at the top-right of the {{< gui-tab type="ff" text="Forcefield" >}} tab deselect the _Choose Automatically_ option and enable the _Force Choice_ option below it. The actual charge source (_Atom Types_ vs _Species Atoms_) is unimportant since charges are zero in both, but the default option is faster.
The current Pair Potentials range is set too high for our box size. We must alter this value to be less than the radius of largest possible inscribed sphere for box:

{{< action type="edit" >}}In the **Control** group change the _Range_ to `10.0`.{{< /action >}}

Before we move on we need to set an option related to the charges to use. Along with van der Waals parameters, atomic charges are the second important component in describing interactions between atoms. In Dissolve these charges can either be taken from the atom types and included in the tabulated pair potentials, or located on species atoms and calculated analytically. Dissolve automatically detects the most appropriate scheme but is wary of systems or species where there are too many atoms with zero charge, as is the case here. As such, we must force a choice:

{{< action type="mouse" >}}In the **Charge Source** group at the top-right of the {{< gui-tab type="ff" text="Forcefield" >}} tab deselect the _Choose Automatically_ option and enable the _Force Choice_ option below it.{{< /action >}}

The actual charge source (_Atom Types_ vs _Species Atoms_) is unimportant since charges are zero in both, but the default option is faster.


* * *
Expand Down
27 changes: 21 additions & 6 deletions web/docs/examples/argon/step3.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,30 @@ Configurations in Dissolve are created from a sequence of instructions that defi
Dissolve has a wizard to guide you through the process of preparing standard configurations:

{{< action type="menu" text="Configuration &#8680; Create..." />}}
{{< action type="mouse" >}}The first step of the wizard is to select all of the species which will go in to it - we only have one (our argon atom) so highlight it in the list and press {{< gui-button text="Next" icon="arrowright" >}}{{< /action >}}
{{< action type="mouse" >}}The next choice is which type of configuration to generate. The available choices depend on the types of species selected - we can only make a random mix from the argon species, so press {{< gui-button text="Next" icon="arrowright" >}} to continue.{{< /action >}}
{{< action type="mouse" >}}With our basic type of configuration chosen we must now decide on the size and geometry of the periodic box (unit cell). The two options are _Fixed Geometry, Undefined Size_ (where the final size of the box will depend on the how much and at what density we add in to it) and _Fixed Geometry and Size_ where we set both explicitly now. We will use the former choice here.{{< /action >}}
{{< action type="mouse" >}}When selecting _Fixed Geometry, Undefined Size_ the axis lengths given are _relative_ since they will be scaled as species are added to the box. Setting them all to `1.0` and leaving the angles at `90` (the default) results in a cubic box which should be appropriate for most simulations. Press {{< gui-button text="Next" icon="arrowright" >}} to continue.{{< /action >}}
{{< action type="edit" >}} On the final page of the wizard we set the populations of the species and, if we chose _Fixed Geometry, Undefined Size_, the required density of the system. Change the _Density_ to `0.0213` atoms/A3, then press {{< gui-button text="Finish" icon="true" >}} to complete the wizard.{{< /action >}}
{{< action type="mouse" >}}
##### Target Species
The first step of the wizard is to select all of the species which will go in to it - we only have one (our argon atom) so highlight it in the list and press {{< gui-button text="Next" icon="arrowright" >}}{{< /action >}}

You will now see that the **Generator** section has been populated with several steps, and a new configuration of atomic coordinates has been created based on these steps. We'll go through these one-by-one in the order they appear. To see the settings for any step, click on it to show its options in the panel immediately below the list of steps.
{{< action type="mouse" >}}
##### Configuration Type
The next choice is which type of configuration to generate. The available choices depend on the types of species selected - we can only make a random mix from the argon species, so press {{< gui-button text="Next" icon="arrowright" >}} to continue.{{< /action >}}

{{< action type="mouse" >}}
##### Box Geometry
With our basic type of configuration chosen we must now decide on the size and geometry of the periodic box (unit cell). The two options are _Fixed Geometry, Undefined Size_ (where the final size of the box will depend on the how much and at what density we add in to it) and _Fixed Geometry and Size_ where we set both explicitly now. We will use the former choice here.

When selecting _Fixed Geometry, Undefined Size_ the axis lengths given are _relative_ since they will be scaled as species are added to the box. Setting them all to `1.0` and leaving the angles at `90` (the default) results in a cubic box which should be appropriate for most simulations. Press {{< gui-button text="Next" icon="arrowright" >}} to continue.{{< /action >}}

{{< action type="edit" >}}
##### Species Information

On the final page of the wizard we set the populations of the species and, if we chose _Fixed Geometry, Undefined Size_, the required density of the system. Change the _Density_ to `0.0213` atoms/A3, then press {{< gui-button text="Finish" icon="true" >}} to complete the wizard.{{< /action >}}

You will now see that the {{< gui-button text="Generator" icon="generator" >}} section has been populated with several steps, and a new configuration of atomic coordinates has been created based on these steps. We'll go through these one-by-one in the order they appear. To see the settings for any step, click on it to show its options in the panel immediately below the list of steps.

| Node | Purpose |
|------|---------|
| {{< node "Temperature" >}}| Defines the temperature of the configuration. |
| {{< node "Parameters" >}}| Defines one or more numerical parameters that can be referenced by other nodes in the generator. We have only one value called "rho" which defines the density of the configuration. Note that "rho" is just a number and has no associated units - these are specified in the {{< node "Add" >}} node. |
| {{< node "Box" >}} | Defines side lengths and angles for the periodic box. Note that _relative_ lengths can be given, and the box expanded automatically (when adding species, for instance) to achieve some specific density. |
| {{< node "Add" >}}| Adds a number of copies of the specified species to the configuration. The **BoxAction** option controls how/if the box volume should be scaled to give the density specified once the species has been added, and is most useful when supplying relative box lengths. If set to `None` the box would remain at its current size (defaulting to 1.0 &#8491;<sup>3</sup>) but the full population of molecules will still be added. |
Expand All @@ -31,6 +45,7 @@ In the {{< node "Add" >}} node note how we have referenced the "rho" parameter f

Finally, we need to set the correct temperature for the configuration.

{{< action type="groups">}}Select the {{< node "Temperature" >}} node{{</action>}}
{{< action type="edit" text="Set the **Temperature** to 85 K to match that of the experimental measurement" />}}

{{< tip >}}You can recreate a configuration at any time by clicking the {{< gui-button text="Generate" icon="repeat" >}} button, but bear in mind that other quantities calculated by modules may also need to be cleared. Remove all of this data to begin a 'clean' run with the **Clear Module Data** option in the **Simulation** menu.{{< /tip >}}
Expand Down
13 changes: 7 additions & 6 deletions web/docs/examples/argon/step4b.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,27 +26,28 @@ We will now need to set a few parameters in the {{< module "NeutronSQ" >}} modul

The {{< module "NeutronSQ" >}} module will use isotopic natural abundances to calculate the neutron weights for all species unless we tell it otherwise. We'll first define the correct isotopologue for our argon species, and then tell {{< module "NeutronSQ" >}} to use it. The experimental measurement was made using Ar<sup>36</sup> since its coherent scattering cross-section (24.9 fm) is considerably higher than that of the naturally-occurring mix (1.91 fm).

{{< action type="tabs" >}}Go to the {{< gui-tab type="species" text="Ar" >}} species tab, **Isotopologues** section{{< /action >}}
{{< action type="mouse">}}Click {{< gui-button text="Add" >}} to create a new isotopologue definition assigning the default (natural) isotope to each atom type present in the species{{< /action >}}
{{< action type="tabs" >}}Go to the {{< gui-tab type="species" text="Ar" >}} species tab{{< /action >}}
{{<action type="groups">}}Click on the {{<gui-tab text="Isotopologues" type="threeSpecies">}} section{{</action>}}
{{< action type="mouse">}}Click {{< gui-button text="Add" icon="Add" >}} to create a new isotopologue definition assigning the default (natural) isotope to each atom type present in the species{{< /action >}}
{{< action type="edit" text="Change the entry for the Ar atom type from `Natural (bc = 1.909 fm)` to `36 (bc = 24.9 fm)`" />}}
{{< action type="edit" text="For sanity's sake, you may also want to double-click on the name of the isotopologue in order to change it to something more meaningful ('Ar36' perhaps)" />}}

Now we'll go to our calculation layer and set the isotopologue for our {{< module "NeutronSQ" >}} module:

{{< action type="tabs" >}}Go to the {{< gui-tab type="layer" text="RDF and Neutron S(Q)" >}} layer tab{{< /action >}}
{{< action type="tabs" >}}Go to the {{< gui-tab type="layer" text="G(r) / Neutron S(Q)" >}} layer tab{{< /action >}}
{{< action type="groups" >}}Select the {{< module "NeutronSQ" >}} module and open its main {{< gui-button text="Options" icon="options" >}}{{< /action >}}
{{< step >}}The **Isotopologue** keyword currently shows that all species will "Default to Natural" isotopologues{{< /step >}}
{{< action type="mouse" >}}Click the button for the **Isotopologue** keyword to open its full options{{< /action >}}
{{< step >}}Press the {{< gui-button text="Species" type="add" >}} button to populate the list with the default isotopic selection for each species{{< /step >}}
{{< step text="Change the isotopologue for the argon species from `Natural` to `Ar36` (assuming that you changed the name earlier!)"/>}}
{{< action type="mouse" >}}Press the {{< gui-button text="Species" icon="add" >}} button to populate the list with the default isotopic selection for each species{{< /action >}}
{{< action type="edit" text="Change the isotopologue for the argon species from `Natural` to `Ar36` (assuming that you changed the name earlier!)"/>}}

{{< tip text="The 'Natural' isotopologue for each species is defined internally by Dissolve, and is always available. It does not appear in the list of defined isotopologues on the species tab." />}}

### Import Reference Data

The {{< module "NeutronSQ" >}} module itself looks after any related experimental reference data that we might wish to compare our calculated data to, and which we'll now set up.

{{< action type="tabs" >}}Go to the {{< gui-tab type="layer" text="RDF and Neutron S(Q)" >}} layer tab{{< /action >}}
{{< action type="tabs" >}}Go to the {{< gui-tab type="layer" text="G(r) / Neutron S(Q)" >}} layer tab{{< /action >}}
{{< action type="groups" >}}Select the {{< module "NeutronSQ" >}} module and look for the **Reference Data** settings group{{< /action >}}
{{< action type="edit" >}}For the **Reference** keyword open the file `yarnell.sq`, and set the format of the data to `xy`{{< /action >}}

Expand Down
Binary file added web/docs/examples/benzene/badbenzene.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit db3f594

Please sign in to comment.