Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Code/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.mod
19 changes: 15 additions & 4 deletions Code/dynamic.f90
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,6 @@ SUBROUTINE dynamichf
!$OMP END PARALLEL DO
IF(tmpi) CALL collect_densities
! calculate mean fields and external fields
IF(nabsorb > 0) CALL absbc(nabsorb,iter,nt,time)
CALL skyrme
IF(text_timedep) CALL extfld(0.D0)
CALL tinfo
Expand Down Expand Up @@ -269,19 +268,31 @@ SUBROUTINE dynamichf
current=0.0D0
sdens=0.0D0
sodens=0.0D0
! propagate to end of step, accumulate densities
! propagate to end of step; accumulate densities only if no absorbing boundaries
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(nst,ps4) SCHEDULE(STATIC) &
!$OMP REDUCTION(+:rho,tau,current,sdens,sodens)
DO nst=1,nstloc
ps4=psi(:,:,:,:,nst)
CALL tstep(isospin(globalindex(nst)),mxpact,ps4)
CALL add_density(isospin(globalindex(nst)),wocc(globalindex(nst)), &
IF(nabsorb == 0) CALL add_density(isospin(globalindex(nst)),wocc(globalindex(nst)), &
ps4,rho,tau,current,sdens,sodens)
psi(:,:,:,:,nst)=ps4
ENDDO
!$OMP END PARALLEL DO
! sum up over nodes
IF(tmpi) CALL collect_densities
IF(nabsorb == 0 .AND. tmpi) CALL collect_densities
! Apply absorbing boundary conditions and compute densities from masked wavefunctions
IF(nabsorb > 0) THEN
CALL absbc(nabsorb,iter,nt,time)
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(nst) SCHEDULE(STATIC) &
!$OMP REDUCTION(+:rho,tau,current,sdens,sodens)
DO nst=1,nstloc
CALL add_density(isospin(globalindex(nst)),wocc(globalindex(nst)), &
psi(:,:,:,:,nst),rho,tau,current,sdens,sodens)
ENDDO
!$OMP END PARALLEL DO
IF(tmpi) CALL collect_densities
END IF
! Step 4: eliminate center-of-mass motion if desired
IF(mrescm/=0) THEN
IF(MOD(iter,mrescm)==0) THEN
Expand Down