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 Member Functions | List of all members
Kratos::VectorAverageSampler< VectorType > Class Template Reference

This class manages the computation of the average of a vector quantity. More...

#include <statistics_utilities.h>

Inheritance diagram for Kratos::VectorAverageSampler< VectorType >:
Collaboration diagram for Kratos::VectorAverageSampler< VectorType >:

Public Member Functions

 VectorAverageSampler (std::function< VectorType(const Geometry< Node > &, const Vector &, const Matrix &)> Getter, std::size_t VectorSize, std::vector< std::string > &Tags)
 Initialize a sampler for a vector average quantity. More...
 
 ~VectorAverageSampler () override
 
void SampleDataPoint (const Geometry< Node > &rGeometry, const Vector &rShapeFunctions, const Matrix &rShapeDerivatives, std::vector< double >::iterator &BufferIterator) override
 For first-order statistics: read data directly. More...
 
void OutputHeader (std::ofstream &rOutStream, const std::string &rSeparator) const override
 Write header for the output file. More...
 
- Public Member Functions inherited from Kratos::StatisticsSampler
 KRATOS_CLASS_POINTER_DEFINITION (StatisticsSampler)
 
 StatisticsSampler (std::size_t NumValues)
 Define a new StatisticsSampler instance. More...
 
virtual ~StatisticsSampler ()
 Destructor. 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 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...
 

Additional Inherited Members

- Public Types inherited from Kratos::StatisticsSampler
typedef Matrix::iterator1 IntegrationPointDataView
 
typedef Matrix::const_iterator2 IntegrationPointDataViewIterator
 
- Protected Member Functions inherited from Kratos::StatisticsSampler
void AddTag (std::string Tag)
 

Detailed Description

template<class VectorType>
class Kratos::VectorAverageSampler< VectorType >

This class manages the computation of the average of a vector quantity.

Constructor & Destructor Documentation

◆ VectorAverageSampler()

template<class VectorType >
Kratos::VectorAverageSampler< VectorType >::VectorAverageSampler ( std::function< VectorType(const Geometry< Node > &, const Vector &, const Matrix &)>  Getter,
std::size_t  VectorSize,
std::vector< std::string > &  Tags 
)
inline

Initialize a sampler for a vector average quantity.

Parameters
GettrHelper function to evaluate the quantity of interest.
VectorSizeNumber of components of the vector.
TagsNames to identify each of the components on result files.
See also
Internals::MakeSamplerAtLocalCoordinate for the definition of the Getter argument.

◆ ~VectorAverageSampler()

template<class VectorType >
Kratos::VectorAverageSampler< VectorType >::~VectorAverageSampler ( )
inlineoverride

Member Function Documentation

◆ OutputHeader()

template<class VectorType >
void Kratos::VectorAverageSampler< VectorType >::OutputHeader ( std::ofstream &  rOutStream,
const std::string &  rSeparator 
) const
inlineoverridevirtual

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 from Kratos::StatisticsSampler.

◆ SampleDataPoint()

template<class VectorType >
void Kratos::VectorAverageSampler< VectorType >::SampleDataPoint ( const Geometry< Node > &  rGeometry,
const Vector rShapeFunctions,
const Matrix rShapeDerivatives,
std::vector< double >::iterator &  BufferIterator 
)
inlineoverridevirtual

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 from Kratos::StatisticsSampler.


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