CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::DB::Database< Configuration > Class Referenceabstract

#include <ConfigDatabase.hh>

+ Inheritance diagram for CASM::DB::Database< Configuration >:

Detailed Description

Derived ConfigDatabase must implement public methods:

Database insert methods by convention do not enforce canonical forms or ensure that the primitive form of a Configuration is included also. That logic is included in Configuration::insert, which is the safest way to insert new Configuration in the database. But in cases where it is known that a Configuration is generated in primitive, canonical form, the Database insert methods may be used directly, for instance as in the method insert_unique_canon_configs.

Definition at line 32 of file ConfigDatabase.hh.

Public Types

typedef DatabaseIterator< Configurationiterator
 
typedef Configuration value_type
 
typedef Index size_type
 
typedef Base::MostDerived MostDerived
 

Public Member Functions

 Database (const PrimClex &_primclex)
 
virtual ~Database ()
 
virtual iterator update (const Configuration &config)=0
 Update record. More...
 
virtual boost::iterator_range< iteratorscel_range (const std::string &scelname) const =0
 
virtual iterator search (const Configuration &config) const
 Find canonical Configuration in database by comparing DoF. More...
 
Index scel_range_size (const std::string &scelname) const
 Number of Configuration in a particular supercell. More...
 
virtual iterator begin () const=0
 
virtual iterator end () const=0
 
virtual size_type size () const=0
 
bool empty () const
 
std::pair< iterator, bool > set_alias (const std::string &name_or_alias, const std::string &alias)
 For setting an alias. More...
 
std::string name (const std::string &name_or_alias) const
 
std::string alias (const std::string &name_or_alias) const
 Get alias from name_or_alias. More...
 
virtual std::pair< iterator, bool > insert (const Configuration &obj)=0
 
virtual std::pair< iterator, bool > insert (const Configuration &&obj)=0
 
void insert (InputIt first, InputIt last)
 
virtual iterator erase (iterator pos)=0
 
size_type erase (const std::string &name_or_alias)
 
size_type erase (const Configuration &obj)
 
virtual size_type count (const std::string &name_or_alias) const
 
virtual iterator find (const std::string &name_or_alias) const=0
 
virtual void commit ()=0
 
Selection< Configuration > & master_selection ()
 
const Selection< Configuration > & master_selection () const
 
virtual DatabaseBaseopen ()=0
 
virtual void close ()=0
 
const PrimClexprimclex () const
 
const Structureprim () const
 
double crystallography_tol () const
 

Protected Member Functions

void read_aliases ()
 
void write_aliases ()
 
void clear_name (const _ValueType &obj) const
 Only ValDatabase<ValueType> is allowed to do clear_name. More...
 
void set_id (const _ValueType &obj, Index id) const
 Only ValDatabase<ValueType> is allowed to do a const id change. More...
 
void set_id (const _ValueType &obj, std::string id) const
 Only ValDatabase<ValueType> is allowed to do a const id change. More...
 
MostDerivedderived ()
 
const MostDerivedderived () const
 

Private Attributes

std::map< std::string, std::string > m_name_to_alias
 
std::map< std::string, std::string > m_alias_to_name
 
Selection< Configurationm_master_selection
 
const PrimClexm_primclex
 

Member Typedef Documentation

◆ iterator

Definition at line 223 of file Database.hh.

◆ MostDerived

typedef Base::MostDerived CASM::HasPrimClex< CRTPBase< DatabaseBase > >::MostDerived
inherited

Definition at line 16 of file HasPrimClex.hh.

◆ size_type

Definition at line 225 of file Database.hh.

◆ value_type

Definition at line 224 of file Database.hh.

Constructor & Destructor Documentation

◆ Database()

CASM::DB::Database< Configuration >::Database ( const PrimClex _primclex)
inline

Definition at line 34 of file ConfigDatabase.hh.

◆ ~Database()

virtual CASM::DB::Database< Configuration >::~Database ( )
inlinevirtual

