20 #ifndef JDFTX_FLUID_SO3PLATONIC_H 21 #define JDFTX_FLUID_SO3PLATONIC_H 40 virtual int jMax()
const=0;
41 virtual int nS1()
const=0;
42 virtual string name()
const=0;
49 void add(
vector3<> n,
double relWeight=1.,
double s1phase=0.);
78 QuadTetrahedron,
"Tetrahedron",
79 QuadOctahedron,
"Octahedron",
80 QuadIcosahedron,
"Icosahedron",
81 Quad7design_24,
"7design24",
82 Quad8design_36,
"8design36",
83 Quad9design_48,
"9design48",
84 Quad10design_60,
"10design60",
85 Quad11design_70,
"11design70",
86 Quad12design_84,
"12design84",
87 Quad13design_94,
"13design94",
88 Quad14design_108,
"14design108",
89 Quad15design_120,
"15design120",
90 Quad16design_144,
"16design144",
91 Quad17design_156,
"17design156",
92 Quad18design_180,
"18design180",
93 Quad19design_204,
"19design204",
94 Quad20design_216,
"20design216",
95 Quad21design_240,
"21design240" 108 EulerProduct(
unsigned nBeta,
unsigned nAlpha=0,
unsigned nGamma=0);
114 unsigned nBeta, nAlpha, nGamma;
126 int nS1()
const {
return 3; }
127 string name()
const {
return "Tetrahedron"; }
136 int nS1()
const {
return 4; }
137 string name()
const {
return "Octahedron"; }
146 int nS1()
const {
return 5; }
147 string name()
const {
return "Icosahedron"; }
160 int nS1()
const {
return 8; }
161 string name()
const {
return "7-design"; }
170 int nS1()
const {
return 9; }
171 string name()
const {
return "8-design"; }
180 int nS1()
const {
return 10; }
181 string name()
const {
return "9-design"; }
189 int jMax()
const {
return 10; }
190 int nS1()
const {
return 11; }
191 string name()
const {
return "10-design"; }
199 int jMax()
const {
return 11; }
200 int nS1()
const {
return 12; }
201 string name()
const {
return "11-design"; }
209 int jMax()
const {
return 12; }
210 int nS1()
const {
return 13; }
211 string name()
const {
return "12-design"; }
219 int jMax()
const {
return 13; }
220 int nS1()
const {
return 14; }
221 string name()
const {
return "13-design"; }
229 int jMax()
const {
return 14; }
230 int nS1()
const {
return 15; }
231 string name()
const {
return "14-design"; }
239 int jMax()
const {
return 15; }
240 int nS1()
const {
return 16; }
241 string name()
const {
return "15-design"; }
249 int jMax()
const {
return 16; }
250 int nS1()
const {
return 17; }
251 string name()
const {
return "16-design"; }
259 int jMax()
const {
return 17; }
260 int nS1()
const {
return 18; }
261 string name()
const {
return "17-design"; }
269 int jMax()
const {
return 18; }
270 int nS1()
const {
return 19; }
271 string name()
const {
return "18-design"; }
279 int jMax()
const {
return 19; }
280 int nS1()
const {
return 20; }
281 string name()
const {
return "19-design"; }
289 int jMax()
const {
return 20; }
290 int nS1()
const {
return 21; }
291 string name()
const {
return "20-design"; }
299 int jMax()
const {
return 21; }
300 int nS1()
const {
return 22; }
301 string name()
const {
return "21-design"; }
306 #endif // JDFTX_FLUID_SO3PLATONIC_H int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:229
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:280
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:189
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:239
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:169
Spherical 15-design with 120 nodes.
Definition: S2quad.h:235
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:291
Spherical 17-design with 156 nodes.
Definition: S2quad.h:255
Spherical 8-design with 36 nodes.
Definition: S2quad.h:165
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:269
STL strings and streams with case insensitive comparison.
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:271
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:219
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:220
Spherical 12-design with 84 nodes.
Definition: S2quad.h:205
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:289
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:191
A template to ease option parsing (maps enums <–> strings)
Definition: Util.h:179
int nS1() const
This is a special case that doesn't have nS1=jMax+1.
Definition: S2quad.h:146
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:281
Tetrahedron rotation group.
Definition: S2quad.h:121
Spherical 18-design with 180 nodes.
Definition: S2quad.h:265
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:190
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:221
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:260
Spherical 14-design with 108 nodes.
Definition: S2quad.h:225
Spherical 21-design with 240 nodes.
Definition: S2quad.h:295
Spherical 7-design with 24 nodes.
Definition: S2quad.h:155
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:136
virtual string name() const =0
A short descriptive name for the S2 quadrature.
Outer-product quadrature on ZYZ euler angles.
Definition: S2quad.h:100
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:145
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:171
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:210
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:261
Octahedron rotation group.
Definition: S2quad.h:131
void add(vector3<> n, double relWeight=1., double s1phase=0.)
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:241
Spherical 9-design with 48 nodes.
Definition: S2quad.h:175
Spherical 11-design with 70 nodes.
Definition: S2quad.h:195
Spherical 16-design with 144 nodes.
Definition: S2quad.h:245
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:290
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:181
Spherical 19-design with 204 nodes.
Definition: S2quad.h:275
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:199
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:240
virtual int nS1() const =0
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:147
Icosahedron rotation group.
Definition: S2quad.h:141
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:231
std::vector< double > weight
suggested S2 quadrature weights (same length as euler, will be normalized to add up to 1) ...
Definition: S2quad.h:39
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:161
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:299
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:180
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:127
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:250
Spherical 10-design with 60 nodes.
Definition: S2quad.h:185
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:301
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:279
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:125
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:259
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:300
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:270
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:251
virtual int jMax() const =0
max angular momentum that the S2 quadrature is exact to (will be checked)
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:160
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:211
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:135
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:230
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:170
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:179
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:200
Spherical 13-design with 94 nodes.
Definition: S2quad.h:215
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:159
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:209
std::vector< vector3<> > euler
list of S2 quadrature nodes in first two components with suggested S1 phase in third component ...
Definition: S2quad.h:38
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:137
S2quadType
List of available quadratures.
Definition: S2quad.h:53
Spherical 20-design with 216 nodes.
Definition: S2quad.h:285
string name() const
A short descriptive name for the S2 quadrature.
Definition: S2quad.h:201
int jMax() const
max angular momentum that the S2 quadrature is exact to (will be checked)
Definition: S2quad.h:249
Abstract base class for a S2 quadrature definition (used to generate the SO3 qudarature) ...
Definition: S2quad.h:36
int nS1() const
suggested number of samples for the S1 sector (will be rounded up to nearest multiple of Zn) ...
Definition: S2quad.h:126