PSCF v1.2

BdStep is an abstract base class for Brownian dynamics steps. More...

#include <BdStep.h>

Inheritance diagram for Pscf::Rpc::BdStep< D >:
Util::ParamComposite Util::ParamComponent Util::Serializable Util::MpiFileIo Pscf::Rpc::ExplicitBdStep< D > Pscf::Rpc::LMBdStep< D > Pscf::Rpc::PredCorrBdStep< D >

Public Member Functions

 BdStep (BdSimulator< D > &simulator)
 Constructor.
 
virtual ~BdStep ()
 Destructor.
 
virtual void readParameters (std::istream &in)
 Read required parameters from file.
 
virtual void setup ()
 Setup before the beginning of each simulation run.
 
virtual bool step ()=0
 Take a single Brownian dynamics step.
 
virtual bool needsCc ()
 Do cc concentration components need to be saved before a step?
 
virtual bool needsDc ()
 Do dc derivative components need to be saved before a step?
 
virtual void outputTimers (std::ostream &out)
 Output timing results to ostream.
 
virtual void clearTimers ()
 Clear timers.
 
virtual void output ()
 Output statistics for this move (at the end of simulation)
 
- Public Member Functions inherited from Util::ParamComposite
 ParamComposite ()
 Constructor.
 
 ParamComposite (const ParamComposite &other)
 Copy constructor.
 
 ParamComposite (int capacity)
 Constructor.
 
virtual ~ParamComposite ()
 Virtual destructor.
 
void resetParam ()
 Resets ParamComposite to its empty state.
 
virtual void readParam (std::istream &in)
 Read the parameter file block.
 
virtual void readParamOptional (std::istream &in)
 Read optional parameter file block.
 
virtual void writeParam (std::ostream &out) const
 Write all parameters to an output stream.
 
virtual void load (Serializable::IArchive &ar)
 Load all parameters from an input archive.
 
virtual void loadOptional (Serializable::IArchive &ar)
 Load an optional ParamComposite.
 
virtual void loadParameters (Serializable::IArchive &ar)
 Load state from archive, without adding Begin and End lines.
 
virtual void save (Serializable::OArchive &ar)
 Saves all parameters to an archive.
 
void saveOptional (Serializable::OArchive &ar)
 Saves isActive flag, and then calls save() iff isActive is true.
 
void readParamComposite (std::istream &in, ParamComposite &child, bool next=true)
 Add and read a required child ParamComposite.
 
void readParamCompositeOptional (std::istream &in, ParamComposite &child, bool next=true)
 Add and attempt to read an optional child ParamComposite.
 
template<typename Type >
ScalarParam< Type > & read (std::istream &in, const char *label, Type &value)
 Add and read a new required ScalarParam < Type > object.
 
template<typename Type >
ScalarParam< Type > & readOptional (std::istream &in, const char *label, Type &value)
 Add and read a new optional ScalarParam < Type > object.
 
template<typename Type >
CArrayParam< Type > & readCArray (std::istream &in, const char *label, Type *value, int n)
 Add and read a required C array parameter.
 
template<typename Type >
CArrayParam< Type > & readOptionalCArray (std::istream &in, const char *label, Type *value, int n)
 Add and read an optional C array parameter.
 
template<typename Type >
DArrayParam< Type > & readDArray (std::istream &in, const char *label, DArray< Type > &array, int n)
 Add and read a required DArray < Type > parameter.
 
template<typename Type >
DArrayParam< Type > & readOptionalDArray (std::istream &in, const char *label, DArray< Type > &array, int n)
 Add and read an optional DArray < Type > parameter.
 
template<typename Type , int N>
FArrayParam< Type, N > & readFArray (std::istream &in, const char *label, FArray< Type, N > &array)
 Add and read a required FArray < Type, N > array parameter.
 
template<typename Type , int N>
FArrayParam< Type, N > & readOptionalFArray (std::istream &in, const char *label, FArray< Type, N > &array)
 Add and read an optional FArray < Type, N > array parameter.
 
template<typename Type , int N>
FSArrayParam< Type, N > & readFSArray (std::istream &in, const char *label, FSArray< Type, N > &array, int size)
 Add and read a required FSArray < Type, N > array parameter.
 
template<typename Type , int N>
FSArrayParam< Type, N > & readOptionalFSArray (std::istream &in, const char *label, FSArray< Type, N > &array, int size)
 Add and read an optional FSArray < Type, N > array parameter.
 
