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

Compare commits

..

No commits in common. "cf4f9990bc769770b31d19383943b43f3d3280cd" and "c7ef5fc8c7911e4eb258c04a64c272a47b985861" have entirely different histories.

3 changed files with 29 additions and 118 deletions

View File

@ -1,100 +1,32 @@
# 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.1021/acs.jctc.9b00176 doi: 10.5281/zenodo.825872
authors: authors:
- given-names: Yann
family-names: Garniron
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Thomas
family-names: Applencourt
affiliation: Computational Science Division, Argonne National Laboratory, Argonne, Illinois 60439, United States
- given-names: Kevin
family-names: Gasperich
affiliation: Department of Chemistry, University of Pittsburgh, Pittsburgh, Pennsylvania 15260, United States
- given-names: Anouar
family-names: Benali
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
family-names: Giner
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Anthony - given-names: Anthony
family-names: Scemama family-names: Scemama
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France affiliation: Laboratoire de Chimie et Physique Quantiques / CNRS
abstract: "Quantum chemistry is a discipline which relies heavily on very - given-names: Yann
expensive numerical computations. The scaling of correlated wave function family-names: Garniron
methods lies, in their standard implementation, between O(N^5) and O(exp(N)), affiliation: Laboratoire de Chimie et Physique Quantiques / CNRS
where N is proportional to the system size. Therefore, performing accurate - given-names: Michel
calculations on chemically meaningful systems requires (i) approximations that family-names: Caffarel
can lower the computational scaling and (ii) efficient implementations that affiliation: Laboratoire de Chimie et Physique Quantiques / CNRS
take advantage of modern massively parallel architectures. Quantum Package is - given-names: Thomas
an open-source programming environment for quantum chemistry specially designed family-names: Applencourt
for wave function methods. Its main goal is the development of affiliation: Argonne National Lab
determinant-driven selected configuration interaction (sCI) methods and - given-names: Kevin
multireference second-order perturbation theory (PT2). The determinant-driven family-names: Gasperich
framework allows the programmer to include any arbitrary set of determinants in affiliation: Argonne National Lab
the reference space, hence providing greater methodological freedom. The sCI - given-names: Anouar
method implemented in Quantum Package is based on the CIPSI (Configuration family-names: Benali
Interaction using a Perturbative Selection made Iteratively) algorithm which affiliation: Argonne National Lab
complements the variational sCI energy with a PT2 correction. Additional - given-names: Emmanuel
external plugins have been recently added to perform calculations with family-names: Giner
multireference coupled cluster theory and range-separated density-functional affiliation: Laboratoire de Chimie Theorique / CNRS
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'
url: https://quantumpackage.github.io/qp2/ date-released: 2019-02-11
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,13 +1,12 @@
# Quantum Package 2.0 # Quantum Package 2.0
[*Quantum package 2.0: an open-source determinant-driven suite of programs*](https://pubs.acs.org/doi/10.1021/acs.jctc.9b00176)\ *Quantum package 2.0: an open-source determinant-driven suite of programs*\
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
<img src="https://raw.githubusercontent.com/QuantumPackage/qp2/master/data/qp2.png" width="250"> ![QP](https://raw.githubusercontent.com/QuantumPackage/qp2/master/data/qp2.png)
# Getting started # Getting started

View File

@ -30,22 +30,8 @@ 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(:,:)
if (i_iter == 0) then dt = n_iter * selection_factor
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))
@ -54,23 +40,17 @@ 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.5d0 , element) element = min(1.2d0 , element)
element = max(0.5d0 , element) pt2_match_weight(k) *= 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.5d0 , element) element = min(1.2d0 , element)
element = max(0.5d0 , element) variance_match_weight(k) *= 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