11#include <rpc/scft/sweep/Sweep.h>
12#include <prdc/environment/Environment.h>
13#include <util/param/ParamComposite.h>
14#include <util/containers/FSArray.h>
60 virtual int solve(
bool isContinuation) = 0;
113 virtual double stress(
int paramId)
const;
185 system().domain().unitCell().nParameter());
212 if (
system().hasEnvironment()) {
213 return system().environment().stress(paramId);
215 return system().mixture().stress(paramId);
virtual void outputTimers(std::ostream &out) const =0
Log output timing results.
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?
virtual double stress(int paramId) const
Return the stress used by this Iterator, for one lattice parameter.
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.
Main class, representing one complete system.
A fixed capacity (static) contiguous array with a variable logical size.
void setClassName(const char *className)
Set class name string.
ParamComposite()
Constructor.
File containing preprocessor macros for error handling.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
Real periodic fields, SCFT and PS-FTS (CPU).
PSCF package top-level namespace.