template<typename Type >
CArray2DParam< Type > & readCArray2D (std::istream &in, const char *label, Type *value, int m, int n, int np)
 Add and read a required CArray2DParam < Type > 2D C-array.
 
template<typename Type >
CArray2DParam< Type > & readOptionalCArray2D (std::istream &in, const char *label, Type *value, int m, int n, int np)
 Add and read an optional CArray2DParam < Type > 2D C-array parameter.
 
template<typename Type >
DMatrixParam< Type > & readDMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int m, int n)
 Add and read a required DMatrix < Type > matrix parameter.
 
template<typename Type >
DMatrixParam< Type > & readOptionalDMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int m, int n)
 Add and read an optional DMatrix < Type > matrix parameter.
 
template<typename Type >
DSymmMatrixParam< Type > & readDSymmMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int n)
 Add and read a required symmetrix DMatrix.
 
template<typename Type >
DSymmMatrixParam< Type > & readOptionalDSymmMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int n)
 Add and read an optional DMatrix matrix parameter.
 
BeginreadBegin (std::istream &in, const char *label, bool isRequired=true)
 Add and read a class label and opening bracket.
 
EndreadEnd (std::istream &in)
 Add and read the closing bracket.
 
BlankreadBlank (std::istream &in)
 Add and read a new Blank object, representing a blank line.
 
void loadParamComposite (Serializable::IArchive &ar, ParamComposite &child, bool next=true)
 Add and load a required child ParamComposite.
 
void loadParamCompositeOptional (Serializable::IArchive &ar, ParamComposite &child, bool next=true)
 Add and load an optional child ParamComposite if isActive.
 
template<typename Type >
ScalarParam< Type > & loadParameter (Serializable::IArchive &ar, const char *label, Type &value, bool isRequired)
 Add and load a new ScalarParam < Type > object.
 
template<typename Type >
ScalarParam< Type > & loadParameter (Serializable::IArchive &ar, const char *label, Type &value)
 Add and load new required ScalarParam < Type > object.
 
template<typename Type >
CArrayParam< Type > & loadCArray (Serializable::IArchive &ar, const char *label, Type *value, int n, bool isRequired)
 Add a C array parameter and load its elements.
 
template<typename Type >
CArrayParam< Type > & loadCArray (Serializable::IArchive &ar, const char *label, Type *value, int n)
 Add and load a required CArrayParam< Type > array parameter.
 
template<typename Type >
DArrayParam< Type > & loadDArray (Serializable::IArchive &ar, const char *label, DArray< Type > &array, int n, bool isRequired)
 Add an load a DArray < Type > array parameter.
 
template<typename Type >
DArrayParam< Type > & loadDArray (Serializable::IArchive &ar, const char *label, DArray< Type > &array, int n)
 Add and load a required DArray< Type > array parameter.
 
template<typename Type , int N>
FArrayParam< Type, N > & loadFArray (Serializable::IArchive &ar, const char *label, FArray< Type, N > &array, bool isRequired)
 Add and load an FArray < Type, N > fixed-size array parameter.
 
template<typename Type , int N>
FArrayParam< Type, N > & loadFArray (Serializable::IArchive &ar, const char *label, FArray< Type, N > &array)
 Add and load a required FArray < Type > array parameter.
 
template<typename Type , int N>
FSArrayParam< Type, N > & loadFSArray (Serializable::IArchive &ar, const char *label, FSArray< Type, N > &array, int size, bool isRequired)
 Add and load an FSArray < Type, N > array parameter.
 
template<typename Type , int N>
FSArrayParam< Type, N > & loadFSArray (Serializable::IArchive &ar, const char *label, FSArray< Type, N > &array, int size)
 Add and load a required FSArray < Type > array parameter.
 
template<typename Type >
CArray2DParam< Type > & loadCArray2D (Serializable::IArchive &ar, const char *label, Type *value, int m, int n, int np, bool isRequired)
 Add and load a CArray2DParam < Type > C 2D array parameter.
 
template<typename Type >
CArray2DParam< Type > & loadCArray2D (Serializable::IArchive &ar, const char *label, Type *value, int m, int n, int np)
 Add and load a required < Type > matrix parameter.
 
template<typename Type >
DMatrixParam< Type > & loadDMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int m, int n, bool isRequired)
 Add and load a DMatrixParam < Type > matrix parameter.
 
template<typename Type >
DMatrixParam< Type > & loadDMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int m, int n)
 Add and load a required DMatrixParam < Type > matrix parameter.
 
