11#include <pscf/sweep/ParameterModifier.h>
12#include <util/param/ParamComposite.h>
13#include <util/containers/FSArray.h>
15#include <rpc/scft/sweep/Sweep.h>
60 virtual int solve(
bool isContinuation) = 0;
146 : isSymmetric_(false),
154 : isSymmetric_(false),
169 system().domain().unitCell().nParameter());
171 for (
int i = 0; i < flexibleParams_.size(); i++) {
172 if (flexibleParams_[i]) nFlexParams++;
181 flexibleParams_ = flexParams;
182 if (nFlexibleParams() == 0) {
bool isSymmetric_
Does this iterator use a symmetry-adapted basis?
void setFlexibleParams(FSArray< bool, 6 > const &flexParams)
Set the array indicating which lattice parameters are flexible.
virtual int solve(bool isContinuation)=0
Iterate to solution.
Iterator()
Default constructor.
System< D > & system()
Get parent system by non-const reference.
int nFlexibleParams() const
Get the number of flexible lattice parameters.
bool isFlexible_
Are any lattice parameters flexible during iteration?
bool isSymmetric() const
Does this iterator use a symmetry-adapted Fourier basis?
bool isFlexible() const
Return true iff unit cell has any flexible lattice parameters.
FSArray< bool, 6 > flexibleParams_
Array of indices of the lattice parameters that are flexible.
virtual void clearTimers()=0
Clear timers.
System< D > const & system() const
Get parent system by const reference.
FSArray< bool, 6 > flexibleParams() const
Get the array indicating which lattice parameters are flexible.
virtual void outputTimers(std::ostream &out)=0
Log output timing results.
Main class for SCFT or PS-FTS simulation of one system.
A fixed capacity (static) contiguous array with a variable logical size.
An object that can read multiple parameters from file.
void setClassName(const char *className)
Set class name string.
File containing preprocessor macros for error handling.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
PSCF package top-level namespace.
Utility classes for scientific computation.