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

This constraint averages the solutions of several groups of antennas, so that antennas within the same group have equal solutions. More...

#include <AntennaConstraint.h>

Inheritance diagram for dp3::ddecal::AntennaConstraint:
dp3::ddecal::Constraint

Public Member Functions

void Apply (SolutionSpan &solutions, double time) override
 
const std::vector< std::set< size_t > > & GetAntennaSets () const
 
void SetAntennaSets (std::vector< std::set< size_t >> &&antenna_sets)
 
- Public Member Functions inherited from dp3::ddecal::Constraint
virtual ~Constraint ()=default
 
void ApplyReferenceAntenna (SolutionSpan &solutions)
 
virtual std::vector< ConstraintResultGetResult () const
 
uint32_t GetSubSolutions (size_t direction) const
 
virtual void GetTimings ([[maybe_unused]] std::ostream &os, [[maybe_unused]] double duration) const
 
virtual void Initialize (size_t n_antennas, const std::vector< uint32_t > &solutions_per_direction, const std::vector< double > &frequencies)
 
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)
 

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)
 

Detailed Description

This constraint averages the solutions of several groups of antennas, so that antennas within the same group have equal solutions.

The DDE solver can use this constraint e.g. to average the solutions of the core antennas. Core antennas are determined by a given maximum distance from a reference antenna. The reference antenna is by default the first antenna. This constraint is meant to force all core stations to have the same solution, thereby decreasing the noise in their solutions.

Member Function Documentation

◆ Apply()

void dp3::ddecal::AntennaConstraint::Apply ( SolutionSpan solutions,
double  time 
)
inlineoverridevirtual

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.

◆ GetAntennaSets()

const std::vector<std::set<size_t> >& dp3::ddecal::AntennaConstraint::GetAntennaSets ( ) const
inline

◆ SetAntennaSets()

void dp3::ddecal::AntennaConstraint::SetAntennaSets ( std::vector< std::set< size_t >> &&  antenna_sets)
inline

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