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<R>() |
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
| 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
| Type | Name |
|---|---|
| consteval size_t | getNDim () |
Protected Attributes inherited from 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
Public Static Attributes Documentation
variable NDim
Public Functions Documentation
function ComplexFieldAsFourier
function eval
template<typename... IDX>
inline DEVICE_INLINE_FUNCTION auto TempLat::ComplexFieldAsFourier::eval (
const IDX &... idx
) const
function toString
The documentation for this class was generated from the following file cosmolatticeweb/tmp/code_source/templat/include/TempLat/lattice/algebra/complexalgebra/asfourier.h