PSCF v1.1
|
Class for storing data about an individual sweep parameter. More...
#include <SweepParameter.h>
Public Member Functions | |
SweepParameter () | |
Default constructor. More... | |
SweepParameter (System &system) | |
Constructor that stores a pointer to parent system. More... | |
void | setSystem (System &system) |
Set the system associated with this object. More... | |
void | getInitial () |
Store the pre-sweep value of the corresponding parameter. More... | |
void | update (double newVal) |
Update the corresponding parameter value in the system. More... | |
std::string | type () const |
Return a string representation of the parameter type. More... | |
void | writeParamType (std::ostream &out) const |
Write the parameter type to an output stream. More... | |
int | id (int i) const |
Get a id for a sub-object or element to which this is applied. More... | |
double | current () |
Return the current system parameter value. More... | |
double | initial () const |
Return the initial system parameter value. More... | |
double | change () const |
Return the total change planned for this parameter during sweep. More... | |
template<class Archive > | |
void | serialize (Archive ar, const unsigned int version) |
Serialize to or from an archive. More... | |
Friends | |
std::istream & | operator>> (std::istream &, SweepParameter &) |
Inserter for reading a SweepParameter from an istream. More... | |
std::ostream & | operator<< (std::ostream &, SweepParameter const &) |
Extractor for writing a SweepParameter to ostream. More... | |
Class for storing data about an individual sweep parameter.
This class stores the information required to sweep a single parameter value of any of several types. The type of parameter is indicated in the public interface and parameter file format by a string identifier with any of several allowed values. Each parameter is also identified by one or two associated index values, denoted here by id(0) and id(1), that specify the index or indices for a subobject or array element with which the parameter is associated applied. Allowed string representations and meanings of parameter types are given below, along with the meaning of any associated index value or pair of values. To indicate the meaning of index values, we use mId to denote a monomer type index, pId to denote a polymer species index, bId to denote the index of a block within a polymer, sId to denote a solvent species index, and lId to denote a lattice parameter index:
The two indices for a Flory-Huggins chi parameter refer to indices in the chi matrix maintained by Interaction. Changes to element chi(i, j) automatically also update chi(j, i) for i !\ j, thus maintaining the symmetry of the matrix.
Each SweepParameter also has a "change" value that gives the intended difference between the final and initial value of the parameter over the course of a sweep, corresponding to a change sweep parameter s over the range [0,1]. The initial value of each parameter is obtained from a query of the state of the parent system at the beginning of a sweep, and thus does not need to be supplied as part of the text format for a SweepParameter.
A SweepParameter<D> object is initialized by reading the parameter type, index or index and change value from a parameter file as a a single line. An overloaded >> operator is defined that allows a SweepParameter<D> object named "parameter" to be read from an istream named "in" using the syntax "in >> parameter".
The text format for a parameter of a type that requires a single index id(0) is:
type id(0) change
where type indicates a type string, id(0) is an integer index value, and change is the a floating point value for the change in parameter value. The corresponding format for a parameter that requires two indices (e.g., block or chi) is instead: "type id(0) id(1) change".
Definition at line 82 of file fd1d/sweep/SweepParameter.h.
Pscf::Fd1d::SweepParameter::SweepParameter | ( | ) |
Default constructor.
Definition at line 28 of file SweepParameter.cpp.
Pscf::Fd1d::SweepParameter::SweepParameter | ( | System & | system | ) |
Constructor that stores a pointer to parent system.
system | parent system |
Definition at line 40 of file SweepParameter.cpp.
|
inline |
Set the system associated with this object.
Invoke this function on objects created with the default constructor to create an association with a parent system.
system | parent system |
Definition at line 107 of file fd1d/sweep/SweepParameter.h.
void Pscf::Fd1d::SweepParameter::getInitial | ( | ) |
Store the pre-sweep value of the corresponding parameter.
Definition at line 105 of file SweepParameter.cpp.
void Pscf::Fd1d::SweepParameter::update | ( | double | newVal | ) |
Update the corresponding parameter value in the system.
newVal | new value for the parameter (input) |
Definition at line 113 of file SweepParameter.cpp.
std::string Pscf::Fd1d::SweepParameter::type | ( | ) | const |
Return a string representation of the parameter type.
Definition at line 121 of file SweepParameter.cpp.
References UTIL_THROW.
Referenced by pscfpp.field.Field::__init__(), pscfpp.field.Field::__str__(), pscfpp.field.Field::read(), and writeParamType().
void Pscf::Fd1d::SweepParameter::writeParamType | ( | std::ostream & | out | ) | const |
Write the parameter type to an output stream.
out | output file stream |
Definition at line 97 of file SweepParameter.cpp.
References type().
|
inline |
Get a id for a sub-object or element to which this is applied.
This function returns a value from the id_ array. Elements of this array store indices associating the parameter with a particular subobject or value. Different types of parameters require either 1 or 2 such identifiers. The number of required identifiers is denoted by private variable nID_.
i | array index to access |
Definition at line 145 of file fd1d/sweep/SweepParameter.h.
|
inline |
Return the current system parameter value.
Definition at line 151 of file fd1d/sweep/SweepParameter.h.
|
inline |
Return the initial system parameter value.
Definition at line 157 of file fd1d/sweep/SweepParameter.h.
|
inline |
Return the total change planned for this parameter during sweep.
Definition at line 163 of file fd1d/sweep/SweepParameter.h.
void Pscf::Fd1d::SweepParameter::serialize | ( | Archive | ar, |
const unsigned int | version | ||
) |
Serialize to or from an archive.
ar | Archive object |
version | archive format version index |
Definition at line 230 of file fd1d/sweep/SweepParameter.h.
References Util::serializeEnum().
|
friend |
Inserter for reading a SweepParameter from an istream.
in | input stream |
param | SweepParameter object to read |
Definition at line 198 of file SweepParameter.cpp.
|
friend |
Extractor for writing a SweepParameter to ostream.
out | output stream |
param | SweepParameter object to write |
Definition at line 219 of file SweepParameter.cpp.