CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::SubClusterGenerator< ClusterType > Class Template Reference

#include <SubClusterGenerator.hh>

+ Inheritance diagram for CASM::SubClusterGenerator< ClusterType >:

Detailed Description

template<typename ClusterType>
class CASM::SubClusterGenerator< ClusterType >

Generates subclusters of a cluster with an iterator-like interface.

  • Includes the null cluster and the original cluster
  • Does not check symmetry

Definition at line 17 of file SubClusterGenerator.hh.

Public Member Functions

 SubClusterGenerator ()
 Default construtor. More...
 
 SubClusterGenerator (const ClusterType &clust)
 Construt with the cluster to find subclusters of. More...
 

Private Member Functions

void increment ()
 
bool equal (const SubClusterGenerator &other) const
 
ClusterType & dereference () const
 
bool valid () const
 

Private Attributes

notstd::cloneable_ptr< ClusterType > m_cluster
 the cluster we're finding subclusters of More...
 
bool m_current_valid
 for lazy construction of m_current More...
 
notstd::cloneable_ptr< ClusterType > m_current
 The current subcluster. More...
 
Counter< std::vector< int > > m_site_counter
 Indicates which sites to include (1) or not include (0) in the subcluster. More...
 

Friends

class boost::iterator_core_access
 

Constructor & Destructor Documentation

◆ SubClusterGenerator() [1/2]

template<typename ClusterType >
CASM::SubClusterGenerator< ClusterType >::SubClusterGenerator ( )
inline

Default construtor.

Definition at line 22 of file SubClusterGenerator.hh.

◆ SubClusterGenerator() [2/2]

template<typename ClusterType >
CASM::SubClusterGenerator< ClusterType >::SubClusterGenerator ( const ClusterType &  clust)
inlineexplicit

Construt with the cluster to find subclusters of.

Definition at line 25 of file SubClusterGenerator.hh.

Member Function Documentation

◆ dereference()

template<typename ClusterType >
ClusterType& CASM::SubClusterGenerator< ClusterType >::dereference ( ) const
inlineprivate

Definition at line 53 of file SubClusterGenerator.hh.

◆ equal()

template<typename ClusterType >
bool CASM::SubClusterGenerator< ClusterType >::equal ( const SubClusterGenerator< ClusterType > &  other) const
inlineprivate

Definition at line 41 of file SubClusterGenerator.hh.

◆ increment()

template<typename ClusterType >
void CASM::SubClusterGenerator< ClusterType >::increment ( )
inlineprivate

Definition at line 36 of file SubClusterGenerator.hh.

◆ valid()

template<typename ClusterType >
bool CASM::SubClusterGenerator< ClusterType >::valid ( ) const
inlineprivate

Definition at line 66 of file SubClusterGenerator.hh.

Friends And Related Function Documentation

◆ boost::iterator_core_access

template<typename ClusterType >
friend class boost::iterator_core_access
friend

Definition at line 34 of file SubClusterGenerator.hh.

Member Data Documentation

◆ m_cluster

template<typename ClusterType >
notstd::cloneable_ptr<ClusterType> CASM::SubClusterGenerator< ClusterType >::m_cluster
private

the cluster we're finding subclusters of

Definition at line 75 of file SubClusterGenerator.hh.

◆ m_current

template<typename ClusterType >
notstd::cloneable_ptr<ClusterType> CASM::SubClusterGenerator< ClusterType >::m_current
private

The current subcluster.

Definition at line 81 of file SubClusterGenerator.hh.

◆ m_current_valid

template<typename ClusterType >
bool CASM::SubClusterGenerator< ClusterType >::m_current_valid
private

for lazy construction of m_current

Definition at line 78 of file SubClusterGenerator.hh.

◆ m_site_counter

template<typename ClusterType >
Counter<std::vector<int> > CASM::SubClusterGenerator< ClusterType >::m_site_counter
private

Indicates which sites to include (1) or not include (0) in the subcluster.

Definition at line 84 of file SubClusterGenerator.hh.


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