9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-09-01 05:33:40 +02:00

Compare commits

...

3 Commits

Author SHA1 Message Date
cf4f9990bc Updated citation.ccf 2019-06-08 15:44:18 +02:00
c7dedf49ed More efficient multi-state selection 2019-06-08 15:14:57 +02:00
4c5759fe6f Modified README 2019-06-08 15:14:38 +02:00
3 changed files with 110 additions and 21 deletions

View File

@ -1,32 +1,100 @@
# YAML 1.2 # YAML 1.2
# Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/) # Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/)
cff-version: 1.0.3 cff-version: 1.0.3
message: If you use this software, please cite it using these metadata. message: "If you use this software, please cite it using these metadata."
title: Quantum Package title: Quantum Package
doi: 10.5281/zenodo.825872 doi: 10.1021/acs.jctc.9b00176
authors: authors:
- given-names: Anthony
family-names: Scemama
affiliation: Laboratoire de Chimie et Physique Quantiques / CNRS
- given-names: Yann - given-names: Yann
family-names: Garniron family-names: Garniron
affiliation: Laboratoire de Chimie et Physique Quantiques / CNRS affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Michel
family-names: Caffarel
affiliation: Laboratoire de Chimie et Physique Quantiques / CNRS
- given-names: Thomas - given-names: Thomas
family-names: Applencourt family-names: Applencourt
affiliation: Argonne National Lab affiliation: Computational Science Division, Argonne National Laboratory, Argonne, Illinois 60439, United States
- given-names: Kevin - given-names: Kevin
family-names: Gasperich family-names: Gasperich
affiliation: Argonne National Lab affiliation: Department of Chemistry, University of Pittsburgh, Pittsburgh, Pennsylvania 15260, United States
- given-names: Anouar - given-names: Anouar
family-names: Benali family-names: Benali
affiliation: Argonne National Lab affiliation: Computational Science Division, Argonne National Laboratory, Argonne, Illinois 60439, United States
- given-names: Anthony
family-names: Ferté
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Julien
family-names: Paquier
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Barthélémy
family-names: Pradines
affiliation: Institut des Sciences du Calcul et des Données, Sorbonne Université, F-75005 Paris, France
- given-names: Roland
family-names: Assaraf
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Peter
family-names: Reinhardt
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Julien
family-names: Toulouse
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Pierrette
family-names: Barbaresco
affiliation: CALMIP, Université de Toulouse, CNRS, INPT, INSA, UPS, UMS 3667, Toulouse, France
- given-names: Nicolas
family-names: Renon
affiliation: CALMIP, Université de Toulouse, CNRS, INPT, INSA, UPS, UMS 3667, Toulouse, France
- given-names: Grégoire
family-names: David
affiliation: Aix-Marseille Univ, CNRS, ICR, Marseille, France
- given-names: Jean-Paul
family-names: Malrieu
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Mickaël
family-names: Véril
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Michel
family-names: Caffarel
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Pierre-François
family-names: Loos
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Emmanuel - given-names: Emmanuel
family-names: Giner family-names: Giner
affiliation: Laboratoire de Chimie Theorique / CNRS affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Anthony
family-names: Scemama
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
abstract: "Quantum chemistry is a discipline which relies heavily on very
expensive numerical computations. The scaling of correlated wave function
methods lies, in their standard implementation, between O(N^5) and O(exp(N)),
where N is proportional to the system size. Therefore, performing accurate
calculations on chemically meaningful systems requires (i) approximations that
can lower the computational scaling and (ii) efficient implementations that
take advantage of modern massively parallel architectures. Quantum Package is
an open-source programming environment for quantum chemistry specially designed
for wave function methods. Its main goal is the development of
determinant-driven selected configuration interaction (sCI) methods and
multireference second-order perturbation theory (PT2). The determinant-driven
framework allows the programmer to include any arbitrary set of determinants in
the reference space, hence providing greater methodological freedom. The sCI
method implemented in Quantum Package is based on the CIPSI (Configuration
Interaction using a Perturbative Selection made Iteratively) algorithm which
complements the variational sCI energy with a PT2 correction. Additional
external plugins have been recently added to perform calculations with
multireference coupled cluster theory and range-separated density-functional
theory. All the programs are developed with the IRPF90 code generator, which
simplifies collaborative work and the development of new features. Quantum
Package strives to allow easy implementation and experimentation of new
methods, while making parallel computation as simple and efficient as possible
on modern supercomputer architectures. Currently, the code enables, routinely,
to realize runs on roughly 2 000 CPU cores, with tens of millions of
determinants in the reference space. Moreover, we have been able to push up to
12 288 cores in order to test its parallel efficiency. In the present
manuscript, we also introduce some key new developments: (i) a renormalized
second-order perturbative correction for efficient extrapolation to the full CI
limit and (ii) a stochastic version of the CIPSI selection performed
simultaneously to the PT2 calculation at no extra cost."
version: '2.0' version: '2.0'
date-released: 2019-02-11 url: https://quantumpackage.github.io/qp2/
date-released: 2019-05-13
repository-code: https://github.com/QuantumPackage/qp2 repository-code: https://github.com/QuantumPackage/qp2
keywords: [ "computational chemistry", "configuration interaction", "cipsi", "perturbation theory" ]
license: AGPL-3.0-or-later license: AGPL-3.0-or-later

