11#include <util/containers/DArray.h>
12#include <pscf/math/IntVec.h>
68 template <
int D,
class RFT,
class FIT>
180 RFT &
rgrid(
int monomerId);
187 RFT
const &
rgrid(
int monomerId)
const;
318 FIT
const * fieldIoPtr_;
323 bool isAllocatedRGrid_;
328 bool isAllocatedBasis_;
345 template <
int D,
class RFT,
class FIT>
inline
353 template <
int D,
class RFT,
class FIT>
inline
361 template <
int D,
class RFT,
class FIT>
inline
369 template <
int D,
class RFT,
class FIT>
inline
378 template <
int D,
class RFT,
class FIT>
inline
386 template <
int D,
class RFT,
class FIT>
inline
394 template <
int D,
class RFT,
class FIT>
inline
402 template <
int D,
class RFT,
class FIT>
inline
410 template <
int D,
class RFT,
class FIT>
inline
412 {
return isAllocatedRGrid_; }
415 template <
int D,
class RFT,
class FIT>
inline
417 {
return isAllocatedBasis_; }
420 template <
int D,
class RFT,
class FIT>
inline
425 template <
int D,
class RFT,
class FIT>
inline
427 {
return isSymmetric_; }
432 template <
int D,
class RFT,
class FIT>
inline
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.
bool isAllocatedRGrid() const
Has memory been allocated for fields in r-grid format?
void writeBasis(std::ostream &out) const
Write fields to an input stream in symmetrized basis format.
bool hasData() const
Does this container have up-to-date fields?
~CFields()=default
Destructor.
void setFieldIo(FIT const &fieldIo)
Create association with FIT (store pointer).
void writeRGrid(std::ostream &out) const
Writes fields to an input stream in real-space (r-grid) format.
void setNMonomer(int nMonomer)
Set stored value of nMonomer.
void allocate(int nMonomer, int nBasis, IntVec< D > const &dimensions)
Allocate memory for both r-grid and basis field formats.
void allocateRGrid(IntVec< D > const &dimensions)
Allocate memory for fields in rgrid format.
bool isSymmetric() const
Are the fields invariant under elements of the space group?
FIT const & fieldIo() const
Get associated FieldIo object (const reference).
void setHasData(bool hasData)
Set the hasData flag.
DArray< DArray< double > > & basis()
Get array of all fields in basis format (non-const).
bool isAllocatedBasis() const
Has memory been allocated for fields in basis format?
void setIsSymmetric(bool isSymmetric)
Set the isSymmetric flag.
DArray< RFT > & rgrid()
Get array of all fields in r-grid format (non-const).
void allocateBasis(int nBasis)
Allocate or re-allocate memory for fields in basis format.
void setWriteUnitCell(UnitCell< D > const &cell)
Set unit cell used when writing field files.
Dynamically allocatable contiguous array template.
#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.
Periodic fields and crystallography.
Class templates for real-valued periodic fields.
PSCF package top-level namespace.
Utility classes for scientific computation.