MercuryDPM  Trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TimeAveragedCG< Coordinates, BaseFunction, Fields > Class Template Reference

Evaluates time-averaged continuum fields and writes the data into a stat file. More...

#include <TimeAveragedCG.h>

+ Inheritance diagram for TimeAveragedCG< Coordinates, BaseFunction, Fields >:

Public Types

typedef BaseFunction< CoordinatesFunction
 
- Public Types inherited from CG< Coordinates, BaseFunction, Fields >
typedef BaseFunction< CoordinatesFunction
 Because of this typedefs, Point can be used instead of CGPoint<Function> and Function can be used instead of BaseFunction<Coordinates> in this class. This was done to avoid the overly use of template notation. More...
 
typedef CGPoint< Coordinates,
Fields > 
Point
 

Public Member Functions

 TimeAveragedCG ()
 Default constructor. More...
 
 TimeAveragedCG (const TimeAveragedCG &p)=default
 Copy constructor. It copies the TimeAveragedCGFunction and all objects it contains. More...
 
virtual ~TimeAveragedCG ()=default
 Destructor, it simply destructs the TimeAveragedCGFunction and all the objects it contains. More...
 
TimeAveragedCG< Coordinates,
BaseFunction, Fields > * 
copy () const override
 Copy operator; creates a new'ed CG object. More...
 
void write (std::ostream &os) const override
 Writes class content, except for the points, into an output stream. More...
 
std::string getName () const override
 returns the name of the class, which is required by write. More...
 
void initialise () override
 Called at the beginning of the DPM simulation to initialise the cg evaluation and to open the statFile. More...
 
void evaluate () override
 Called after a given number of time steps (statFile::saveCount_) to evaluate the CG fields. More...
 
void finish () override
 Called at the end of the DPM simulation to finish the cg evaluation and to close the statFile. More...
 
- Public Member Functions inherited from CG< Coordinates, BaseFunction, Fields >
 CG ()=default
 Default constructor; does nothing, i.e. no points are created initially. More...
 
 CG (Mdouble width, unsigned n)
 
 CG (const CG &p)=default
 Default copy Constructor; copies all member variables. More...
 
virtual ~CG ()=default
 Default destructor; does nothing. More...
 
void writeAll (std::ostream &os) const
 Writes class content, including the points_, into an output stream, usually a stat file. More...
 
virtual void createMesh ()
 Creates spatial mesh of CGPoints, the points where the CG-variables are evaluated. More...
 
Point evaluateAverage ()
 Computes the spatially-averaged value for each field. More...
 
Point evaluateTotal ()
 Computes the total value (integrated over space) for each field. More...
 
void evaluateParticleAtPoint (Fields &currentInteraction, const BaseParticle &p, Point &r)
 
void evaluateParticle (const BaseParticle &p)
 Contains the basic for loop over all CGPoints, required to do particle statistics. More...
 
void evaluateContact (const BaseInteraction &i)
 Contains the basic for loop over all CGPoints, required to do contact statistics. More...
 
IntegralType getIntegralType (const BaseInteraction &c)
 
const PointgetPoint (size_t i) const
 
const std::vector< Point > & getPoints () const
 
FunctiongetFunction ()
 
void setStandardDeviation (Mdouble std) override
 
void setRadius (Mdouble radius) override
 
void setWidth (Mdouble width) override
 
Mdouble getWidth () const override
 
- Public Member Functions inherited from BaseCG
 BaseCG ()
 Simple constructor, sets default values. More...
 
 BaseCG (const BaseCG &p)=default
 Default copy constructor, copies all values. More...
 
 ~BaseCG () override=default
 Default destructor, does nothing. More...
 
void read (std::istream &is) override
 Currently, no read functions are implemented for the CGHandler, but the function is required for any derivative of BaseObject. More...
 
void clear ()
 This class seems to have no use (?), but is required for any derivative of BaseObject. More...
 
void setHandler (CGHandler *handler)
 Sets handler_, the pointer to the CGHandler. More...
 
CGHandlergetHandler () const
 Returns handler_, a pointer to the CGHandler. More...
 
void setNZ (std::size_t nZ)
 Sets nZ_, the number of spatial mesh points in the z-direction. More...
 
std::size_t getNZ () const
 Returns nZ_, the number of spatial mesh points in the z-direction. More...
 
void setNY (std::size_t nY)
 Sets nY_, the number of spatial mesh points in the y-direction. More...
 
std::size_t getNY () const
 Returns nY_, the number of spatial mesh points in the y-direction. More...
 
