gstlearn  1.0.0
CCC
ProjConvolution Class Reference

#include <ProjConvolution.hpp>

Inheritance diagram for ProjConvolution:
IProjMatrix

Public Member Functions

 ProjConvolution (const VectorDouble &convolution=VectorDouble(), const DbGrid *grid_point=nullptr, const VectorInt &nodeRes2D=VectorInt(), const VectorDouble &gext=VectorDouble())
 
 ProjConvolution (const ProjConvolution &m)=delete
 
ProjConvolutionoperator= (const ProjConvolution &m)=delete
 
virtual ~ProjConvolution ()
 
int point2mesh (const VectorDouble &valonseismic, VectorDouble &valonvertex) const override
 
int mesh2point (const VectorDouble &valonvertex, VectorDouble &valonseismic) const override
 
int getApexNumber () const override
 
int getPointNumber () const override
 
DbGridgetResolutionGrid () const
 
const cs * getAProjHoriz () const
 
Triplet getAProjHorizToTriplet (bool flag_from_1=false) const
 
const VectorDoublegetConvolution () const
 
const VectorIntgetShiftVector () const
 
- Public Member Functions inherited from IProjMatrix
 IProjMatrix ()
 
virtual ~IProjMatrix ()
 

Private Member Functions

int _getConvSize () const
 
int _getHalfSize () const
 
void _buildGridSeis2D ()
 
void _buildGridRes2D ()
 
void _buildShiftVector ()
 
int _buildAprojHoriz ()
 
int _getNDim () const
 
Grid _getGridCharacteristicsRR (bool delLastDim=false) const
 
Grid _getGridCharacteristicsRS () const
 
bool _isVecDimCorrect (const VectorDouble &valonseismic, const VectorDouble &valonvertex) const
 
void _convolve (const VectorDouble &valonvertex, VectorDouble &valonseismic) const
 
void _convolveT (const VectorDouble &valonseismic, VectorDouble &valonvertex) const
 

Private Attributes

VectorDouble _convolution
 
const DbGrid_gridSeismic
 
VectorInt _nodeRes2D
 
VectorDouble _gext
 
VectorInt _shiftVector
 
DbGrid_gridSeis2D
 
DbGrid_gridRes2D
 
cs * _AProjHoriz
 
VectorDouble _work
 

Detailed Description

Projection matrix for vertical convolution

Constructor & Destructor Documentation

◆ ProjConvolution() [1/2]

ProjConvolution::ProjConvolution ( const VectorDouble convolution = VectorDouble(),
const DbGrid grid_point = nullptr,
const VectorInt nodeRes2D = VectorInt(),
const VectorDouble gext = VectorDouble() 
)

◆ ProjConvolution() [2/2]

ProjConvolution::ProjConvolution ( const ProjConvolution m)
delete

◆ ~ProjConvolution()

ProjConvolution::~ProjConvolution ( )
virtual

Member Function Documentation

◆ _buildAprojHoriz()

int ProjConvolution::_buildAprojHoriz ( )
private

◆ _buildGridRes2D()

void ProjConvolution::_buildGridRes2D ( )
private

◆ _buildGridSeis2D()

void ProjConvolution::_buildGridSeis2D ( )
private

◆ _buildShiftVector()

void ProjConvolution::_buildShiftVector ( )
private

Calculate the vector of grid index shifts (in Point Grid) This vector is calculated for the cell located in the center of the grid

◆ _convolve()

void ProjConvolution::_convolve ( const VectorDouble valonvertex,
VectorDouble valonseismic 
) const
private

◆ _convolveT()

void ProjConvolution::_convolveT ( const VectorDouble valonseismic,
VectorDouble valonvertex 
) const
private

◆ _getConvSize()

int ProjConvolution::_getConvSize ( ) const
inlineprivate

◆ _getGridCharacteristicsRR()

Grid ProjConvolution::_getGridCharacteristicsRR ( bool  delLastDim = false) const
private

◆ _getGridCharacteristicsRS()

Grid ProjConvolution::_getGridCharacteristicsRS ( ) const
private

Grid matching Resolution in 'ndim-1' and Seismic for 'ndim'

Returns

◆ _getHalfSize()

int ProjConvolution::_getHalfSize ( ) const
inlineprivate

◆ _getNDim()

int ProjConvolution::_getNDim ( ) const
inlineprivate

◆ _isVecDimCorrect()

bool ProjConvolution::_isVecDimCorrect ( const VectorDouble valonseismic,
const VectorDouble valonvertex 
) const
private

◆ getApexNumber()

int ProjConvolution::getApexNumber ( ) const
overridevirtual

Implements IProjMatrix.

◆ getAProjHoriz()

const cs* ProjConvolution::getAProjHoriz ( ) const
inline

◆ getAProjHorizToTriplet()

Triplet ProjConvolution::getAProjHorizToTriplet ( bool  flag_from_1 = false) const

◆ getConvolution()

const VectorDouble& ProjConvolution::getConvolution ( ) const
inline

◆ getPointNumber()

int ProjConvolution::getPointNumber ( ) const
overridevirtual

Implements IProjMatrix.

◆ getResolutionGrid()

DbGrid * ProjConvolution::getResolutionGrid ( ) const

◆ getShiftVector()

const VectorInt& ProjConvolution::getShiftVector ( ) const
inline

◆ mesh2point()

int ProjConvolution::mesh2point ( const VectorDouble valonvertex,
VectorDouble valonseismic 
) const
overridevirtual

Apply the Projection for a Coarse Grid vector and store the result in a Seismic Grid Vector

Parameters
valonvertexInput vector defined on the Coarse Grid
valonseismicOutput vector defined on the Seismic grid
Returns

Implements IProjMatrix.

◆ operator=()

ProjConvolution& ProjConvolution::operator= ( const ProjConvolution m)
delete

◆ point2mesh()

int ProjConvolution::point2mesh ( const VectorDouble valonseismic,
VectorDouble valonvertex 
) const
overridevirtual

Apply the projection for a Seismic Grid Vector and store the result on a Coarse Grid vector

Parameters
valonseismicInput vector defined on the Seismic Grid
valonvertexOutput vector defined on the Coarse Grid
Returns

Implements IProjMatrix.

Member Data Documentation

◆ _AProjHoriz

cs* ProjConvolution::_AProjHoriz
private

◆ _convolution

VectorDouble ProjConvolution::_convolution
private

◆ _gext

VectorDouble ProjConvolution::_gext
private

◆ _gridRes2D

DbGrid* ProjConvolution::_gridRes2D
private

◆ _gridSeis2D

DbGrid* ProjConvolution::_gridSeis2D
private

◆ _gridSeismic

const DbGrid* ProjConvolution::_gridSeismic
private

◆ _nodeRes2D

VectorInt ProjConvolution::_nodeRes2D
private

◆ _shiftVector

VectorInt ProjConvolution::_shiftVector
private

◆ _work

VectorDouble ProjConvolution::_work
mutableprivate

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