.. index:: pair: class; xf::hpc::rtm::RTM3D .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d: .. _cid-xf::hpc::rtm::rtm3d: template class xf::hpc::rtm::RTM3D ================================== .. toctree:: :hidden: .. code-block:: cpp :class: overview-code-block #include "rtm3d.hpp" Overview ~~~~~~~~ :ref:`RTM3D ` class defines the basic operations for 3D :ref:`RTM3D ` . .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - 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 .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a1c7e84893dd67495981ecb38e9fedde6: .. _cid-xf::hpc::rtm::rtm3d::t_stenciltype: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1acdbfe5bca5405aab4dfc73a290e5ce88: .. _cid-xf::hpc::rtm::rtm3d::t_pairtype: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1af3cca0e1f9b6606b145fdfc38a33e8d4: .. _cid-xf::hpc::rtm::rtm3d::t_datatypex: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a2c1077447e4e52c443ab89c1fa5a3bdb: .. _cid-xf::hpc::rtm::rtm3d::t_datatypez: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a5cd6642e1d58f26a54b5b2a178e8aeef: .. _cid-xf::hpc::rtm::rtm3d::t_widetype: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a08aeb1bc8a670d0471481cdc15c2451f: .. _cid-xf::hpc::rtm::rtm3d::t_intype: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a0258588a537e7dc59bd9b5b8cfdd2d97: .. _cid-xf::hpc::rtm::rtm3d::t_pairintype: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a3b10421beadb92c8c4e27b650e0997bc: .. _cid-xf::hpc::rtm::rtm3d::t_upbtype: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1ac05f79322297caf99153c0a2b5885578: .. _cid-xf::hpc::rtm::rtm3d::t_upbintype: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1afe059a0e8f64f53000eb54151dbeb333: .. _cid-xf::hpc::rtm::rtm3d::rtm3d: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a40ba66e0d84aad6e06ed96bd9de27fc6: .. _cid-xf::hpc::rtm::rtm3d::setdomain: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1ad8ec9736a726a1388b02210f6d062e6e: .. _cid-xf::hpc::rtm::rtm3d::setsrc: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a096b8444ff0bee49ecfa7285e39f4fb0: .. _cid-xf::hpc::rtm::rtm3d::settaper: .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1ae8bb0826adc2b4972cf7eb7b91732f4e: .. _cid-xf::hpc::rtm::rtm3d::saveupb: .. ref-code-block:: cpp :class: overview-code-block 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 :ref:`xf::hpc::rtm::Stencil3D` // typedefs typedef :ref:`Stencil3D` t_StencilType typedef :ref:`t_StencilType::t_PairType` t_PairType typedef :ref:`t_StencilType::t_DataTypeX` t_DataTypeX typedef :ref:`t_StencilType::t_DataTypeZ` t_DataTypeZ typedef :ref:`t_StencilType::t_WideType` t_WideType typedef :ref:`t_StencilType::t_InType` t_InType typedef :ref:`t_StencilType::t_PairInType` t_PairInType typedef blas::WideType <:ref:`t_InType`, :ref:`t_HalfOrder`/t_PEZ> t_UpbType typedef t_UpbType::t_TypeInt t_UpbInType Inherited Members ----------------- .. ref-code-block:: cpp :class: overview-inherited-code-block // typedefs typedef blas::WideType :ref:`t_DataTypeZ` typedef t_DataTypeZ::t_TypeInt :ref:`t_InTypeZ` typedef blas::WideType :ref:`t_DataTypeX` typedef t_DataTypeX::t_TypeInt :ref:`t_InTypeX` typedef blas::WideType <:ref:`t_InTypeX`, t_PEZ, t_DataTypeX::t_TypeWidth> :ref:`t_WideType` typedef t_WideType::t_TypeInt :ref:`t_InType` typedef blas::WideType <:ref:`t_InType`, :ref:`t_NumData`, t_WideType::t_TypeWidth> :ref:`t_PairType` typedef t_PairType::t_TypeInt :ref:`t_PairInType` // fields static const unsigned int :ref:`t_HalfOrder` static const unsigned int :ref:`t_NumData` static const unsigned int :ref:`t_FifoDepth` Methods ~~~~~~~ .. FunctionSection .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a1a67348ae311aea748cc2f574c515fae: .. _cid-xf::hpc::rtm::rtm3d::forward: forward ------- forward overload (1) ++++++++++++++++++++ .. ref-code-block:: cpp :class: title-code-block void forward ( const t_DataType p_src, hls::stream <:ref:`t_InType`>& p_v2dt2, hls::stream <:ref:`t_InType`>& p_vt, hls::stream <:ref:`t_InType`>& p_pp0, hls::stream <:ref:`t_InType`>& p_p0, hls::stream <:ref:`t_InType`>& p_pp1, hls::stream <:ref:`t_InType`>& p_p1 ) forward defines the forward streaming module .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - 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) .. _doxid-classxf_1_1hpc_1_1rtm_1_1_r_t_m3_d_1a7f2fa9cc4e890b0bc6cae4111c940187: .. _cid-xf::hpc::rtm::rtm3d::forward-2: forward overload (2) ++++++++++++++++++++ .. ref-code-block:: cpp :class: title-code-block void forward ( const t_DataType p_src, hls::stream <:ref:`t_UpbInType`>& p_upb, hls::stream <:ref:`t_InType`>& p_v2dt2, hls::stream <:ref:`t_InType`>& p_vt, hls::stream <:ref:`t_InType`>& p_pp0, hls::stream <:ref:`t_InType`>& p_p0, hls::stream <:ref:`t_InType`>& p_pp1, hls::stream <:ref:`t_InType`>& p_p1 ) forward defines the forward streaming module .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - 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)