|
PSCF v1.3.3
|
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 | CFieldsTmpl |
| A list of c fields stored in both basis and r-grid format. More... | |
| class | DomainTmpl |
| Spatial domain for a periodic structure with real fields. More... | |
| class | Environment |
| Base class mask and external field generator for variable-cell SCFT. More... | |
| class | FieldGenerator |
| Base class field generator for MixAndMatchEnv in variable-cell SCFT. More... | |
| class | FieldIoTmpl |
| File input/output, format conversions and other utilities for fields. More... | |
| class | FilmFieldGenExtBase |
| Base class Field Generator for external fields in thin-film systems. More... | |
| class | FilmFieldGenMaskBase |
| Base class Field Generator for thin-film masks. More... | |
| class | MaskTmpl |
| Container for a field to which the total density is constrained. More... | |
| class | MixAndMatchEnv |
| Environment that can mix and match field generators in variable-cell SCFT. More... | |
| class | MixtureModifierPrdc |
| Modifier for parameters of an associated mixture. More... | |
| class | MixturePrdc |
| Solver and descriptor for a mixture of polymers and solvents. More... | |
| class | ScftThermoTmpl |
| Base class for SCFT thermodynamic property calculators. 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... | |
| class | SystemConstRefTmpl |
| Base class template for const access to an associated System. More... | |
| class | SystemTmpl |
| Base class template for classes that represent a complete system. 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... | |
| class | WFieldsTmpl |
| A container of w fields stored in both basis and r-grid format. More... | |
Functions | |
| std::string | makeGroupFileName (int D, std::string groupName) |
| Generates the file name from a group name. | |
| template<int D> | |
| bool | hasVariableAngle (typename UnitCell< D >::LatticeSystem lattice) |
| Return true if lattice type has variable angle parameters. | |
| 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<> | |
| void | replicateUnitCell (IntVec< 1 > const &replicas, UnitCell< 1 > const &cellIn, UnitCell< 1 > &cellOut) |
| Create a replicated UnitCell<1>. | |
| template<> | |
| void | replicateUnitCell (IntVec< 2 > const &replicas, UnitCell< 2 > const &cellIn, UnitCell< 2 > &cellOut) |
| Create a replicated UnitCell<2>. | |
| template<> | |
| void | replicateUnitCell (IntVec< 3 > const &replicas, UnitCell< 3 > const &cellIn, UnitCell< 3 > &cellOut) |
| Create a replicated UnitCell<3>. | |
| template<int D> | |
| void | replicateUnitCell (IntVec< D > const &replicas, UnitCell< D > const &cellIn, UnitCell< D > &cellOut) |
| Create a replicated UnitCell<D> (base template). | |
| template<> | |
| void | replicateUnitCell (IntVec< 1 > const &replicas, UnitCell< 1 > const &cellIn, UnitCell< 1 > &cellOut) |
| Create a replicated UnitCell<1>. | |
| template<> | |
| void | replicateUnitCell (IntVec< 2 > const &replicas, UnitCell< 2 > const &cellIn, UnitCell< 2 > &cellOut) |
| Create a replicated UnitCell<2>. | |
| template<> | |
| void | replicateUnitCell (IntVec< 3 > const &replicas, UnitCell< 3 > const &cellIn, UnitCell< 3 > &cellOut) |
| Create a replicated UnitCell<3>. | |
| template<int D> | |
| IntVec< D > | shiftToMinimum (IntVec< D > const &v, IntVec< D > const &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. | |
| 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> | |
| 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). | |
| 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, 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 | 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). | |
| 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. | |
| 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 an array of fields in basis format, without a header. | |
| template<int D> | |
| void | readBasisData (std::istream &in, DArray< double > &field, UnitCell< D > const &unitCell, Mesh< D > const &mesh, Basis< D > const &basis, int nStarIn) |
| Read data section of a single field in basis format. | |
| template<int D> | |
| void | writeBasisData (std::ostream &out, DArray< DArray< double > > const &fields, Basis< D > const &basis) |
| Write data section of an array of fields in basis format. | |
| template<int D> | |
| void | writeBasisData (std::ostream &out, DArray< double > const &field, Basis< D > const &basis) |
| Write data section of a single field in basis format. | |
| 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.
| bool Pscf::Prdc::hasVariableAngle | ( | typename UnitCell< D >::LatticeSystem | lattice | ) |
Return true if lattice type has variable angle parameters.
This base template is not defined, but explicit specializations are defined for D=1, 2, and 3.
| lattice | lattice system enumeration value |
References hasVariableAngle().
Referenced by Pscf::Prdc::Cpu::WaveList< D >::clearUnitCellData(), and hasVariableAngle().
|
inline |
Serialize a UnitCell<1>::LatticeSystem enumeration value.
| ar | archive |
| lattice | enumeration data to be serialized |
| version | version id |
Definition at line 235 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 248 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 377 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 538 of file UnitCell.h.
References Util::serializeEnum().