DP3
Public Member Functions | Protected Member Functions | List of all members
dp3::ddecal::ApproximateTECConstraint Class Referencefinal

#include <TecConstraint.h>

Inheritance diagram for dp3::ddecal::ApproximateTECConstraint:
dp3::ddecal::TecConstraint dp3::ddecal::Constraint

Public Member Functions

 ApproximateTECConstraint (Mode mode)
 
void Apply (SolutionSpan &solutions, double time) override
 
std::vector< ConstraintResultGetResult () const override
 
void PrepareIteration (bool has_reached_precision, size_t iteration, bool final_iter) override
 
bool Satisfied () const override
 
void SetFittingChunkSize (size_t fitting_chunk_size)
 
void SetMaxApproximatingIterations (size_t max_approx_iters)
 
- Public Member Functions inherited from dp3::ddecal::TecConstraint
 TecConstraint (Mode mode)
 
void Initialize (size_t nAntennas, const std::vector< uint32_t > &solutions_per_direction, const std::vector< double > &frequencies) override
 
void setDoPhaseReference (bool doPhaseReference)
 
void SetWeights (const std::vector< double > &weights) final override
 
- Public Member Functions inherited from dp3::ddecal::Constraint
virtual ~Constraint ()=default
 
void ApplyReferenceAntenna (SolutionSpan &solutions)
 
uint32_t GetSubSolutions (size_t direction) const
 
virtual void GetTimings ([[maybe_unused]] std::ostream &os, [[maybe_unused]] double duration) const
 
size_t NAntennas () const
 
size_t NChannelBlocks () const
 
size_t NDirections () const
 
size_t NSubSolutions () const
 
virtual void PrepareIteration ([[maybe_unused]] bool hasReachedPrecision, [[maybe_unused]] size_t iteration, [[maybe_unused]] bool finalIter)
 
virtual void SetSubSolutionWeights (const std::vector< std::vector< double >> &solution_weights)
 
virtual void SetWeights ([[maybe_unused]] const std::vector< double > &weights)
 

Protected Member Functions

void initializeChild () override
 

Additional Inherited Members

- Public Types inherited from dp3::ddecal::TecConstraint
enum class  Mode { kTecAndCommonScalar , kTecOnly }
 
- Public Types inherited from dp3::ddecal::Constraint
typedef std::complex< double > dcomplex
 
- Static Public Member Functions inherited from dp3::ddecal::Constraint
static bool isfinite (const dcomplex &value)
 
- Protected Attributes inherited from dp3::ddecal::TecConstraint
bool do_phase_reference_
 
Mode mode_
 
std::vector< PhaseFitterphase_fitters_
 
std::vector< ConstraintResultresults_
 
std::vector< double > weights_
 

Constructor & Destructor Documentation

◆ ApproximateTECConstraint()

dp3::ddecal::ApproximateTECConstraint::ApproximateTECConstraint ( Mode  mode)
inline

Member Function Documentation

◆ Apply()

void dp3::ddecal::ApproximateTECConstraint::Apply ( SolutionSpan solutions,
double  time 
)
overridevirtual

This method applies the constraints to the solutions.

Parameters
solutionsA 4D array with dimensions n_channel_blocks x n_antennas x n_sub_solutions x n_pol solutions. n_pol is the dimension with the fastest changing index. Using a span instead of a real tensor as argument type avoids the need for copying data in Python bindings.
timeCentral time of interval.

Reimplemented from dp3::ddecal::TecConstraint.

◆ GetResult()

std::vector<ConstraintResult> dp3::ddecal::ApproximateTECConstraint::GetResult ( ) const
inlineoverridevirtual

Obtain results that are to be written to the solution file, instead of the actual solutions. Not all constraints use these; some constraints modify the solutions and the solutions are the result. Example of constraint the do produce results are the Faraday and TEC constraints.

Returns
Optionally, a vector with the last results. The vector is index by value type (e.g. Faraday rotation and scalar).

Reimplemented from dp3::ddecal::TecConstraint.

◆ initializeChild()

void dp3::ddecal::ApproximateTECConstraint::initializeChild ( )
overrideprotectedvirtual

Reimplemented from dp3::ddecal::TecConstraint.

◆ PrepareIteration()

void dp3::ddecal::ApproximateTECConstraint::PrepareIteration ( bool  has_reached_precision,
size_t  iteration,
bool  final_iter 
)
inlineoverride

◆ Satisfied()

bool dp3::ddecal::ApproximateTECConstraint::Satisfied ( ) const
inlineoverridevirtual

Whether the constraint has been satisfied. The calibration process will continue at least as long as Satisfied()=false, and performs at least one more iteration after Satisfied()=true. Together with SetPrecisionReached(), this can make the algorithm change the constraining method based on amount of convergence.

Reimplemented from dp3::ddecal::Constraint.

◆ SetFittingChunkSize()

void dp3::ddecal::ApproximateTECConstraint::SetFittingChunkSize ( size_t  fitting_chunk_size)
inline

◆ SetMaxApproximatingIterations()

void dp3::ddecal::ApproximateTECConstraint::SetMaxApproximatingIterations ( size_t  max_approx_iters)
inline

The documentation for this class was generated from the following file: