From f3126147c72496e8e09cfa1d5644d33b0f712100 Mon Sep 17 00:00:00 2001 From: Jan at TU-Delft <J.W.Thorbecke@tudelft.nl> Date: Fri, 15 Mar 2019 13:51:53 +0100 Subject: [PATCH] primaries only application --- marchenko/marchenko_primaries.c | 75 ++++++++++----------------------- 1 file changed, 23 insertions(+), 52 deletions(-) diff --git a/marchenko/marchenko_primaries.c b/marchenko/marchenko_primaries.c index a8d2bad..608a344 100644 --- a/marchenko/marchenko_primaries.c +++ b/marchenko/marchenko_primaries.c @@ -425,6 +425,14 @@ int main (int argc, char **argv) G_d[l*nxs*nts+i*nts+j] = 0.0; } } + for (i = 0; i < npos; i++) { + j = 0; + ix = ixpos[i]; + f1min[l*nxs*nts+i*nts+j] = -DD[l*nxs*nts+ix*nts+j]; + for (j = 1; j < nts; j++) { + f1min[l*nxs*nts+i*nts+j] = -DD[l*nxs*nts+ix*nts+nts-j]; + } + } } memcpy(Ni, G_d, Nfoc*nxs*ntfft*sizeof(float)); @@ -455,77 +463,40 @@ int main (int argc, char **argv) } /* primaries only scheme */ - if (iter==0) { - /* apply muting for the acausal part */ + if (iter % 2 == 0) { /* even iterations: => f_1^-(t) */ + /* apply muting for the acausal part */ for (l = 0; l < Nfoc; l++) { for (i = 0; i < npos; i++) { - for (j = ii-shift; j < nts; j++) { + for (j = ii-shift; j < nts; j++) { Ni[l*nxs*nts+i*nts+j] = 0.0; } - for (j = 0; j < shift; j++) { - Ni[l*nxs*nts+i*nts+j] = 0.0; + for (j = 0; j < shift; j++) { + Ni[l*nxs*nts+i*nts+j] = 0.0; } } } } - else if (iter==1) { + else {/* odd iterations: => f_1^+(t) */ for (l = 0; l < Nfoc; l++) { for (i = 0; i < npos; i++) { j = 0; - ix = ixpos[i]; - f1min[l*nxs*nts+i*nts+j] = -DD[l*nxs*nts+ix*nts+j] - Ni[l*nxs*nts+i*nts+j]; + f1min[l*nxs*nts+i*nts+j] -= Ni[l*nxs*nts+i*nts+j]; for (j = 1; j < nts; j++) { - f1min[l*nxs*nts+i*nts+j] = -DD[l*nxs*nts+ix*nts+nts-j] - Ni[l*nxs*nts+i*nts+nts-j]; + f1min[l*nxs*nts+i*nts+j] -= Ni[l*nxs*nts+i*nts+nts-j]; } } } for (l = 0; l < Nfoc; l++) { for (i = 0; i < npos; i++) { - for (j = nts-shift; j < nts; j++) { - Ni[l*nxs*nts+i*nts+j] = 0.0; - } - for (j = 0; j < nts-ii+shift; j++) { - Ni[l*nxs*nts+i*nts+j] = 0.0; - } - } - } - } - else { - if (iter % 2 == 0) { /* even iterations: => f_1^-(t) */ - /*muting the acausal part */ - for (l = 0; l < Nfoc; l++) { - for (i = 0; i < npos; i++) { - for (j = ii-shift; j < nts; j++) { - Ni[l*nxs*nts+i*nts+j] = 0.0; - } - for (j = 0; j < shift; j++) { - Ni[l*nxs*nts+i*nts+j] = 0.0; - } - } - } - } - else {/* odd iterations: => f_1^+(t) */ - for (l = 0; l < Nfoc; l++) { - for (i = 0; i < npos; i++) { - j = 0; - f1min[l*nxs*nts+i*nts+j] -= Ni[l*nxs*nts+i*nts+j]; - for (j = 1; j < nts; j++) { - f1min[l*nxs*nts+i*nts+j] -= Ni[l*nxs*nts+i*nts+nts-j]; - } + for (j = nts-shift; j < nts; j++) { + Ni[l*nxs*nts+i*nts+j] = 0.0; } - } - for (l = 0; l < Nfoc; l++) { - for (i = 0; i < npos; i++) { - for (j = nts-shift; j < nts; j++) { - Ni[l*nxs*nts+i*nts+j] = 0.0; - } - for (j = 0; j < nts-ii+shift; j++) { - Ni[l*nxs*nts+i*nts+j] = 0.0; - } + for (j = 0; j < nts-ii+shift; j++) { + Ni[l*nxs*nts+i*nts+j] = 0.0; } } - } - } /* end else (iter!=0) branch */ + } + } /* end else (iter) branch */ t2 = wallclock_time(); tcopy += t2 - t3; @@ -543,7 +514,7 @@ int main (int argc, char **argv) if (verbose) { t3=wallclock_time(); tii=(t3-t1)*((float)(iend-istart)/(ii-istart+1.0))-(t3-t1); - vmess("Estimated compute time at sample %d = %.2f s.",ii, tii); + vmess("Remaining compute time at time-sample %d = %.2f s.",ii, tii); } } /* end of time iterations ii */ -- GitLab