1#ifndef RPC_LINEAR_SWEEP_TPP
2#define RPC_LINEAR_SWEEP_TPP
11#include "LinearSweep.h"
12#include <rpc/system/System.h>
31 read(in,
"nParameter", nParameter_);
32 parameters_.allocate(nParameter_);
36 for (
int i = 0; i < nParameter_; ++i) {
37 parameters_[i].setParameterTypesArray(
42 readDArray(in,
"parameters", parameters_, nParameter_);
46 for (
int i = 0; i < nParameter_; ++i) {
47 if (parameters_[i].type() ==
"phi_polymer" ||
48 parameters_[i].type() ==
"phi_solvent")
50 sum += parameters_[i].change();
67 for (
int i = 0; i < nParameter_; ++i) {
68 parameters_[i].setSystem(
system());
69 parameters_[i].getInitial();
78 for (
int i = 0; i < nParameter_; ++i) {
79 newVal = parameters_[i].initial() +
s*parameters_[i].change();
80 parameters_[i].update(newVal);
FieldState for fields in symmetry-adapted basis format.
DArrayParam< Type > & readDArray(std::istream &in, const char *label, DArray< Type > &array, int n)
Add and read a required DArray < Type > parameter.
void readParameters(std::istream &in)
Read parameters from param file.
ScalarParam< Type > & read(std::istream &in, const char *label, Type &value)
Add and read a new required ScalarParam < Type > object.
void setup()
Setup operation at the beginning of a sweep.
void outputSummary(std::ostream &out)
Output data to a running summary.
void setParameters(double s)
Set state parameters before solving an SCFT problem.
LinearSweep(System< D > &system)
Constructor.
Sweep()
Default Constructor.
System< D > & system()
Return the parent system by reference.
virtual void readParameters(std::istream &in)
Read parameters from param file.
bool hasSystem()
Does an association with the parent System exist?
virtual void setup()
Setup operation at the beginning of a sweep.
Main class, representing one complete system.
Solve a sequence of problems along a path through parameter space.
GArray< ParameterType > parameterTypes_
#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.