OpendTect 8.0
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ReflCalc1D Class Referenceabstract

Acoustic and Elastic trace computation in 1D. More...

#include <reflcalc1d.h>

Inheritance diagram for ReflCalc1D:
[legend]

Classes

class  Setup
 

Public Member Functions

 ~ReflCalc1D ()
 
bool areDepthsInFeet () const
 
virtual void fillPar (IOPar &) const
 
void getAngles (TypeSet< float > &thetaangles, Seis::OffsetType=Seis::OffsetType::AngleDegrees) const
 
float getDepth (int layer) const
 
const ElasticModelgetModel () const
 
ConstRefMan< AngleReflectivityModelgetRefModel () const
 
float getTime (int layer) const
 
virtual bool hasSameParams (const ReflCalc1D &) const
 
virtual bool isOK () const
 
virtual bool needFracAzi () const
 
virtual bool needFracRho () const
 
virtual bool needsSwave () const
 
void setAngle (float thetaangle, Seis::OffsetType)
 
void setAngles (const TypeSet< float > &thetaangles, Seis::OffsetType)
 
bool setModel (const ElasticModel &)
 
virtual const ReflCalc1D::Setupsetup () const =0
 
virtual ReflCalc1D::Setupsetup ()=0
 
uiString uiMessage () const override
 
virtual bool usePar (const IOPar &)
 
- Public Member Functions inherited from ParallelTask
virtual ~ParallelTask ()
 
void doParallel (bool yn)
 
bool execute () override
 
virtual bool executeParallel (bool parallel)
 
od_int64 nrDone () const override
 May be -1, i.e. class does not report nrdone.
 
od_int64 totalNr () const override
 
- Public Member Functions inherited from ReportingTask
 ReportingTask (const ReportingTask &)=delete
 
virtual ~ReportingTask ()
 
void getProgress (const ReportingTask &)
 
ReportingTaskoperator= (const ReportingTask &)=delete
 
void setSimpleMeter (bool yn, int repperc)
 
int simpleMeterStep () const
 
bool useSimpleMeter () const
 
- Public Member Functions inherited from Task
 Task (const Task &)=delete
 
virtual ~Task ()
 
virtual void controlWork (Control)
 
virtual void enableWorkControl (bool=true)
 Must be called before execute()
 
virtual uiRetVal errorWithDetails () const
 
virtual Control getState () const
 
Taskoperator= (const Task &)=delete
 
virtual uiString uiNrDoneText () const
 
bool workControlEnabled () const
 
- Public Member Functions inherited from NamedCallBacker
 NamedCallBacker (const char *nm=nullptr)
 
 NamedCallBacker (const NamedCallBacker &)=delete
 
 ~NamedCallBacker ()
 
virtual Notifier< NamedCallBacker > & objectToBeDeleted () const
 
NamedCallBackeroperator= (const NamedCallBacker &)=delete
 
bool operator== (const NamedCallBacker &oth) const
 
bool operator== (const NamedObject &oth) const
 
- Public Member Functions inherited from CallBacker
 CallBacker ()
 
 CallBacker (const CallBacker &)
 
virtual ~CallBacker ()
 
bool attachCB (const NotifierAccess &, const CallBack &, bool onlyifnew=false) const
 
bool attachCB (const NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false) const
 
void detachAllNotifiers () const
 Call from the destructor of your inherited object.
 
void detachCB (const NotifierAccess &, const CallBack &) const
 
void detachCB (const NotifierAccess *notif, const CallBack &cb) const
 
virtual bool isCapsule () const
 
bool isNotifierAttached (const NotifierAccess *) const
 Only for debugging purposes, don't use.
 
CallBackeroperator= (const CallBacker &)=delete
 
void stopReceivingNotifications () const
 
virtual CallBackertrueCaller ()
 
- Public Member Functions inherited from NamedObject
 NamedObject (const char *nm=nullptr)
 
 NamedObject (const NamedObject &oth)
 
virtual ~NamedObject ()
 
virtual BufferString getName () const
 
bool getNameFromPar (const IOPar &)
 
const name_typename () const override
 
NamedObjectoperator= (const NamedObject &)
 
bool operator== (const NamedObject &oth) const
 
virtual void setName (const char *nm)
 
- Public Member Functions inherited from ObjectWithName
virtual ~ObjectWithName ()
 
bool hasName (const char *nm) const
 
bool hasName (const name_type &nm) const
 
void putNameInPar (IOPar &) const
 

Static Public Member Functions

static ReflCalc1DcreateInstance (const IOPar &, const ElasticModel *, uiString &, const Setup *=nullptr)
 
static ReflCalc1DcreateInstance (const IOPar &, uiString &, const Setup *=nullptr)
 
