PSCF v1.2
Pscf::Rpg::RampParameter< D > Class Template Reference

Class for storing data about an individual ramp parameter. More...

#include <RampParameter.h>

Public Member Functions

 RampParameter ()
 Default constructor.
 
 RampParameter (Simulator< D > &simulator)
 Constructor that stores a pointer to parent Simulator.
 
void setSimulator (Simulator< D > &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.
 

Detailed Description

template<int D>
class Pscf::Rpg::RampParameter< D >

Class for storing data about an individual ramp parameter.

This class stores the information required to ramp 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. 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 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 lambda_pert and vMonomer parameter types do not take an index.

| Type | Meaning | id(0) | id(1)
| ----------- | ---------------------------------- | ----- | -----
| kuhn | monomer segment length | mId |
| chi | Flory-Huggins parameter | mId | mId
| block | block length | pId | bId
| solvent | solvent size | sId |
| phi_polymer | polymer volume fraction | pId |
| mu_polymer | polymer chemical potential | pId |
| phi_solvent | solvent volume fraction | sId |
| mu_solvent | solvent chemical potential | sId |
| cell_param | lattice parameter | lId |
| lambda_pert | perturbation strength | - |
| v_monomer | monomer reference volume | - |
int id(int i) const
Get id for a sub-object or element to which this is applied.

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 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".

Definition at line 85 of file rpg/fts/ramp/RampParameter.h.

Constructor & Destructor Documentation

◆ RampParameter() [1/2]

template<int D>
Pscf::Rpg::RampParameter< D >::RampParameter ( )

Default constructor.

Definition at line 34 of file rpg/fts/ramp/RampParameter.tpp.

◆ RampParameter() [2/2]

template<int D>
Pscf::Rpg::RampParameter< D >::RampParameter ( Simulator< D > & simulator)

Constructor that stores a pointer to parent Simulator.

Parameters
simulatorparent Simulator

Definition at line 48 of file rpg/fts/ramp/RampParameter.tpp.

Member Function Documentation

◆ setSimulator()

template<int D>
void Pscf::Rpg::RampParameter< D >::setSimulator ( Simulator< D > & 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.

Parameters
simulatorparent simulator

Definition at line 63 of file rpg/fts/ramp/RampParameter.tpp.

References Pscf::Rpg::Simulator< D >::system().

◆ getInitial()

template<int D>
void Pscf::Rpg::RampParameter< D >::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 135 of file rpg/fts/ramp/RampParameter.tpp.

◆ update()

template<int D>
void Pscf::Rpg::RampParameter< D >::update ( double newVal)

Update the corresponding parameter value in the System.

Parameters
newValnew value for this parameter (input)

Definition at line 142 of file rpg/fts/ramp/RampParameter.tpp.

◆ type()

template<int D>
std::string Pscf::Rpg::RampParameter< D >::type ( ) const

Return a string representation of the parameter type.

Definition at line 149 of file rpg/fts/ramp/RampParameter.tpp.

References UTIL_THROW.

Referenced by pscfpp.field.Field::__init__(), pscfpp.field.Field::__str__(), and pscfpp.field.Field::read().

◆ writeParamType()

template<int D>
void Pscf::Rpg::RampParameter< D >::writeParamType ( std::ostream & out) const

Write the parameter type to an output stream.

Parameters
outoutput file stream

Definition at line 128 of file rpg/fts/ramp/RampParameter.tpp.

Referenced by Pscf::Rpg::operator<<().

◆ id()

template<int D>
int Pscf::Rpg::RampParameter< D >::id ( int i) const
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().

Parameters
iarray index to access

Definition at line 154 of file rpg/fts/ramp/RampParameter.h.

References UTIL_CHECK.

Referenced by Pscf::Rpg::operator<<().

◆ nId()

template<int D>
int Pscf::Rpg::RampParameter< D >::nId ( ) const
inline

Number of indices associated with this type of parameter.

See documentation of id(int).

Definition at line 165 of file rpg/fts/ramp/RampParameter.h.

◆ current()

template<int D>
double Pscf::Rpg::RampParameter< D >::current ( )
inline

Get the current system parameter value.

Definition at line 171 of file rpg/fts/ramp/RampParameter.h.

◆ initial()

template<int D>
double Pscf::Rpg::RampParameter< D >::initial ( ) const
inline

Get the initial system parameter value.

Definition at line 177 of file rpg/fts/ramp/RampParameter.h.

◆ change()

template<int D>
double Pscf::Rpg::RampParameter< D >::change ( ) const
inline

Get the total change planned for this parameter during ramp.

Definition at line 183 of file rpg/fts/ramp/RampParameter.h.

◆ serialize()

template<int D>
template<class Archive >
void Pscf::Rpg::RampParameter< D >::serialize ( Archive ar,
const unsigned int version )

Serialize to or from an archive.

Parameters
arArchive object
versionarchive format version index

Definition at line 244 of file rpg/fts/ramp/RampParameter.tpp.

References Util::serializeEnum().


The documentation for this class was generated from the following files: