VieSched++
VieVS VLBI Scheduling Software
VieVS::Solver Class Reference

main class for least squares solver More...

#include <Solver.h>

Inheritance diagram for VieVS::Solver:
Collaboration diagram for VieVS::Solver:

Classes

struct  EstimationParamEOP
 
struct  EstimationParamSource
 
struct  EstimationParamStation
 
struct  Partials
 
class  PWL
 

Public Member Functions

 Solver (Simulator &simulator)
 constructor More...
 
void start ()
 
std::vector< double > getMeanSigma ()
 
std::vector< double > getRepeatabilities ()
 
void writeStatistics (std::ofstream &of)
 write statistics line to statistics.csv file More...
 
void simSummary ()
 
- Public Member Functions inherited from VieVS::VieVS_NamedObject
 VieVS_NamedObject (std::string name, unsigned long id)
 constructor More...
 
 VieVS_NamedObject (std::string name, std::string alternativeName, unsigned long id)
 constructor More...
 
const std::string & getName () const
 get object name More...
 
const std::string & getAlternativeName () const
 get object alternative name More...
 
bool hasAlternativeName () const
 check if object has alternative name More...
 
bool hasName (const std::string &name) const
 check if object has name More...
 
void changeName (const std::string &newName)
 change name of object More...
 
- Public Member Functions inherited from VieVS::VieVS_Object
 VieVS_Object (unsigned long id)
 constructor More...
 
const unsigned long getId () const
 get object id More...
 
bool hasValidId () const
 check if id is valid More...
 
bool hasId (unsigned long id) const
 check if object has specific id More...
 
void setId (unsigned long id)
 set object id More...
 
std::string printId () const
 object id string More...
 

Private Types

enum  Axis { Axis::X, Axis::Y, Axis::Z }
 

Private Member Functions

void setup ()
 
void setupSummary ()
 
void readXML ()
 
Partials partials (const Observation &obs, const Eigen::Matrix3d &t2c, const Eigen::Matrix3d &dQdx, const Eigen::Matrix3d &dQdy, const Eigen::Matrix3d &dQdut, const Eigen::Matrix3d &dQdX, const Eigen::Matrix3d &dQdY)
 
void listUnknowns ()
 
void buildConstraintsMatrix ()
 
void buildDesignMatrix ()
 
void solve ()
 
void addDatum_stations (Eigen::MatrixXd &N, Eigen::MatrixXd &n)
 
void addDatum_sources (Eigen::MatrixXd &N, Eigen::MatrixXd &n)
 
void partialsToA (unsigned int iobs, const Observation &obs, const PointingVector &pv1, const PointingVector &pv2, const Partials &p)
 
unsigned long findStartIdxPWL (unsigned int time, unsigned long startIdx)
 
std::vector< double > summarizeResult (const Eigen::VectorXd &)
 
void dummyMatrixToFile (const Eigen::MatrixXd &M, const std::string &name)
 

Static Private Member Functions

static Eigen::Matrix3d rotm (double angle, Axis ax)
 
static Eigen::Matrix3d drotm (double angle, Axis ax)
 

Private Attributes

std::ofstream of
 output stream object More...
 
const boost::property_tree::ptree xml_
 content of VieSchedpp.xml file More...
 
const Network network_
 network More...
 
const SourceList sourceList_
 all sources More...
 
const std::vector< Scanscans_
 all scans in schedule More...
 
Eigen::MatrixXd obs_minus_com_
 
const int version_
 number of this schedule More...
 
const std::string path_
 path More...
 
boost::optional< MultiScheduling::ParametersmultiSchedulingParameters_
 multi scheduling parameters More...
 
int nsim_
 
std::unordered_map< std::string, unsigned long > name2startIdx
 
std::vector< EstimationParamStationestimationParamStations_
 
std::vector< EstimationParamSourceestimationParamSources_
 
EstimationParamEOP estimationParamEOP_
 
std::vector< Eigen::Triplet< double > > AB_
 
unsigned long n_A_
 
unsigned long n_B_
 
Eigen::VectorXd P_AB_
 
std::vector< Unknownunknowns
 
Eigen::VectorXd mean_sig_
 
Eigen::VectorXd rep_
 
bool singular_ = false
 

Static Private Attributes

static unsigned long nextId = 0
 next id for this object type More...
 

Detailed Description

main class for least squares solver

