Brief description of class still missing. More...
#include <RefractionFactory.h>
Public Member Functions | |
bool | calculate (RefractionDippingModel *model) |
void | linkX (QList< RefractionCurve > &curves) const |
void | readReport (QDataStream &s) |
int | receiverCount () const |
const QVector< double > & | receivers () const |
RefractionFactory () | |
void | setX (const QList< RefractionCurve > &curves) |
const RealValue * | source (int index) const |
int | sourceCount () const |
const QVector< double > & | sources () const |
void | toStream (int sourceIndex, QTextStream &sOut) const |
void | writeReport (QDataStream &s) const |
double | xLeft () const |
double | xRight () const |
~RefractionFactory () |
Brief description of class still missing.
Full description of class still missing
bool QGpCoreWave::RefractionFactory::calculate | ( | RefractionDippingModel * | model | ) |
References QGpCoreWave::RefractionDippingModel::begin(), QGpCoreWave::RefractionDippingModel::end(), QGpCoreWave::TiltNode::init(), QGpCoreWave::RefractionDippingModel::setXLeft(), QGpCoreWave::RefractionDippingModel::setXRight(), TRACE, and QGpCoreWave::RefractionDippingModel::travelTime().
Referenced by DinverDCCore::TargetList::refractionMisfit().
{ TRACE; model->setXLeft(_receivers.first()); model->setXRight(_receivers.last()); model->begin(); TiltNode srcNode, recNode; int deepestLayer; RealValue * values=_travelTimes; for(QVector<double>::const_iterator itSrc=_sources.begin(); itSrc!=_sources.end(); itSrc++) { srcNode.init(*itSrc, *model); for(QVector<double>::const_iterator itRec=_receivers.begin(); itRec!=_receivers.end(); itRec++) { recNode.init(*itRec,*model); (values++)->setValue(model->travelTime(srcNode, recNode, deepestLayer)); } } model->end(); return true; }
void QGpCoreWave::RefractionFactory::linkX | ( | QList< RefractionCurve > & | curves | ) | const |
References QGpCoreWave::RefractionCurve::linkReceivers(), QGpCoreWave::RefractionCurve::linkSource(), and TRACE.
Referenced by DinverDCCore::TargetList::validateTargets().
{ TRACE; // Set references to values for(QList<RefractionCurve>::iterator itCurve=curves.begin(); itCurve!=curves.end(); itCurve++) { RefractionCurve& curve=*itCurve; curve.linkSource(_sources); curve.linkReceivers(_receivers); } }
void QGpCoreWave::RefractionFactory::readReport | ( | QDataStream & | s | ) |
References QGpCoreTools::Value< numberType >::setValue(), and TRACE.
Referenced by outputDCModel(), DinverDCGui::RefractionViewer::report2plot(), and DinverDCCore::DCReportBlock::write().
{ TRACE; int nSrc, nRec, n; s >> nSrc >> nRec; n=nSrc * nRec; _sources.resize(nSrc); for(int i=0; i < nSrc; i++ ) { s >> _sources[i]; } _receivers.resize(nRec); for(int i=0; i < nRec; i++ ) { s >> _receivers[i]; } double tt; delete _travelTimes; _travelTimes=new RealValue[n]; for(int i=0; i < n; i++ ) { s >> tt; _travelTimes[i].setValue(tt); } }
int QGpCoreWave::RefractionFactory::receiverCount | ( | ) | const [inline] |
Referenced by DinverDCGui::RefractionViewer::report2plot(), and writeReport().
{return _receivers.count();}
const QVector<double>& QGpCoreWave::RefractionFactory::receivers | ( | ) | const [inline] |
Referenced by DinverDCGui::RefractionViewer::report2plot().
{return _receivers;}
void QGpCoreWave::RefractionFactory::setX | ( | const QList< RefractionCurve > & | curves | ) |
References QGpCoreTools::Curve< pointType >::begin(), QGpCoreTools::Curve< pointType >::end(), QGpCoreWave::RefractionCurve::source(), TRACE, and QGpCoreTools::unique().
Referenced by DinverDCCore::TargetList::validateTargets().
{ TRACE; // Gather all the sources and receivers _sources.clear(); _receivers.clear(); for(QList<RefractionCurve>::const_iterator itCurve=curves.begin(); itCurve!=curves.end(); itCurve++) { const RefractionCurve& curve=*itCurve; _sources.append(curve.source()); for(RefractionCurve::const_iterator itRec=curve.begin(); itRec!=curve.end(); itRec++) { _receivers.append(itRec->x()); } } qSort(_sources); unique(_sources); qSort(_receivers); unique(_receivers); // Allocates values for storing arrival times _travelTimes=new RealValue[ _sources.count()*_receivers.count() ]; }
const RealValue* QGpCoreWave::RefractionFactory::source | ( | int | index | ) | const [inline] |
Referenced by QGpCoreWave::RefractionCurve::misfit(), DinverDCGui::RefractionViewer::report2plot(), and toStream().
{return _travelTimes + index * _receivers.count();}
int QGpCoreWave::RefractionFactory::sourceCount | ( | ) | const [inline] |
Referenced by outputDCModel(), and writeReport().
{return _sources.count();}
const QVector<double>& QGpCoreWave::RefractionFactory::sources | ( | ) | const [inline] |
Referenced by outputDCModel(), and DinverDCGui::RefractionViewer::report2plot().
{return _sources;}
void QGpCoreWave::RefractionFactory::toStream | ( | int | sourceIndex, |
QTextStream & | sOut | ||
) | const |
References QGpCoreTools::flush(), QGpCoreTools::Point2D::setX(), QGpCoreTools::Point2D::setY(), source(), and TRACE.
Referenced by outputDCModel().
void QGpCoreWave::RefractionFactory::writeReport | ( | QDataStream & | s | ) | const |
References receiverCount(), sourceCount(), TRACE, and QGpCoreTools::Value< numberType >::value().
Referenced by DinverDCCore::DCReportBlock::write().
{ TRACE; int nSrc=sourceCount(); int nRec=receiverCount(); s << nSrc << nRec; for(int i=0; i < nSrc; i++ ) { s << _sources[i]; } for(int i=0; i < nRec; i++ ) { s << _receivers[i]; } int n=nSrc * nRec; for(int i=0; i < n; i++ ) { s << _travelTimes[i].value(); } }
double QGpCoreWave::RefractionFactory::xLeft | ( | ) | const [inline] |
Referenced by outputDCModel().
{return _receivers.first();}
double QGpCoreWave::RefractionFactory::xRight | ( | ) | const [inline] |
Referenced by outputDCModel().
{return _receivers.last();}