mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-09-01 05:33:40 +02:00
Compare commits
No commits in common. "cf4f9990bc769770b31d19383943b43f3d3280cd" and "c7ef5fc8c7911e4eb258c04a64c272a47b985861" have entirely different histories.
cf4f9990bc
...
c7ef5fc8c7
112
CITATION.cff
112
CITATION.cff
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user