1 #ifndef UTIL_POINT_GROUP_H 2 #define UTIL_POINT_GROUP_H 4 #include <util/crystal/PointSymmetry.h> 5 #include <util/crystal/SymmetryGroup.h> 6 #include <util/containers/FSArray.h> 7 #include <util/space/IntVector.h> 51 UTIL_THROW(
"Star array capacity is less than order of group");
58 for (i = 0; i <
size(); ++i) {
59 vector = root*(*this)[i];
61 for (j = 0; j < star.
size(); ++j) {
62 if (vector == star[j]) {
Class template for a group of elements of type Symmetry.
friend std::ostream & operator<<(std::ostream &out, const PointGroup &A)
Output stream inserter operator writing a PointGroup to stream.
void clear()
Set logical size to zero.
void append(const Data &data)
Append data to the end of the array.
int capacity() const
Return physical capacity of array.
A fixed capacity (static) contiguous array with a variable logical size.
#define UTIL_THROW(msg)
Macro for throwing an Exception, reporting function, file and line number.
Utility classes for scientific computation.
void makeStar(const IntVector &root, FSArray< IntVector, N > &star)
Generate a set of reciprocal vectors that are related by symmetry.
Group of crystal symmetries with no translations.
An IntVector is an integer Cartesian vector.
int size() const
Return logical size of this array (i.e., number of elements).
int size() const
Return number of elements in group.