PSCF v1.2
Pscf::Rpg::AverageAnalyzer< D > Class Template Referenceabstract

Analyze averages and block averages of several real variables. More...

#include <AverageAnalyzer.h>

Inheritance diagram for Pscf::Rpg::AverageAnalyzer< D >:
Pscf::Rpg::Analyzer< D > Util::ParamComposite Util::ParamComponent Util::Serializable Util::MpiFileIo Pscf::Rpg::ChiDerivative< D > Pscf::Rpg::ConcentrationDerivative< D > Pscf::Rpg::FourthOrderParameter< D > Pscf::Rpg::MaxOrderParameter< D > Pscf::Rpg::PerturbationDerivative< D >

Public Member Functions

 AverageAnalyzer (Simulator< D > &simulator, System< D > &system)
 Constructor.
 
virtual ~AverageAnalyzer ()
 Destructor.
 
virtual void readParameters (std::istream &in)
 Read interval, outputFileName and (optionally) nSamplePerOutput.
 
virtual void setup ()
 Setup before loop.
 
virtual void sample (long iStep)
 Compute a sampled value and update the accumulator.
 
virtual void output ()
 Write final results to file after a simulation.
 
int nSamplePerOutput () const
 Get value of nSamplePerOutput.
 
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.
 
- Public Member Functions inherited from Pscf::Rpg::Analyzer< D >
 Analyzer ()
 Default constructor.
 
virtual ~Analyzer ()
 Destructor.
 
int interval () const
 Get interval value.
 
bool isAtInterval (long counter) const
 Return true iff counter is a multiple of the interval.
 
- 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

virtual double compute ()=0
 Compute value of sampled quantity.
 
virtual void outputValue (int step, double value)
 Output a sampled or block average value.
 
Simulator< D > & simulator ()
 Return reference to parent simulator.
 
System< D > & system ()
 Return reference to parent system.
 
- Protected Member Functions inherited from Pscf::Rpg::Analyzer< D >
void setFileMaster (FileMaster &fileMaster)
 Set the FileMaster to use to open files.
 
void readInterval (std::istream &in)
 Read interval from file, with error checking.
 
void readOutputFileName (std::istream &in)
 Read outputFileName from file.
 
FileMasterfileMaster ()
 Get the FileMaster by reference.
 
const std::string & outputFileName () const
 Return outputFileName string.
 
std::string outputFileName (const std::string &suffix) const
 Return outputFileName string with added suffix.
 
- 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.
 

Protected Attributes

Average accumulator_
 Average object.
 

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 Pscf::Rpg::Analyzer< D >
static void initStatic ()
 Define and initialize baseInterval.
 
- 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.
 
- Static Public Attributes inherited from Pscf::Rpg::Analyzer< D >
static long baseInterval
 The interval for every Analyzer must be a multiple of baseInterval.
 

Detailed Description

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

Analyze averages and block averages of several real variables.

This class evaluates the average of a single sampled real variables, and optionally writes values or block averages to a data file during a simulation. It is intended for use as a base class for any Analyzer that computes and evaluates an average for a single physical variable.

Definition at line 33 of file rpg/fts/analyzer/AverageAnalyzer.h.

Constructor & Destructor Documentation

◆ AverageAnalyzer()

template<int D>
Pscf::Rpg::AverageAnalyzer< D >::AverageAnalyzer ( Simulator< D > & simulator,
System< D > & system )

Constructor.

Parameters
simulatorparent Simulator object.
systemparent System object.

Definition at line 30 of file rpg/fts/analyzer/AverageAnalyzer.tpp.

◆ ~AverageAnalyzer()

template<int D>
Pscf::Rpg::AverageAnalyzer< D >::~AverageAnalyzer ( )
virtual

Destructor.

Definition at line 42 of file rpg/fts/analyzer/AverageAnalyzer.tpp.

Member Function Documentation

◆ readParameters()

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

Read interval, outputFileName and (optionally) nSamplePerOutput.

The optional variable nSamplePerOutput defaults to 1, which causes every sampled value to be written to file. Setting nSamplePerOutput = 0 suppresses output of block averages to file.