template<typename Type >
DSymmMatrixParam< Type > & loadDSymmMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int n, bool isRequired)
 Add and load a symmetric DSymmMatrixParam < Type > matrix parameter.
 
template<typename Type >
DSymmMatrixParam< Type > & loadDSymmMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int n)
 Add and load a required DSymmMatrixParam < Type > matrix parameter.
 
void addParamComposite (ParamComposite &child, bool next=true)
 Add a child ParamComposite object to the format array.
 
BeginaddBegin (const char *label)
 Add a Begin object representing a class name and bracket.
 
EndaddEnd ()
 Add a closing bracket.
 
BlankaddBlank ()
 Create and add a new Blank object, representing a blank line.
 
std::string className () const
 Get class name string.
 
bool isRequired () const
 Is this ParamComposite required in the input file?
 
bool isActive () const
 Is this parameter active?
 
- Public Member Functions inherited from Util::ParamComponent
virtual ~ParamComponent ()
 Destructor.
 
void setIndent (const ParamComponent &parent, bool next=true)
 Set indent level.
 
std::string indent () const
 Return indent string for this object (string of spaces).
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 Serialize this ParamComponent as a string.
 
- Public Member Functions inherited from Util::Serializable
virtual ~Serializable ()
 Destructor.
 
- Public Member Functions inherited from Util::MpiFileIo
 MpiFileIo ()
 Constructor.
 
 MpiFileIo (const MpiFileIo &other)
 Copy constructor.
 
bool isIoProcessor () const
 Can this processor do file I/O ?
 
void setIoCommunicator (MPI::Intracomm &communicator)
 Set the communicator.
 
void clearCommunicator ()
 Clear (nullify) the communicator.
 
bool hasIoCommunicator () const
 Does this object have an associated MPI communicator?
 
MPI::Intracomm & ioCommunicator () const
 Get the MPI communicator by reference.
 

Protected Member Functions

System< D > & system ()
 Get parent System object.
 
BdSimulator< D > & simulator ()
 Get parent BdSimulator object.
 
Randomrandom ()
 Get Random number generator of parent System.
 
- Protected Member Functions inherited from Util::ParamComposite
void setClassName (const char *className)
 Set class name string.
 
void setIsRequired (bool isRequired)
 Set or unset the isActive flag.
 
void setIsActive (bool isActive)
 Set or unset the isActive flag.
 
void setParent (ParamComponent &param, bool next=true)
 Set this to the parent of a child component.
 
void addComponent (ParamComponent &param, bool isLeaf=true)
 Add a new ParamComponent object to the format array.
 
template<typename Type >
ScalarParam< Type > & add (std::istream &in, const char *label, Type &value, bool isRequired=true)
 Add a new required ScalarParam < Type > object.
 
template<typename Type >
CArrayParam< Type > & addCArray (std::istream &in, const char *label, Type *value, int n, bool isRequired=true)
 Add (but do not read) a required C array parameter.
 
template<typename Type >
DArrayParam< Type > & addDArray (std::istream &in, const char *label, DArray< Type > &array, int n, bool isRequired=true)
 Add (but do not read) a DArray < Type > parameter.
 
template<typename Type , int N>
FArrayParam< Type, N > & addFArray (std::istream &in, const char *label, FArray< Type, N > &array, bool isRequired=true)
 Add (but do not read) a FArray < Type, N > array parameter.
 
template<typename Type , int N>
FSArrayParam< Type, N > & addFSArray (std::istream &in, const char *label, FSArray< Type, N > &array, int size, bool isRequired=true)
 Add (but do not read) a FSArray < Type, N > array parameter.
 
template<typename Type >
CArray2DParam< Type > & addCArray2D (std::istream &in, const char *label, Type *value, int m, int n, int np, bool isRequired=true)
 Add (but do not read) a CArray2DParam < Type > 2D C-array.
 
template<typename Type >
DMatrixParam< Type > & addDMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int m, int n, bool isRequired=true)
 Add and read a required DMatrix < Type > matrix parameter.
 
- Protected Member Functions inherited from Util::ParamComponent
 ParamComponent ()
 Constructor.
 
 ParamComponent (const ParamComponent &other)
 Copy constructor.
 

Additional Inherited Members

- Public Types inherited from Util::Serializable
typedef BinaryFileOArchive OArchive
 Type of output archive used by save method.
 
typedef BinaryFileIArchive IArchive
 Type of input archive used by load method.
 
