IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
second_order_abc_face< _scalar, _main_axis, _side_axes > Struct Template Reference

#include <AbsorbingBC.h>

Collaboration diagram for second_order_abc_face< _scalar, _main_axis, _side_axes >:

Public Types

using scalar = _scalar

Public Member Functions

KOKKOS_FUNCTION second_order_abc_face (ippl::Vector< scalar, 3 > hr, scalar dt, int _sign)
 Constructor for the second-order ABC face.
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 boundary of the field.
template<typename value_type>
KOKKOS_FUNCTION value_type advanceBoundaryS (const value_type &v1, const value_type &v2, const value_type &v3, const value_type &v4, const value_type &v5, const value_type &v6, const value_type &v7, const value_type &v8, const value_type &v9, const value_type &v10, const value_type &v11, const value_type &v12, const value_type &v13) const noexcept
 Advances the boundary condition using the precomputed weights.

Public Attributes

scalar Cweights [5]
int sign

Static Public Attributes

static constexpr unsigned main_axis

Detailed Description

template<typename _scalar, unsigned _main_axis, unsigned... _side_axes>
struct second_order_abc_face< _scalar, _main_axis, _side_axes >

Definition at line 34 of file AbsorbingBC.h.

Member Typedef Documentation

◆ scalar

template<typename _scalar, unsigned _main_axis, unsigned... _side_axes>
using second_order_abc_face< _scalar, _main_axis, _side_axes >::scalar = _scalar

Definition at line 35 of file AbsorbingBC.h.

Constructor & Destructor Documentation

◆ second_order_abc_face()

template<typename _scalar, unsigned _main_axis, unsigned... _side_axes>
KOKKOS_FUNCTION second_order_abc_face< _scalar, _main_axis, _side_axes >::second_order_abc_face ( ippl::Vector< scalar, 3 > hr,
scalar dt,
int _sign )
inline

Constructor for the second-order ABC face.

Parameters
hrMesh spacing in each dimension.
dtTime step size.
_signSign of the main axis (1 or -1).

Definition at line 48 of file AbsorbingBC.h.

References Cweights, first(), main_axis, second(), and sign.

Here is the call graph for this function:

Member Function Documentation

◆ advanceBoundaryS()

template<typename _scalar, unsigned _main_axis, unsigned... _side_axes>
template<typename value_type>
KOKKOS_FUNCTION value_type second_order_abc_face< _scalar, _main_axis, _side_axes >::advanceBoundaryS ( const value_type & v1,
const value_type & v2,
const value_type & v3,
const value_type & v4,
const value_type & v5,
const value_type & v6,
const value_type & v7,
const value_type & v8,
const value_type & v9,
const value_type & v10,
const value_type & v11,
const value_type & v12,
const value_type & v13 ) const
inlinenoexcept

Advances the boundary condition using the precomputed weights.

Definition at line 125 of file AbsorbingBC.h.

References Cweights.

Referenced by operator()().

Here is the caller graph for this function:

◆ operator()()

template<typename _scalar, unsigned _main_axis, unsigned... _side_axes>
template<typename view_type, typename Coords>
KOKKOS_INLINE_FUNCTION auto second_order_abc_face< _scalar, _main_axis, _side_axes >::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 boundary 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 boundary.

Definition at line 87 of file AbsorbingBC.h.

References advanceBoundaryS(), ippl::apply(), main_axis, and sign.

Here is the call graph for this function:

Member Data Documentation

◆ Cweights

template<typename _scalar, unsigned _main_axis, unsigned... _side_axes>
scalar second_order_abc_face< _scalar, _main_axis, _side_axes >::Cweights[5]

Definition at line 36 of file AbsorbingBC.h.

Referenced by advanceBoundaryS(), and second_order_abc_face().

◆ main_axis

template<typename _scalar, unsigned _main_axis, unsigned... _side_axes>
unsigned second_order_abc_face< _scalar, _main_axis, _side_axes >::main_axis
staticconstexpr
Initial value:

Definition at line 39 of file AbsorbingBC.h.

Referenced by operator()(), and second_order_abc_face().

◆ sign

template<typename _scalar, unsigned _main_axis, unsigned... _side_axes>
int second_order_abc_face< _scalar, _main_axis, _side_axes >::sign

Definition at line 38 of file AbsorbingBC.h.

Referenced by operator()(), and second_order_abc_face().


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