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_);
86 loadParameter<int>(ar,
"nSamplePerBlock", 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.
Saving archive for binary istream.
Saving / output archive for binary ostream.
An object that can read multiple parameters from file.
void setClassName(const char *className)
Set class name string.
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.