From e02d674d3bd2ed18421c479c715cc092a682b9c2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Mar 2026 19:58:36 +0000 Subject: [PATCH 1/4] Initial plan From 55a0abc558c60665230a0cfe1ef4e22d60ea8825 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Mar 2026 20:02:29 +0000 Subject: [PATCH 2/4] Move absbc to per-iteration loop with density recomputation Co-authored-by: kylegodbey <5806808+kylegodbey@users.noreply.github.com> --- Code/dynamic.f90 | 18 +++++++++++++++++- Code/params.mod | Bin 0 -> 1035 bytes 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 Code/params.mod diff --git a/Code/dynamic.f90 b/Code/dynamic.f90 index e40306b..ce2b241 100644 --- a/Code/dynamic.f90 +++ b/Code/dynamic.f90 @@ -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 @@ -282,6 +281,23 @@ SUBROUTINE dynamichf !$OMP END PARALLEL DO ! sum up over nodes IF(tmpi) CALL collect_densities + ! Apply absorbing boundary conditions and recompute densities + IF(nabsorb > 0) THEN + CALL absbc(nabsorb,iter,nt,time) + rho=0.0D0 + tau=0.0D0 + current=0.0D0 + sdens=0.0D0 + sodens=0.0D0 + !$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 diff --git a/Code/params.mod b/Code/params.mod new file mode 100644 index 0000000000000000000000000000000000000000..577835ac9b4a5228e8ab45f169d99c87ab261802 GIT binary patch literal 1035 zcmV+m1oZnKiwFP!000001Kn9obDKyIz0a?h8}cEk;ZxErtW3PBwUG-;*~&?UVTh>} zphb9{{QG@?_y__;W~~iT$u3XhDba7b`@NZ-n~w`?Y3U{nBKLX2=|4Q)`B6v(Q5C2Y zb35TK_2MX?TRXOc-Ft7!$Y^v$-{OZ9gDZkz%dbQQCko+{=Wn<`h1>@W1S-r|?Lqb_?5RY8O2#`VfN$bbB?=H|nE z_I(A^sqW*-oGs@Ilj@eGe_k(ESfTZ`ac`K{hB^D3J4H?-M>yR;0VUmS{qQoBN5;Iw ziJmv-soc}~vCbtj?h%&Qg&ous8uHfmR5EkV2t-Ce+(z2 zI&s6C9-LaSJgf>jEHOWKVI Date: Wed, 11 Mar 2026 20:02:50 +0000 Subject: [PATCH 3/4] Remove params.mod build artifact and add .gitignore for Code directory Co-authored-by: kylegodbey <5806808+kylegodbey@users.noreply.github.com> --- Code/.gitignore | 1 + Code/params.mod | Bin 1035 -> 0 bytes 2 files changed, 1 insertion(+) create mode 100644 Code/.gitignore delete mode 100644 Code/params.mod diff --git a/Code/.gitignore b/Code/.gitignore new file mode 100644 index 0000000..63a7748 --- /dev/null +++ b/Code/.gitignore @@ -0,0 +1 @@ +*.mod diff --git a/Code/params.mod b/Code/params.mod deleted file mode 100644 index 577835ac9b4a5228e8ab45f169d99c87ab261802..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmV+m1oZnKiwFP!000001Kn9obDKyIz0a?h8}cEk;ZxErtW3PBwUG-;*~&?UVTh>} zphb9{{QG@?_y__;W~~iT$u3XhDba7b`@NZ-n~w`?Y3U{nBKLX2=|4Q)`B6v(Q5C2Y zb35TK_2MX?TRXOc-Ft7!$Y^v$-{OZ9gDZkz%dbQQCko+{=Wn<`h1>@W1S-r|?Lqb_?5RY8O2#`VfN$bbB?=H|nE z_I(A^sqW*-oGs@Ilj@eGe_k(ESfTZ`ac`K{hB^D3J4H?-M>yR;0VUmS{qQoBN5;Iw ziJmv-soc}~vCbtj?h%&Qg&ous8uHfmR5EkV2t-Ce+(z2 zI&s6C9-LaSJgf>jEHOWKVI Date: Wed, 11 Mar 2026 20:21:54 +0000 Subject: [PATCH 4/4] Avoid double density computation when nabsorb > 0 Co-authored-by: kylegodbey <5806808+kylegodbey@users.noreply.github.com> --- Code/dynamic.f90 | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/Code/dynamic.f90 b/Code/dynamic.f90 index ce2b241..1c714c9 100644 --- a/Code/dynamic.f90 +++ b/Code/dynamic.f90 @@ -268,27 +268,22 @@ 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 - ! Apply absorbing boundary conditions and recompute 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) - rho=0.0D0 - tau=0.0D0 - current=0.0D0 - sdens=0.0D0 - sodens=0.0D0 !$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(nst) SCHEDULE(STATIC) & !$OMP REDUCTION(+:rho,tau,current,sdens,sodens) DO nst=1,nstloc