PSCF v1.3
replicateUnitCell.h
1#ifndef PRDC_REPLICATE_UNIT_CELL_H
2#define PRDC_REPLICATE_UNIT_CELL_H
3
4/*
5* PSCF - Polymer Self-Consistent Field
6*
7* Copyright 2015 - 2025, The Regents of the University of Minnesota
8* Distributed under the terms of the GNU General Public License.
9*/
10
11#include <pscf/math/IntVec.h> // Template with a default parameter
12
13namespace Pscf {
14namespace Prdc {
15
16 template <int D> class UnitCell;
17 using namespace Util;
18 using namespace Pscf;
19
20
67 template <int D>
68 void replicateUnitCell(IntVec<D> const & replicas,
69 UnitCell<D> const & cellIn,
70 UnitCell<D> & cellOut);
71
72 // Explicit specializations of replicateUnitCell<D>
73
83 template<>
84 void replicateUnitCell(IntVec<1> const & replicas,
85 UnitCell<1> const & cellIn,
86 UnitCell<1> & cellOut);
87
97 template<>
98 void replicateUnitCell(IntVec<2> const & replicas,
99 UnitCell<2> const & cellIn,
100 UnitCell<2> & cellOut);
101
111 template<>
112 void replicateUnitCell(IntVec<3> const & replicas,
113 UnitCell<3> const & cellIn,
114 UnitCell<3> & cellOut);
115
116} // namespace Prdc
117} // namespace Pscf
118#endif
An IntVec<D, T> is a D-component vector of elements of integer type T.
Definition IntVec.h:27
Base template for UnitCell<D> classes, D=1, 2 or 3.
Definition UnitCell.h:56
void replicateUnitCell(IntVec< 1 > const &replicas, UnitCell< 1 > const &cellIn, UnitCell< 1 > &cellOut)
Create a replicated UnitCell<1>.
Periodic fields and crystallography.
Definition CField.cpp:11
PSCF package top-level namespace.
Definition param_pc.dox:1