Definition at line 36 of file ConfigDatabase.hh.

Member Function Documentation

◆ alias()

std::string CASM::DB::ValDatabase< Configuration >::alias ( const std::string &  name_or_alias) const
inherited

Get alias from name_or_alias.

Get alias from name_or_alias

  • Checks if name_or_alias is a known alias
  • If yes, returns name_or_alias
  • If no, checks if name_or_alias is a name corresponding to a known alias
    • If yes, returns alias
    • If no, (because name_or_alias is an invalid name, or because name_or_alias is a valid name without an alias), returns empty string

Definition at line 250 of file Database_impl.hh.

◆ begin()

virtual iterator CASM::DB::ValDatabase< Configuration >::begin ( ) const
pure virtualinherited

◆ clear_name()

void CASM::DB::ValDatabase< Configuration >::clear_name ( const _ValueType &  obj) const
inlineprotectedinherited

Only ValDatabase<ValueType> is allowed to do clear_name.

Definition at line 298 of file Database.hh.

◆ close()

virtual void CASM::DB::DatabaseBase::close ( )
pure virtualinherited

◆ commit()

virtual void CASM::DB::ValDatabase< Configuration >::commit ( )
pure virtualinherited

◆ count()

virtual size_type CASM::DB::ValDatabase< Configuration >::count ( const std::string &  name_or_alias) const
inlinevirtualinherited

Definition at line 268 of file Database.hh.

◆ crystallography_tol()

double CASM::HasPrimClex< CRTPBase< DatabaseBase > >::crystallography_tol
inherited

Definition at line 21 of file HasPrimClex_impl.hh.

◆ derived() [1/2]

template<typename _MostDerived >
MostDerived& notstd::CRTPBase< _MostDerived >::derived ( )
inlineprotectedinherited

Definition at line 13 of file CRTPBase.hh.

◆ derived() [2/2]

template<typename _MostDerived >
const MostDerived& notstd::CRTPBase< _MostDerived >::derived ( ) const
inlineprotectedinherited

Definition at line 15 of file CRTPBase.hh.

◆ empty()

bool CASM::DB::ValDatabase< Configuration >::empty ( ) const
inlineinherited

Definition at line 236 of file Database.hh.

◆ end()

virtual iterator CASM::DB::ValDatabase< Configuration >::end ( ) const
pure virtualinherited

◆ erase() [1/3]

size_type CASM::DB::ValDatabase< Configuration >::erase ( const Configuration obj)
inlineinherited

Definition at line 266 of file Database.hh.

◆ erase() [2/3]

size_type CASM::DB::ValDatabase< Configuration >::erase ( const std::string &  name_or_alias)
inlineinherited

Definition at line 262 of file Database.hh.

◆ erase() [3/3]

virtual iterator CASM::DB::ValDatabase< Configuration >::erase ( iterator  pos)
pure virtualinherited

◆ find()

virtual iterator CASM::DB::ValDatabase< Configuration >::find ( const std::string &  name_or_alias) const
pure virtualinherited

◆ insert() [1/3]

virtual std::pair<iterator, bool> CASM::DB::ValDatabase< Configuration >::insert ( const Configuration &&  obj)
pure virtualinherited

◆ insert() [2/3]

virtual std::pair<iterator, bool> CASM::DB::ValDatabase< Configuration >::insert ( const Configuration obj)
pure virtualinherited

◆ insert() [3/3]

void CASM::DB::ValDatabase< Configuration >::insert ( InputIt  first,
InputIt  last 
)
inlineinherited

Definition at line 256 of file Database.hh.

◆ master_selection() [1/2]

Selection<Configuration >& CASM::DB::ValDatabase< Configuration >::master_selection ( )
inlineinherited

Definition at line 285 of file Database.hh.

◆ master_selection() [2/2]

const Selection<Configuration >& CASM::DB::ValDatabase< Configuration >::master_selection ( ) const
inlineinherited