void setNX (std::size_t nX)
 Sets nX_, the number of spatial mesh points in the x-direction. More...
 
std::size_t getNX () const
 Returns nX_, the number of spatial mesh points in the x-direction. More...
 
void setN (std::size_t n)
 Sets nX_, nY_, nZ_, the number of spatial mesh points in each cartesian direction. More...
 
void setN (std::array< std::size_t, 3 > n)
 Sets nX_, nY_, nZ_, the number of spatial mesh points in each cartesian direction. More...
 
void setH (Mdouble h)
 Sets nX_, nY_, nZ_, the number of spatial mesh points in each cartesian direction. However, instead of explicitly defining n, the mesh size h=(max-min)/n is defined. More...
 
void setHX (Mdouble h)
 Sets nX_ the number of spatial mesh points in the X-direction. Instead of explicitly defining nX, the mesh size hX=(max.X-min.X)/nX is defined. More...
 
void setHY (Mdouble h)
 Sets nX_ the number of spatial mesh points in the X-direction. Instead of explicitly defining nX, the mesh size hX=(max.X-min.X)/nX is defined. More...
 
void setHZ (Mdouble h)
 Sets nX_ the number of spatial mesh points in the X-direction. Instead of explicitly defining nX, the mesh size hX=(max.X-min.X)/nX is defined. More...
 
void setTimeMin (Mdouble timeMin)
 Sets timeMin_, the lower limit of the temporal domain. More...
 
void setTimeMax (Mdouble timeMax)
 Sets timeMax_, the upper limit of the temporal domain. More...
 
Mdouble getTimeMin () const
 Returns timeMin_, the lower limit of the temporal domain. More...
 
Mdouble getTimeMax () const
 Returns timeMax_, the upper limit of the temporal domain. More...
 
void setMin (Vec3D min)
 Sets max_, the lower limit of the spatial domain. More...
 
void setX (Mdouble min, Mdouble max)
 Sets min_.X, max_.X, the limits of the spatial domain in X. More...
 
void setY (Mdouble min, Mdouble max)
 Sets min_.Y, max_.Y, the limits of the spatial domain in Y. More...
 
void setZ (Mdouble min, Mdouble max)
 Sets min_.Z, max_.Z, the limits of the spatial domain in Z. More...
 
void setXGrid (Mdouble min, Mdouble max, Mdouble h)
 
void setYGrid (Mdouble min, Mdouble max, Mdouble h)
 
void setZGrid (Mdouble min, Mdouble max, Mdouble h)
 
void setGrid (Vec3D min, Vec3D max, Mdouble h)
 
void setMax (Vec3D max)
 Sets max_, the upper limit of the spatial domain. More...
 
Vec3D getMin () const
 Returns min_, the lower limit of the spatial domain. More...
 
Vec3D getMax () const
 Returns max_, the upper limit of the spatial domain. More...
 
void selectSpecies (unsigned speciesIndex)
 
void setSelectedParticle (const std::function< const bool(const BaseInteractable *)> &selectedParticle)
 
void setEps (Mdouble eps)
 
Mdouble getEps () const
 
void setAverageBeyondDomain (const bool val)
 
bool getAverageBeyondDomain () const
 
- Public Member Functions inherited from BaseObject
 BaseObject ()=default
 Default constructor. More...
 
 BaseObject (const BaseObject &p)=default
 Copy constructor, copies all the objects BaseObject contains. More...
 
virtual ~BaseObject ()=default
 virtual destructor More...
 
virtual void moveInHandler (unsigned int index)
 Except that it is virtual, it does the same thing as setIndex() does. More...
 
void setIndex (unsigned int index)
 Allows one to assign an index to an object in the handler/container. More...
 
void setId (unsigned long id)
 Assigns a unique identifier to each object in the handler (container) which remains constant even after the object is deleted from the container/handler. More...
 
unsigned int getIndex () const
 Returns the index of the object in the handler. More...
 
unsigned int getId () const
 Returns the unique identifier of any particular object. More...
 
void setGroupId (unsigned groupId)
 
unsigned getGroupId () const
 

Protected Attributes

unsigned int nTime_
 
- Protected Attributes inherited from CG< Coordinates, BaseFunction, Fields >
std::vector< Pointpoints_
 Contains the CGPoint's, i.e. the positions at which the StandardFields are evaluated. More...
 
Function function_
 
- Protected Attributes inherited from BaseCG
CGHandlerhandler_
 
std::size_t nX_
 
std::size_t nY_
 
std::size_t nZ_
 
Mdouble eps_
 
Mdouble timeMin_
 
Mdouble timeMax_
 
