KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
Kratos::StatisticsSampler Class Reference

Base class for statistical measurements. More...

#include <statistics_utilities.h>

Inheritance diagram for Kratos::StatisticsSampler:
Collaboration diagram for Kratos::StatisticsSampler:

Public Types

typedef Matrix::iterator1 IntegrationPointDataView
 
typedef Matrix::const_iterator2 IntegrationPointDataViewIterator
 

Public Member Functions

 KRATOS_CLASS_POINTER_DEFINITION (StatisticsSampler)
 
 StatisticsSampler (std::size_t NumValues)
 Define a new StatisticsSampler instance. More...
 
virtual ~StatisticsSampler ()
 Destructor. More...
 
virtual void SampleDataPoint (const Geometry< Node > &rGeometry, const Vector &rShapeFunctions, const Matrix &rShapeDerivatives, std::vector< double >::iterator &BufferIterator)
 For first-order statistics: read data directly. More...
 
virtual void SampleDataPoint (std::vector< double >::iterator &BufferIterator, const StatisticsSampler::IntegrationPointDataView &rCurrentStatistics, const std::vector< double > &rNewMeasurement, const std::size_t NumberOfMeasurements)
 For higher-order statistics: operate on lower order data. More...
 
std::size_t GetSize () const
 Number of quantities managed by this statistic. More...
 
virtual std::size_t GetComponentOffset (std::size_t i) const
 Offset (from the start of the space allocated to this statistic) for the storage of component i. More...
 
virtual std::size_t ComponentIndex (std::size_t i, std::size_t j) const
 Helper returning the correct argument in calls to GetComponentOffset for matrix quantities. More...
 
std::size_t GetOffset () const
 Offset (from the start of the statistics container) to the first component stored by this statistic. More...
 
void SetOffset (std::size_t Offset)
 Assign a new offset (from the start of the statistics container) to the first component stored by this statistic. More...
 
virtual void OutputResult (std::ofstream &rOutStream, IntegrationPointDataViewIterator &rDataBuffer, std::size_t SampleSize, const std::string &rSeparator) const
 Write results managed by this class to output buffer. More...
 
virtual void OutputHeader (std::ofstream &rOutStream, const std::string &rSeparator) const
 Write header for the output file. More...
 
virtual double Finalize (double Value, std::size_t SampleSize) const
 Post-process internal data to produce the final value of the statistical result. More...
 
std::string GetTag (std::size_t ComponentIndex) const
 Get the string associated one of the components of this statistic. More...
 

Protected Member Functions

void AddTag (std::string Tag)
 

Friends

class Serializer
 

Detailed Description

Base class for statistical measurements.

Member Typedef Documentation

◆ IntegrationPointDataView

◆ IntegrationPointDataViewIterator

Constructor & Destructor Documentation

◆ StatisticsSampler()

Kratos::StatisticsSampler::StatisticsSampler ( std::size_t  NumValues)
inline

Define a new StatisticsSampler instance.

Note that this is the base class, unless you are implementing a new statistic, you should work with derived classes directly.

Parameters
NumValuesNumber of different quantities (components) to be managed.

◆ ~StatisticsSampler()

virtual Kratos::StatisticsSampler::~StatisticsSampler ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ AddTag()

void Kratos::StatisticsSampler::AddTag ( std::string  Tag)
inlineprotected

◆ ComponentIndex()

virtual std::size_t Kratos::StatisticsSampler::ComponentIndex ( std::size_t  i,
std::size_t  j 
) const
inlinevirtual

Helper returning the correct argument in calls to GetComponentOffset for matrix quantities.

Reimplemented in Kratos::SymmetricVarianceSampler.

◆ Finalize()

virtual double Kratos::StatisticsSampler::Finalize ( double  Value,
std::size_t  SampleSize 
) const
inlinevirtual

Post-process internal data to produce the final value of the statistical result.

In most cases, this corresponds to dividing by sample size.

Reimplemented in Kratos::VarianceSampler.

◆ GetComponentOffset()

virtual std::size_t Kratos::StatisticsSampler::GetComponentOffset ( std::size_t  i) const
inlinevirtual

Offset (from the start of the space allocated to this statistic) for the storage of component i.

◆ GetOffset()

