From 0be567a00a70b8054a371d960bb9be03dc9eb4f4 Mon Sep 17 00:00:00 2001 From: sjplimp Date: Wed, 9 Nov 2011 15:04:01 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@7225 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/fix_ave_histo.cpp | 92 ++++++++++++++++++++--------------------- src/fix_ave_time.cpp | 96 +++++++++++++++++++++---------------------- 2 files changed, 93 insertions(+), 95 deletions(-) diff --git a/src/fix_ave_histo.cpp b/src/fix_ave_histo.cpp index f7909ac258..e8b499ccd4 100644 --- a/src/fix_ave_histo.cpp +++ b/src/fix_ave_histo.cpp @@ -731,52 +731,50 @@ void FixAveHisto::end_of_step() // if ave = RUNNING, combine with all previous Nfreq timestep values // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values - if (ntimestep >= startstep) { - if (ave == ONE) { - stats_total[0] = stats[0]; - stats_total[1] = stats[1]; - stats_total[2] = stats[2]; - stats_total[3] = stats[3]; - for (i = 0; i < nbins; i++) bin_total[i] = bin[i]; - - } else if (ave == RUNNING) { - stats_total[0] += stats[0]; - stats_total[1] += stats[1]; - stats_total[2] = MIN(stats_total[2],stats[2]); - stats_total[3] = MAX(stats_total[3],stats[3]); - for (i = 0; i < nbins; i++) bin_total[i] += bin[i]; - - } else if (ave == WINDOW) { - stats_total[0] += stats[0]; - if (window_limit) stats_total[0] -= stats_list[iwindow][0]; - stats_list[iwindow][0] = stats[0]; - stats_total[1] += stats[1]; - if (window_limit) stats_total[1] -= stats_list[iwindow][1]; - stats_list[iwindow][1] = stats[1]; - - if (window_limit) m = nwindow; - else m = iwindow+1; - - stats_list[iwindow][2] = stats[2]; - stats_total[2] = stats_list[0][2]; - for (i = 1; i < m; i++) - stats_total[2] = MIN(stats_total[2],stats_list[i][2]); - stats_list[iwindow][3] = stats[3]; - stats_total[3] = stats_list[0][3]; - for (i = 1; i < m; i++) - stats_total[3] = MAX(stats_total[3],stats_list[i][3]); - - for (i = 0; i < nbins; i++) { - bin_total[i] += bin[i]; - if (window_limit) bin_total[i] -= bin_list[iwindow][i]; - bin_list[iwindow][i] = bin[i]; - } - - iwindow++; - if (iwindow == nwindow) { - iwindow = 0; - window_limit = 1; - } + if (ave == ONE) { + stats_total[0] = stats[0]; + stats_total[1] = stats[1]; + stats_total[2] = stats[2]; + stats_total[3] = stats[3]; + for (i = 0; i < nbins; i++) bin_total[i] = bin[i]; + + } else if (ave == RUNNING) { + stats_total[0] += stats[0]; + stats_total[1] += stats[1]; + stats_total[2] = MIN(stats_total[2],stats[2]); + stats_total[3] = MAX(stats_total[3],stats[3]); + for (i = 0; i < nbins; i++) bin_total[i] += bin[i]; + + } else if (ave == WINDOW) { + stats_total[0] += stats[0]; + if (window_limit) stats_total[0] -= stats_list[iwindow][0]; + stats_list[iwindow][0] = stats[0]; + stats_total[1] += stats[1]; + if (window_limit) stats_total[1] -= stats_list[iwindow][1]; + stats_list[iwindow][1] = stats[1]; + + if (window_limit) m = nwindow; + else m = iwindow+1; + + stats_list[iwindow][2] = stats[2]; + stats_total[2] = stats_list[0][2]; + for (i = 1; i < m; i++) + stats_total[2] = MIN(stats_total[2],stats_list[i][2]); + stats_list[iwindow][3] = stats[3]; + stats_total[3] = stats_list[0][3]; + for (i = 1; i < m; i++) + stats_total[3] = MAX(stats_total[3],stats_list[i][3]); + + for (i = 0; i < nbins; i++) { + bin_total[i] += bin[i]; + if (window_limit) bin_total[i] -= bin_list[iwindow][i]; + bin_list[iwindow][i] = bin[i]; + } + + iwindow++; + if (iwindow == nwindow) { + iwindow = 0; + window_limit = 1; } } @@ -979,11 +977,13 @@ void FixAveHisto::allocate_values(int n) calculate nvalid = next step on which end_of_step does something can be this timestep if multiple of nfreq and nrepeat = 1 else backup from next multiple of nfreq + startstep is lower bound on nfreq multiple ------------------------------------------------------------------------- */ bigint FixAveHisto::nextvalid() { bigint nvalid = (update->ntimestep/nfreq)*nfreq + nfreq; + while (nvalid < startstep) nvalid += nfreq; if (nvalid-nfreq == update->ntimestep && nrepeat == 1) nvalid = update->ntimestep; else diff --git a/src/fix_ave_time.cpp b/src/fix_ave_time.cpp index 6d93da8e60..52fa2bc076 100644 --- a/src/fix_ave_time.cpp +++ b/src/fix_ave_time.cpp @@ -593,32 +593,30 @@ void FixAveTime::invoke_scalar(bigint ntimestep) // if ave = RUNNING, combine with all previous Nfreq timestep values // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values - if (ntimestep >= startstep) { - if (ave == ONE) { - for (i = 0; i < nvalues; i++) vector_total[i] = vector[i]; - norm = 1; - - } else if (ave == RUNNING) { - for (i = 0; i < nvalues; i++) vector_total[i] += vector[i]; - norm++; - - } else if (ave == WINDOW) { - for (i = 0; i < nvalues; i++) { - vector_total[i] += vector[i]; - if (window_limit) vector_total[i] -= vector_list[iwindow][i]; - vector_list[iwindow][i] = vector[i]; - } - - iwindow++; - if (iwindow == nwindow) { - iwindow = 0; - window_limit = 1; - } - if (window_limit) norm = nwindow; - else norm = iwindow; + if (ave == ONE) { + for (i = 0; i < nvalues; i++) vector_total[i] = vector[i]; + norm = 1; + + } else if (ave == RUNNING) { + for (i = 0; i < nvalues; i++) vector_total[i] += vector[i]; + norm++; + + } else if (ave == WINDOW) { + for (i = 0; i < nvalues; i++) { + vector_total[i] += vector[i]; + if (window_limit) vector_total[i] -= vector_list[iwindow][i]; + vector_list[iwindow][i] = vector[i]; } + + iwindow++; + if (iwindow == nwindow) { + iwindow = 0; + window_limit = 1; + } + if (window_limit) norm = nwindow; + else norm = iwindow; } - + // insure any columns with offcol set are effectively set to last value for (i = 0; i < nvalues; i++) @@ -729,33 +727,31 @@ void FixAveTime::invoke_vector(bigint ntimestep) // if ave = RUNNING, combine with all previous Nfreq timestep values // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values - if (ntimestep >= startstep) { - if (ave == ONE) { - for (i = 0; i < nrows; i++) - for (j = 0; j < nvalues; j++) array_total[i][j] = array[i][j]; - norm = 1; - - } else if (ave == RUNNING) { - for (i = 0; i < nrows; i++) - for (j = 0; j < nvalues; j++) array_total[i][j] += array[i][j]; - norm++; - - } else if (ave == WINDOW) { - for (i = 0; i < nrows; i++) - for (j = 0; j < nvalues; j++) { - array_total[i][j] += array[i][j]; - if (window_limit) array_total[i][j] -= array_list[iwindow][i][j]; - array_list[iwindow][i][j] = array[i][j]; - } - - iwindow++; - if (iwindow == nwindow) { - iwindow = 0; - window_limit = 1; + if (ave == ONE) { + for (i = 0; i < nrows; i++) + for (j = 0; j < nvalues; j++) array_total[i][j] = array[i][j]; + norm = 1; + + } else if (ave == RUNNING) { + for (i = 0; i < nrows; i++) + for (j = 0; j < nvalues; j++) array_total[i][j] += array[i][j]; + norm++; + + } else if (ave == WINDOW) { + for (i = 0; i < nrows; i++) + for (j = 0; j < nvalues; j++) { + array_total[i][j] += array[i][j]; + if (window_limit) array_total[i][j] -= array_list[iwindow][i][j]; + array_list[iwindow][i][j] = array[i][j]; } - if (window_limit) norm = nwindow; - else norm = iwindow; + + iwindow++; + if (iwindow == nwindow) { + iwindow = 0; + window_limit = 1; } + if (window_limit) norm = nwindow; + else norm = iwindow; } // insure any columns with offcol set are effectively set to last value @@ -913,11 +909,13 @@ void FixAveTime::allocate_values(int n) calculate nvalid = next step on which end_of_step does something can be this timestep if multiple of nfreq and nrepeat = 1 else backup from next multiple of nfreq + startstep is lower bound on nfreq multiple ------------------------------------------------------------------------- */ bigint FixAveTime::nextvalid() { bigint nvalid = (update->ntimestep/nfreq)*nfreq + nfreq; + while (nvalid < startstep) nvalid += nfreq; if (nvalid-nfreq == update->ntimestep && nrepeat == 1) nvalid = update->ntimestep; else