Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
R
RelaxSE-Code
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RelaxSE
RelaxSE-Code
Commits
ece3e359
Commit
ece3e359
authored
1 month ago
by
Marie bernadette Lepetit
Browse files
Options
Downloads
Plain Diff
Merge branch 'dev/guess' of
https://code.ill.fr/relaxse/relaxse-code
into dev/guess
parents
a740c742
56662f4b
No related branches found
Branches containing commit
No related tags found
2 merge requests
!16
Remove the reordering of the vectors when convergence is not reached
,
!15
Possibility to increase the number of vectors to be computed
Pipeline
#24245
passed
1 month ago
Stage: docker_pre_clean
Stage: build
Stage: docker_post_clean
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
doc/code.tex
+18
-18
18 additions, 18 deletions
doc/code.tex
doc/input.tex
+90
-41
90 additions, 41 deletions
doc/input.tex
doc/inputprop.tex
+5
-5
5 additions, 5 deletions
doc/inputprop.tex
doc/perf.tex
+5
-5
5 additions, 5 deletions
doc/perf.tex
doc/user_manual.pdf
+0
-0
0 additions, 0 deletions
doc/user_manual.pdf
with
118 additions
and
69 deletions
doc/code.tex
+
18
−
18
View file @
ece3e359
The
{
\sass
}
code~
\cite
{
p:relaxse
}
does a fully-decontracted Multirefrence Configuration
does a fully-decontracted Multiref
e
rence Configuration
Interaction (MRCI) calculation using one of the following methods
\begin{itemize}
\item
{
\bf
SAS+S~:
}
single excitations on all determinants of a reference
...
...
@@ -17,15 +17,15 @@ Interaction (MRCI) calculation using one of the following methods
\item
{
\bf
MRSCI~:
}
single excitations on all determinants of a selected reference space
(included into a formal Complete Active Space);
\item
{
\bf
MRSDCI~:
}
single and double excitations on
a
all determinants of selected reference space
\item
{
\bf
MRSDCI~:
}
single and double excitations on all determinants of
a
selected reference space
(included into a formal Complete Active Space);
\item
{
\bf
CAS+S~:
}
single excitations on all determinants of a Complete
Active Space;
\item
{
\bf
CAS+SD~:
}
single and double excitations on all determinants of a
Complete Active Space;
\item
{
\bf
CAS+DDCI~:
}
single
and double excitations
from the Difference
Dedicated Configuration Interaction space~
\cite
{
DDCI1992,DDCI1995,DDCI1997
}
, on all determinants of a
Complete Active Space.
\item
{
\bf
CAS+DDCI~:
}
selected
single and double excitations
on all determinants of a
Complete Active Space, as defined in the Difference
Dedicated Configuration Interaction space~
\cite
{
DDCI1992,DDCI1995,DDCI1997
}
,
\end{itemize}
...
...
@@ -33,32 +33,32 @@ Interaction (MRCI) calculation using one of the following methods
\subsection
{
The orbital classes
}
The code uses a partition of the orbital set into 7 different types
\begin{description}
\item
[FROZEN]
~: (keywor
k
NOrb
\_
gel) doubly-occupied orbitals that are frozen in the
\item
[FROZEN]
~: (keywor
d
NOrb
\_
gel) doubly-occupied orbitals that are frozen in the
calculation. In the present version this number should be the same as in
motra.
\item
[OCCUPIED]
~: (keywor
k
NOrb
\_
occ) doubly-occupied orbitals from which only one hole can be created in the calculation.
\item
[LIGO]
~: (keywor
k
NOrb
\_
ligo) doubly-occupied orbitals from which two holes can be created in the calculation.
\item
[OCCUPIED]
~: (keywor
d
NOrb
\_
occ) doubly-occupied orbitals from which only one hole can be created in the calculation.
\item
[LIGO]
~: (keywor
d
NOrb
\_
ligo) doubly-occupied orbitals from which two holes can be created in the calculation.
These orbitals are typically the occupied ligand orbitals bridging the magnetic interactions.
\item
[ACTIVE]
~: (keywor
k
NOrb
\_
act) active orbitals. When the CAS keywor
k
is
\item
[ACTIVE]
~: (keywor
d
NOrb
\_
act) active orbitals. When the CAS keywor
d
is
given the the METHOD the whole Complete Active Space is generated. When the
SAS keywor
k
is given the the METHOD only a selection of determinants within the CAS is generated~:
SAS keywor
d
is given the the METHOD only a selection of determinants within the CAS is generated~:
\begin{itemize}
\item
all determinants required for building the
$
S
^
2
,
\,
S
_
z
$
spin configurations associated with each configuration provided in Ref0,
\item
all single excitations within the CAS on each configuration provided
in Ref0, and their associated determinants required for the associated
$
S
^
2
,
\,
S
_
z
$
spin configurations.
\end{itemize}
\item
[LIGV]
~: (keywor
k
NOrb
\_
ligv) virtual orbitals on which two partic
u
les can be created in the calculation.
\item
[LIGV]
~: (keywor
d
NOrb
\_
ligv) virtual orbitals on which two particles can be created in the calculation.
These orbitals are typically the virtual ligand orbitals bridging the magnetic interactions.
\item
[VIRTUAL]
~: (keywor
k
NOrb
\_
virt) virtual orbitals on which one partic
u
le can be created in the calculation.
\item
[DELETED]
~: (keywor
k
NOrb
\_
del) virtual orbitals deleted in the
\item
[VIRTUAL]
~: (keywor
d
NOrb
\_
virt) virtual orbitals on which one particle can be created in the calculation.
\item
[DELETED]
~: (keywor
d
NOrb
\_
del) virtual orbitals deleted in the
calculation. In the present version this number should be the same as in
motra.
\end{description}
\subsection
{
The different methods
}
The different types of calculations can be done with a proper combination
the
the keyword METHOD (
A
CS or SAS + DDCI or S) and the setting of the different class of orbitals.
The different types of calculations can be done with a proper combination
the keyword METHOD (C
A
S or SAS +
S,
DDCI or S
D
) and the setting of the different class of orbitals.
For instance
\\
[2ex]
\begin{tabular}
{
l|l|ccccccc
}
\hline
\hline
...
...
@@ -88,8 +88,8 @@ For instance \\[2ex]
\end{tabular}
\subsection
{
The determinant classes
}
The
\sass\
code partition the determinants into 9 classes, defined from the
number of holes in the OCCUP
P
IED or LIGO and the number of partic
u
les in the LIGV or VIRTUAL classes of orbitals.
The
\sass\
code partition
s
the determinants into 9 classes, defined from the
number of holes in the OCCUPIED or LIGO and the number of particles in the LIGV or VIRTUAL classes of orbitals.
{
\small
\begin{minipage}
[t]
{
0.490
\linewidth
}
...
...
@@ -107,7 +107,7 @@ $D_{00}$ & 0 & 0 & n & 0 & 0 \\
&
1
&
0
&
n
&
0
&
1
\\
\hline
%
\multirow
{
4
}{
*
}{$
D
_
0
^
2
$}
&
0
&
2
&
n
&
2
&
0
\\
\multirow
{
4
}{
*
}{$
D
_
{
02
}
$}
&
0
&
2
&
n
&
2
&
0
\\
&
0
&
2
&
n
&
1
&
1
\\
&
1
&
1
&
n
&
2
&
0
\\
&
1
&
1
&
n
&
1
&
1
\\
...
...
This diff is collapsed.
Click to expand it.
doc/input.tex
+
90
−
41
View file @
ece3e359
...
...
@@ -2,13 +2,13 @@
The files required by the
\sass
code are the following.
\begin{filelist}
\item
[INPUT]
~: the input file
\item
[prefix.ref0]
: the
{
\sc
ref0
}
short list of determinants.
From each
determinant
in
\file
{
prefix.ref0
}
all
other determinants to
get the desired
spin configurations will be
generated
.
\item
[prefix.ref0]
: the
{
\sc
ref0
}
short list of determinants.
Only one
determinant
per spin configuration is needed. All the
other determinants to
get the desired
spin configurations will be
automatically generated to get the complete Ref0
.
\item
[prefix.TraOne]
: the
\file
{
TraOne
}
frile issued from
\program
{
motra
}
.
\item
[prefix.TraInt]
: the
\file
{
TraInt
}
frile issued from
\program
{
motra
}
.
\item
[prefix.
restart
]
:
(optional) the wave-function file f
or restarts.
\devonly
{
\item
[prefix.mat]
: (optional) the Hamiltonian matrix for lreadHmat = .true..
}
\item
[prefix.
guess
]
: (optional) the wave-function file f
rom a previous
calculation for a restart.
\end{filelist}
...
...
@@ -17,11 +17,11 @@ The files required by the \sass code are the following.
The files generated by the code are
\begin{filelist}
\item
[prefix.out]
: the output file.
\item
[prefix.det]
: (optional) the list of determinants in human read
i
ble
\item
[prefix.det]
: (optional) the list of determinants in human read
a
ble
format.
\item
[prefix.bdet]
: the list of determinants in binary format.
\item
[prefix.sass]
: sass information file.
\item
[prefix.restart]
: the wave-function file
for restarts
.
\item
[prefix.restart]
: the wave-function file.
\devonly
{
\item
[prefix.mat]
: (optional, if --nogen and --build-type=Debug) the Hamiltonian matrix.
\item
[prefix.mat2]
: (optional, if --nogen and --build-type=Debug)) the Hamiltonian matrix (i, j
elm(i,j) format
...
...
@@ -55,37 +55,74 @@ The required namelists are the following ones \vspace*{-2.5ex}
\end{itemize}
\begin{description}
\itemsep
3ex
\item
[SassInp]
~: dedicated to general information
s
.
\item
[SassInp]
~: dedicated to general information.
\begin{keywordlist}
\item
[prefix]
: prefix for all code files except
\file
{
INPUT
}
.
\item
[prefix]
: prefix for all code files except
\file
{
INPUT
}
.
\item
[print\_det]
: (optional, default
\ftncode
{
.false.
}
) to print the
determinants list in
\file
{
prefix.det
}
.
\item
[iprint]
: (optional, default
\ftncode
{
0
}
) printinng options.
\item
[iprint]
: (optional, default
\ftncode
{
0
}
) printing options.
\begin{itemize}
\item
\ftncode
{
0
}
: no debug print
\item
\ftncode
{
1
}
: print individual block timings
\item
\ftncode
{
2
}
: print the Fock matrix
\end{itemize}
\item
[method]
: (optional, default
\ftncode
{
SAS+S
}
) method for determinant generation.
The keyword
\keyword
{
method
}
is compose of two parts. The fist part can be
\begin{itemize}
\item
\keyword
{
SAS+S
}
: SASS method.
\item
\keyword
{
CAS+S
}
: complete active space + single excitations on all
determinants of the CAS.
\item
\keyword
{
CAS+SD
}
: complete active space + single and double excitations on all
determinants of the CAS.
\item
\keyword
{
CAS+DDCI
}
: complete active space + single and double
excitations belonging to the difference dedicated configuration
interaction method.
\item
\keyword
{
SAS
}
~: for a selection of spin configurations in the Ref0,
\item
\keyword
{
CAS
}
~: for a complete CAS in the Ref0.
\end{itemize}
and the second part that can be
\begin{itemize}
\item
\keyword
{
+S
}
for single excitations on top of the reference
determinants. The occupied orbitals should be in the
\ftncode
{
Occ
}
and the
virtual one in the
\ftncode
{
Virt
}
classes.
\item
\keyword
{
+SD
}
for single and double excitations on top of the
reference determinant. Note that the occupied orbitals should be in the
\ftncode
{
Ligo
}
and the virtual one in the
\ftncode
{
Ligv
}
classes.
\item
\keyword
{
+DDCI
}
for a selection of the single and double excitations
(according to the DDCI method) on top of the reference determinant. Note
that the occupied orbitals should be in the
\ftncode
{
Ligo
}
and the virtual
one in the
\ftncode
{
Ligv
}
classes.
\end{itemize}
\begin{itemize}
% \item \keyword{SAS+S} : SASS method.
% \item \keyword{CAS+S} : complete active space + single excitations on all
% determinants of the CAS.
% \item \keyword{CAS+SD} : complete active space + single and double excitations on all
% determinants of the CAS.
% \item \keyword{CAS+DDCI} : complete active space + single and double
% excitations belonging to the difference dedicated configuration
% interaction method.
\end{itemize}
\item
[sizebatch]
: (optional, default
\ftncode
{
40
}
) size of blocks for MPI
calculations. Recommended size for large calculations~=
\ftncode
{
number of OpenMP threads
}
.
calculations. Recommended size for large calculations~=
\ftncode
{
number of OpenMP threads
}
.
\item
[restart]
: (optional, default
\ftncode
{
.false.
}
) to restart a
calculation from a previous job, file
\file
{
prefix.restart
}
from the old
calculation needs to be present. Carefull the
\file
{
prefix.restart
}
file
is overwritten.
calculation from a previous job. The keyword
\keyword
{
method
}
, the spin
state and the setting of the orbitals in the different classes should be
identical between the two calculations. The file
\file
{
prefix.restart
}
from the old
calculation should be provided as
\file
{
prefix.guess
}
.
\\
Note that the number of required vectors does not need to be identical
between the two calculations.
\\
This option can be used either to converge unconverged vectors (or
converge them to a higher accuracy, see
\keyword
{
nconv
}
keyword below), or
to require a larger number of vectors. Only the vectors reputed as not
converged will be converged ( see
\keyword
{
nconv
}
keyword below).
\\
%
\devonly
{
\item
[prefix.mat]
:
(optional) the Hamiltonian matrix for lreadHmat = .true..
}
\item
[mem\_reduction]
: (optional, default
\ftncode
{
.false.
}
) turn on/off the
memory reduction which
saves intermediate vectors to disk and
compute the
pair of off-diagonal blocs independently to save memory. Gives a 30-40
\%
memory reduction which compute
s
the
pair of off-diagonal bloc
k
s independently to save memory. Gives a 30-40
\%
gain in memory at the cost of an increased CPU time.
\devonly
{
...
...
@@ -104,7 +141,7 @@ The required namelists are the following ones \vspace*{-2.5ex}
\devonly
{
\item
[lreadHmat]
: ( optional, default
\ftncode
{
.false.
}
) Read
the Hamiltonian matri
ce
on disk -- to be used with
the Hamiltonian matri
x
on disk -- to be used with
\ftncode
{
lexplicitHmat
}
to compare both matrices.
}
\devonly
{
...
...
@@ -130,7 +167,7 @@ The required namelists are the following ones \vspace*{-2.5ex}
}
\end{keywordlist}
Typical ex
e
mple.
Typical ex
a
mple.
\begin{shell}
&
sassinp
prefix="cuo",
...
...
@@ -139,18 +176,19 @@ The required namelists are the following ones \vspace*{-2.5ex}
&
end
\end{shell}
\bigskip
\item
[InfoMolcasInp]
~: dedicated to provide information
s
on group symmetry,
\item
[InfoMolcasInp]
~: dedicated to provide information on group symmetry,
usually contained in the
\program
{
molcas
}
\file
{
RunFile
}
.
\begin{keywordlist}
\item
[NIrrep]
: number of irreducible representations in the symmetry
group.
group.
As symmetry is not yet implemented it should be 1.
\item
[Ntot]
: total number of orbitals.
\item
[iIrTb]
: group multiplication table.
\item
[iChTb]
: group character table.
\item
[iIrTb]
: group multiplication table.
As symmetry is not yet implemented it should be 1.
\item
[iChTb]
: group character table.
As symmetry is not yet implemented it should be 1.
\end{keywordlist}
Typical ex
e
mple
.
Typical ex
a
mple
as follows.
\begin{shell}
&
infomolcasinp
nirrep=1,
...
...
@@ -160,7 +198,7 @@ The required namelists are the following ones \vspace*{-2.5ex}
&
end
\end{shell}
\bigskip
\item
[OrbInp]
~: dedicated to orbitals information.
\begin{keywordlist}
...
...
@@ -172,7 +210,7 @@ The required namelists are the following ones \vspace*{-2.5ex}
\item
[Norb\_virt]
: vector, number of virtual orbitals.
\item
[NOrb\_del]
: vector, number of deleted orbitals.
\end{keywordlist}
Typical ex
e
mple.
Typical ex
a
mple.
\begin{shell}
&
orbinp
norb
_
gel = 2,
...
...
@@ -186,20 +224,23 @@ The required namelists are the following ones \vspace*{-2.5ex}
\end{shell}
\bigskip
\item
[VecInp]
~: dedicated to information on the seaked vectors.
\item
[VecInp]
~: dedicated to information on the sought vectors.
\begin{keywordlist}
\item
[NRef0]
: number of
{
\sc
ref0
}
determinants to be read in
\file
{
prefix.ref0
}
.
\item
[NElact]
: number of active/magnetic electrons.
\item
[NVec]
: number of desired eigenstates.
\item
[Stot]
:
$
2
S
+
1
$
,
$
S
$
spin of the seaked states (default
\item
[NConv]
: (only when the keyword
\keyword
{
restart
}
is set. Optional,
Default read in
\file
{
prefix.guess
}
file) Defines the number of vectors
reputed to be converged. Overwrites the value read in
\file
{
prefix.guess
}
.
\item
[Stot]
:
$
2
S
+
1
$
,
$
S
$
spin of the sought states (default
\keyword
{
stot
}
=1). Used only to generate the complete
{
\sc
ref0
}
determinants list.
\item
[Sz]
:
$
2
S
_
z
$
, the spin sector in wich the diagonalisation takes place.
\item
[Sz]
:
$
2
S
_
z
$
, the spin sector in w
h
ich the diagonalisation takes place.
\item
[vec\_irrep]
: (default 1) the irreducible representation of the
s
eaked
vectors.
s
ought
vectors.
As symmetry is not yet implemented it should be 1.
\end{keywordlist}
Typical ex
e
mple.
Typical ex
a
mple.
\begin{shell}
&
vecinp
stot=1,
...
...
@@ -211,6 +252,8 @@ The required namelists are the following ones \vspace*{-2.5ex}
&
end
\end{shell}
\bigskip
\item
[DavidInp]
~: (experts) dedicated to the Davidson procedure fine tuning.
\begin{keywordlist}
...
...
@@ -225,7 +268,7 @@ The required namelists are the following ones \vspace*{-2.5ex}
\item
[tol\_norm]
: (optional, default
\ftncode
{$
10
^{
-
15
}$}
) normalisation maximum error.
\item
[tol\_conv]
: (optional, default
\ftncode
{$
10
^{
-
8
}$}
) convergence criterium (energy
equivalent).
\item
[iter0]
: (optional, default
\ftncode
{
0
}
) last iteration
number
of the previous
\item
[iter0]
: (optional, default
\ftncode
{
0
}
)
number of the
last iteration of the previous
run in case of a restart.
\item
[conv\_ener]
: (optional, default
\ftncode
{
.false.
}
) activate the convergence on
energy in addition to vectors.
...
...
@@ -235,12 +278,17 @@ The required namelists are the following ones \vspace*{-2.5ex}
and in
\file
{
fort.666
}
)
}
\end{keywordlist}
Typical ex
e
mple.
Typical ex
a
mple.
\begin{shell}
&
davidinp
&
end
\end{shell}
\bigskip
\item
[PropInp]
~: should be present for the
\file
{
prefix.sass
}
and
\file
{
prefix.bdet
}
files (needed for the properties
\program
{
prop
}
code) to
be printed. See the
\program
{
PROP
}
input section.
\end{description}
...
...
@@ -254,3 +302,4 @@ The required namelists are the following ones \vspace*{-2.5ex}
%%% mode: latex
%%% TeX-master: "user_manual"
%%% End:
This diff is collapsed.
Click to expand it.
doc/inputprop.tex
+
5
−
5
View file @
ece3e359
The
\program
{
\prop
}
computes properties from the wave functions issued from the
The
\program
{
\prop
}
code
computes properties from the wave functions issued from the
\program
{
\sass
}
code.
It always prints out the projection of the
\program
{
\sass
}
wave functions on
the
CAS
.
the
reference determinants
.
This is presently the only property implemented.
%
This is presently the only property implemented.
\subsection
{
Input files
}
The files required by the
\program
{
\prop
}
code are the following.
...
...
@@ -28,7 +28,7 @@ The files generated by the code are
\subsection
{
The
\file
{
INPUT
}
File
}
This file is divided in several Fortran namelists. The same namelists as for
the
\program
{
\sass
}
calculation and an additinal namelist specific for properties
the
\program
{
\sass
}
calculation and an additi
o
nal namelist specific for properties
calculations.
\begin{description}
\itemsep
3ex
...
...
@@ -70,7 +70,7 @@ calculations.
on the Ref1 space
\\
\keyword
{
lcoef
}
: printing of the
\program
{
\sass
}
wave functions
coefficients larger than 0.05.
\\
\keyword
{
dens2
}
: two-partic
u
les density matrix calculation.
\keyword
{
dens2
}
: two-particles density matrix calculation.
}
\item
[seuilcoef]
: threshold on the coefficients
...
...
This diff is collapsed.
Click to expand it.
doc/perf.tex
+
5
−
5
View file @
ece3e359
...
...
@@ -7,19 +7,19 @@ $D_{\text{Nel}}^{\text{Nexc}}$, where \verb|Nel| is the number of additional
electrons in the active part with respect to the
{
\sc
Ref0
}
configurations,
and
\verb
|
Nexc
|
is the number of additional excitations outside of the active
space. The
\program
{
\sass
}
code has both MPI and OpenMP parallelization
driven both by integral
and
determinant blocks. The MPI paralleli
s
ation is
done on the pair integral-kind~/~determinant-block. When the determinant
blocks are very large, it is possible to divide the calculation into smaller
driven both by integral
,
determinant blocks
and spin cases
. The MPI paralleli
z
ation is
done on the pair integral-kind~/~determinant-block
/spin-case
. When the determinant
blocks
/spin-cases
are very large, it is possible to divide the calculation into smaller
MPI parts by batching the determinants. However, the gain is not systematic as
the integrals are read from disk for each MPI process and the overhead can be
large.
Within each MPI process an OpenMP paralleli
s
ation is done on the outer particle or
Within each MPI process an OpenMP paralleli
z
ation is done on the outer particle or
hole loop.
For an optimal use of the code the user should adjust the number of MPI
pr
e
cesses, OpenMP threads and the size of the batches according to her/his
pr
o
cesses, OpenMP threads and the size of the batches according to her/his
problem and computer system. In order to guide the user for such choices we provide below
performance testing for the most typical cases. These data are taken from ref.~
\cite
{
p:relaxse
}
.
...
...
This diff is collapsed.
Click to expand it.
doc/user_manual.pdf
+
0
−
0
View file @
ece3e359
No preview for this file type
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment