UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
psc::Solver Class Reference

#include <psc_solver.hpp>

Classes

struct  Params
 
struct  RowElem
 
struct  TimeShift
 

Public Types

enum  RowType { FIRST_ORDER_ROW_TYPE = 0, SECOND_ORDER_ROW_TYPE }
 
typedef std::vector< RowElemRowElemVec
 
typedef std::vector< TimeShiftTimeShifts
 

Public Member Functions

 Solver (const Params &params)
 
virtual ~Solver ()
 
bool operator() (const WaveField &row, TimeShifts &time_shifts) const
 
bool operator() (RowElemVec &row_elem_vec, TimeShifts &time_shifts) const
 
void setParameters (const Params &params)
 
const ParamsgetParameters () const
 

Protected Member Functions

void update_eq_data (const WaveField &row, RowElemVec &row_elem_vec) const
 
bool determine_statics (const RowElemVec &row_elem_vec, TimeShifts &time_shifts) const
 
std::set< int > get_row_ids (const RowElemVec &row_elem_vec) const
 
bool get_eq_row (const RowElem &row_elem, const std::set< int > &ids_set, std::vector< Trace::AmplT > &row_vec, Trace::TimeT &rp_elem) const
 
bool remove_low_freq (const size_t polynomial_degree, RowElemVec &row_elem_vec) const
 
bool remove_low_freq (const size_t polynomial_degree, RowElemVec::iterator elem_it1, RowElemVec::iterator elem_it2) const
 
bool remove_trend (const size_t trend_polynomial_degree, TimeShifts &time_shifts) const
 
void test_la_to_files (const std::string &matr_fname, const std::string &vec_fname, const LaGenMatDouble &Am, const LaVectorDouble &bv) const
 

Protected Attributes

Params m_params
 

Detailed Description

Solve POLYCOR linear system using provided CCFs row.

Member Typedef Documentation

typedef std::vector<RowElem> psc::Solver::RowElemVec

Data for equations.

typedef std::vector<TimeShift> psc::Solver::TimeShifts

Time shifts vector.

Member Enumeration Documentation

Type of CCFs row used for linear system construction.

Enumerator
FIRST_ORDER_ROW_TYPE 

First order row obtained from the first order CCFs.

SECOND_ORDER_ROW_TYPE 

Second order row obtained from the second order CCFs.

Constructor & Destructor Documentation

psc::Solver::Solver ( const Params params)

Constructor with type of row provided.

virtual psc::Solver::~Solver ( )
virtual

Destructor.

Member Function Documentation

bool psc::Solver::determine_statics ( const RowElemVec row_elem_vec,
TimeShifts time_shifts 
) const
protected

Determine statics from provided vector of row elements. Return false on error.

bool psc::Solver::get_eq_row ( const RowElem row_elem,
const std::set< int > &  ids_set,
std::vector< Trace::AmplT > &  row_vec,
Trace::TimeT rp_elem 
) const
protected

Get linear system equation row and right part vector element.

std::set<int> psc::Solver::get_row_ids ( const RowElemVec row_elem_vec) const
protected

Get all indexies from provided vector of row elements.

const Params& psc::Solver::getParameters ( ) const

Get current parameters.

bool psc::Solver::operator() ( const WaveField row,
TimeShifts time_shifts 
) const

Computes time shifts from provided CCFs row.

bool psc::Solver::operator() ( RowElemVec row_elem_vec,
TimeShifts time_shifts 
) const

Computes time shifts from provided vector of row elements.

bool psc::Solver::remove_low_freq ( const size_t  polynomial_degree,
RowElemVec row_elem_vec 
) const
protected
Remove low frequency using polynomial approximation 

from provided time shifts of vector of row elements.

bool psc::Solver::remove_low_freq ( const size_t  polynomial_degree,
RowElemVec::iterator  elem_it1,
RowElemVec::iterator  elem_it2 
) const
protected
Remove low freq from time shifts of provided range of vector of row elements. 

Return false on error.

bool psc::Solver::remove_trend ( const size_t  trend_polynomial_degree,
TimeShifts time_shifts 
) const
protected
Remove trend from provided time shifts (Using least squares linear approximation). 

Return false on error.

void psc::Solver::setParameters ( const Params params)

Set parameters.

void psc::Solver::update_eq_data ( const WaveField row,
RowElemVec row_elem_vec 
) const
protected

Update equations data from provided accumulated CCFs row.

Member Data Documentation

Params psc::Solver::m_params
protected

< Current parameters.


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