mirror of
https://gitlab.com/scemama/qp_plugins_scemama.git
synced 2024-08-30 07:53:39 +02:00
Added CASSD
This commit is contained in:
parent
e0b4a1f42f
commit
461e86d46e
14
stable/cassd/EZFIO.cfg
Normal file
14
stable/cassd/EZFIO.cfg
Normal file
@ -0,0 +1,14 @@
|
||||
[energy]
|
||||
type: double precision
|
||||
doc: Calculated Selected CASSD energy
|
||||
interface: ezfio
|
||||
size: (determinants.n_states)
|
||||
|
||||
[energy_pt2]
|
||||
type: double precision
|
||||
doc: Calculated CASSD energy + PT2
|
||||
interface: ezfio
|
||||
size: (determinants.n_states)
|
||||
|
||||
|
||||
|
3
stable/cassd/NEED
Normal file
3
stable/cassd/NEED
Normal file
@ -0,0 +1,3 @@
|
||||
cipsi
|
||||
generators_cas
|
||||
selectors_cassd
|
19
stable/cassd/README.rst
Normal file
19
stable/cassd/README.rst
Normal file
@ -0,0 +1,19 @@
|
||||
=====
|
||||
cassd
|
||||
=====
|
||||
|
||||
|
||||
|CIPSI| algorithm in the multi-reference CI space (CAS + Singles and Doubles).
|
||||
|
||||
|
||||
This module is the same as the :ref:`fci` module, except for the choice of the
|
||||
generator and selector determinants.
|
||||
|
||||
The inactive, active and virtual |MOs| will need to be set with the
|
||||
:ref:`qp_set_mo_class` program.
|
||||
|
||||
.. seealso::
|
||||
|
||||
The documentation of the :ref:`fci` module.
|
||||
|
||||
|
54
stable/cassd/cassd.irp.f
Normal file
54
stable/cassd/cassd.irp.f
Normal file
@ -0,0 +1,54 @@
|
||||
program cassd
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Selected CAS+Singles and Doubles with stochastic selection
|
||||
! and PT2.
|
||||
!
|
||||
! This program performs a |CIPSI|-like selected |CI| using a
|
||||
! stochastic scheme for both the selection of the important Slater
|
||||
! determinants and the computation of the |PT2| correction. This
|
||||
! |CIPSI|-like algorithm will be performed for the lowest states of
|
||||
! the variational space (see :option:`determinants n_states`). The
|
||||
! program will stop when reaching at least one the two following
|
||||
! conditions:
|
||||
!
|
||||
! * number of Slater determinants > :option:`determinants n_det_max`
|
||||
! * |PT2| < :option:`perturbation pt2_max`
|
||||
!
|
||||
! The following other options can be of interest:
|
||||
!
|
||||
! :option:`determinants read_wf`
|
||||
! When set to |false|, the program starts with a ROHF-like Slater
|
||||
! determinant as a guess wave function. When set to |true|, the
|
||||
! program starts with the wave function(s) stored in the |EZFIO|
|
||||
! directory as guess wave function(s).
|
||||
!
|
||||
! :option:`determinants s2_eig`
|
||||
! When set to |true|, the selection will systematically add all the
|
||||
! necessary Slater determinants in order to have a pure spin wave
|
||||
! function with an |S^2| value corresponding to
|
||||
! :option:`determinants expected_s2`.
|
||||
!
|
||||
! For excited states calculations, it is recommended to start with
|
||||
! :ref:`.cis.` or :ref:`.cisd.` guess wave functions, eventually in
|
||||
! a restricted set of |MOs|, and to set :option:`determinants s2_eig`
|
||||
! to |true|.
|
||||
!
|
||||
END_DOC
|
||||
|
||||
if (.not.is_zmq_slave) then
|
||||
PROVIDE psi_det psi_coef mo_two_e_integrals_in_map
|
||||
|
||||
if (do_pt2) then
|
||||
call run_stochastic_cipsi
|
||||
else
|
||||
call run_cipsi
|
||||
endif
|
||||
|
||||
else
|
||||
PROVIDE mo_two_e_integrals_in_map
|
||||
|
||||
call run_slave_cipsi
|
||||
|
||||
endif
|
||||
end
|
10
stable/cassd/save_energy.irp.f
Normal file
10
stable/cassd/save_energy.irp.f
Normal file
@ -0,0 +1,10 @@
|
||||
subroutine save_energy(E,pt2)
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Saves the energy in |EZFIO|.
|
||||
END_DOC
|
||||
double precision, intent(in) :: E(N_states), pt2(N_states)
|
||||
call ezfio_set_cassd_energy(E(1:N_states))
|
||||
call ezfio_set_cassd_energy_pt2(E(1:N_states)+pt2(1:N_states))
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user