From 7a0f028c997fe698973ab402c491ca4038ff53e1 Mon Sep 17 00:00:00 2001 From: Walter Van Herck <w.van.herck@fz-juelich.de> Date: Wed, 1 Feb 2017 16:36:04 +0100 Subject: [PATCH] Ensure that SimulationElements that are going to be added are always set (to zero if no calculation is done on a specific SimulationElement) --- Core/Computation/ParticleLayoutComputation.cpp | 8 +++++--- Core/Computation/SpecularComputation.cpp | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Core/Computation/ParticleLayoutComputation.cpp b/Core/Computation/ParticleLayoutComputation.cpp index e4d21fbd166..73590d66e31 100644 --- a/Core/Computation/ParticleLayoutComputation.cpp +++ b/Core/Computation/ParticleLayoutComputation.cpp @@ -50,9 +50,11 @@ bool ParticleLayoutComputation::eval( return false; double alpha_f = it->getAlphaMean(); size_t n_layers = mp_multilayer->getNumberOfLayers(); - if (n_layers > 1 && alpha_f < 0) // skip transmission for multilayers (n>1) - continue; - it->setIntensity(p_strategy->evaluate(*it) * total_surface_density); + if (n_layers > 1 && alpha_f < 0) { + it->setIntensity(0.0); // zero for transmission with multilayers (n>1) + } else { + it->setIntensity(p_strategy->evaluate(*it) * total_surface_density); + } counter.stepProgress(progress); } return true; diff --git a/Core/Computation/SpecularComputation.cpp b/Core/Computation/SpecularComputation.cpp index 71756faf5be..59b12f1e6d3 100644 --- a/Core/Computation/SpecularComputation.cpp +++ b/Core/Computation/SpecularComputation.cpp @@ -42,6 +42,8 @@ bool SpecularComputation::eval( continue; double intensity = std::norm(R)*sin_alpha_i/solid_angle; it->setIntensity(intensity); + } else { + it->setIntensity(0.0); } } return true; -- GitLab