Skip to content
Snippets Groups Projects
Commit 0c83614c authored by Doucet, Mathieu's avatar Doucet, Mathieu
Browse files

Parallelize some of the calculations. Re #1442

parent f9e2e906
No related branches found
No related tags found
No related merge requests found
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#include "MantidAlgorithms/CalculateTransmissionBeamSpreader.h" #include "MantidAlgorithms/CalculateTransmissionBeamSpreader.h"
#include "MantidAPI/WorkspaceValidators.h" #include "MantidAPI/WorkspaceValidators.h"
#include "MantidAPI/SpectraDetectorMap.h" #include "MantidAPI/SpectraDetectorMap.h"
#include <cmath>
namespace Mantid namespace Mantid
{ {
...@@ -109,11 +108,25 @@ void CalculateTransmissionBeamSpreader::exec() ...@@ -109,11 +108,25 @@ void CalculateTransmissionBeamSpreader::exec()
MatrixWorkspace_sptr direct_spreader_mon = this->extractSpectrum(direct_spreaderWS,indices[0]); MatrixWorkspace_sptr direct_spreader_mon = this->extractSpectrum(direct_spreaderWS,indices[0]);
// Sum the whole detector for each of the four data sets // Sum the whole detector for each of the four data sets
MatrixWorkspace_sptr sample_scatter_sum = this->sumSpectra(sample_scatterWS); MatrixWorkspace_sptr sample_scatter_sum;
MatrixWorkspace_sptr direct_scatter_sum = this->sumSpectra(direct_scatterWS); MatrixWorkspace_sptr direct_scatter_sum;
MatrixWorkspace_sptr sample_spreader_sum = this->sumSpectra(sample_spreaderWS); MatrixWorkspace_sptr sample_spreader_sum;
MatrixWorkspace_sptr direct_spreader_sum = this->sumSpectra(direct_spreaderWS); MatrixWorkspace_sptr direct_spreader_sum;
PRAGMA(omp parallel)
{
PRAGMA(omp sections nowait)
{
PRAGMA(omp section)
sample_scatter_sum = this->sumSpectra(sample_scatterWS);
PRAGMA(omp section)
direct_scatter_sum = this->sumSpectra(direct_scatterWS);
PRAGMA(omp section)
sample_spreader_sum = this->sumSpectra(sample_spreaderWS);
PRAGMA(omp section)
direct_spreader_sum = this->sumSpectra(direct_spreaderWS);
}
}
// Beam spreader transmission // Beam spreader transmission
MatrixWorkspace_sptr spreader_trans = WorkspaceFactory::Instance().create("WorkspaceSingleValue", 1, 1, 1); MatrixWorkspace_sptr spreader_trans = WorkspaceFactory::Instance().create("WorkspaceSingleValue", 1, 1, 1);
spreader_trans->setYUnit(""); spreader_trans->setYUnit("");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment