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();}