CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::Monte::MCDataEquilibration Class Reference

#include <MCData.hh>

Detailed Description

Checks if a range of observations have equilibrated.

Definition at line 58 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

◆ size_type

Constructor & Destructor Documentation

◆ MCDataEquilibration() [1/2]

CASM::Monte::MCDataEquilibration::MCDataEquilibration ( )
inline

Default constructor.

Definition at line 63 of file MCData.hh.

◆ MCDataEquilibration() [2/2]

CASM::Monte::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 39 of file MCData.cc.

Member Function Documentation

◆ equilibration_samples()

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

Definition at line 70 of file MCData.hh.

◆ is_equilibrated()

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

Definition at line 68 of file MCData.hh.

Member Data Documentation

◆ m_equil_samples

size_type CASM::Monte::MCDataEquilibration::m_equil_samples
private

Definition at line 74 of file MCData.hh.

◆ m_is_equilibrated

bool CASM::Monte::MCDataEquilibration::m_is_equilibrated
private

Definition at line 73 of file MCData.hh.


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