View File

@ -1,12 +1,13 @@
# Quantum Package 2.0 # Quantum Package 2.0
*Quantum package 2.0: an open-source determinant-driven suite of programs*\ [*Quantum package 2.0: an open-source determinant-driven suite of programs*](https://pubs.acs.org/doi/10.1021/acs.jctc.9b00176)\
Y. Garniron, K. Gasperich, T. Applencourt, A. Benali, A. Ferté, J. Paquier, B. Pradines, R. Assaraf, P. Reinhardt, J. Toulouse, P. Barbaresco, N. Renon, G. David, J. P. Malrieu, M. Véril, M. Caffarel, P. F. Loos, E. Giner and A. Scemama\ Y. Garniron, K. Gasperich, T. Applencourt, A. Benali, A. Ferté, J. Paquier, B. Pradines, R. Assaraf, P. Reinhardt, J. Toulouse, P. Barbaresco, N. Renon, G. David, J. P. Malrieu, M. Véril, M. Caffarel, P. F. Loos, E. Giner and A. Scemama\
J. Chem. Theory Comput. (2019)\
https://arxiv.org/abs/1902.08154 https://arxiv.org/abs/1902.08154
![QP](https://raw.githubusercontent.com/QuantumPackage/qp2/master/data/qp2.png) <img src="https://raw.githubusercontent.com/QuantumPackage/qp2/master/data/qp2.png" width="250">
# Getting started # Getting started

View File

@ -30,8 +30,22 @@ subroutine update_pt2_and_variance_weights(pt2, variance, norm, N_st)
double precision :: avg, rpt2(N_st), element, dt, x double precision :: avg, rpt2(N_st), element, dt, x
integer :: k integer :: k
integer, save :: i_iter=0
integer, parameter :: i_itermax = 3
double precision, allocatable, save :: memo_variance(:,:), memo_pt2(:,:)
dt = n_iter * selection_factor if (i_iter == 0) then
allocate(memo_variance(N_st,i_itermax), memo_pt2(N_st,i_itermax))
memo_pt2(:,:) = 1.d0
memo_variance(:,:) = 1.d0
endif
i_iter = i_iter+1
if (i_iter > i_itermax) then
i_iter = 1
endif
dt = 4.d0
do k=1,N_st do k=1,N_st
rpt2(k) = pt2(k)/(1.d0 + norm(k)) rpt2(k) = pt2(k)/(1.d0 + norm(k))
@ -40,17 +54,23 @@ subroutine update_pt2_and_variance_weights(pt2, variance, norm, N_st)
avg = sum(rpt2(1:N_st)) / dble(N_st) avg = sum(rpt2(1:N_st)) / dble(N_st)
do k=1,N_st do k=1,N_st
element = exp(dt*(rpt2(k)/avg -1.d0)) element = exp(dt*(rpt2(k)/avg -1.d0))
element = min(1.2d0 , element) element = min(1.5d0 , element)
pt2_match_weight(k) *= element element = max(0.5d0 , element)
memo_pt2(k,i_iter) = element
pt2_match_weight(k) = product(memo_pt2(k,:))
enddo enddo
avg = sum(variance(1:N_st)) / dble(N_st) avg = sum(variance(1:N_st)) / dble(N_st)
do k=1,N_st do k=1,N_st
element = exp(dt*(variance(k)/avg -1.d0)) element = exp(dt*(variance(k)/avg -1.d0))
element = min(1.2d0 , element) element = min(1.5d0 , element)
variance_match_weight(k) *= element element = max(0.5d0 , element)
memo_variance(k,i_iter) = element
variance_match_weight(k) = product(memo_variance(k,:))
enddo enddo
print *, '# PT2 weight ', real(pt2_match_weight(:),4)
print *, '# var weight ', real(variance_match_weight(:),4)
SOFT_TOUCH pt2_match_weight variance_match_weight SOFT_TOUCH pt2_match_weight variance_match_weight
end end