CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
CASM::MCDataEquilibration Class Reference

#include <MCData.hh>

Detailed Description

Checks if a range of observations have equilibrated.

Definition at line 66 of file MCData.hh.

Public Types

typedef MCData::size_type size_type
 

Public Member Functions

 MCDataEquilibration ()
 Default constructor. More...
 
 MCDataEquilibration (const Eigen::VectorXd &observations, double prec)
 Check if a range of observations have equilibrated. More...
 
bool is_equilibrated () const
 
size_type equilibration_samples () const
 

Private Attributes

bool m_is_equilibrated
 
size_type m_equil_samples
 

Member Typedef Documentation

Constructor & Destructor Documentation

CASM::MCDataEquilibration::MCDataEquilibration ( )
inline

Default constructor.

Definition at line 74 of file MCData.hh.

CASM::MCDataEquilibration::MCDataEquilibration ( const Eigen::VectorXd &  observations,
double  prec 
)

Check if a range of observations have equilibrated.

Parameters
observationsAn Eigen::VectorXd of observations
precDesired absolute precision (<X> +/- prec)

This uses the following algorithm, based on: Van de Walle and Asta, Modelling Simul. Mater. Sci. Eng. 10 (2002) 521–538.

Partition observations into three ranges:

  • equilibriation stage: [0, start1)
  • first partition: [start1, start2)
  • second partition: [start2, N)

    where N is observations.size(), start1 and start 2 are indices into observations such 0 <= start1 < start2 <= N, the number of elements in the first and second partition are the same (within 1).

We consider the calculation equilibrated at start1 if mean of elements in first and second partition are approximately equal to the desired precsion: (std::abs(mean1 - mean2) < prec).

Additionally, we increment start1 as much as needed to ensure that the equilibriation stage has observations on either side of the total mean.

If these conditions are met, set: m_is_equilibrated = true; m_equil_samples = start1;

If these conditions can not be met, set: m_is_equilibrated = false; m_equil_samples = N-1;

Definition at line 37 of file MCData.cc.

Member Function Documentation

size_type CASM::MCDataEquilibration::equilibration_samples ( ) const
inline

Definition at line 83 of file MCData.hh.

bool CASM::MCDataEquilibration::is_equilibrated ( ) const
inline

Definition at line 79 of file MCData.hh.

Member Data Documentation

size_type CASM::MCDataEquilibration::m_equil_samples
private

Definition at line 91 of file MCData.hh.

bool CASM::MCDataEquilibration::m_is_equilibrated
private

Definition at line 90 of file MCData.hh.


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