mirror of
https://github.com/LCPQ/quantum_package
synced 2024-12-22 12:23:48 +01:00
Update
parent
ae710d74f4
commit
9b5106f5bc
@ -12,7 +12,7 @@ the running program.
|
||||
|
||||
The typical scheme is the following:
|
||||
|
||||
1. The program (IRPF90) asks `qp_run` to create a new queue for a state of the calculation
|
||||
1. The program (Fortran) asks `qp_run` to create a new queue for a state of the calculation
|
||||
|
||||
2. The program adds multiple tasks to do to the queue
|
||||
|
||||
@ -105,3 +105,9 @@ Now, the main thread can send an `End_job` message to the scheduler to inform
|
||||
it that the parallel task is done.
|
||||
|
||||
|
||||
MPI layer
|
||||
---------
|
||||
|
||||
The ZeroMQ slave can be an MPI program. In that case, MPI is used to broadcast large arrays such
|
||||
as the wave function, and the input data which are read only by the MPI master. But the communication
|
||||
between the ZeroMQ slave and the ZeroMQ master is still done via ZeroMQ.
|
||||
|
@ -10,4 +10,4 @@
|
||||
* EMSL_Basis_Set_Exchange_Local : https://github.com/TApplencourt/EMSL_Basis_Set_Exchange_Local
|
||||
* Zlib : http://zlib.net
|
||||
* GNU patch : http://savannah.gnu.org/projects/patch
|
||||
* ZeroMQ : http://zeromq.org/
|
||||
* ZeroMQ : http://zeromq.org/
|
||||
|
68
Tutorial.md
68
Tutorial.md
@ -27,15 +27,31 @@ First, create an `xyz` file containing the coordinates of the molecule. The file
|
||||
N 0.0 0.0 -1.156
|
||||
```
|
||||
|
||||
Note that you can also input the coordinates using a Z-matrix:
|
||||
|
||||
```
|
||||
c
|
||||
n 1 nc2
|
||||
h 1 hc3 2 hcn3
|
||||
|
||||
nc2 1.156
|
||||
hc3 1.064
|
||||
hcn3 180.0
|
||||
|
||||
```
|
||||
|
||||
|
||||
Now, this `xyz` file is used to generate an `EZFIO` input directory using the ``qp_create_ezfio_from_xyz`` command. The main options of that command are
|
||||
|
||||
```
|
||||
-b string Name of basis set.
|
||||
[-au] Input geometry is in atomic units.
|
||||
[-c int] Total charge of the molecule. Default is 0.
|
||||
[-cart] Compute AOs in the Cartesian basis set (6d, 10f, ...)
|
||||
[-d float] Add dummy atoms. x * (covalent radii of the atoms)
|
||||
[-m int] Spin multiplicity (2S+1) of the molecule. Default is 1.
|
||||
[-o file] Name of the created EZFIO file.
|
||||
[-p string] Using pseudopotentials
|
||||
[-p string] Name of the pseudopotential
|
||||
```
|
||||
|
||||
To generate ``hcn.ezfio`` in the 6-31G basis set, we use::
|
||||
@ -43,25 +59,39 @@ To generate ``hcn.ezfio`` in the 6-31G basis set, we use::
|
||||
`qp_create_ezfio_from_xyz -b "6-31G" hcn.xyz`
|
||||
|
||||
|
||||
You can edit interactively the EZFIO file with all the options available for all the binaries installed using the `qp_edit` command.
|
||||
With the `qp_edit` command, you can edit interactively the EZFIO file with all the options available for all the binaries installed.
|
||||
|
||||
# Run the SCF and Full-CI calculations
|
||||
|
||||
First, create the canonical MOs by running an SCF calculation::
|
||||
|
||||
```
|
||||
qp_run SCF hcn.ezfio
|
||||
```
|
||||
The expected SCF energy is -92.8278567 au.
|
||||
|
||||
Now we want to run the Full-CI calculation. Type
|
||||
In the selected FCI calculation, by default the program will stop when the 1.000.000 most important determinants are selected, or when the PT2 correction is below 1.e-4.
|
||||
To make a quick test, we want to stop for 10.000 determinants.
|
||||
To change this behavior, edit ``hcn.ezfio`` to modify the options of the selected Full-CI calculation::
|
||||
|
||||
```
|
||||
qp_edit hcn.ezfio
|
||||
```
|
||||
|
||||
This will open a temporary file enabling the modification of the EZFIO directory. Search for the `Determinants` section, and set the ``n_det_max`` option to 10000::
|
||||
|
||||
```
|
||||
n_det_max = 10000
|
||||
```
|
||||
|
||||
Now we can run the Full-CI calculation. Type
|
||||
|
||||
```
|
||||
qp_run fci_zmq hcn.ezfio
|
||||
```
|
||||
|
||||
By default, this will select the most important 10.000 determinants in the wave-function (this number is set by the `determinants/n_det_max` variable). When this point is reached, the second order perturbative correction is computed (handled by the `do_pt2_end` variable) to generate a really good approximation of the full-ci.
|
||||
|
||||
The variational energy should be '-93.043096' and the Full-CI approximation energy should be '-93.051924'.
|
||||
The variational energy should be '-93.044945' and the Full-CI approximate energy should be '-93.052019'.
|
||||
|
||||
# Freeze core electrons in the CI
|
||||
|
||||
@ -74,7 +104,7 @@ Then run the SCF
|
||||
```
|
||||
qp_run SCF hcn_large.ezfio
|
||||
```
|
||||
The expected SCF energy is -92.8832967.
|
||||
The expected SCF energy is -92.8829467.
|
||||
|
||||
We want to run the selected Full-CI calculation in the valence only. For this, we will use the ``qp_set_mo_class`` utility. The options are
|
||||
```
|
||||
@ -86,15 +116,20 @@ We want to run the selected Full-CI calculation in the valence only. For this, w
|
||||
```
|
||||
|
||||
We set 2 first canonical orbitals as `core` and all the remaining MOs are set as active ::
|
||||
|
||||
```
|
||||
qp_set_mo_class hcn_large.ezfio -core "[1,2]" -act "[3-35]"
|
||||
qp_set_mo_class hcn_large.ezfio -core "[1,2]" -act "[3-33]"
|
||||
```
|
||||
|
||||
or we can do it automatically:
|
||||
|
||||
```
|
||||
qp_set_frozen_core.py hcn_large.ezfio
|
||||
```
|
||||
|
||||
The `qp_set_frozen_core.py` script finds the heavy atoms and proposes a set of
|
||||
core and active MOs. For atoms with few electrons in the valence such as Li or
|
||||
Na, the script will propose a small core.
|
||||
|
||||
Then, edit ``hcn_large.ezfio`` to modify the options of the selected Full-CI calculation::
|
||||
```
|
||||
@ -102,26 +137,25 @@ Then, edit ``hcn_large.ezfio`` to modify the options of the selected Full-CI cal
|
||||
```
|
||||
|
||||
This will open a temporary file enabling the modification of the EZFIO directory. Search for the `Determinants` section, and set the ``n_det_max`` option to 10000::
|
||||
|
||||
```
|
||||
n_det_max = 10000
|
||||
```
|
||||
De-activate the calculation of the PT2-energy::
|
||||
```
|
||||
do_pt2_end = false
|
||||
```
|
||||
|
||||
And run the Full-CI calculation::
|
||||
|
||||
```
|
||||
qp_run fci_zmq hcn_large.ezfio
|
||||
```
|
||||
The expected variational energy is -93.16819314.
|
||||
|
||||
The expected variational energy is -93.16482111.
|
||||
|
||||
From the current wave function, we can generate the corresponding natural orbitals::
|
||||
|
||||
```
|
||||
qp_run save_natorb hcn_large.ezfio
|
||||
```
|
||||
Re-activate the calculation of the PT2-energy using qp_edit::
|
||||
```
|
||||
do_pt2_end = true
|
||||
```
|
||||
And run the calculation again. The expected variational energy is -93.176409148 and the energy + the PT2 contribution is -93.194541427.
|
||||
|
||||
and run the selected FCI calculation again.
|
||||
The expected variational energy is -93.172895441 and the energy + the PT2 contribution is -93.19059084.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user