Definition at line 287 of file Database.hh.

◆ name()

std::string CASM::DB::ValDatabase< Configuration >::name ( const std::string &  name_or_alias) const
inherited

Get name from name_or_alias

  • Checks if name_or_alias is a known alias
  • If known alias, returns associated name
  • If not known alias, assumed to be a name and returns name_or_alias

Definition at line 247 of file Database_impl.hh.

◆ open()

virtual DatabaseBase& CASM::DB::DatabaseBase::open ( )
pure virtualinherited

◆ prim()

const Structure & CASM::HasPrimClex< CRTPBase< DatabaseBase > >::prim
inherited

Definition at line 19 of file HasPrimClex_impl.hh.

◆ primclex()

const PrimClex& CASM::DB::DatabaseBase::primclex ( ) const
inlineinherited

Definition at line 35 of file Database.hh.

◆ read_aliases()

void CASM::DB::ValDatabase< Configuration >::read_aliases
protectedinherited

Definition at line 292 of file Database_impl.hh.

◆ scel_range()

virtual boost::iterator_range<iterator> CASM::DB::Database< Configuration >::scel_range ( const std::string &  scelname) const
pure virtual

Range of Configuration in a particular supecell

Implemented in CASM::DB::jsonDatabase< Configuration >.

◆ scel_range_size()

Index CASM::DB::Database< Configuration >::scel_range_size ( const std::string &  scelname) const

Number of Configuration in a particular supercell.

Number of Configuration in a particular supecell.

Definition at line 11 of file ConfigDatabase.cc.

◆ search()

Database< Configuration >::iterator CASM::DB::Database< Configuration >::search ( const Configuration config) const
virtual

Find canonical Configuration in database by comparing DoF.

Find canonical Configuration in database by comparing DoF

  • Default implementation searches scel_range

Reimplemented in CASM::DB::jsonDatabase< Configuration >.

Definition at line 19 of file ConfigDatabase.cc.

◆ set_alias()

std::pair< typename ValDatabase< Configuration >::iterator, bool > CASM::DB::ValDatabase< Configuration >::set_alias ( const std::string &  name_or_alias,
const std::string &  alias 
)
inherited

For setting an alias.

Definition at line 239 of file Database_impl.hh.

◆ set_id() [1/2]

void CASM::DB::ValDatabase< Configuration >::set_id ( const _ValueType &  obj,
Index  id 
) const
inlineprotectedinherited

Only ValDatabase<ValueType> is allowed to do a const id change.

Definition at line 304 of file Database.hh.

◆ set_id() [2/2]

void CASM::DB::ValDatabase< Configuration >::set_id ( const _ValueType &  obj,
std::string  id 
) const
inlineprotectedinherited

Only ValDatabase<ValueType> is allowed to do a const id change.

Definition at line 310 of file Database.hh.

◆ size()

virtual size_type CASM::DB::ValDatabase< Configuration >::size ( ) const
pure virtualinherited

◆ update()

virtual iterator CASM::DB::Database< Configuration >::update ( const Configuration config)
pure virtual

◆ write_aliases()

void CASM::DB::ValDatabase< Configuration >::write_aliases
protectedinherited

Definition at line 294 of file Database_impl.hh.

Member Data Documentation

◆ m_alias_to_name

std::map<std::string, std::string> CASM::DB::ValDatabase< Configuration >::m_alias_to_name
privateinherited

Definition at line 319 of file Database.hh.

◆ m_master_selection

Selection<Configuration > CASM::DB::ValDatabase< Configuration >::m_master_selection
privateinherited

Definition at line 322 of file Database.hh.

◆ m_name_to_alias

std::map<std::string, std::string> CASM::DB::ValDatabase< Configuration >::m_name_to_alias
privateinherited

Definition at line 316 of file Database.hh.

◆ m_primclex

const PrimClex* CASM::DB::DatabaseBase::m_primclex
privateinherited

Definition at line 38 of file Database.hh.


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