Skip to content

minor doc update #36

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

Merged
merged 7 commits into from
Aug 21, 2023
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
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Cclib"
uuid = "6bf0c929-756b-4df7-ab0b-d621f7ebeba1"
authors = ["cclib development team"]
version = "0.3.0"
version = "0.4.0"

[deps]
AtomsBase = "a963bdd2-2df7-4f54-a1ee-49d51e6be12a"
Expand Down
14 changes: 7 additions & 7 deletions docs/src/calculation.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Cclib also allows to further analyse calculation ouputs.

# C squared population analysis (CSPA)
## C squared population analysis (CSPA)
**CSPA** can be used to determine and interpret the electron density of a molecule. The contribution of the a-th atomic orbital to the i-th molecular orbital can be written in terms of the molecular orbital coefficients:

$$\Phi_{ai} = \frac{c^2_{ai}}{\sum_k c^2_{ki}}$$
Expand All @@ -17,7 +17,7 @@ julia> aoresults, fragresults, fragcharges = cspa("./Trp_polar.fchk")
* ``fragresults``: a three dimensional array with spin, molecular orbital, and atoms as the axes, so that ``fragresults[1, 24, 5]`` gives the contribution of the 5th fragment orbitals to the 24th beta molecular orbital)
* ``fragcharges``: a vector with the number of (partial) electrons in each fragment, so that ``fragcharges[3]`` gives the number of electrons in the 3rd fragment.

# Mulliken population analysis (MPA)
## Mulliken population analysis (MPA)
MPA can be used to determine and interpret the electron density of a molecule. The contribution of the a-th atomic orbital to the i-th molecular orbital in this method is written in terms of the molecular orbital coefficients, c, and the overlap matrix, S:

$$\Phi_{ai} = \sum_b c_{ai} c_{bi} S_{ab}$$
Expand All @@ -31,7 +31,7 @@ julia> aoresults, fragresults, fragcharges = mpa("./Trp_polar.fchk")
* ``fragresults``: a three dimensional array with spin, molecular orbital, and atoms as the axes, so that ``fragresults[1, 24, 5]`` gives the contribution of the 5th fragment orbitals to the 24th beta molecular orbital)
* ``fragcharges``: a vector with the number of (partial) electrons in each fragment, so that ``fragcharges[3]`` gives the number of electrons in the 3rd fragment.

