DP3
DiagonalSolver.h
Go to the documentation of this file.
1 // Copyright (C) 2021 ASTRON (Netherlands Institute for Radio Astronomy)
2 // SPDX-License-Identifier: GPL-3.0-or-later
3 
4 #ifndef DDECAL_DIAGONAL_SOLVER_H
5 #define DDECAL_DIAGONAL_SOLVER_H
6 
7 #include "SolverBase.h"
8 #include "SolveData.h"
9 
10 namespace dp3 {
11 namespace ddecal {
12 
13 class DiagonalSolver final : public SolverBase {
14  public:
16 
18  std::vector<std::vector<DComplex>>& solutions,
19  double time) override;
20 
21  size_t NSolutionPolarizations() const override { return 2; }
22 
23  private:
24  void PerformIteration(size_t ch_block,
25  const FullSolveData::ChannelBlockData& cb_data,
26  std::vector<Matrix>& g_times_cs,
27  std::vector<std::vector<Complex>>& vs,
28  const std::vector<DComplex>& solutions,
29  SolutionTensor& next_solutions);
30 
37  void InitializeModelMatrix(
38  const FullSolveData::ChannelBlockData& channel_block_data,
39  std::vector<Matrix>& g_times_cs,
40  std::vector<std::vector<Complex>>& vs) const;
41 };
42 
43 } // namespace ddecal
44 } // namespace dp3
45 
46 #endif // DDECAL_DIAGONAL_SOLVER_H
Definition: DiagonalSolver.h:13
size_t NSolutionPolarizations() const override
Definition: DiagonalSolver.h:21
DiagonalSolver()
Definition: DiagonalSolver.h:15
SolveResult Solve(const FullSolveData &data, std::vector< std::vector< DComplex >> &solutions, double time) override
Definition: SolveData.h:29
Definition: SolverBase.h:24
xt::xtensor< std::complex< double >, 4 > SolutionTensor
Definition: Solutions.h:19
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53
Definition: SolverBase.h:61