DP3
Public Member Functions | Static Public Member Functions | List of all members
dp3::ddecal::RotationConstraint Class Referencefinal

#include <RotationConstraint.h>

Inheritance diagram for dp3::ddecal::RotationConstraint:
dp3::ddecal::Constraint

Public Member Functions

 RotationConstraint ()=default
 
void Apply (SolutionSpan &solutions, double time) override
 
std::vector< ConstraintResultGetResult () const override
 
void Initialize (size_t n_antennas, 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)
 

Static Public Member Functions

static double FitRotation (const std::complex< double > *data)
 
static void SetRotation (std::complex< double > *data, double angle)
 
- Static Public Member Functions inherited from dp3::ddecal::Constraint
static bool isfinite (const dcomplex &value)
 

Additional Inherited Members

- Public Types inherited from dp3::ddecal::Constraint
typedef std::complex< double > dcomplex
 

Constructor & Destructor Documentation

◆ RotationConstraint()

dp3::ddecal::RotationConstraint::RotationConstraint ( )
default

Member Function Documentation

◆ Apply()

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

◆ FitRotation()

static double dp3::ddecal::RotationConstraint::FitRotation ( const std::complex< double > *  data)
inlinestatic

◆ GetResult()

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

◆ SetRotation()

static void dp3::ddecal::RotationConstraint::SetRotation ( std::complex< double > *  data,
double  angle 
)
inlinestatic

◆ SetWeights()

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

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