- Static Public Member Functions inherited from Util::ParamComponent
static void initStatic ()
 Initialize static echo member to false.
 
static void setEcho (bool echo=true)
 Enable or disable echoing for all subclasses of ParamComponent.
 
static bool echo ()
 Get echo parameter.
 

Detailed Description

template<int D>
class Pscf::Rpc::BdStep< D >

BdStep is an abstract base class for Brownian dynamics steps.

The virtual step() method must generate a single step.

Definition at line 32 of file rpc/fts/brownian/BdStep.h.

Constructor & Destructor Documentation

◆ BdStep()

template<int D>
Pscf::Rpc::BdStep< D >::BdStep ( BdSimulator< D > & simulator)

Constructor.

Parameters
simulatorparent BdSimulator<D> object

Definition at line 25 of file rpc/fts/brownian/BdStep.tpp.

◆ ~BdStep()

template<int D>
Pscf::Rpc::BdStep< D >::~BdStep ( )
virtual

Destructor.

Empty default implementation.

Definition at line 35 of file rpc/fts/brownian/BdStep.tpp.

Member Function Documentation

◆ readParameters()

template<int D>
void Pscf::Rpc::BdStep< D >::readParameters ( std::istream & in)
virtual

Read required parameters from file.

Empty default implementation.

Parameters
ininput stream from which to read

Reimplemented from Util::ParamComposite.

Reimplemented in Pscf::Rpc::ExplicitBdStep< D >, Pscf::Rpc::LMBdStep< D >, and Pscf::Rpc::PredCorrBdStep< D >.

Definition at line 42 of file rpc/fts/brownian/BdStep.tpp.

◆ setup()

template<int D>
void Pscf::Rpc::BdStep< D >::setup ( )
virtual

Setup before the beginning of each simulation run.

Reimplemented in Pscf::Rpc::ExplicitBdStep< D >, Pscf::Rpc::LMBdStep< D >, and Pscf::Rpc::PredCorrBdStep< D >.

Definition at line 49 of file rpc/fts/brownian/BdStep.tpp.

◆ step()

template<int D>
virtual bool Pscf::Rpc::BdStep< D >::step ( )
pure virtual

Take a single Brownian dynamics step.

Returns
true if the compressor converged, false if it failed.

Implemented in Pscf::Rpc::ExplicitBdStep< D >, Pscf::Rpc::LMBdStep< D >, and Pscf::Rpc::PredCorrBdStep< D >.

◆ needsCc()

template<int D>
virtual bool Pscf::Rpc::BdStep< D >::needsCc ( )
inlinevirtual

Do cc concentration components need to be saved before a step?

The default implementation returns false.

Returns
true to save, or false otherwise

Definition at line 79 of file rpc/fts/brownian/BdStep.h.

◆ needsDc()

template<int D>
virtual bool Pscf::Rpc::BdStep< D >::needsDc ( )
inlinevirtual

Do dc derivative components need to be saved before a step?

The default implementation returns false.

Returns
true to save, or false otherwise

Definition at line 89 of file rpc/fts/brownian/BdStep.h.

◆ outputTimers()

template<int D>
void Pscf::Rpc::BdStep< D >::outputTimers ( std::ostream & out)
virtual

Output timing results to ostream.

Parameters
outoutput stream

Definition at line 57 of file rpc/fts/brownian/BdStep.tpp.

◆ clearTimers()

template<int D>
void Pscf::Rpc::BdStep< D >::clearTimers ( )
virtual

Clear timers.

Definition at line 61 of file rpc/fts/brownian/BdStep.tpp.

◆ output()

template<int D>
void Pscf::Rpc::BdStep< D >::output ( )
virtual

Output statistics for this move (at the end of simulation)

Definition at line 53 of file rpc/fts/brownian/BdStep.tpp.

◆ system()

template<int D>
System< D > & Pscf::Rpc::BdStep< D >::system ( )
inlineprotected

Get parent System object.

Definition at line 145 of file rpc/fts/brownian/BdStep.h.

◆ simulator()

template<int D>
BdSimulator< D > & Pscf::Rpc::BdStep< D >::simulator ( )
inlineprotected

Get parent BdSimulator object.

Definition at line 152 of file rpc/fts/brownian/BdStep.h.

◆ random()

template<int D>
Random & Pscf::Rpc::BdStep< D >::random ( )
inlineprotected

Get Random number generator of parent System.

Definition at line 159 of file rpc/fts/brownian/BdStep.h.


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