Author
Matthias Schartner
Date
24.02.2020

Member Enumeration Documentation

enum VieVS::Solver::Axis
strongprivate
Enumerator

Constructor & Destructor Documentation

Solver::Solver ( Simulator simulator)
explicit

constructor

Author
Matthias Schartner
Parameters
simulatorscheduler

Here is the call graph for this function:

Member Function Documentation

void Solver::addDatum_sources ( Eigen::MatrixXd &  N,
Eigen::MatrixXd &  n 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::addDatum_stations ( Eigen::MatrixXd &  N,
Eigen::MatrixXd &  n 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::buildConstraintsMatrix ( )
private

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::buildDesignMatrix ( )
private

Here is the call graph for this function:

Here is the caller graph for this function:

Matrix3d Solver::drotm ( double  angle,
Axis  ax 
)
staticprivate

Here is the caller graph for this function:

void VieVS::Solver::dummyMatrixToFile ( const Eigen::MatrixXd &  M,
const std::string &  name 
)
inlineprivate
unsigned long Solver::findStartIdxPWL ( unsigned int  time,
unsigned long  startIdx 
)
private

Here is the caller graph for this function:

std::vector< double > Solver::getMeanSigma ( )

Here is the call graph for this function:

Here is the caller graph for this function:

std::vector< double > Solver::getRepeatabilities ( )

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::listUnknowns ( )
private

Here is the call graph for this function:

Here is the caller graph for this function:

Solver::Partials Solver::partials ( const Observation obs,
const Eigen::Matrix3d &  t2c,
const Eigen::Matrix3d &  dQdx,
const Eigen::Matrix3d &  dQdy,
const Eigen::Matrix3d &  dQdut,
const Eigen::Matrix3d &  dQdX,
const Eigen::Matrix3d &  dQdY 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::partialsToA ( unsigned int  iobs,
const Observation obs,
const PointingVector pv1,
const PointingVector pv2,
const Partials p 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::readXML ( )
private

Here is the call graph for this function:

Here is the caller graph for this function:

Matrix3d Solver::rotm ( double  angle,
Axis  ax 
)
staticprivate

Here is the caller graph for this function:

void Solver::setup ( )
private

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::setupSummary ( )
private

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::simSummary ( )

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::solve ( )
private

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::start ( )

Here is the call graph for this function:

Here is the caller graph for this function:

std::vector< double > Solver::summarizeResult ( const Eigen::VectorXd &  vec)
private

Here is the call graph for this function:

Here is the caller graph for this function:

void Solver::writeStatistics ( std::ofstream &  of)

write statistics line to statistics.csv file

Author
Matthias Schartner
Parameters
ofstatistics.csv file

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

std::vector<Eigen::Triplet<double> > VieVS::Solver::AB_
private
EstimationParamEOP VieVS::Solver::estimationParamEOP_
private
std::vector<EstimationParamSource> VieVS::Solver::estimationParamSources_
private
std::vector<EstimationParamStation> VieVS::Solver::estimationParamStations_
private
Eigen::VectorXd VieVS::Solver::mean_sig_
private
boost::optional<MultiScheduling::Parameters> VieVS::Solver::multiSchedulingParameters_
private

multi scheduling parameters

unsigned long VieVS::Solver::n_A_
private
unsigned long VieVS::Solver::n_B_
private
std::unordered_map<std::string, unsigned long> VieVS::Solver::name2startIdx
private
const Network VieVS::Solver::network_
private

network

unsigned long VieVS::Solver::nextId = 0
staticprivate

next id for this object type

int VieVS::Solver::nsim_
private
Eigen::MatrixXd VieVS::Solver::obs_minus_com_
private
std::ofstream VieVS::Solver::of
private

output stream object

Eigen::VectorXd VieVS::Solver::P_AB_
private
const std::string VieVS::Solver::path_
private

path

Eigen::VectorXd VieVS::Solver::rep_
private
const std::vector<Scan> VieVS::Solver::scans_
private

all scans in schedule

bool VieVS::Solver::singular_ = false
private
const SourceList VieVS::Solver::sourceList_
private

all sources

std::vector<Unknown> VieVS::Solver::unknowns
private
const int VieVS::Solver::version_
private

number of this schedule

const boost::property_tree::ptree VieVS::Solver::xml_
private

content of VieSchedpp.xml file


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