Skip to content

Class TempLat::Field

template <typename T, size_t _NDim>

ClassList > TempLat > Field

A class which is a classical field on your n-dimensional equisized grid. You use it as a scalar field, a vector component, whatever. Template parameter is your type of floating point precision: float or double. Default: double. More...

  • #include <field.h>

Inherits the following classes: TempLat::FieldNDimCheck, TempLat::ConfigView

Public Types

Type Name
typedef T value_type

Public Static Attributes

Type Name
constexpr size_t NDim = \_NDim

Public Static Attributes inherited from TempLat::ConfigView

See TempLat::ConfigView

Type Name
constexpr size_t NDim = \_NDim

Public Static Attributes inherited from TempLat::AbstractField

See TempLat::AbstractField

Type Name
constexpr size_t NDim = \_NDim

Public Functions

Type Name
Field (std::string name, device::memory::host_ptr< MemoryToolBox< NDim > > toolBox, LatticeParameters< T > pLatPar=LatticeParameters< T >())
auto d (const S & other) const
device::Idx d (const Field< T, NDim > & other) const
The real overlord: is it a Field , then we must compare.
auto d (const S & other) const
FourierView< T, NDim > & inFourierSpace ()
void operator= (R && g)
void operator= (const Field< T, NDim > & other)

Public Functions inherited from TempLat::ConfigView

See TempLat::ConfigView

Type Name
ConfigView (std::string name, device::memory::host_ptr< MemoryToolBox< NDim > > toolBox, LatticeParameters< T > pLatPar)
void assign (R && g)
void confirmSpace (const LayoutStruct< NDim > & newLayout, const SpaceStateType & spaceType) const
DEVICE_INLINE_FUNCTION auto eval (const IDX &... idx) const
auto getFullNDHostView () const
const auto & getLayout () const
auto getLocalNDHostView () const
auto getRawHostView () const
DEVICE_INLINE_FUNCTION T & getSet (IDX &&... idx) const
auto getView () const
void onBeforeAssignment (R && g)
void operator+= (R && g)
void operator= (R && g)
void operator= (const ConfigView< T, NDim > & other)
void setDisableFFTBlocking ()
Disable the blocking of going from configuration space to fourier space. Used by PowerSpectrumBuilder, which uses newly allocate memory which is filled in configuration space, and then FFT'ed to fourier space.
std::string toString () const
std::string to_string () const
void updateGhosts () const

Public Functions inherited from TempLat::AbstractField

See TempLat::AbstractField

Type Name
AbstractField (std::string name, device::memory::host_ptr< MemoryToolBox< NDim > > toolBox, LatticeParameters< T > pLatPar)
bool areGhostsStale () const
device::Idx confirmGhostsUpToDate () const
void confirmSpace (const LayoutStruct< NDim > & newLayout, const SpaceStateType & spaceType) const
auto getDx () const
auto getKIR () const
auto getLatParams () const
device::memory::host_ptr< MemoryManager< T, NDim > > getMemoryManager () const
device::memory::host_ptr< MemoryToolBox< NDim > > getToolBox () const
bool isConfigSpace () const
Check the current state.
bool isFourierSpace () const
Check the current state.
void setGhostsAreStale () const

Protected Attributes inherited from TempLat::AbstractField

See TempLat::AbstractField

Type Name
const LatticeParameters< T > latPar
device::memory::host_ptr< MemoryManager< T, NDim > > mManager
device::memory::host_ptr< MemoryToolBox< NDim > > mToolBox

Detailed Description

Implements a get method, and is hence suitable for all algebra.

Unit test: ctest -R test-field

@vocab-summary A real scalar field on the lattice, and the type that owns the memory. Assigning to it evaluates an expression across every site; passing it into one makes it a leaf. @vocab-signature Field<T, NDim> phi("phi", toolBox);

Public Types Documentation

typedef value_type

using TempLat::Field< T, _NDim >::value_type =  T;

Public Static Attributes Documentation

variable NDim

constexpr size_t TempLat::Field< T, _NDim >::NDim;

Public Functions Documentation

function Field

inline TempLat::Field::Field (
    std::string name,
    device::memory::host_ptr < MemoryToolBox < NDim > > toolBox,
    LatticeParameters < T > pLatPar=LatticeParameters < T >()
) 

function d [1/3]

template<typename S>
inline auto TempLat::Field::d (
    const S & other
) const

function d [2/3]

The real overlord: is it a Field , then we must compare.

inline device::Idx TempLat::Field::d (
    const Field < T, NDim > & other
) const


function d [3/3]

template<typename S>
inline auto TempLat::Field::d (
    const S & other
) const

function inFourierSpace

inline FourierView < T, NDim > & TempLat::Field::inFourierSpace () 

function operator=

template<typename R>
inline void TempLat::Field::operator= (
    R && g
) 

function operator=

inline void TempLat::Field::operator= (
    const Field < T, NDim > & other
) 

Friends Documentation

friend operator==

inline bool TempLat::Field::operator== (
    const Field < T, NDim > & a,
    const Field < T, NDim > & b
) 


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