1#ifndef PRDC_CL_C_FIELDS_H
2#define PRDC_CL_C_FIELDS_H
11#include <util/containers/DArray.h>
12#include <pscf/math/IntVec.h>
56 template <
int D,
class CFT,
class FIT>
152 CFT
const &
field(
int monomerId)
const;
237 FIT
const * fieldIoPtr_;
254 template <
int D,
class CFT,
class FIT>
inline
262 template <
int D,
class CFT,
class FIT>
inline
270 template <
int D,
class CFT,
class FIT>
inline
278 template <
int D,
class CFT,
class FIT>
inline
286 template <
int D,
class CFT,
class FIT>
inline
288 {
return isAllocated_; }
291 template <
int D,
class CFT,
class FIT>
inline
298 template <
int D,
class CFT,
class FIT>
inline
301 {
return meshDimensions_; }
304 template <
int D,
class CFT,
class FIT>
inline
306 {
return meshSize_; }
309 template <
int D,
class CFT,
class FIT>
inline
311 {
return nMonomer_; }
314 template <
int D,
class CFT,
class FIT>
inline
void setFieldIo(FIT const &fieldIo)
Create association with FIT (store pointer).
int meshSize() const
Get mesh size (number of grid points), set on r-grid allocation.
bool isAllocated() const
Has memory been allocated for fields ?
IntVec< D > const & meshDimensions() const
Get mesh dimensions in each direction, set on r-grid allocation.
bool hasData() const
Does this container have up-to-date field data ?
void writeFields(std::string const &filename) const
Write fields to a named file.
CFT & field(int monomerId)
Get the field for one monomer type (non-const reference).
void setHasData(bool hasData)
Set the hasData boolean flag.
FieldIo< D > const & fieldIo() const
DArray< CFT > const & fields() const
Get the array of all fields (const reference).
CFT const & field(int monomerId) const
Get the field for one monomer type (const reference).
void allocate(int nMonomer, IntVec< D > const &dimensions)
Allocate memory for fields.
void setWriteUnitCell(UnitCell< D > const &cell)
Set unit cell used when writing field files.
DArray< CFT > & fields()
Get the array of all fields (non-const reference).
void writeFields(std::ostream &out) const
Write fields to an output stream.
An IntVec<D, T> is a D-component vector of elements of integer type T.
Base template for UnitCell<D> classes, D=1, 2 or 3.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
#define UTIL_ASSERT(condition)
Assertion macro suitable for debugging serial or parallel code.
Complex-valued periodic fields (class templates).
Periodic fields and crystallography.
PSCF package top-level namespace.