8#include "TensorAverage.h"
9#include <util/space/Tensor.h>
10#include <util/format/Dbl.h>
11#include <util/format/Int.h>
31 accumulators_[k].setBlockFactor(blockFactor);
49 UTIL_THROW(
"Attempt to set nSamplePerBlock < 0");
67 read<int>(in,
"nSamplePerBlock", nSamplePerBlock_);
68 if (nSamplePerBlock_ < 0) {
69 UTIL_THROW(
"Invalid input: nSamplePerBlock < 0");
75 accumulators_[k].setNSamplePerBlock(nSamplePerBlock_);
87 if (nSamplePerBlock_ < 0) {
88 UTIL_THROW(
"Loading value nSamplePerBlock < 0");
95 ar & accumulators_[k];
117 accumulators_[k].clear();
132 accumulators_[k].sample(value(i,j));
136 if (nSamplePerBlock_) {
137 if (iBlock_ == nSamplePerBlock_) {
150 return accumulators_[k];
Calculates the average and variance of a sampled property.
ScalarParam< Type > & read(std::istream &in, const char *label, Type &value)
Add and read a new required ScalarParam < Type > object.
void setClassName(const char *className)
Set class name string.
ScalarParam< Type > & loadParameter(Serializable::IArchive &ar, const char *label, Type &value, bool isRequired)
Add and load a new ScalarParam < Type > object.
ParamComposite()
Constructor.
BinaryFileIArchive IArchive
Type of input archive used by load method.
BinaryFileOArchive OArchive
Type of output archive used by save method.
int nSamplePerBlock() const
Get number of samples per block average.
const Average & operator()(int i, int j)
Access the Average object for one tensor component.
TensorAverage(int blockFactor=2)
Constructor.
virtual void loadParameters(Serializable::IArchive &ar)
Load internal state from an archive.
virtual void save(Serializable::OArchive &ar)
Save internal state to an archive.
void setNSamplePerBlock(int nSamplePerBlock)
Set nSamplePerBlock.
void clear()
Clear all accumulators, set to empty initial state.
void readParameters(std::istream &in)
Read parameter nSamplePerBlock from file and initialize.
virtual ~TensorAverage()
Destructor.
void sample(const Tensor &value)
Add a sampled value to the ensemble.
A Tensor represents a Cartesian tensor.
#define UTIL_THROW(msg)
Macro for throwing an Exception, reporting function, file and line number.
const int Dimension
Dimensionality of space.
Utility classes for scientific computation.