CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::FillSupercell Class Reference

#include <FillSupercell.hh>

Detailed Description

Functor to fill a Supercell with a tiling of a motif Configuration

Note:

  • In general, the motif Configuration must be transformed by a prim factor group operation so that the motif's smaller supercell can be tiled into the larger supercell.
  • Construct with the Supercell to be filled and either the Lattice of the motif configuration, or the SymOp used to transform the motif before filling the larger supercell.
  • Using this functor directly will be more efficient if transforming many motif Configuration with the same Supercell into super configurations with the same Supercell because will preserve some temporary data.

Definition at line 90 of file FillSupercell.hh.

Public Member Functions

 FillSupercell (std::shared_ptr< Supercell const > const &_shared_supercell)
 Constructor. More...
 
 FillSupercell (Supercell const &_supercell)
 Constructor. More...
 
Configuration operator() (Configuration const &motif) const
 
Configuration operator() (SymOp const &_symop, Configuration const &motif) const
 
const SymOpfind_symop (xtal::Lattice const &_motif_lattice) const
 Find first SymOp in the prim factor group such that apply(op, motif) can be used to fill the Supercell. More...
 
const SymOpsymop () const
 Returns the SymOp used by operator() More...
 

Private Member Functions

void _init (Supercell const &_motif_scel) const
 

Private Attributes

std::shared_ptr< Supercell const > m_shared_supercell
 
Supercell const * m_supercell_ptr
 
SymOp const * m_symop_ptr
 
Supercell const * m_motif_supercell
 
std::vector< std::vector< Index > > m_index_table
 

Constructor & Destructor Documentation

◆ FillSupercell() [1/2]

CASM::FillSupercell::FillSupercell ( std::shared_ptr< Supercell const > const &  _shared_supercell)

Constructor.

Constructor, so that the generated super configuration uses std::shared_ptr<Supercell>

Parameters
_shared_supercellSupercell to be filled
_scelSupercell to be filled
_opSymOp that transforms the input motif before tiling into the Supercell that is filled

Definition at line 83 of file FillSupercell.cc.

◆ FillSupercell() [2/2]

CASM::FillSupercell::FillSupercell ( Supercell const &  _supercell)

Constructor.

Constructor, so that the generated super configuration uses Supercell const &

Parameters
_scelSupercell to be filled
_scelSupercell to be filled
_opSymOp that transforms the input motif before tiling into the Supercell that is filled

Definition at line 95 of file FillSupercell.cc.

Member Function Documentation

◆ _init()

void CASM::FillSupercell::_init ( Supercell const &  _motif_scel) const
private

Definition at line 185 of file FillSupercell.cc.

◆ find_symop()

SymOp const * CASM::FillSupercell::find_symop ( xtal::Lattice const &  _motif_lattice) const

Find first SymOp in the prim factor group such that apply(op, motif) can be used to fill the Supercell.

Find first SymOp in the prim factor group such that apply(symop, motif) can be used to fill the Supercell. Returns nullptr if none can tile.

Definition at line 173 of file FillSupercell.cc.

◆ operator()() [1/2]

Configuration CASM::FillSupercell::operator() ( Configuration const &  motif) const

Create a super configuration by tiling the motif Configuration into the supercell.

Note:

  • This overload finds the first SymOp in the prim factor group such that apply(symop, motif) can be used to fill the Supercell. If none can be found, it throws.
  • If it is called repeatedly on motif configurations that share the same Supercell it uses the same SymOp.

Definition at line 100 of file FillSupercell.cc.

◆ operator()() [2/2]

Configuration CASM::FillSupercell::operator() ( SymOp const &  _symop,
Configuration const &  motif 
) const

Create a super configuration by tiling the apply(symop, motif) Configuration into the supercell

Definition at line 108 of file FillSupercell.cc.

◆ symop()

const SymOp& CASM::FillSupercell::symop ( ) const
inline

Returns the SymOp used by operator()

Definition at line 126 of file FillSupercell.hh.

Member Data Documentation

◆ m_index_table

std::vector<std::vector<Index> > CASM::FillSupercell::m_index_table
mutableprivate

Definition at line 140 of file FillSupercell.hh.

◆ m_motif_supercell

Supercell const* CASM::FillSupercell::m_motif_supercell
mutableprivate

Definition at line 139 of file FillSupercell.hh.

◆ m_shared_supercell

std::shared_ptr<Supercell const> CASM::FillSupercell::m_shared_supercell
private

Definition at line 131 of file FillSupercell.hh.

◆ m_supercell_ptr

Supercell const* CASM::FillSupercell::m_supercell_ptr
private

Definition at line 132 of file FillSupercell.hh.

◆ m_symop_ptr

SymOp const* CASM::FillSupercell::m_symop_ptr
mutableprivate

Definition at line 138 of file FillSupercell.hh.


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