1#ifndef PSCF_SPACE_SYMMETRY_TPP
2#define PSCF_SPACE_SYMMETRY_TPP
11#include "SpaceSymmetry.h"
27 for (i = 0; i < D; ++i) {
29 for (j = 0; j < D; ++j) {
46 for (i = 0; i < D; ++i) {
48 for (j = 0; j < D; ++j) {
49 R_(i, j) = other.R_(i,j);
64 for (i = 0; i < D; ++i) {
66 for (j = 0; j < D; ++j) {
67 R_(i, j) = other.R_(i,j);
81 for (
int i = 0; i < D; ++i) {
82 int num = t_[i].num();
83 int den = t_[i].den();
95 if (num != t_[i].num()) {
108 for (i = 0; i < D; ++i) {
110 for (j = 0; j < D; ++j) {
112 identity_.R_(i, j) = 1;
114 identity_.R_(i, j) = 0;
129 C.R_ = inverseRotation();
133 for (i = 0; i < D; ++i) {
135 for (j = 0; j < D; ++j) {
136 C.t_[i] -= C.R_(i, j)*t_[j];
154 for (i = 0; i < D; ++i) {
156 for (j = 0; j < D; ++j) {
157 t_[i] += R_(i,j)*origin[j];
A SpaceSymmetry represents a crystallographic space group symmetry.
void normalize()
Shift components of translation to [0,1).
SpaceSymmetry< D > inverse() const
Compute and return the inverse of this symmetry element.
SpaceSymmetry< D > & operator=(const SpaceSymmetry< D > &other)
Assignment operator.
void shiftOrigin(Translation const &origin)
Shift the origin of space used in the coordinate system.
SpaceSymmetry()
Default constructor.
A Rational number (a ratio of integers).
#define UTIL_ASSERT(condition)
Assertion macro suitable for debugging serial or parallel code.
C++ namespace for polymer self-consistent field theory (PSCF).
Utility classes for scientific computation.