Parameters
ininput parameter file

Reimplemented from Pscf::Rpg::Analyzer< D >.

Definition at line 49 of file rpg/fts/analyzer/AverageAnalyzer.tpp.

References Pscf::Rpg::Analyzer< D >::readParameters().

◆ setup()

template<int D>
void Pscf::Rpg::AverageAnalyzer< D >::setup ( )
virtual

Setup before loop.

Opens an output file, if nSamplePerOutput > 0.

Reimplemented from Pscf::Rpg::Analyzer< D >.

Reimplemented in Pscf::Rpg::FourthOrderParameter< D >, and Pscf::Rpg::MaxOrderParameter< D >.

Definition at line 71 of file rpg/fts/analyzer/AverageAnalyzer.tpp.

Referenced by Pscf::Rpg::FourthOrderParameter< D >::setup().

◆ sample()

template<int D>
void Pscf::Rpg::AverageAnalyzer< D >::sample ( long iStep)
virtual

Compute a sampled value and update the accumulator.

Parameters
iStepMD time step index

Implements Pscf::Rpg::Analyzer< D >.

Definition at line 78 of file rpg/fts/analyzer/AverageAnalyzer.tpp.

◆ output()

template<int D>
void Pscf::Rpg::AverageAnalyzer< D >::output ( )
virtual

Write final results to file after a simulation.

Write an average value. If the simulation does not have a ramp, it also writes an estimate of the error on the average and information estimates from hierarchichal block averages about how that estimate was obtained. Information about error analysis is suppressed when a ramp exists.

Reimplemented from Pscf::Rpg::Analyzer< D >.

Definition at line 112 of file rpg/fts/analyzer/AverageAnalyzer.tpp.

References Util::ParamComposite::writeParam().

◆ nSamplePerOutput()

template<int D>
int Pscf::Rpg::AverageAnalyzer< D >::nSamplePerOutput ( ) const
inline

Get value of nSamplePerOutput.

If nSamplePerOutput == 0, output of block averages is disabled. For nSamplePerOutput > 0, nSamplePerOutput is the number of sampled values averaged in each block average.

Definition at line 165 of file rpg/fts/analyzer/AverageAnalyzer.h.

◆ compute()

template<int D>
virtual double Pscf::Rpg::AverageAnalyzer< D >::compute ( )
protectedpure virtual

◆ outputValue()

◆ simulator()

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

Return reference to parent simulator.

Definition at line 155 of file rpg/fts/analyzer/AverageAnalyzer.h.

◆ system()

template<int D>
System< D > & Pscf::Rpg::AverageAnalyzer< D >::system ( )
inlineprotected

Return reference to parent system.

Definition at line 160 of file rpg/fts/analyzer/AverageAnalyzer.h.

◆ read()

template<int D>
template<typename Type >
ScalarParam< Type > & Util::ParamComposite::read ( std::istream & in,
const char * label,
Type & value )

Add and read a new required ScalarParam < Type > object.

This is equivalent to ScalarParam<Type>(in, label, value, true).

Parameters
ininput stream for reading
labelLabel string
valuereference to new ScalarParam< Type >

Definition at line 305 of file ParamComposite.h.

Referenced by pscfpp.command.Script::__init__(), pscfpp.field.Field::__init__(), pscfpp.output.Thermo::__init__(), pscfpp.param.Array::__init__(), pscfpp.param.Composite::__init__(), and pscfpp.param.Matrix::__init__().

◆ readOptional()

template<int D>
template<typename Type >
ScalarParam< Type > & Util::ParamComposite::readOptional ( std::istream & in,
const char * label,
Type & value )
inline

Add and read a new optional ScalarParam < Type > object.

This is equivalent to ScalarParam<Type>(in, label, value, false).

Parameters
ininput stream for reading
labelLabel string
valuereference to new ScalarParam< Type >

Definition at line 319 of file ParamComposite.h.

Member Data Documentation

◆ accumulator_

template<int D>
Average Pscf::Rpg::AverageAnalyzer< D >::accumulator_
protected

Average object.

Definition at line 136 of file rpg/fts/analyzer/AverageAnalyzer.h.


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