23 template <
int D,
class ST>
33 template <
int D,
class ST>
43 template <
int D,
class ST>
50 template <
int D,
class ST>
55 system().domain().unitCell().nParameter());
66 template <
int D,
class ST>
81 template <
int D,
class ST>
88 if (
system().hasEnvironment()) {
89 return system().environment().stress(paramId);
91 return system().mixture().stress(paramId);
100 template <
int D,
class ST>
void setFlexibleParams(FSArray< bool, 6 > const &flexParams)
Set the array indicating which lattice parameters are flexible.
ST const & system() const
Get parent system by const reference.
Iterator()
Default constructor.
void setSystem(ST &system)
Set parent system.
bool isSymmetric_
Does this iterator use a symmetry-adapted basis?
int nFlexibleParams() const
Get the number of flexible lattice parameters.
virtual double stress(int paramId) const
Return the stress used by this Iterator, for one lattice parameter.
bool isFlexible_
Are any lattice parameters flexible during iteration?
FSArray< bool, 6 > flexibleParams_
Array of indices of the lattice parameters that are flexible.
A fixed capacity (static) contiguous array with a variable logical size.
void setClassName(const char *className)
Set class name string.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
Class templates for real-valued periodic fields.
PSCF package top-level namespace.