1#ifndef PRDC_DOMAIN_REAL_H
2#define PRDC_DOMAIN_REAL_H
11#include <util/param/ParamComposite.h>
13#include <prdc/crystal/Basis.h>
14#include <prdc/crystal/SpaceGroup.h>
15#include <prdc/crystal/UnitCell.h>
16#include <pscf/mesh/Mesh.h>
22 template <
typename T>
class Signal;
23 template <>
class Signal<void>;
65 template <
int D,
class FFT,
class WLT,
class FIT>
287 std::string groupName_;
315 return * fileMasterPtr_;
327 template <
int D,
class FFT,
class WLT,
class FIT>
329 {
return unitCell_; }
332 template <
int D,
class FFT,
class WLT,
class FIT>
334 {
return unitCell_; }
337 template <
int D,
class FFT,
class WLT,
class FIT>
342 template <
int D,
class FFT,
class WLT,
class FIT>
347 template <
int D,
class FFT,
class WLT,
class FIT>
352 template <
int D,
class FFT,
class WLT,
class FIT>
357 template <
int D,
class FFT,
class WLT,
class FIT>
362 template <
int D,
class FFT,
class WLT,
class FIT>
367 template <
int D,
class FFT,
class WLT,
class FIT>
372 template <
int D,
class FFT,
class WLT,
class FIT>
374 {
return waveList_; }
377 template <
int D,
class FFT,
class WLT,
class FIT>
379 {
return waveList_; }
382 template <
int D,
class FFT,
class WLT,
class FIT>
387 template <
int D,
class FFT,
class WLT,
class FIT>
392 template <
int D,
class FFT,
class WLT,
class FIT>
399 template <
int D,
class FFT,
class WLT,
class FIT>
401 {
return groupName_; }
404 template <
int D,
class FFT,
class WLT,
class FIT>
406 {
return hasGroup_; }
409 template <
int D,
class FFT,
class WLT,
class FIT>
411 {
return basis_.isInitialized(); }
Description of a regular grid of points in a periodic domain.
Symmetry-adapted Fourier basis for pseudo-spectral SCFT.
Fourier transform wrapper.
void writeGroup(std::string const &filename) const
Output all elements of the space group.
Basis< D > const & basis() const
Get the Basis by const reference.
Mesh< D > const & mesh() const
Get the Mesh by const reference.
UnitCell< D > & unitCell()
Get the UnitCell by non-const reference.
virtual void readParameters(std::istream &in)
Read body of parameter block (without opening and closing lines).
SpaceGroup< D > const & group() const
Get the SpaceGroup by const reference.
Mesh< D > & mesh()
Get the Mesh by non-const reference.
void readRGridFieldHeader(std::istream &in, int &nMonomer)
Read initialization data from header of an r-grid field file.
std::string groupName() const
Get the group name.
FFT & fft()
Get the FFT by non-const reference.
void setFileMaster(FileMaster &fileMaster)
Create association with a FileMaster, needed by FieldIo.
bool hasBasis() const
Has a symmetry-adapted Fourier basis been initialized?
UnitCell< D > const & unitCell() const
Get the UnitCell by const reference.
Basis< D > & basis()
Get the Basis object by non-const reference.
void writeStars(std::string const &filename) const
Output information about stars and symmetrized basis functions.
WLT const & waveList() const
Get the WaveList by const reference.
void makeBasis()
Construct basis if not done already.
bool hasGroup() const
Has a space group been declared?
FIT const & fieldIo() const
Get the FieldIo by const reference.
UnitCell< D >::LatticeSystem lattice() const
Get the lattice system (enumeration value).
void writeWaves(std::string const &filename) const
Output information about waves.
FFT const & fft() const
Get the FFT object by non-const reference.
WLT & waveList()
Get the WaveList by non-const reference.
FIT & fieldIo()
Get the FieldIo by non-const reference.
Crystallographic space group.
Base template for UnitCell<D> classes, D=1, 2 or 3.
A FileMaster manages input and output files for a simulation.
ScalarParam< Type > & read(std::istream &in, const char *label, Type &value)
Add and read a new required ScalarParam < Type > object.
ScalarParam< Type > & readOptional(std::istream &in, const char *label, Type &value)
Add and read a new optional ScalarParam < Type > object.
ParamComposite()
Constructor.
Notifier (or subject) in the Observer design pattern.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
Periodic fields and crystallography.
PSCF package top-level namespace.
Utility classes for scientific computation.