Skip to content
Snippets Groups Projects
Commit afc94aa4 authored by Elisa Rebolini's avatar Elisa Rebolini
Browse files

Merge branch 'master' into dev/prop

parents 4fc77b78 714f713e
Branches master
No related tags found
1 merge request!5Implementation of the density matrix
Pipeline #13619 passed
......@@ -2,7 +2,7 @@ set(RELAXSE_SOURCES_prop
src/proprietes.F90
src/lect_data_prop.F90
src/def_files_prop.F90
src/init_prop.F90
# src/init_prop.F90
src/info_prop.F90
)
......
......@@ -84,11 +84,6 @@ subroutine def_files(prog_info)
file_bmat = "bmat" !Hamiltonian matrix in binary format
file_mat = "mat" !Hamiltonian matrix
file_mat2 = "mat2" !Hamiltonian matrix with indices
!file_hcore = "hcore"
!file_cipci = "ref_cipci"
!file_rho = "rho" ! Density matrix
!file_infomolcas = "info"
!!$-----
!!$----- Transferts de donnes depuis Molcas ou autre
......@@ -174,12 +169,6 @@ subroutine def_files(prog_info)
open (f_mat,file=prog_info%prefix(1:n)//"."//file_mat,form="formatted")
open (f_mat2,file=prog_info%prefix(1:n)//"."//file_mat2,form="formatted")
open (f_bmat,file=prog_info%prefix(1:n)//"."//file_bmat,form="unformatted")
!!$ if (prog_info%prt_cipci) then
!!$ open (f_cipci,file=prog_info%prefix(1:n)//"."//file_cipci, &
!!$ form="formatted")
!!$ end if
if (prog_info%id_cpu.eq.0) then
if (prog_info%iprint .gt. 1) then
......@@ -194,9 +183,6 @@ subroutine def_files(prog_info)
write(f_output,9001) file_mat2, prog_info%prefix(1:n)//"."//file_mat2
write(f_output,9001) file_bmat, prog_info%prefix(1:n)//"."//file_bmat
!!$ if (prog_info%prt_cipci) then
!!$ write(f_output,9001) file_cipci, prog_info%prefix(1:n)//"."//file_cipci
!!$ endif
endif
else
if (prog_info%iprint .gt. 1) then
......@@ -211,9 +197,6 @@ subroutine def_files(prog_info)
open (f_mat,file=file_mat,form="formatted")
open (f_mat2,file=file_mat2,form="formatted")
open (f_bmat,file=file_bmat,form="unformatted")
!!$ if (prog_info%prt_cipci) then
!!$ open (f_cipci,file=file_cipci,form="formatted")
!!$ endif
if (prog_info%id_cpu.eq.0) then
if (prog_info%iprint .gt. 1) then
......@@ -228,9 +211,6 @@ subroutine def_files(prog_info)
write(f_output,9001) file_mat2, file_mat2
write(f_output,9001) file_bmat, file_bmat
!!$ if (prog_info%Yprefix) then
!!$ write(f_output,9001) file_cipci, file_cipci
!!$ endif
endif
end if
......
......@@ -30,6 +30,8 @@
Module Info_prop
use dimensions
use info
use typedet
implicit none
type, public :: prop_infotype
......@@ -41,4 +43,77 @@ Module Info_prop
Real (KIND=kd_dble) :: seuilcoef
end type prop_infotype
contains
subroutine init_prop(g_info, prog_info, o_info, v_info, det_info, sym_info, prop_info)
! use deter
!!$ -------- Donnes locales -----------------------------------
implicit none
type(g_infotype), intent(inout) :: g_info
type(prog_infotype), intent(out) :: prog_info
type(o_infotype), intent(inout) :: o_info
type(v_infotype), intent(inout) :: v_info
type(det_infotype), intent(inout) :: det_info
type(sym_infotype), intent(inout) :: sym_info
type(prop_infotype), intent(inout) :: prop_info
!!$============================================================
!!$ -------- Code ---------------------------------------------
!!$-----
!!$----- Initialisations
!!$-----
! g_info
g_info%nelact = 0
g_info%nirrep = 1
g_info%na = 0
g_info%nb = 0
!prog_info
call init_prog(prog_info)
! o_info
o_info%norb_gel(:) = 0
o_info%norb_occ(:) = 0
o_info%norb_ligo(:) = 0
o_info%norb_act(:) = 0
o_info%norb_ligv(:) = 0
o_info%norb_virt(:) = 0
o_info%norb_del(:) = 0
o_info%norb(:,:) = 0
o_info%ngel = 0
o_info%nocc = 0
o_info%nligo= 0
o_info%nact = 0
o_info%nligv= 0
o_info%nvirt= 0
o_info%ndel = 0
o_info%ntot = 0
! v_info
v_info%stot = 1
v_info%sz = 0
v_info%vec_irrep = 1
v_info%nvec = 1
v_info%ncfspref0 = 0 !> @todo check if 0 or 1
! det_info
det_info%nref0 = 1
det_info%nref1 = 0
det_info%ndetM = 0
det_info%ndetcaslm = 0
det_info%ndet = 1
det_info%ndet1 = 0
det_info%nmonoref0 = 0
det_info%ndiref0 = 0
!sym_info
sym_info%iChTb(:,:) = 0
sym_info%iIrTb(:,:) = 0
!prop_info
prop_info%nprop = 0
prop_info%whichprop(1:nprop_max) = "xxxxx"
End Subroutine init_prop
end Module Info_prop
subroutine init(g_info, prog_info, o_info, v_info, &
det_info, ener_info, int_info, bdav_info, sym_info)
!!$ Initialisation des variables
!!$ -------- Donness globales ---------------------------------
use info
!!$ -------- Donnes locales -----------------------------------
implicit none
type(g_infotype), intent(inout) :: g_info
type(prog_infotype), intent(out) :: prog_info
type(o_infotype), intent(inout) :: o_info
!type(ord_infotype), intent(inout) :: ord_info
type(v_infotype), intent(inout) :: v_info
type(det_infotype), intent(inout) :: det_info
type(ener_infotype), intent(inout) :: ener_info
type(int_infotype), intent(inout) :: int_info
type(david_infotype), intent(inout):: bdav_info
type(sym_infotype), intent(inout) :: sym_info
!!$============================================================
!!$ -------- Code ---------------------------------------------
!!$-----
!!$----- Initialisations
!!$-----
! g_info
g_info%nelact = 0
g_info%nirrep = 1
g_info%na = 0
g_info%nb = 0
!prog_info
call init_prog(prog_info)
! o_info
o_info%norb_gel(:) = 0
o_info%norb_occ(:) = 0
o_info%norb_ligo(:) = 0
o_info%norb_act(:) = 0
o_info%norb_ligv(:) = 0
o_info%norb_virt(:) = 0
o_info%norb_del(:) = 0
o_info%norb(:,:) = 0
o_info%ngel = 0
o_info%nocc = 0
o_info%nligo= 0
o_info%nact = 0
o_info%nligv= 0
o_info%nvirt= 0
o_info%ndel = 0
o_info%ntot = 0
!ord_info
! v_info
v_info%stot = 1
v_info%sz = 0
v_info%vec_irrep = 1
v_info%nvec = 1
v_info%ncfspref0 = 0 !> @todo check if 0 or 1
! det_info
det_info%nref0 = 1
det_info%nref1 = 0
det_info%ndetM = 0
det_info%ndetcaslm = 0
det_info%ndet = 1
det_info%ndet1 = 0
det_info%nmonoref0 = 0
det_info%ndiref0 = 0
!sym_info
sym_info%iChTb(:,:) = 0
sym_info%iIrTb(:,:) = 0
! int_info
int_info%n_1int = 0
int_info%n_oooo = 0
int_info%n_aaaa = 0
int_info%n_aaao = 0
!int_info%n_aoaa = 0
int_info%n_aaoo = 0
int_info%n_aoao = 0
int_info%n_aooo = 0
int_info%n_vooo = 0
int_info%n_vaoo = 0
int_info%n_voao = 0
int_info%n_vaao = 0
int_info%n_voaa = 0
int_info%n_vaaa = 0
int_info%n_vvoo = 0
int_info%n_vovo = 0
int_info%n_vvao = 0
int_info%n_vavo = 0
!int_info%n_vova = 0
int_info%n_vvaa = 0
int_info%n_vava = 0
int_info%n_vvvo = 0
int_info%n_vvva = 0
int_info%n_vvvv = 0
int_info%n_gint = 0
int_info%n_2int = 0
int_info%nintkind = 0
int_info%CASS_nintkind = 21
allocate(int_info%CASS_intkind(int_info%CASS_nintkind))
int_info%CASS_intkind(:) &
= (/ 'fock', 'aaaa', 'aaao', 'vaaa', 'aaoo', 'vaao', 'vvaa','vaoo', &
'vvao','vvoo', 'vava','vvvo','vvva','vvvv','oooo','vovo','aooo','vavo',&
'vooo','aoao','voao'/)
! ener_info
ener_info%potnuc = 0.d0
ener_info%Ecoeur = 0.d0
! bdav_info
bdav_info%Sizeheff = 10
bdav_info%NitDavid = 100
bdav_info%tol_orth = 1.d-15
bdav_info%tol_norm = 1.d-12
End Subroutine init
subroutine init_prog(prog_info)
use info
implicit none
type(prog_infotype), intent(inout) :: prog_info
! prog_info
prog_info%Yprefix =.false.
prog_info%iprint = 0
prog_info%print_det = .false.
prog_info%prt_cipci = .false.
prog_info%methodAct = 'SAS'
prog_info%methodExc = 'S'
prog_info%method = 'SAS+S'
prog_info%prefix = ' '
prog_info%restart = .false.
prog_info%nb_cpu = 1
prog_info%id_cpu = 0
prog_info%nb_thread = 1
prog_info%lexplicit = .false.
prog_info%lreadHmat = .false.
prog_info%idiag = 1
end subroutine init_prog
!!-------------------------------------------------------
!!---- Relaxed Selected Excitation (RelaxSE)
!!-------------------------------------------------------
!!---- This file is part of RelaxSE
!!----
!!---- The RelaxSE project is distributed under LGPL. In agreement with the
!!---- Intergovernmental Convention of the ILL, this software cannot be used
!!---- in military applications.
!!----
!!---- Copyright (C) 2016-2021 Institut Laue-Langevin (ILL), Grenoble, FRANCE
!!---- Institut Neel - CNRS-UPR2940 (CNRS), Grenoble, FRANCE
!!----
!!---- Authors: Elisa REBOLINI (ILL) rebolini@ill.fr
!!---- Marie-Bernadette LEPETIT (CNRS) Marie-Bernadette.Lepetit@neel.cnrs.fr
!!----
!!---- RelaxSE is free software; you can redistribute it and/or
!!---- modify it under the terms of the GNU Lesser General Public
!!---- License as published by the Free Software Foundation; either
!!---- version 3.0 of the License, or (at your option) any later version.
!!----
!!---- RelaxSE is distributed in the hope that it will be useful,
!!---- but WITHOUT ANY WARRANTY; without even the implied warranty of
!!---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
!!---- Lesser General Public License for more details.
!!----
!!---- You should have received a copy of the GNU Lesser General Public
!!---- License along with this library; if not, see <http://www.gnu.org/licenses/>.
!!----
subroutine init_prop(g_info, prog_info, o_info, v_info, det_info, sym_info, prop_info)
!!$ Initialisation des variables
!!$ -------- Donness globales ---------------------------------
use dimensions
use info
use info_prop
use typedet
! use deter
!!$ -------- Donnes locales -----------------------------------
implicit none
type(g_infotype), intent(inout) :: g_info
type(prog_infotype), intent(out) :: prog_info
type(o_infotype), intent(inout) :: o_info
type(v_infotype), intent(inout) :: v_info
type(det_infotype), intent(inout) :: det_info
type(sym_infotype), intent(inout) :: sym_info
type(prop_infotype), intent(inout) :: prop_info
!!$============================================================
!!$ -------- Code ---------------------------------------------
!!$-----
!!$----- Initialisations
!!$-----
! g_info
g_info%nelact = 0
g_info%nirrep = 1
g_info%na = 0
g_info%nb = 0
!prog_info
call init_prog(prog_info)
! o_info
o_info%norb_gel(:) = 0
o_info%norb_occ(:) = 0
o_info%norb_ligo(:) = 0
o_info%norb_act(:) = 0
o_info%norb_ligv(:) = 0
o_info%norb_virt(:) = 0
o_info%norb_del(:) = 0
o_info%norb(:,:) = 0
o_info%ngel = 0
o_info%nocc = 0
o_info%nligo= 0
o_info%nact = 0
o_info%nligv= 0
o_info%nvirt= 0
o_info%ndel = 0
o_info%ntot = 0
! v_info
v_info%stot = 1
v_info%sz = 0
v_info%vec_irrep = 1
v_info%nvec = 1
v_info%ncfspref0 = 0 !> @todo check if 0 or 1
! det_info
det_info%nref0 = 1
det_info%nref1 = 0
det_info%ndetM = 0
det_info%ndetcaslm = 0
det_info%ndet = 1
det_info%ndet1 = 0
det_info%nmonoref0 = 0
det_info%ndiref0 = 0
!sym_info
sym_info%iChTb(:,:) = 0
sym_info%iIrTb(:,:) = 0
!prop_info
prop_info%nprop = 0
prop_info%whichprop(1:nprop_max) = "xxxxx"
End Subroutine init_prop
!$============================================================
!> @brief Read int_info types in binary file
!> @author MBL
!> @date juin 2021
!> @param
!> @param
!$============================================================
subroutine lire_intinfo(iunit,int_info)
use info
Implicit none
type(int_infotype), intent(out) :: int_info
integer, intent(in) :: iunit
read(iunit) int_info%n_1int, &
int_info%n_oooo , &
int_info%n_aaaa , &
int_info%n_aaao , &
int_info%n_aaoo , &
int_info%n_aoao , &
int_info%n_aooo , &
int_info%n_vooo , &
int_info%n_vaoo , &
int_info%n_voao , &
int_info%n_vaao , &
int_info%n_voaa , &
int_info%n_vaaa , &
int_info%n_vvoo , &
int_info%n_vovo , &
int_info%n_vvao , &
int_info%n_vavo , &
int_info%n_vvaa , &
int_info%n_vava , &
int_info%n_vvvo , &
int_info%n_vvva , &
int_info%n_vvvv , &
int_info%n_gint , &
int_info%n_2int , &
int_info%nintkind , &
int_info%CASS_nintkind
read(iunit) int_info%CASS_intkind(1:int_info%CASS_nintkind)
end subroutine lire_intinfo
......@@ -150,10 +150,10 @@ Program proprietes
!!$-----
if (prog_info%methodAct.eq.'cas') then
det_info%nref0 = comb(o_info%nact,g_info%na) * comb(o_info%nact,g_info%nb)
call deter_init(ref0, det_info%nref0)
call deter_init(ref0, det_info%nref0)
call gener_cas(ref0, prog_info, det_info, g_info, o_info)
else
call deter_init(ref0, det_info%nref0)
call deter_init(ref0, det_info%nref0)
call lect_ref0(ref0, prog_info, det_info, g_info, o_info, v_info)
end if
if (prog_info%id_cpu.eq.0) flush(f_output)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment