Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
RelaxSE
RelaxSE-Code
Commits
ad1a6aed
Commit
ad1a6aed
authored
Jul 21, 2021
by
Marie bernadette Lepetit
Browse files
Merge branch 'dev/prop' of
https://code.ill.fr/relaxse/relaxse-code
into dev/prop
parents
403f611f
897edfb6
Pipeline
#10480
failed with stage
in 56 minutes and 13 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/spindetact.F90
View file @
ad1a6aed
...
@@ -550,13 +550,15 @@ contains
...
@@ -550,13 +550,15 @@ contains
tmp2
(:)
=
0
tmp2
(:)
=
0
iter1
=
0
iter1
=
0
iter2
=
0
iter2
=
0
!Iterate over the active det of list dlb
!Count the number of detb which connects with 1 or 2 differences
do
idetb
=
1
,
dlb
%
ndetcas
do
idetb
=
1
,
dlb
%
ndetcas
ndiff
=
count_diff
(
dla
%
elms
(
ideta
),
dlb
%
elms
(
idetb
),
o_info
%
nact
)
ndiff
=
count_diff
(
dla
%
elms
(
ideta
),
dlb
%
elms
(
idetb
),
o_info
%
nact
)
if
((
ndiff
+
deltaNel
)
.eq.
2
)
then
if
((
ndiff
+
deltaNel
)
.eq.
2
)
then
!CM1
iter1
=
iter1
+
1
iter1
=
iter1
+
1
tmp1
(
iter1
)
=
idetb
tmp1
(
iter1
)
=
idetb
else
if
((
ndiff
+
deltaNel
)
.eq.
4
)
then
else
if
((
ndiff
+
deltaNel
)
.eq.
4
)
then
!CM2
iter2
=
iter2
+
1
iter2
=
iter2
+
1
tmp2
(
iter2
)
=
idetb
tmp2
(
iter2
)
=
idetb
endif
endif
...
@@ -564,8 +566,10 @@ contains
...
@@ -564,8 +566,10 @@ contains
call
vec_init
(
dla
%
connect1
(
idlb
),
ideta
,
iter1
)
call
vec_init
(
dla
%
connect1
(
idlb
),
ideta
,
iter1
)
call
vec_init
(
dla
%
connect1orb
(
idlb
),
ideta
,
iter1
)
call
vec_init
(
dla
%
connect1orb
(
idlb
),
ideta
,
iter1
)
!Store the list of detb connecting with 1 diff CM1(deta)
if
(
iter1
.ne.
0
)
then
if
(
iter1
.ne.
0
)
then
dla
%
connect1
(
idlb
)
%
vl
(
ideta
)
%
p
%
elms
=
tmp1
(
1
:
iter1
)
dla
%
connect1
(
idlb
)
%
vl
(
ideta
)
%
p
%
elms
=
tmp1
(
1
:
iter1
)
!For each determinant connecting to deta, store the orbitals connecting in a type(connect) vec_storage.F90
do
idet
=
1
,
iter1
do
idet
=
1
,
iter1
idetb
=
tmp1
(
idet
)
idetb
=
tmp1
(
idet
)
call
fill_connect
(
dla
%
connect1orb
(
idlb
)
%
vl
(
ideta
)
%
p
%
elms
(
idet
)
%
p
,
&
call
fill_connect
(
dla
%
connect1orb
(
idlb
)
%
vl
(
ideta
)
%
p
%
elms
(
idet
)
%
p
,
&
...
@@ -575,10 +579,12 @@ contains
...
@@ -575,10 +579,12 @@ contains
call
vec_init
(
dla
%
connect2
(
idlb
),
ideta
,
iter2
)
call
vec_init
(
dla
%
connect2
(
idlb
),
ideta
,
iter2
)
call
vec_init
(
dla
%
connect2orb
(
idlb
),
ideta
,
iter2
)
call
vec_init
(
dla
%
connect2orb
(
idlb
),
ideta
,
iter2
)
!Store the list of detb connecting with 2 diff CM2(deta)
if
(
iter2
.ne.
0
)
then
if
(
iter2
.ne.
0
)
then
dla
%
connect2
(
idlb
)
%
vl
(
ideta
)
%
p
%
elms
=
tmp2
(
1
:
iter2
)
dla
%
connect2
(
idlb
)
%
vl
(
ideta
)
%
p
%
elms
=
tmp2
(
1
:
iter2
)
do
idet
=
1
,
iter2
do
idet
=
1
,
iter2
idetb
=
tmp2
(
idet
)
idetb
=
tmp2
(
idet
)
!For each determinant connecting to deta, store the orbitals connecting in a type(connect) vec_storage.F90
call
fill_connect
(
dla
%
connect2orb
(
idlb
)
%
vl
(
ideta
)
%
p
%
elms
(
idet
)
%
p
,
&
call
fill_connect
(
dla
%
connect2orb
(
idlb
)
%
vl
(
ideta
)
%
p
%
elms
(
idet
)
%
p
,
&
dla
%
elms
(
ideta
),
dlb
%
elms
(
idetb
),
no
,
nact
)
dla
%
elms
(
ideta
),
dlb
%
elms
(
idetb
),
no
,
nact
)
enddo
enddo
...
@@ -605,6 +611,9 @@ contains
...
@@ -605,6 +611,9 @@ contains
!> @param[in] nact Nb of active orbitals
!> @param[in] nact Nb of active orbitals
!> @param[out] nCM1 Nb of connecting detact
!> @param[out] nCM1 Nb of connecting detact
!> @param[out] detCM1 Indices of the connecting detact in rj
!> @param[out] detCM1 Indices of the connecting detact in rj
!> @param[out] detCM1orb (optional) Array of connection information for each CM1
!! which contains diffi, diffj, spindiffi, spindiffj, sign_act, Ndiffact_I, Ndiffact_J, nandIJ,
!! andIJ(:), spinandIJ(:)
!$==================================================================
!$==================================================================
subroutine
CM1_spindetact_list
(
ri
,
rj
,
idet
,
nact
,
nCM1
,
detCM1
,
detCM1orb
)
subroutine
CM1_spindetact_list
(
ri
,
rj
,
idet
,
nact
,
nCM1
,
detCM1
,
detCM1orb
)
type
(
spindetact_list
),
intent
(
in
)
::
ri
,
rj
type
(
spindetact_list
),
intent
(
in
)
::
ri
,
rj
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment