DP3
Classes | Public Member Functions | Protected Attributes | List of all members
dp3::ddecal::TecOffsetDelayConstraint Class Referencefinal

#include <TecOffsetDelayConstraint.h>

Inheritance diagram for dp3::ddecal::TecOffsetDelayConstraint:
dp3::ddecal::Constraint

Classes

struct  ThreadData
 

Public Member Functions

 TecOffsetDelayConstraint (bool include_offset, size_t max_wraps, bool do_phase_referencing)
 
void Apply (SolutionSpan &solutions, double time) override
 
std::vector< ConstraintResultGetResult () const override
 
void Initialize (size_t nAntennas, const std::vector< uint32_t > &solutions_per_direction, const std::vector< double > &frequencies) override
 
void SetWeights (const std::vector< double > &weights) 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 bool Satisfied () const
 
virtual void SetSubSolutionWeights (const std::vector< std::vector< double >> &solution_weights)
 
virtual void SetWeights ([[maybe_unused]] const std::vector< double > &weights)
 

Protected Attributes

bool do_phase_referencing_ = true
 
bool include_offset_ = false
 
size_t max_wraps_ = 0
 
double reference_frequency_ = 0.0
 
std::vector< double > relative_frequencies_
 
std::vector< ConstraintResultresults_
 
std::vector< ThreadDatathread_data_
 
std::vector< double > weights_
 

Additional Inherited Members

- 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)
 

Constructor & Destructor Documentation

◆ TecOffsetDelayConstraint()

dp3::ddecal::TecOffsetDelayConstraint::TecOffsetDelayConstraint ( bool  include_offset,
size_t  max_wraps,
bool  do_phase_referencing 
)

Member Function Documentation

◆ Apply()

void dp3::ddecal::TecOffsetDelayConstraint::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.

Implements dp3::ddecal::Constraint.

◆ GetResult()

std::vector<ConstraintResult> dp3::ddecal::TecOffsetDelayConstraint::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::Constraint.

◆ Initialize()

void dp3::ddecal::TecOffsetDelayConstraint::Initialize ( size_t  n_antennas,
const std::vector< uint32_t > &  solutions_per_direction,
const std::vector< double > &  frequencies 
)
overridevirtual

Perform common constraint initialization. Should be overridden when something more than assigning dimensions is needed (e.g. resizing vectors).

Parameters
frequenciesFor each channel block, the mean frequency.

Reimplemented from dp3::ddecal::Constraint.

◆ SetWeights()

void dp3::ddecal::TecOffsetDelayConstraint::SetWeights ( const std::vector< double > &  weights)
override

Member Data Documentation

◆ do_phase_referencing_

bool dp3::ddecal::TecOffsetDelayConstraint::do_phase_referencing_ = true
protected

◆ include_offset_

bool dp3::ddecal::TecOffsetDelayConstraint::include_offset_ = false
protected

◆ max_wraps_

size_t dp3::ddecal::TecOffsetDelayConstraint::max_wraps_ = 0
protected

◆ reference_frequency_

double dp3::ddecal::TecOffsetDelayConstraint::reference_frequency_ = 0.0
protected

◆ relative_frequencies_

std::vector<double> dp3::ddecal::TecOffsetDelayConstraint::relative_frequencies_
protected

◆ results_

std::vector<ConstraintResult> dp3::ddecal::TecOffsetDelayConstraint::results_
protected

◆ thread_data_

std::vector<ThreadData> dp3::ddecal::TecOffsetDelayConstraint::thread_data_
protected

◆ weights_

std::vector<double> dp3::ddecal::TecOffsetDelayConstraint::weights_
protected

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