PSCF v1.2
|
Periodic fields and crystallography. More...
Namespaces | |
namespace | Cpu |
Fields and FFTs for periodic boundary conditions (CPU) | |
namespace | Cuda |
Fields, FFTs, and utilities for periodic boundary conditions (CUDA) | |
Classes | |
class | Basis |
Symmetry-adapted Fourier basis for pseudo-spectral scft. More... | |
class | BFieldComparison |
Comparator for fields in symmetry-adapted basis format. More... | |
class | ExtGenFilmBase |
Base class defining external fields for thin film systems. More... | |
class | FieldIoReal |
File input/output operations and format conversions for fields. More... | |
class | MaskGenFilmBase |
Base class defining mask that imposes thin film confinement. More... | |
class | MaskTmpl |
Container for a field to which the total density is constrained. More... | |
class | SpaceGroup |
Crystallographic space group. More... | |
class | SpaceSymmetry |
A SpaceSymmetry represents a crystallographic space group symmetry. More... | |
class | SymmetryGroup |
Class template for a group of elements. More... | |
struct | TWave |
Simple wave struct for use within Basis construction. More... | |
struct | TWaveBzComp |
Comparator for TWave objects, based on TWave::indicesBz. More... | |
struct | TWaveDftComp |
Comparator for TWave objects, based on TWave::indicesDft. More... | |
struct | TWaveNormComp |
Comparator for TWave objects, based on TWave::sqNorm. More... | |
class | UnitCell |
Base template for UnitCell<D> classes, D=1, 2 or 3. More... | |
class | UnitCell< 1 > |
1D crystal unit cell. More... | |
class | UnitCell< 2 > |
2D crystal unit cell. More... | |
class | UnitCell< 3 > |
3D crystal unit cell. More... | |
class | UnitCellBase |
Base class template for a crystallographic unit cell. More... | |
Functions | |
template<int D> | |
void | readFieldHeader (std::istream &in, int &ver1, int &ver2, UnitCell< D > &cell, std::string &groupName, int &nMonomer) |
Read common part of field header (fortran PSCF format). | |
template<int D> | |
void | writeFieldHeader (std::ostream &out, int ver1, int ver2, UnitCell< D > const &cell, std::string const &groupName, int nMonomer) |
Write common part of field header (fortran PSCF format). | |
std::string | makeGroupFileName (int D, std::string groupName) |
Generates the file name from a group name. | |
template<int D> | |
int | convertFullParamIdToReduced (const int fullId, const typename UnitCell< D >::LatticeSystem lattice) |
Convert full lattice parameter index to a reduced index. | |
template<int D> | |
int | convertReducedParamIdToFull (const int reducedId, const typename UnitCell< D >::LatticeSystem lattice) |
Convert reduced lattice parameter index to a full index. | |
template<int D> | |
IntVec< D > | shiftToMinimum (IntVec< D > &v, IntVec< D > d, UnitCell< D > const &cell) |
Returns minimum magnitude image of DFT wavevector. | |
template<int D> | |
std::ostream & | operator<< (std::ostream &out, SpaceGroup< D > const &g) |
Output stream inserter operator for a SpaceGroup<D>. | |
template<int D> | |
std::istream & | operator>> (std::istream &in, SpaceGroup< D > &g) |
Input stream extractor operator for a SpaceGroup<D>. | |
template<int D> | |
void | readGroup (std::string groupName, SpaceGroup< D > &group) |
Open and read a group file. | |
template<int D> | |
void | writeGroup (std::string filename, SpaceGroup< D > const &group) |
Open and write a group file. | |
template<int D> | |
bool | operator== (const SpaceSymmetry< D > &A, const SpaceSymmetry< D > &B) |
Are two SpaceSymmetry objects equivalent? | |
template<int D> | |
bool | operator!= (const SpaceSymmetry< D > &A, const SpaceSymmetry< D > &B) |
Are two SpaceSymmetry objects not equivalent? | |
template<int D> | |
SpaceSymmetry< D > | operator* (const SpaceSymmetry< D > &A, const SpaceSymmetry< D > &B) |
Return the product A*B of two symmetry objects. | |
template<int D> | |
IntVec< D > | operator* (const SpaceSymmetry< D > &S, const IntVec< D > &V) |
Return the IntVec<D> product S*V of a rotation matrix and an IntVec<D>. | |
template<int D> | |
IntVec< D > | operator* (const IntVec< D > &V, const SpaceSymmetry< D > &S) |
Return the IntVec<D> product V*S of an IntVec<D> and a rotation matrix. | |
template<int D> | |
std::ostream & | operator<< (std::ostream &out, const SpaceSymmetry< D > &A) |
Output stream inserter for a SpaceSymmetry<D> | |
template<int D> | |
std::istream & | operator>> (std::istream &in, SpaceSymmetry< D > &A) |
Input stream extractor for a SpaceSymmetry<D> | |
template<int D> | |
std::istream & | operator>> (std::istream &in, UnitCell< D > &cell) |
istream input extractor for a UnitCell<D>. | |
template<int D> | |
std::ostream & | operator<< (std::ostream &out, UnitCell< D > const &cell) |
ostream output inserter for a UnitCell<D>. | |
template<class Archive , int D> | |
void | serialize (Archive &ar, UnitCell< D > &cell, const unsigned int version) |
Serialize to/from an archive. | |
template<int D> | |
void | readUnitCellHeader (std::istream &in, UnitCell< D > &cell) |
Read UnitCell<D> from a field file header (fortran PSCF format). | |
template<int D> | |
void | writeUnitCellHeader (std::ostream &out, UnitCell< D > const &cell) |
Write UnitCell<D> to a field file header (fortran PSCF format). | |
std::istream & | operator>> (std::istream &in, UnitCell< 1 >::LatticeSystem &lattice) |
istream extractor for a 1D UnitCell<1>::LatticeSystem. | |
std::ostream & | operator<< (std::ostream &out, UnitCell< 1 >::LatticeSystem lattice) |
ostream inserter for a 1D UnitCell<1>::LatticeSystem. | |
template<class Archive > | |
void | serialize (Archive &ar, UnitCell< 1 >::LatticeSystem &lattice, const unsigned int version) |
Serialize a UnitCell<1>::LatticeSystem enumeration value. | |
std::istream & | operator>> (std::istream &in, UnitCell< 2 >::LatticeSystem &lattice) |
istream extractor for a 2D UnitCell<2>::LatticeSystem. | |
std::ostream & | operator<< (std::ostream &out, UnitCell< 2 >::LatticeSystem lattice) |
ostream inserter for a 2D UnitCell<2>::LatticeSystem. | |
template<class Archive > | |
void | serialize (Archive &ar, UnitCell< 2 >::LatticeSystem &lattice, const unsigned int version) |
Serialize a UnitCell<2>::LatticeSystem enumeration value. | |
std::istream & | operator>> (std::istream &in, UnitCell< 3 >::LatticeSystem &lattice) |
istream extractor for a 3D UnitCell<3>::LatticeSystem. | |
std::ostream & | operator<< (std::ostream &out, UnitCell< 3 >::LatticeSystem lattice) |
ostream inserter for an 3D UnitCell<3>::LatticeSystem. | |
template<class Archive > | |
void | serialize (Archive &ar, UnitCell< 3 >::LatticeSystem &lattice, const unsigned int version) |
Serialize a UnitCell<3>::LatticeSystem enumeration value. | |
template<int D, class FT > | |
void | checkAllocateField (FT &field, IntVec< D > const &dimensions) |
Check allocation of a single field, allocate if necessary. | |
template<int D, class FT > | |
void | checkAllocateFields (DArray< FT > &fields, int nMonomer, IntVec< D > const &dimensions) |
Check allocation of an array of fields, allocate if necessary. | |
template<int D, class FT > | |
void | inspectFields (DArray< FT > const &fields, int &nMonomer, IntVec< D > &dimensions) |
Inspect dimensions of a DArray of fields, each of type FT. | |
template<int D, class AT > | |
void | checkAllocateArrays (DArray< AT > &arrays, int nMonomer, int capacity) |
Check allocation of a DArray of 1D arrays, allocate if necessary. | |
template<class AT > | |
void | inspectArrays (DArray< AT > const &arrays, int &nMonomer, int &capacity) |
Inspect dimensions of a DArray of 1D arrays, each of type AT. | |
template<int D> | |
void | readMeshDimensions (std::istream &in, IntVec< D > const &meshDimensions) |
Read mesh dimensions from a field file header. | |
template<int D> | |
void | writeMeshDimensions (std::ostream &out, IntVec< D > const &meshDimensions) |
Write mesh dimensions to a field file header. | |
template<int D, class AT > | |
void | readRGridData (std::istream &in, DArray< AT > &fields, int nMonomer, IntVec< D > const &dimensions) |
Read data for array of r-grid fields, with no header section. | |
template<int D, class AT > | |
void | readRGridData (std::istream &in, AT &field, IntVec< D > const &dimensions) |
Read data for a single r-grid field, with no header section. | |
template<int D, class AT > | |
void | writeRGridData (std::ostream &out, DArray< AT > const &fields, int nMonomer, IntVec< D > const &dimensions) |
Write data for array of r-grid fields, with no header section. | |
template<int D, class AT > | |
void | writeRGridData (std::ostream &out, AT const &field, IntVec< D > const &dimensions) |
Write data for a single r-grid field, with no header section. | |
template<int D, class AT > | |
void | readKGridData (std::istream &in, DArray< AT > &fields, int nMonomer, IntVec< D > const &dftDimensions) |
Read data for array of k-grid fields, with no header section. | |
template<int D, class AT > | |
void | readKGridData (std::istream &in, AT &field, IntVec< D > const &dftDimensions) |
Read data for a single k-grid field, with no header section. | |
template<int D, class AT > | |
void | writeKGridData (std::ostream &out, DArray< AT > const &fields, int nMonomer, IntVec< D > const &dftDimensions) |
Write data for array of k-grid fields, with no header section. | |
template<int D, class AT > | |
void | writeKGridData (std::ostream &in, AT const &field, IntVec< D > const &dftDimensions) |
Write data for a single k-grid field, with no header section. | |
int | readNBasis (std::istream &in) |
Read the number of basis functions from a basis field file header. | |
void | writeNBasis (std::ostream &out, int nBasis) |
Write the number of basis functions to a basis field file header. | |
template<int D> | |
void | readBasisData (std::istream &in, DArray< DArray< double > > &fields, UnitCell< D > const &unitCell, Mesh< D > const &mesh, Basis< D > const &basis, int nStarIn) |
Read a set of fields in basis format. | |
template<int D> | |
void | writeBasisData (std::ostream &out, DArray< DArray< double > > const &fields, Basis< D > const &basis) |
Write array of fields in basis format, without a header. | |
template<int D, class AT > | |
void | convertBasisToKGrid (DArray< double > const &components, AT &dft, Basis< D > const &basis, IntVec< D > const &dftDimensions) |
Convert a real field from symmetrized basis to Fourier grid. | |
template<int D, class AT > | |
void | convertKGridToBasis (AT const &in, DArray< double > &out, Basis< D > const &basis, IntVec< D > const &dftDimensions, bool checkSymmetry=true, double epsilon=1.0e-8) |
Convert a real field from Fourier grid to symmetrized basis. | |
template<int D, class AT > | |
bool | hasSymmetry (AT const &in, Basis< D > const &basis, IntVec< D > const &dftDimensions, double epsilon=1.0e-8, bool verbose=true) |
Check if a k-grid field has the declared space group symmetry. | |
template<int D, class AT > | |
void | replicateUnitCell (std::ostream &out, DArray< AT > const &fields, IntVec< D > const &meshDimensions, UnitCell< D > const &unitCell, IntVec< D > const &replicas) |
Write r-grid fields in a replicated unit cell to std::ostream. | |
template<int D, class AT > | |
void | expandRGridDimension (std::ostream &out, DArray< AT > const &fields, IntVec< D > const &meshDimensions, UnitCell< D > const &unitCell, int d, DArray< int > newGridDimensions) |
Expand the dimensionality of space from D to d. | |
Periodic fields and crystallography.
|
inline |
Serialize a UnitCell<1>::LatticeSystem enumeration value.
ar | archive |
lattice | enumeration data to be serialized |
version | version id |
Definition at line 260 of file UnitCell.h.
References Util::serializeEnum().
std::ostream & Pscf::Prdc::operator<< | ( | std::ostream & | out, |
UnitCell< 2 >::LatticeSystem | lattice ) |
ostream inserter for a 2D UnitCell<2>::LatticeSystem.
out | output stream |
lattice | UnitCell<2>::LatticeSystem to be written |
Definition at line 186 of file UnitCell2.cpp.
References UTIL_THROW.
|
inline |
Serialize a UnitCell<2>::LatticeSystem enumeration value.
ar | archive |
lattice | enumeration data to be serialized |
version | version id |
Definition at line 402 of file UnitCell.h.
References Util::serializeEnum().
|
inline |
Serialize a UnitCell<3>::LatticeSystem enumeration value.
ar | archive |
lattice | enumeration data to be serialized |
version | version id |
Definition at line 547 of file UnitCell.h.
References Util::serializeEnum().