From 29e8ac3fa4e4c4a39ccac7a963da638b0bcbb25c Mon Sep 17 00:00:00 2001
From: Marcel Loose <loose@astron.nl>
Date: Fri, 15 Nov 2013 16:16:10 +0000
Subject: [PATCH] Task #4589: Testing with 16 output channels i.s.o 1. Doesn't
 work yet, but squashed two bugs.

---
 .../GPUProc/src/cuda/SubbandProcs/BeamFormerFactories.cc  | 8 +++-----
 .../src/cuda/SubbandProcs/BeamFormerSubbandProc.cc        | 2 +-
 .../test/SubbandProcs/tBeamFormerSubbandProcProcessSb.cc  | 4 ++--
 .../SubbandProcs/tBeamFormerSubbandProcProcessSb.parset   | 2 +-
 4 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/RTCP/Cobalt/GPUProc/src/cuda/SubbandProcs/BeamFormerFactories.cc b/RTCP/Cobalt/GPUProc/src/cuda/SubbandProcs/BeamFormerFactories.cc
index 7fab3220fdc..45532308ec2 100644
--- a/RTCP/Cobalt/GPUProc/src/cuda/SubbandProcs/BeamFormerFactories.cc
+++ b/RTCP/Cobalt/GPUProc/src/cuda/SubbandProcs/BeamFormerFactories.cc
@@ -143,12 +143,10 @@ namespace LOFAR
       {
         FIR_FilterKernel::Parameters params(ps);
 
-        params.nrSTABs = ps.settings.beamFormer.maxNrTABsPerSAP();
+        params.nrSTABs = ps.nrStations();
 
-        // define at least 16 channels to get the FIR_Filter.cu to compile, even
-        // if we won't use it.
-        params.nrChannelsPerSubband = std::max(16U,
-          ps.settings.beamFormer.incoherentSettings.nrChannels);
+        params.nrChannelsPerSubband = 
+          ps.settings.beamFormer.incoherentSettings.nrChannels;
 
         // time integration has not taken place yet, so calculate the nrSamples
         // manually
diff --git a/RTCP/Cobalt/GPUProc/src/cuda/SubbandProcs/BeamFormerSubbandProc.cc b/RTCP/Cobalt/GPUProc/src/cuda/SubbandProcs/BeamFormerSubbandProc.cc
index 228ddd57552..74664b7c1f5 100644
--- a/RTCP/Cobalt/GPUProc/src/cuda/SubbandProcs/BeamFormerSubbandProc.cc
+++ b/RTCP/Cobalt/GPUProc/src/cuda/SubbandProcs/BeamFormerSubbandProc.cc
@@ -230,7 +230,7 @@ namespace LOFAR
       // final FFT: B -> B
       incoherentFinalFFT(
         queue, ps.settings.beamFormer.incoherentSettings.nrChannels,
-        (NR_POLARIZATIONS * ps.nrSamplesPerSubband() / 
+        (ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerSubband() / 
          ps.settings.beamFormer.incoherentSettings.nrChannels),
         true, devB),
 
diff --git a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.cc b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.cc
index 47c4c5fa4af..e72472e466c 100644
--- a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.cc
+++ b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.cc
@@ -37,8 +37,8 @@ template<typename T> T inputSignal(size_t t)
 {
   size_t nrBits = sizeof(T) / 2 * 8;
   // double freq = 1.0 / 2.0; // in samples
-  double freq = 1.0 / 4.0; // in samples
-  double amp = (1 << (nrBits - 1)) - 10;
+  double freq = 1.0 / 32.0; // in samples
+  double amp = (1 << (nrBits - 1)) - 1;
 
   double angle = (double)t * 2.0 * M_PI * freq;
 
diff --git a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.parset b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.parset
index e64611e615b..83c6708a774 100644
--- a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.parset
+++ b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.parset
@@ -18,7 +18,7 @@ OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1
 OLAP.CNProc_CoherentStokes.channelsPerSubband = 1
 OLAP.CNProc_IncoherentStokes.which	 = I # IQUV
 OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1
-OLAP.CNProc_IncoherentStokes.channelsPerSubband = 1
+OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16
 Observation.rspBoardList                 = [0]
 Observation.rspSlotList                  = [0]
 
-- 
GitLab