# Löwdin Population Analysis
## Löwdin Population Analysis
```Julia
julia> using Cclib
julia> aoresults, fragresults, fragcharges = lpa("./Trp_polar.fchk")
Expand All @@ -41,7 +41,7 @@ julia> aoresults, fragresults, fragcharges = lpa("./Trp_polar.fchk")
* ``fragresults``: a three dimensional array with spin, molecular orbital, and atoms as the axes, so that ``fragresults[1, 24, 5]`` gives the contribution of the 5th fragment orbitals to the 24th beta molecular orbital)
* ``fragcharges``: a vector with the number of (partial) electrons in each fragment, so that ``fragcharges[3]`` gives the number of electrons in the 3rd fragment.

# Bickelhaupt Population Analysis
## Bickelhaupt Population Analysis
The Bickelhaupt class available from cclib.method performs Bickelhaupt population analysis that has been proposed in *Organometallics* 1996, 15, 13, 2923–2931. [doi:10.1021/om950966x](https://pubs.acs.org/doi/abs/10.1021/om950966x)

The contribution of the a-th atomic orbital to the i-th molecular orbital in this method is written in terms of the molecular orbital coefficients, c, and the overlap matrix, S:
Expand All @@ -63,21 +63,21 @@ julia> aoresults, fragresults, fragcharges = bpa("./Trp_polar.fchk")
* ``fragresults``: a three dimensional array with spin, molecular orbital, and atoms as the axes, so that ``fragresults[1, 24, 5]`` gives the contribution of the 5th fragment orbitals to the 24th beta molecular orbital)
* ``fragcharges``: a vector with the number of (partial) electrons in each fragment, so that ``fragcharges[3]`` gives the number of electrons in the 3rd fragment.

# Density Matrix calculation
## Density Matrix calculation
Calculates the electron density matrix
```Julia
julia> using Cclib
julia> result = density("./Trp_polar.fchk")
```
Returns an array with three axes. The first axis is for the spin contributions, the second and the third axes for the density matrix, which follows standard definition.
# Mayer’s Bond Orders (MBO)
## Mayer’s Bond Orders (MBO)
Calculates Mayer's bond orders
```Julia
julia> using Cclib
julia> result = mbo("./Trp_polar.fchk")
```
Returns an array with three axes. The first axis is for contributions of each spin to the MBO, while the second and the third correspond to the indices of the atoms.
# Charge Decomposition Analysis
## Charge Decomposition Analysis
The Charge Decomposition Analysis (CDA) as developed by Gernot Frenking et al. is used to study the donor-acceptor interactions of a molecule in terms of two user-specified fragments.
```Julia
julia> using Cclib
Expand Down
4 changes: 2 additions & 2 deletions docs/src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[Cclib.jl](https://github.com/cclib/Cclib.jl) is a Julia wrapper around [Cclib](https://cclib.github.io/index.html) - an open source library written in Python for parsing and interpreting the results of computational chemistry packages.

# Features
## Features

- Parsing outputs from 15 different programs: ADF, DALTON, Firefly, GAMESS (US), GAMESS-UK, Gaussian, Jaguar, Molpro, MOLCAS, MOPAC, NWChem, ORCA, Psi4, NBO, QChem and Turbomole.

Expand All @@ -12,7 +12,7 @@
- By extension, provides interoperability with libraries that use AtomsBase.jl, such as [DFTK.jl](https://github.com/JuliaMolSim/DFTK.jl), [Molly.jl](https://github.com/JuliaMolSim/Molly.jl), and [InteratomicPotentials.jl](https://github.com/cesmix-mit/InteratomicPotentials.jl).
- Integration with [Fermi.jl](https://github.com/FermiQC/Fermi.jl) - quantum chemistry framework written in Julia.

# How to install
## How to install
To install [Cclib.jl](https://github.com/cclib/Cclib.jl), start up and type the following into the REPL.
```julia
Pkg.add("Cclib")
Expand Down
12 changes: 6 additions & 6 deletions docs/src/interop.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Interoperability With Other Tools

# AtomsBase.jl
## AtomsBase.jl

Cclib.jl provides interoperability with [AtomsBase.jl](https://github.com/JuliaMolSim/AtomsBase.jl) by allowing to create AtomsBase systems.

The documentaiton below provides some essential functionality, such as creating and editing AtomsBase.jl systems.

For a detailed overview, or if you want to know how AtomsBase.jl operates behind the scenes, refer to its official documentation.

## Creating AtomsBase Systems
### Creating AtomsBase Systems
We can load information contained in a Cclib.jl-supported file into a system by using the following functions:
- `make_flexible_system` - for creating an AtomsBase `FlexibleSystem`

Expand Down Expand Up @@ -64,7 +64,7 @@ julia> atoms[1]
Atom(O, atomic_number = 8, atomic_mass = 15.999 u):
position : [0,0,-0.066678532]u"Å"
```
## Accessing System Properties
### Accessing System Properties
In case we need to look at what our system contains, we can use regular `keys` to see available system-level properties and `atomkeys` to see available atom-level properties

```Julia
Expand All @@ -90,7 +90,7 @@ julia> bounding_box(system)
:H
```

## Updating and/or adding system properties
### Updating and/or adding system properties
We can also update and/or add system properties by using `update_system` function that accepts keywords arguments. Below is an example of adding data that was parsed using `ccread` to a system.
```Julia
julia> using Cclib
Expand All @@ -101,7 +101,7 @@ julia> system[:nbasis]
7
```

# AtomsBase.jl-supported libraries
### AtomsBase.jl-supported libraries

We can use data loaded with Cclib.jl to perform calculations using other libraries that use AtomsBase.jl, such as [InteratomicPotentials.jl](https://github.com/cesmix-mit/InteratomicPotentials.jl) or [DFTK.jl](https://github.com/JuliaMolSim/DFTK.jl).

Expand Down Expand Up @@ -155,7 +155,7 @@ n Energy log10(ΔE) log10(Δρ) Diag Δtime
For a full list of tools that support AtomsBase.jl, refer to its [official
documentation](https://github.com/JuliaMolSim/AtomsBase.jl).

# Fermi.jl
## Fermi.jl

We can use information loaded using Cclib and use it for [Fermi.jl](https://github.com/FermiQC/Fermi.jl) calculations, which accept atom numbers and XYZ coordinates as input. The latter is accessible using Cclib's `getXYZ` function.

Expand Down
7 changes: 3 additions & 4 deletions docs/src/io.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Reading and writing files

# Supported formats
## Supported formats
Properties that can be parsed and supported file formats can be found [here](https://cclib.github.io/data.html#details-of-current-implementation").

# How to read files
## How to read files
```Julia
# Input files can be found in the in the repo under "test" folder
julia> using Cclib
Expand All @@ -22,5 +22,4 @@ Accessing the data is identical to how one would access data in a dictionary:
```Julia
julia> mol["natom"]
12
```
Note that files may contain more than one geometry, in which case the index of the geometry can be specified by passing `geomIdx` argument. Be default, `writeXYZ` will use the last read geometry.
```