12#include <util/param/ParamComposite.h>
14#include <pscf/math/IntVec.h>
15#include <pscf/crystal/UnitCell.h>
16#include <pspc/field/RField.h>
17#include <util/containers/DArray.h>
22 template <
int D>
class FieldIo;
321 {
return isAllocated_; }
331 {
return isSymmetric_; }
333 #ifndef PSPC_W_FIELD_CONTAINER_TPP
An IntVec<D, T> is a D-component vector of elements of integer type T.
File input/output operations and format conversions for fields.
A field to which the total density is constrained.
void setFieldIo(FieldIo< D > const &fieldIo)
Create association with FieldIo (store pointer).
void setBasis(DArray< double > const &field)
Set field component values, in symmetrized Fourier format.
void setRGrid(RField< D > const &field, bool isSymmetric=false)
Set field values in real-space (r-grid) format.
bool isAllocated() const
Has memory been allocated?
DArray< double > const & basis() const
Get the field in basis format.
bool isSymmetric() const
Are field symmetric under all elements of the space group?
void readRGrid(std::istream &in, UnitCell< D > &unitCell, bool isSymmetric=false)
Reads field from an input stream in real-space (r-grid) format.
RField< D > const & rgrid() const
Get array of all field in r-space grid format.
void readBasis(std::istream &in, UnitCell< D > &unitCell)
Read field from input stream in symmetrized Fourier format.
bool hasData() const
Has field data been set in either format?
void allocate(int nBasis, IntVec< D > const &dimensions)
Allocate memory for the field.
double phiTot() const
Volume fraction of the unit cell occupied by the polymers/solvents.
Field of real double precision values on an FFT mesh.
Base template for UnitCell<D> classes, D=1, 2 or 3.
Dynamically allocatable contiguous array template.
An object that can read multiple parameters from file.
#define UTIL_ASSERT(condition)
Assertion macro suitable for debugging serial or parallel code.
C++ namespace for polymer self-consistent field theory (PSCF).
Utility classes for scientific computation.