11#include <pspg/field/FFT.h>
12#include <pspg/field/RDField.h>
13#include <pspg/field/RDFieldDft.h>
15#include <pscf/crystal/Basis.h>
16#include <pscf/crystal/SpaceGroup.h>
17#include <pscf/crystal/UnitCell.h>
18#include <pscf/mesh/Mesh.h>
20#include <util/misc/FileMaster.h>
21#include <util/containers/DArray.h>
22#include <util/containers/Array.h>
65 std::string& groupName,
225 bool writeHeader =
true)
const;
423 std::string * groupNamePtr_;
444 FFT<D> const & fft()
const
458 std::string & groupName()
const
461 return *groupNamePtr_;
482 return *fileMasterPtr_;
488 void checkWorkDft()
const;
492 #ifndef PSPG_FIELD_IO_TPP
Symmetry-adapted Fourier basis for pseudo-spectral scft.
Description of a regular grid of points in a periodic domain.
Fourier transform wrapper for real data.
File input/output operations for fields in several file formats.
void writeFieldsKGrid(std::ostream &out, DArray< RDFieldDft< D > > const &fields, UnitCell< D > const &unitCell) const
Write array of RDFieldDft objects (k-space fields) to file.
void convertKGridToRGrid(DArray< RDFieldDft< D > > const &in, DArray< RDField< D > > &out) const
Convert fields from k-grid (DFT) to real space (rgrid) format.
void writeFieldsBasis(std::ostream &out, DArray< DArray< double > > const &fields, UnitCell< D > const &unitCell) const
Write concentration or chemical potential field components to file.
void writeFieldHeader(std::ostream &out, int nMonomer, UnitCell< D > const &unitCell) const
Write header for field file (fortran pscf format)
void convertRGridToKGrid(DArray< RDField< D > > const &in, DArray< RDFieldDft< D > > &out) const
Convert fields from spatial grid (rgrid) to k-grid format.
void writeFieldRGrid(std::ostream &out, RDField< D > const &field, UnitCell< D > const &unitCell, bool writeHeader=true) const
Write a single RField objects (field on an r-space grid) to file.
void convertRGridToBasis(DArray< RDField< D > > const &in, DArray< DArray< double > > &out) const
Convert fields from spatial grid (rgrid) to symmetrized basis.
void convertBasisToRGrid(DArray< DArray< double > > const &in, DArray< RDField< D > > &out) const
Convert fields from symmetrized basis to spatial grid (rgrid).
void writeFieldsRGrid(std::ostream &out, DArray< RDField< D > > const &fields, UnitCell< D > const &unitCell) const
Write array of RField objects (fields on an r-space grid) to file.
void associate(Mesh< D > const &mesh, FFT< D > const &fft, typename UnitCell< D >::LatticeSystem &lattice, std::string &groupName, SpaceGroup< D > &group, Basis< D > &basis, FileMaster const &fileMaster)
Get and store addresses of associated objects.
void readFieldsKGrid(std::istream &in, DArray< RDFieldDft< D > > &fields, UnitCell< D > &unitCell) const
Read array of RDFieldDft objects (k-space fields) from file.
void readFieldsBasis(std::istream &in, DArray< DArray< double > > &fields, UnitCell< D > &unitCell) const
Read concentration or chemical potential field components from file.
void convertKGridToBasis(RDFieldDft< D > const &dft, DArray< double > &components) const
Convert field from Fourier transform (k-grid) to symmetrized basis.
void readFieldRGrid(std::istream &in, RDField< D > &field, UnitCell< D > &unitCell) const
Read a single RField objects (field on an r-space grid) from file.
void convertBasisToKGrid(DArray< double > const &components, RDFieldDft< D > &dft) const
Convert field from symmetrized basis to Fourier transform (k-grid).
void readFieldHeader(std::istream &in, int &nMonomer, UnitCell< D > &unitCell) const
Reader header of field file (fortran pscf format)
void readFieldsRGrid(std::istream &in, DArray< RDField< D > > &fields, UnitCell< D > &unitCell) const
Read array of RField objects (fields on an r-space grid) from file.
Discrete Fourier Transform (DFT) of a real field on an FFT mesh.
Field of real single precision values on an FFT mesh on a device.
Crystallographic space group.
Base template for UnitCell<D> classes, D=1, 2 or 3.
Dynamically allocatable contiguous array template.
A FileMaster manages input and output files for a simulation.
#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.