static float sDefAngle (Seis::OffsetType)
 
static StepInterval< float > sDefAngleRange (Seis::OffsetType)
 
static void setIOParsToSingleAngle (IOPar &, float angle=0.f, Seis::OffsetType=Seis::OffsetType::AngleDegrees)
 
static const char * sKeyAngle ()
 
static const char * sKeyAngleInDegrees ()
 
static const char * sKeyReflPar ()
 
- Static Public Member Functions inherited from ParallelTask
static uiString sPosFinished ()
 
static uiString sTrcFinished ()
 
- Static Public Member Functions inherited from ReportingTask
static PtrMan< ProgressMetergetTextProgressMeter (od_ostream &, const IOPar *iop=nullptr)
 
static bool needSimpleLogging (const IOPar &)
 
static const char * sKeySimpleLogging ()
 
static const char * sKeySimpleLoggingStep ()
 
- Static Public Member Functions inherited from Task
static uiString uiStdNrDoneText ()
 
- Static Public Member Functions inherited from CallBacker
static void createReceiverForCurrentThread ()
 
static void removeReceiverForCurrentThread ()
 

Protected Member Functions

 ReflCalc1D ()
 
virtual void compute (int threadidx, const ElasticLayer &top, const ElasticLayer &bottom, float thetaangle, float_complex &)=0
 
bool doFinish (bool) override
 
bool doPrepare (int) override
 
bool doWork (od_int64, od_int64, int) override
 
od_int64 nrIterations () const override
 
- Protected Member Functions inherited from ParallelTask
 ParallelTask (const char *nm=0)
 
void addToNrDone (od_int64 increment)
 
od_int64 calculateThreadSize (od_int64 totalnr, int nrthreads, int thread) const
 
virtual int maxNrThreads () const
 
virtual int minThreadSize () const
 
void quickAddToNrDone (od_int64 loopidx)
 
void resetNrDone ()
 
virtual bool stopAllOnFailure () const
 
- Protected Member Functions inherited from ReportingTask
 ReportingTask (const char *nm=nullptr)
 
void incrementProgress ()
 
ProgressMeterprogressMeter () const
 
void reportProgressFinished ()
 
void reportProgressStarted ()
 
void resetProgress ()
 
void setProgressMeter (ProgressMeter *) override
 Must be called before execute()
 
void updateProgressMeter (bool forced=false, od_int64 *totalnr=0)
 
void updateReportedName ()
 
- Protected Member Functions inherited from Task
 Task (const char *nm=nullptr)
 
virtual bool shouldContinue ()
 
- Protected Member Functions inherited from NamedCallBacker
void sendDelNotif () const
 

Protected Attributes

float * depths_ = nullptr
 
ElasticModelmodel_
 
uiString msg_
 
float_complex ** reflectivities_ = nullptr
 
RefMan< AngleReflectivityModelrefmodel_
 
TypeSet< float > thetaangles_
 
float * twt_ = nullptr
 
- Protected Attributes inherited from Task
Control control_ = Task::Run
 
Threads::ConditionVarworkcontrolcondvar_ = nullptr
 
- Protected Attributes inherited from NamedCallBacker
Threads::Atomic< bool > delalreadytriggered_
 
Notifier< NamedCallBackerdelnotif_
 
- Protected Attributes inherited from NamedObject
BufferString name_
 

Additional Inherited Members

- Public Types inherited from Task
enum  Control { Run , Pause , Stop }
 
- Public Types inherited from ObjectWithName
typedef OD::String name_type
 
- Public Attributes inherited from ReportingTask
Notifier< ReportingTaskprogressUpdated
 

Detailed Description

Acoustic and Elastic trace computation in 1D.

<>

Constructor & Destructor Documentation

◆ ~ReflCalc1D()

ReflCalc1D::~ReflCalc1D ( )

◆ ReflCalc1D()

ReflCalc1D::ReflCalc1D ( )
protected

Member Function Documentation

◆ areDepthsInFeet()

bool ReflCalc1D::areDepthsInFeet ( ) const

◆ compute()

virtual void ReflCalc1D::compute ( int threadidx,
const ElasticLayer & top,
const ElasticLayer & bottom,
float thetaangle,
float_complex &  )
protectedpure virtual

Implemented in AICalc1D.

◆ createInstance() [1/2]

static ReflCalc1D * ReflCalc1D::createInstance ( const IOPar & ,
const ElasticModel * ,
uiString & ,
const Setup * = nullptr )
static

◆ createInstance() [2/2]

static ReflCalc1D * ReflCalc1D::createInstance ( const IOPar & ,
uiString & ,
const Setup * = nullptr )
static

◆ doFinish()

