DP3
SolverFactory.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 DP3_SOLVERFACTORY_H
5 #define DP3_SOLVERFACTORY_H
6 
7 #include "base/CalType.h"
8 #include "base/Direction.h"
9 
10 #include <array>
11 #include <memory>
12 #include <string>
13 #include <vector>
14 
15 namespace dp3::ddecal {
16 
18  double ref_distance, const std::string& ref_antenna,
19  const std::vector<std::array<double, 3>>& antenna_positions,
20  const std::vector<std::string>& antenna_factors,
21  const std::vector<std::string>& antenna_names);
22 
23 class Settings;
24 class SolverBase;
25 
26 std::unique_ptr<SolverBase> CreateSolver(
27  const Settings& settings, const std::vector<std::string>& station_names);
28 
44  SolverBase& solver, const Settings& settings,
45  const std::vector<std::array<double, 3>>& antenna_positions,
46  const std::vector<std::string>& antenna_names,
47  const std::vector<base::Direction>& source_positions,
48  const std::vector<double>& frequencies);
49 
50 } // namespace dp3::ddecal
51 
52 #endif // DP3_SOLVERFACTORY_H
Definition: SolverBase.h:24
Definition: AmplitudeOnlyConstraint.h:12
std::unique_ptr< SolverBase > CreateSolver(const Settings &settings, const std::vector< std::string > &station_names)
void InitializeSolverConstraints(SolverBase &solver, const Settings &settings, const std::vector< std::array< double, 3 >> &antenna_positions, const std::vector< std::string > &antenna_names, const std::vector< base::Direction > &source_positions, const std::vector< double > &frequencies)
std::vector< double > CalculateAntennaSmoothnessFactors(double ref_distance, const std::string &ref_antenna, const std::vector< std::array< double, 3 >> &antenna_positions, const std::vector< std::string > &antenna_factors, const std::vector< std::string > &antenna_names)
This struct parses the DDECal parset settings and stores them.
Definition: Settings.h:33