Skip to content

Class TempLat::ComplexFieldAsFourier

template <typename R>

ClassList > TempLat > ComplexFieldAsFourier

A class which treats a complex field as an object in fourier space. More...

  • #include <asfourier.h>

Inherits the following classes: TempLat::UnaryOperator

Public Types

Type Name
typedef typename ComplexGetGetReturnType< R >::type mRType

Public Static Attributes

Type Name
constexpr size_t NDim = GetNDim::get&lt;R&gt;()

Public Functions

Type Name
ComplexFieldAsFourier (const R & pR)
DEVICE_INLINE_FUNCTION auto eval (const IDX &... idx) const
std::string toString () const

Public Functions inherited from TempLat::UnaryOperator

See TempLat::UnaryOperator

Type Name
UnaryOperator (const R & pR)
device::Idx confirmGhostsUpToDate () const
void confirmSpace (const LayoutStruct< NDim > & newLayout, const SpaceStateType & spaceType) const
void doWeNeedGhosts () const
auto getDx () const
auto getKIR () const
auto getToolBox () const
virtual std::string operatorString () const
Override this method in your derived class, to have an easy implementation of your toString method.
void postGet ()
void preGet ()
std::string toString () const
If your descending class implements operatorString() and your operator is of the type "OP b" (where OP is * or whatever), this toString method does all the work for you, only adding parentheses if b contains spaces.

Public Static Functions inherited from TempLat::UnaryOperator

See TempLat::UnaryOperator

Type Name
consteval size_t getNDim ()

Protected Attributes inherited from TempLat::UnaryOperator

See TempLat::UnaryOperator

Type Name
R mR

Detailed Description

Derives from UnaryOperator so that the pre/postGet, confirmSpace, ghost and toolBox lifecycle is forwarded to the wrapped child. Without this the wrapped subtree is silently skipped (e.g. a random field never advances its generation), so eval alone is not enough.

Unit test: ctest -R test-asfourier

Public Types Documentation

typedef mRType

using TempLat::ComplexFieldAsFourier< R >::mRType =  typename ComplexGetGetReturnType<R>::type;

Public Static Attributes Documentation

variable NDim

constexpr size_t TempLat::ComplexFieldAsFourier< R >::NDim;

Public Functions Documentation

function ComplexFieldAsFourier

inline TempLat::ComplexFieldAsFourier::ComplexFieldAsFourier (
    const R & pR
) 

function eval

template<typename... IDX>
inline DEVICE_INLINE_FUNCTION auto TempLat::ComplexFieldAsFourier::eval (
    const IDX &... idx
) const

function toString

inline std::string TempLat::ComplexFieldAsFourier::toString () const


The documentation for this class was generated from the following file cosmolatticeweb/tmp/code_source/templat/include/TempLat/lattice/algebra/complexalgebra/asfourier.h