bool ReflCalc1D::doFinish ( bool success)
overrideprotectedvirtual

Called after all doWork have finished.

Parameters
successindicates whether all doWork returned true.

Reimplemented from ParallelTask.

◆ doPrepare()

bool ReflCalc1D::doPrepare ( int nrthreads)
overrideprotectedvirtual

Called once, before any doWork is called.

Reimplemented from ParallelTask.

◆ doWork()

bool ReflCalc1D::doWork ( od_int64 start,
od_int64 stop,
int threadidx )
overrideprotectedvirtual

The functions that does the job. The function will be called with all intervals from 0 to ParallelTask::nrIterations()-1. The function must be designed to be able to run in parallel.

Parameters
startfirst index
stoplast index
threadidxgives an identifier (between 0 and nr of threads -1) that is unique to each call to doWork.

Implements ParallelTask.

◆ fillPar()

virtual void ReflCalc1D::fillPar ( IOPar & ) const
virtual

◆ getAngles()

void ReflCalc1D::getAngles ( TypeSet< float > & thetaangles,
Seis::OffsetType = Seis::OffsetType::AngleDegrees ) const

◆ getDepth()

float ReflCalc1D::getDepth ( int layer) const

◆ getModel()

const ElasticModel & ReflCalc1D::getModel ( ) const
inline

◆ getRefModel()

ConstRefMan< AngleReflectivityModel > ReflCalc1D::getRefModel ( ) const

◆ getTime()

float ReflCalc1D::getTime ( int layer) const

◆ hasSameParams()

virtual bool ReflCalc1D::hasSameParams ( const ReflCalc1D & ) const
virtual

◆ isOK()

virtual bool ReflCalc1D::isOK ( ) const
inlinevirtual

◆ needFracAzi()

virtual bool ReflCalc1D::needFracAzi ( ) const
inlinevirtual

◆ needFracRho()

virtual bool ReflCalc1D::needFracRho ( ) const
inlinevirtual

◆ needsSwave()

virtual bool ReflCalc1D::needsSwave ( ) const
inlinevirtual

Reimplemented in AICalc1D.

◆ nrIterations()

od_int64 ReflCalc1D::nrIterations ( ) const
overrideprotectedvirtual
Returns
the number of times the process should be run.

Implements ParallelTask.

◆ sDefAngle()

static float ReflCalc1D::sDefAngle ( Seis::OffsetType )
static

◆ sDefAngleRange()

static StepInterval< float > ReflCalc1D::sDefAngleRange ( Seis::OffsetType )
static

◆ setAngle()

void ReflCalc1D::setAngle ( float thetaangle,
Seis::OffsetType  )

<Note, if either p-wave or s-wave are undef and are undef and required, will fill them with Castagna to compute the reflection coeffs <!

◆ setAngles()

void ReflCalc1D::setAngles ( const TypeSet< float > & thetaangles,
Seis::OffsetType  )

◆ setIOParsToSingleAngle()

static void ReflCalc1D::setIOParsToSingleAngle ( IOPar & ,
float angle = 0.f,
Seis::OffsetType = Seis::OffsetType::AngleDegrees )
static

◆ setModel()

bool ReflCalc1D::setModel ( const ElasticModel & )

◆ setup() [1/2]

virtual const ReflCalc1D::Setup & ReflCalc1D::setup ( ) const
pure virtual

Implemented in AICalc1D.

◆ setup() [2/2]

virtual ReflCalc1D::Setup & ReflCalc1D::setup ( )
pure virtual

Implemented in AICalc1D.

◆ sKeyAngle()

static const char * ReflCalc1D::sKeyAngle ( )
inlinestatic

◆ sKeyAngleInDegrees()

static const char * ReflCalc1D::sKeyAngleInDegrees ( )
inlinestatic

◆ sKeyReflPar()

static const char * ReflCalc1D::sKeyReflPar ( )
inlinestatic

◆ uiMessage()

uiString ReflCalc1D::uiMessage ( ) const
inlineoverridevirtual

Reimplemented from Task.

◆ usePar()

virtual bool ReflCalc1D::usePar ( const IOPar & )
virtual

Member Data Documentation

◆ depths_

float* ReflCalc1D::depths_ = nullptr
protected

◆ model_

ElasticModel& ReflCalc1D::model_
protected

◆ msg_

uiString ReflCalc1D::msg_
protected

◆ reflectivities_

float_complex** ReflCalc1D::reflectivities_ = nullptr
protected

◆ refmodel_

RefMan<AngleReflectivityModel> ReflCalc1D::refmodel_
protected

◆ thetaangles_

TypeSet<float> ReflCalc1D::thetaangles_
protected

◆ twt_

float* ReflCalc1D::twt_ = nullptr
protected

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2025