|
PSCF v1.4.0
|
Class for storing data about an individual linear ramp parameter. More...
#include <RampParameter.h>
Public Member Functions | |
| void | setSimulator (typename T::Simulator &simulator) |
| Set the simulator and system associated with this object. | |
| void | getInitial () |
| Get and store initial value this parameters. | |
| void | update (double newVal) |
| Update the corresponding parameter value in the System. | |
| std::string | type () const |
| Return a string representation of the parameter type. | |
| void | writeParamType (std::ostream &out) const |
| Write the parameter type to an output stream. | |
| int | id (int i) const |
| Get id for a sub-object or element to which this is applied. | |
| int | nId () const |
| Number of indices associated with this type of parameter. | |
| double | current () |
| Get the current system parameter value. | |
| double | initial () const |
| Get the initial system parameter value. | |
| double | change () const |
| Get the total change planned for this parameter during ramp. | |
| template<class Archive> | |
| void | serialize (Archive ar, const unsigned int version) |
| Serialize to or from an archive. | |
Protected Member Functions | |
| RampParameter () | |
| Default constructor. | |
| RampParameter (typename T::Simulator &simulator) | |
| Constructor that stores a pointer to parent Simulator. | |
| ~RampParameter ()=default | |
| Destructor. | |
Class for storing data about an individual linear ramp parameter.
This class stores the information required to ramp a single parameter value of any of several types. The parameter type is indicated in the public interface and parameter file format by a string identifier with any of several allowed values. Most types of parameter are 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 sub-object or array element with which the parameter is associated.
Allowed string representations and meanings of parameter types are specified 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 lambda_pert and vMonomer parameter types do not take an index.
The two indices for a Flory-Huggins chi parameter refer to indices in the chi matrix maintained by an Interaction. Changes to element chi(i, j) automatically also update chi(j, i) for i !\ j, thus maintaining the symmetry of the chi matrix.
Each RampParameter also has a "change" value that gives the intended difference between the final and initial value of the parameter over the course of a ramp, corresponding to a change ramp 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 ramp, and thus does not need to be supplied as part of the text format for a RampParameter.
A RampParameter<D> object is initialized by reading the parameter type, index or indices (if any) and change value from a parameter file as a a single line. An overloaded >> operator is defined that allows a RampParameter<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".
Specializations of this class template are used as base classes for two closely analogous class templates, also named RampParameter, that are defined in Rpc and Rpg namespaces for use in the pscf_rpc and pscf_rpg programs, respectively.
Template parameters:
Definition at line 100 of file fts/ramp/RampParameter.h.
|
protected |
Default constructor.
Definition at line 30 of file RampParameter.tpp.
References RampParameter().
Referenced by RampParameter(), and RampParameter().
|
protected |
Constructor that stores a pointer to parent Simulator.
| simulator | parent Simulator |
Definition at line 44 of file RampParameter.tpp.
References RampParameter().
|
protecteddefault |
Destructor.
| void Pscf::Rp::RampParameter< D, T >::setSimulator | ( | typename T::Simulator & | simulator | ) |
Set the simulator and system associated with this object.
Invoke this function on objects created with the default constructor to create an association with a parent simulator and system.
| simulator | parent simulator |
Definition at line 58 of file RampParameter.tpp.
| void Pscf::Rp::RampParameter< D, T >::getInitial | ( | ) |
Get and store initial value this parameters.
This function is called before a ramp begins, and simply gets current values of this parameter.
Definition at line 131 of file RampParameter.tpp.
| void Pscf::Rp::RampParameter< D, T >::update | ( | double | newVal | ) |
Update the corresponding parameter value in the System.
| newVal | new value for this parameter (input) |
Definition at line 138 of file RampParameter.tpp.
| std::string Pscf::Rp::RampParameter< D, T >::type | ( | ) | const |
Return a string representation of the parameter type.
Definition at line 145 of file RampParameter.tpp.
References Pscf::PolymerModel::isThread(), UTIL_CHECK, and UTIL_THROW.
| void Pscf::Rp::RampParameter< D, T >::writeParamType | ( | std::ostream & | out | ) | const |
Write the parameter type to an output stream.
| out | output file stream |
Definition at line 124 of file RampParameter.tpp.
Referenced by Pscf::Rp::operator<<().
|
inline |
Get id for a sub-object or element to which this is applied.
This function returns a value from the id_ array. Elements of array store indices associating with a parameter value, which may, for example, identify a molecule type index, one or more monomer type indices or a unit cell parameter index.
Different types of parameters require either 1 or 2 such identifiers. The number of required identifiers is returned by the function nId().
| i | array index to access |
Definition at line 159 of file fts/ramp/RampParameter.h.
References UTIL_CHECK.
Referenced by Pscf::Rp::operator<<().
|
inline |
Number of indices associated with this type of parameter.
See documentation of id(int).
Definition at line 170 of file fts/ramp/RampParameter.h.
|
inline |
Get the current system parameter value.
Definition at line 176 of file fts/ramp/RampParameter.h.
|
inline |
Get the initial system parameter value.
Definition at line 182 of file fts/ramp/RampParameter.h.
|
inline |
Get the total change planned for this parameter during ramp.
Definition at line 188 of file fts/ramp/RampParameter.h.
| void Pscf::Rp::RampParameter< D, T >::serialize | ( | Archive | ar, |
| const unsigned int | version ) |
Serialize to or from an archive.
| ar | Archive object |
| version | archive format version index |
Definition at line 302 of file fts/ramp/RampParameter.h.
References Util::serializeEnum().