OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
second_order_abc_corner< _scalar, x0, y0, z0 > Struct Template Reference

#include <AbsorbingBC.h>

Collaboration diagram for second_order_abc_corner< _scalar, x0, y0, z0 >:
Collaboration graph

Public Types

using scalar = _scalar
 

Public Member Functions

KOKKOS_FUNCTION second_order_abc_corner (ippl::Vector< scalar, 3 > hr, scalar dt)
 Constructor for the second-order ABC corner. More...
 
template<typename view_type , typename Coords >
KOKKOS_INLINE_FUNCTION auto operator() (const view_type &A_n, const view_type &A_nm1, const view_type &A_np1, const Coords &c) const -> typename view_type::value_type
 Applies the second-order ABC to the corner of the field. More...
 
template<typename value_type >
KOKKOS_INLINE_FUNCTION value_type advanceCornerS (value_type v1, value_type v2, value_type v3, value_type v4, value_type v5, value_type v6, value_type v7, value_type v8, value_type v9, value_type v10, value_type v11, value_type v12, value_type v13, value_type v14, value_type v15, value_type v16, value_type v17, value_type v18, value_type v19, value_type v20, value_type v21, value_type v22, value_type v23) const noexcept
 Advances the corner boundary condition using the precomputed weights. More...
 

Public Attributes

scalar Cweights [17]
 

Detailed Description

template<typename _scalar, bool x0, bool y0, bool z0>
struct second_order_abc_corner< _scalar, x0, y0, z0 >

Definition at line 287 of file AbsorbingBC.h.

Member Typedef Documentation

◆ scalar

template<typename _scalar , bool x0, bool y0, bool z0>
using second_order_abc_corner< _scalar, x0, y0, z0 >::scalar = _scalar

Definition at line 288 of file AbsorbingBC.h.

Constructor & Destructor Documentation

◆ second_order_abc_corner()

template<typename _scalar , bool x0, bool y0, bool z0>
KOKKOS_FUNCTION second_order_abc_corner< _scalar, x0, y0, z0 >::second_order_abc_corner ( ippl::Vector< scalar, 3 >  hr,
scalar  dt 
)
inline

Constructor for the second-order ABC corner.

Parameters
hrMesh spacing in each dimension.
dtTime step size.

Definition at line 297 of file AbsorbingBC.h.

References second_order_abc_corner< _scalar, x0, y0, z0 >::Cweights.

Member Function Documentation

◆ advanceCornerS()

template<typename _scalar , bool x0, bool y0, bool z0>
template<typename value_type >
KOKKOS_INLINE_FUNCTION value_type second_order_abc_corner< _scalar, x0, y0, z0 >::advanceCornerS ( value_type  v1,
value_type  v2,
value_type  v3,
value_type  v4,
value_type  v5,
value_type  v6,
value_type  v7,
value_type  v8,
value_type  v9,
value_type  v10,
value_type  v11,
value_type  v12,
value_type  v13,
value_type  v14,
value_type  v15,
value_type  v16,
value_type  v17,
value_type  v18,
value_type  v19,
value_type  v20,
value_type  v21,
value_type  v22,
value_type  v23 
) const
inlinenoexcept

Advances the corner boundary condition using the precomputed weights.

Definition at line 377 of file AbsorbingBC.h.

References second_order_abc_corner< _scalar, x0, y0, z0 >::Cweights.

Referenced by second_order_abc_corner< _scalar, x0, y0, z0 >::operator()().

◆ operator()()

template<typename _scalar , bool x0, bool y0, bool z0>
template<typename view_type , typename Coords >
KOKKOS_INLINE_FUNCTION auto second_order_abc_corner< _scalar, x0, y0, z0 >::operator() ( const view_type A_n,
const view_type A_nm1,
const view_type A_np1,
const Coords &  c 
) const -> typename view_type::value_type
inline

Applies the second-order ABC to the corner of the field.

Parameters
A_nCurrent time step field.
A_nm1Previous time step field.
A_np1Next time step field.
cCoordinates of the current point in the field.
Returns
Updated value at the corner.

Definition at line 343 of file AbsorbingBC.h.

References second_order_abc_corner< _scalar, x0, y0, z0 >::advanceCornerS(), ippl::apply(), and Physics::c.

Here is the call graph for this function:

Member Data Documentation

◆ Cweights

template<typename _scalar , bool x0, bool y0, bool z0>
scalar second_order_abc_corner< _scalar, x0, y0, z0 >::Cweights[17]

The documentation for this struct was generated from the following file: