template class xf::hpc::rtm::RTM3D

#include "rtm3d.hpp"

Overview

RTM3D class defines the basic operations for 3D RTM3D .

Parameters:

t_DataType the basic wavefield datatype
t_Order is the spatial discretization order
t_MaxDimZ is the maximum dim along z-axis this kernel can process
t_MaxDimY is the maximum dim along y-axis this kernel can process
t_PEZ is the number of processing elements along z-axis
t_PEX is the number of processing elements along x-axis
template <
    typename t_Domain,
    typename t_DataType,
    int t_Order,
    int t_MaxDimZ = 128,
    int t_MaxDimY = 128,
    int t_MaxB = 40,
    int t_PEZ = 1,
    int t_PEX = 1
    >
class RTM3D: public xf::hpc::rtm::Stencil3D

// typedefs

typedef Stencil3D <t_DataType, t_Order, t_MaxDimZ, t_MaxDimY, t_PEZ, t_PEX> t_StencilType
typedef t_StencilType::t_PairType t_PairType
typedef t_StencilType::t_DataTypeX t_DataTypeX
typedef t_StencilType::t_DataTypeZ t_DataTypeZ
typedef t_StencilType::t_WideType t_WideType
typedef t_StencilType::t_InType t_InType
typedef t_StencilType::t_PairInType t_PairInType
typedef blas::WideType <t_InType, t_HalfOrder/t_PEZ> t_UpbType
typedef t_UpbType::t_TypeInt t_UpbInType

Inherited Members

// typedefs

typedef blas::WideType <t_DataType, t_PEZ> t_DataTypeZ
typedef t_DataTypeZ::t_TypeInt t_InTypeZ
typedef blas::WideType <t_DataType, t_PEX> t_DataTypeX
typedef t_DataTypeX::t_TypeInt t_InTypeX
typedef blas::WideType <t_InTypeX, t_PEZ, t_DataTypeX::t_TypeWidth> t_WideType
typedef t_WideType::t_TypeInt t_InType
typedef blas::WideType <t_InType, t_NumData, t_WideType::t_TypeWidth> t_PairType
typedef t_PairType::t_TypeInt t_PairInType

// fields

static const unsigned int t_HalfOrder
static const unsigned int t_NumData
static const unsigned int t_FifoDepth

Methods

forward

forward overload (1)

void forward (
    const t_DataType p_src,
    hls::stream <t_InType>& p_v2dt2,
    hls::stream <t_InType>& p_vt,
    hls::stream <t_InType>& p_pp0,
    hls::stream <t_InType>& p_p0,
    hls::stream <t_InType>& p_pp1,
    hls::stream <t_InType>& p_p1
    )

forward defines the forward streaming module

Parameters:

p_src is the source wavefield at given time stamp
p_v2dt2 is the pow(v * dt, 2)
p_vt is a copy of p_v2dt2
p_pp0 is the stream of input wavefield p(t - 1)
p_pp1 is the stream of output wavefield p(t)
p_p0 is the stream of input wavefield p(t)
p_p1 is the stream of output wavefield p(t + 1)

forward overload (2)

void forward (
    const t_DataType p_src,
    hls::stream <t_UpbInType>& p_upb,
    hls::stream <t_InType>& p_v2dt2,
    hls::stream <t_InType>& p_vt,
    hls::stream <t_InType>& p_pp0,
    hls::stream <t_InType>& p_p0,
    hls::stream <t_InType>& p_pp1,
    hls::stream <t_InType>& p_p1
    )

forward defines the forward streaming module

Parameters:

p_src is the source wavefield at given time stamp
p_upb is the upper boundary to be saved
p_v2dt2 is the pow(v * dt, 2)
p_vt is a copy of p_v2dt2
p_pp0 is the stream of input wavefield p(t - 1)
p_pp1 is the stream of output wavefield p(t)
p_p0 is the stream of input wavefield p(t)
p_p1 is the stream of output wavefield p(t + 1)