1#ifndef PSCF_SPACE_GROUP_H
2#define PSCF_SPACE_GROUP_H
11#include <pscf/crystal/SpaceSymmetry.h>
12#include <pscf/crystal/SymmetryGroup.h>
13#include <pscf/math/IntVec.h>
14#include <util/containers/FSArray.h>
15#include <util/param/Label.h>
111 out <<
"dim " << D << std::endl;
112 out <<
"size " << size << std::endl;
113 for (
int i = 0; i < size; ++i) {
132 in >>
Label(
"dim") >> dim;
134 in >>
Label(
"size") >> size;
138 for (
int i = 0; i < size; ++i) {
154 void readGroup(std::string groupName, SpaceGroup<D>& group);
165 void writeGroup(std::string filename, SpaceGroup<D>
const & group);
167 #ifndef PSCF_SPACE_GROUP_TPP
168 extern template class SpaceGroup<1>;
169 extern template class SpaceGroup<2>;
170 extern template class SpaceGroup<3>;
171 extern template void readGroup(std::string, SpaceGroup<1>& );
172 extern template void readGroup(std::string, SpaceGroup<2>& );
173 extern template void readGroup(std::string, SpaceGroup<3>& );
174 extern template void writeGroup(std::string, SpaceGroup<1>
const &);
175 extern template void writeGroup(std::string, SpaceGroup<2>
const &);
176 extern template void writeGroup(std::string, SpaceGroup<3>
const &);
An IntVec<D, T> is a D-component vector of elements of integer type T.
Crystallographic space group.
bool hasInversionCenter(typename SpaceSymmetry< D >::Translation ¢er) const
Determines if this space group has an inversion center.
void checkMeshDimensions(IntVec< D > const &dimensions) const
Check if input mesh dimensions are compatible with space group.
void shiftOrigin(typename SpaceSymmetry< D >::Translation const &origin)
Shift the origin of space used in the coordinate system.
A SpaceSymmetry represents a crystallographic space group symmetry.
Class template for a group of elements.
void clear()
Remove all elements except the identity.
int size() const
Return number of elements in group (i.e., the order of the group).
bool add(Symmetry &symmetry)
Add a new element to the group.
A label string in a file format.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
C++ namespace for polymer self-consistent field theory (PSCF).
Utility classes for scientific computation.
std::istream & operator>>(std::istream &in, Pair< Data > &pair)
Input a Pair from an istream.
std::ostream & operator<<(std::ostream &out, const Pair< Data > &pair)
Output a Pair to an ostream, without line breaks.