1#ifndef RP_LINEAR_RAMP_TPP
2#define RP_LINEAR_RAMP_TPP
15 template <
int D,
class T>
20 template <
int D,
class T>
26 parameters_.allocate(nParameter_);
34 for (
int i = 0; i < nParameter_; ++i) {
35 if (parameters_[i].type() ==
"phi_polymer" ||
36 parameters_[i].type() ==
"phi_solvent")
38 sum += parameters_[i].change();
45 template <
int D,
class T>
48 RampT::nStep_ = nStep;
51 for (
int i = 0; i < nParameter_; ++i) {
52 parameters_[i].setSimulator(RampT::simulator());
53 parameters_[i].getInitial();
57 template <
int D,
class T>
61 double s = double(iStep)/double(RampT::nStep_);
65 for (
int i = 0; i < nParameter_; ++i) {
66 newVal = parameters_[i].initial() + s*parameters_[i].change();
67 parameters_[i].update(newVal);
70 if (parameters_[i].type() ==
"chi") {
71 RampT::simulator().analyzeChi();
77 template <
int D,
class T>
80 for (
int i = 0; i < nParameter_; ++i) {
82 << parameters_[i].type() << std::endl;
84 << parameters_[i].initial() <<
" ";
86 << parameters_[i].change() << std::endl;
void output() override
Output information at the end of a simulation.
void setParameters(int iStep) override
Set new parameters values in associated System and Simulator.
void readParameters(std::istream &in) override
Read parameters from parameter file input stream.
void setup(int nStep) override
Set nStep and complete initialization.
LinearRamp(typename T::Simulator &simulator)
Constructor.
static std::ostream & file()
Get log ostream by reference.
DArrayParam< Type > & readDArray(std::istream &in, const char *label, DArray< Type > &array, int n)
Add and read a required DArray < Type > parameter.
ScalarParam< Type > & read(std::istream &in, const char *label, Type &value)
Add and read a new required ScalarParam < Type > object.
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.
Class templates for real-valued periodic fields.
PSCF package top-level namespace.