Vec3D min_
 
Vec3D max_
 
std::function< bool(const
BaseInteractable *)> 
selectedParticle_
 
bool averageBeyondDomain_ = true
 Determines whether particles outside the domain are considered when computing the averaged fields. More...
 

Additional Inherited Members

- Public Attributes inherited from BaseCG
File statFile
 File class to handle the output into a .stat file. More...
 
- Protected Member Functions inherited from CG< Coordinates, BaseFunction, Fields >
void resetVariables ()
 set all variables to zero More...
 
void volumeAverageVariables ()
 divide each variable by the domain volume More...
 
void writeVariables ()
 write variables to the stat file More...
 
void evaluateCommon ()
 The part of evaluate that is used for CG, timeAveragedCG and timeSmoothedCG. More...
 
void outputSumOfVariables ()
 plot total to console More...
 

Detailed Description

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
class TimeAveragedCG< Coordinates, BaseFunction, Fields >

Evaluates time-averaged continuum fields and writes the data into a stat file.

Evaluates statistical output that is averaged over all time steps in the time interval [timeMin_, timeMax_].

This class should only be used to evaluate steady (time-independent) fields. For time-dependent fields, see CG and TimeSmoothedCG.

The class is derived from CG, which already contains the basic functionality to obtain time-dependent statistics. This class then averages the field values over time, with a uniform weight given to all time steps.

Definition at line 58 of file TimeAveragedCG.h.

Member Typedef Documentation

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
typedef BaseFunction<Coordinates> TimeAveragedCG< Coordinates, BaseFunction, Fields >::Function

Definition at line 61 of file TimeAveragedCG.h.

Constructor & Destructor Documentation

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
TimeAveragedCG< Coordinates, BaseFunction, Fields >::TimeAveragedCG ( )

Default constructor.

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
TimeAveragedCG< Coordinates, BaseFunction, Fields >::TimeAveragedCG ( const TimeAveragedCG< Coordinates, BaseFunction, Fields > &  p)
default

Copy constructor. It copies the TimeAveragedCGFunction and all objects it contains.

Parameters
[in]pthe TimeAveragedCGFunction that has to be copied
template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
virtual TimeAveragedCG< Coordinates, BaseFunction, Fields >::~TimeAveragedCG ( )
virtualdefault

Destructor, it simply destructs the TimeAveragedCGFunction and all the objects it contains.

Member Function Documentation

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
TimeAveragedCG<Coordinates, BaseFunction, Fields>* TimeAveragedCG< Coordinates, BaseFunction, Fields >::copy ( ) const
overridevirtual

Copy operator; creates a new'ed CG object.

Reimplemented from CG< Coordinates, BaseFunction, Fields >.

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
void TimeAveragedCG< Coordinates, BaseFunction, Fields >::evaluate ( )
overridevirtual

Called after a given number of time steps (statFile::saveCount_) to evaluate the CG fields.

Reimplemented from CG< Coordinates, BaseFunction, Fields >.

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
void TimeAveragedCG< Coordinates, BaseFunction, Fields >::finish ( )
overridevirtual

Called at the end of the DPM simulation to finish the cg evaluation and to close the statFile.

Reimplemented from CG< Coordinates, BaseFunction, Fields >.

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
std::string TimeAveragedCG< Coordinates, BaseFunction, Fields >::getName ( ) const
overridevirtual

returns the name of the class, which is required by write.

Reimplemented from CG< Coordinates, BaseFunction, Fields >.

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
void TimeAveragedCG< Coordinates, BaseFunction, Fields >::initialise ( )
overridevirtual

Called at the beginning of the DPM simulation to initialise the cg evaluation and to open the statFile.

Reimplemented from CG< Coordinates, BaseFunction, Fields >.

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
void TimeAveragedCG< Coordinates, BaseFunction, Fields >::write ( std::ostream &  os) const
overridevirtual

Writes class content, except for the points, into an output stream.

Todo:
TW write should be renamed writeHeader, writeAll should be renamed write.

Reimplemented from CG< Coordinates, BaseFunction, Fields >.

Member Data Documentation

template<class Coordinates = CGCoordinates::O, template< class > class BaseFunction = CGFunctions::Lucy, class Fields = CGFields::StandardFields>
unsigned int TimeAveragedCG< Coordinates, BaseFunction, Fields >::nTime_
protected

Stores the number of time steps over which the fields are averaged. Needed, as the average is computed by summing up all values, then dividing by the number of values, i.e. nTime_. Internal variable that cannot be set by the user.

Definition at line 120 of file TimeAveragedCG.h.


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