std::size_t Kratos::StatisticsSampler::GetOffset ( ) const
inline

Offset (from the start of the statistics container) to the first component stored by this statistic.

◆ GetSize()

std::size_t Kratos::StatisticsSampler::GetSize ( ) const
inline

Number of quantities managed by this statistic.

◆ GetTag()

std::string Kratos::StatisticsSampler::GetTag ( std::size_t  ComponentIndex) const
inline

Get the string associated one of the components of this statistic.

This is used to obtain the "name" for the statistic to be printed in the output file header.

Parameters
[in]ComponentIndexindex of the required component.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::StatisticsSampler::KRATOS_CLASS_POINTER_DEFINITION ( StatisticsSampler  )

◆ OutputHeader()

virtual void Kratos::StatisticsSampler::OutputHeader ( std::ofstream &  rOutStream,
const std::string &  rSeparator 
) const
inlinevirtual

Write header for the output file.

This function is called when printing to a file.

Parameters
rOutStreamstream for the output file.
rSeparatorSeparator for the output csv file (for example a comma or semicolon).

Reimplemented in Kratos::ThirdOrderCorrelationSampler, Kratos::ComponentwiseVarianceSampler, Kratos::SymmetricVarianceSampler, Kratos::VarianceSampler, Kratos::VectorAverageSampler< VectorType >, and Kratos::ScalarAverageSampler.

◆ OutputResult()

virtual void Kratos::StatisticsSampler::OutputResult ( std::ofstream &  rOutStream,
IntegrationPointDataViewIterator rDataBuffer,
std::size_t  SampleSize,
const std::string &  rSeparator 
) const
inlinevirtual

Write results managed by this class to output buffer.

This function is called when printing to a file. Note that the rDataBuffer argument will be advanced during the call.

Parameters
rOutStreamstream for the output file.
rDataBufferIterator pointing to the data managed by this statistic.
SampleSizeNumber of measured realizations for the recorded quantity.
rSeparatorSeparator for the output csv file (for example a comma or semicolon).

◆ SampleDataPoint() [1/2]

virtual void Kratos::StatisticsSampler::SampleDataPoint ( const Geometry< Node > &  rGeometry,
const Vector rShapeFunctions,
const Matrix rShapeDerivatives,
std::vector< double >::iterator &  BufferIterator 
)
inlinevirtual

For first-order statistics: read data directly.

To be implemented in derived classes. Note that the BufferIterator argument will be advanced during the call.

Parameters
[in]rGeometryThe geometry for the element that contains the point where statistics are sampled.
[in]rShapeFunctionsLocal values of elemental shape functions at the sampling point.
[in]rShapeDerivativesLocal values of elemental shape function gradients at the sampling point.
BufferIteratorIterator pointing to the start of the storage of the statistics managed by this class.

Reimplemented in Kratos::VectorAverageSampler< VectorType >, and Kratos::ScalarAverageSampler.

◆ SampleDataPoint() [2/2]

virtual void Kratos::StatisticsSampler::SampleDataPoint ( std::vector< double >::iterator &  BufferIterator,
const StatisticsSampler::IntegrationPointDataView rCurrentStatistics,
const std::vector< double > &  rNewMeasurement,
const std::size_t  NumberOfMeasurements 
)
inlinevirtual

For higher-order statistics: operate on lower order data.

To be implemented in derived classes. Note that the BufferIterator argument will be advanced during the call.

Parameters
BufferIteratorIterator pointing to the start of the storage of the statistics managed by this class.
[in]rCurrentStatisticsContainer of last known values for recorded quantities at this sampling point.
[in]rNewMeasurementContainer of new measurements for recorded quantities at this sampling point.
[in]NumberOfMeasurementsTotal number of realizations measured at the sampling point (including the current one).

Reimplemented in Kratos::ThirdOrderCorrelationSampler, Kratos::ComponentwiseVarianceSampler, Kratos::SymmetricVarianceSampler, and Kratos::VarianceSampler.

◆ SetOffset()

void Kratos::StatisticsSampler::SetOffset ( std::size_t  Offset)
inline

Assign a new offset (from the start of the statistics container) to the first component stored by this statistic.

Friends And Related Function Documentation

◆ Serializer

friend class Serializer
friend

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