init_real_time_calc_single Subroutine

public subroutine init_real_time_calc_single()




Source Code

    subroutine init_real_time_calc_single()
        use real_time_procs, only: get_tot_parts
        ! this routine takes care of the correct setup of the real-time
        ! calculation. like reading the popsfiles and preparing the start
        ! of the calculation and setting certain global variables
        implicit none
        character(*), parameter :: this_routine = "init_real_time_calc_single"

        integer :: ierr

        write(stdout, *) " Entering real-time FCIQMC initialisation "

        ! think about what variables have to be set for a succesful calc.

        ! also call the "normal" NECI setup routines to allow calculation
        call SetupParameters()

        ! for real-space hubbard, we conver to momentum operators if desired
        if (t_kspace_operators) call setup_momentum_operators()

        ! have to think about the the order about the above setup routines!
        ! within this Init a readpops is called
        ! this function already produces the correctly perturbed ground state
        call InitFCIMCCalcPar()

        ! also init pointer here, and think about what options and defaults
        ! should be set for a succsesfull init
        call init_fcimc_fn_pointers()

        ! setup the k-space hubbard if required (after pointers as some are
        ! overwritten
        if (t_k_space_hubbard) then
            call init_k_space_hubbard()
        end if
        ! then call the setup routine, which set all remaining needed quantities
        call setup_real_time_fciqmc()

        ! definetly read-in stored popsfile here.
        ! need to store both <y(0)| and also create a_j y(0)> during read-in!
!         call read_popsfile_real_time()
        ! actually the InitFCIMCCalcPar should do that now correctly already

        ! do an MPIbarrier here.. although don't quite know why
        call MPIBarrier(ierr)

        if (.not. tReadPops) call set_initial_global_data(TotWalkers, CurrentDets)

    end subroutine init_real_time_calc_single