From 3974631b7255d87416ba83cccd99823c69e6e9a8 Mon Sep 17 00:00:00 2001 From: Shikhar Kumar Date: Wed, 10 Jul 2019 13:00:29 -0400 Subject: [PATCH] reduce err across threads, modify xsdata scripts --- scripts/openmc-make-test-data | 2 +- src/cmfd_solver.cpp | 10 +++++----- tools/ci/download-xs.sh | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/openmc-make-test-data b/scripts/openmc-make-test-data index a37a78fa9e..439dcde6a3 100755 --- a/scripts/openmc-make-test-data +++ b/scripts/openmc-make-test-data @@ -158,7 +158,7 @@ with tempfile.TemporaryDirectory() as tmpdir: print('Creating compressed archive...') test_tar = pwd / 'nndc_hdf5_test.tar.xz' with tarfile.open(str(test_tar), 'w:xz') as txz: - txz.add('nndc_hdf5') + txz.add(output_dir) # Change back to original directory os.chdir(str(pwd)) diff --git a/src/cmfd_solver.cpp b/src/cmfd_solver.cpp index c46ace3f73..472107d0cb 100644 --- a/src/cmfd_solver.cpp +++ b/src/cmfd_solver.cpp @@ -101,7 +101,7 @@ int cmfd_linsolver_1g(const double* A_data, const double* b, double* x, for (int irb = 0; irb < 2; irb++) { // Loop around matrix rows -#pragma omp parallel for + #pragma omp parallel for reduction (+:err) for (int irow = 0; irow < cmfd::dim; irow++) { int g, i, j, k; matrix_to_indices(irow, g, i, j, k); @@ -127,12 +127,13 @@ int cmfd_linsolver_1g(const double* A_data, const double* b, double* x, // Compute residual and update error double res = (tmpx[irow] - x[irow]) / tmpx[irow]; - err += res * res; + err = res * res; } } // Check convergence err = std::sqrt(err / cmfd::dim); + std::cout << err << "\n"; if (err < tol) return igs; @@ -168,7 +169,7 @@ int cmfd_linsolver_2g(const double* A_data, const double* b, double* x, for (int irb = 0; irb < 2; irb++) { // Loop around matrix rows -#pragma omp parallel for + #pragma omp parallel for reduction (+:err) for (int irow = 0; irow < cmfd::dim; irow+=2) { int g, i, j, k; matrix_to_indices(irow, g, i, j, k); @@ -219,7 +220,7 @@ int cmfd_linsolver_2g(const double* A_data, const double* b, double* x, // Compute residual and update error double res = (tmpx[irow] - x[irow]) / tmpx[irow]; - err += res * res; + err = res * res; } } @@ -257,7 +258,6 @@ int cmfd_linsolver_ng(const double* A_data, const double* b, double* x, std::vector tmpx {x, x+cmfd::dim}; // Loop around matrix rows -#pragma omp parallel for for (int irow = 0; irow < cmfd::dim; irow++) { // Get index of diagonal for current row int didx = get_diagonal_index(irow); diff --git a/tools/ci/download-xs.sh b/tools/ci/download-xs.sh index 07ade9c70f..e831d8215a 100755 --- a/tools/ci/download-xs.sh +++ b/tools/ci/download-xs.sh @@ -7,7 +7,7 @@ if [[ ! -e $HOME/nndc_hdf5/cross_sections.xml ]]; then fi # Download ENDF/B-VII.1 distribution -ENDF=$HOME/endf-b-vii.1/ +ENDF=$HOME/endf-b-vii.1 if [[ ! -d $ENDF/neutrons || ! -d $ENDF/photoat || ! -d $ENDF/atomic_relax ]]; then wget -q -O - https://anl.box.com/shared/static/4kd2gxnf4gtk4w1c8eua5fsua22kvgjb.xz | tar -C $HOME -xJ fi