CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::ClexBasisWriter_impl Namespace Reference

Functions

std::string clexulator_member_declarations (std::string const &class_name, ClexBasis const &clex, ParamPackMixIn const &_param_pack_mix_in, std::vector< std::unique_ptr< OrbitFunctionTraits > > const &orbit_func_traits, Index N_flower, std::string const &indent)
 
std::string clexulator_private_method_declarations (std::string const &class_name, ClexBasis const &clex, std::string const &indent)
 
std::string clexulator_public_method_declarations (std::string const &class_name, ClexBasis const &clex, std::string const &indent)
 
template<typename OrbitType >
std::tuple< std::string, std::string > clexulator_orbit_function_strings (std::string const &class_name, ClexBasis::BSetOrbit const &_bset_orbit, OrbitType const &_clust_orbit, std::function< std::string(Index, Index)> method_namer, PrimNeighborList &_nlist, std::vector< std::unique_ptr< FunctionVisitor > > const &visitors, std::string const &indent)
 
template<typename OrbitType >
std::tuple< std::string, std::string > clexulator_flower_function_strings (std::string const &class_name, ClexBasis::BSetOrbit const &_bset_orbit, OrbitType const &_clust_orbit, std::function< std::string(Index, Index)> method_namer, std::map< UnitCellCoord, std::set< UnitCellCoord > > const &_nhood, PrimNeighborList &_nlist, std::vector< std::unique_ptr< FunctionVisitor > > const &visitor, std::string const &indent)
 Print the flower function formulae for orbit. More...
 
template<typename OrbitType >
std::tuple< std::string, std::string > clexulator_dflower_function_strings (std::string const &class_name, ClexBasis::BSetOrbit const &_bset_orbit, ClexBasis::BSetOrbit const &_site_bases, OrbitType const &_clust_orbit, std::function< std::string(Index, Index)> method_namer, std::map< UnitCellCoord, std::set< UnitCellCoord > > const &_nhood, PrimNeighborList &_nlist, std::vector< std::unique_ptr< FunctionVisitor > > const &visitors, FunctionVisitor const &prefactor_labeler, std::string const &indent)
 
std::string clexulator_interface_declaration (std::string const &class_name, ClexBasis const &clex, ParamPackMixIn const &_param_pack_mix_in, std::string const &indent)
 
template<typename OrbitType >
std::string clexulator_constructor_definition (std::string const &class_name, ClexBasis const &clex, std::vector< OrbitType > const &_tree, std::map< UnitCellCoord, std::set< UnitCellCoord > > const &_nhood, PrimNeighborList &_nlist, ParamPackMixIn const &_param_pack_mix_in, std::vector< std::string > const &orbit_method_names, std::vector< std::vector< std::string > > const &flower_method_names, std::vector< std::vector< std::string > > const &dflower_method_names, std::string const &indent)
 
template<typename OrbitType >
std::string clexulator_point_prepare_definition (std::string const &class_name, ClexBasis const &clex, std::vector< OrbitType > const &_tree, std::vector< std::unique_ptr< OrbitFunctionTraits > > const &orbit_func_traits, std::map< UnitCellCoord, std::set< UnitCellCoord > > const &_nhood, PrimNeighborList &_nlist, std::string const &indent)
 
template<typename OrbitType >
std::string clexulator_global_prepare_definition (std::string const &class_name, ClexBasis const &clex, std::vector< OrbitType > const &_tree, std::vector< std::unique_ptr< OrbitFunctionTraits > > const &orbit_func_traits, std::map< UnitCellCoord, std::set< UnitCellCoord > > const &_nhood, PrimNeighborList &_nlist, std::string const &indent)
 
template<typename OrbitType >
std::vector< std::string > orbit_function_cpp_strings (ClexBasis::BSetOrbit _bset_orbit, OrbitType const &_clust_orbit, PrimNeighborList &_nlist, std::vector< std::unique_ptr< FunctionVisitor > > const &visitors)
 
template<typename OrbitType >
std::vector< std::string > flower_function_cpp_strings (ClexBasis::BSetOrbit _bset_orbit, std::function< BasisSet(BasisSet const &)> _bset_transform, OrbitType const &_clust_orbit, std::map< UnitCellCoord, std::set< UnitCellCoord > > const &_nhood, PrimNeighborList &_nlist, std::vector< std::unique_ptr< FunctionVisitor > > const &_visitors, UnitCellCoord const &_nbor)
 nlist_index is the index of the basis site in the neighbor list More...
 
template<typename OrbitType >
void print_proto_clust_funcs (ClexBasis const &clex, std::ostream &out, std::vector< OrbitType > const &_tree)
 
template<typename OrbitIterType >
std::map< UnitCellCoord, std::set< UnitCellCoord > > dependency_neighborhood (OrbitIterType begin, OrbitIterType end)
 
template<typename UCCIterType , typename IntegralClusterSymCompareType >
std::set< UnitCellCoordequiv_ucc (UCCIterType begin, UCCIterType end, UnitCellCoord const &_pivot, Structure const &_prim, IntegralClusterSymCompareType const &_sym_compare)
 

Function Documentation

◆ clexulator_constructor_definition()

template<typename OrbitType >
std::string CASM::ClexBasisWriter_impl::clexulator_constructor_definition ( std::string const &  class_name,
ClexBasis const &  clex,
std::vector< OrbitType > const &  _tree,
std::map< UnitCellCoord, std::set< UnitCellCoord > > const &  _nhood,
PrimNeighborList _nlist,
ParamPackMixIn const &  _param_pack_mix_in,
std::vector< std::string > const &  orbit_method_names,
std::vector< std::vector< std::string > > const &  flower_method_names,
std::vector< std::vector< std::string > > const &  dflower_method_names,
std::string const &  indent 
)

Definition at line 710 of file ClexBasisWriter_impl.hh.

◆ clexulator_dflower_function_strings()

template<typename OrbitType >
std::tuple< std::string, std::string > CASM::ClexBasisWriter_impl::clexulator_dflower_function_strings ( std::string const &  class_name,
ClexBasis::BSetOrbit const &  _bset_orbit,
ClexBasis::BSetOrbit const &  _site_bases,
OrbitType const &  _clust_orbit,
std::function< std::string(Index, Index)>  method_namer,
std::map< UnitCellCoord, std::set< UnitCellCoord > > const &  _nhood,
PrimNeighborList _nlist,
std::vector< std::unique_ptr< FunctionVisitor > > const &  visitors,
FunctionVisitor const &  prefactor_labeler,
std::string const &  indent 
)

Definition at line 351 of file ClexBasisWriter_impl.hh.

◆ clexulator_flower_function_strings()

template<typename OrbitType >
std::tuple< std::string, std::string > CASM::ClexBasisWriter_impl::clexulator_flower_function_strings ( std::string const &  class_name,
ClexBasis::BSetOrbit const &  _bset_orbit,
OrbitType const &  _clust_orbit,
std::function< std::string(Index, Index)>  method_namer,
std::map< UnitCellCoord, std::set< UnitCellCoord > > const &  _nhood,
PrimNeighborList _nlist,
std::vector< std::unique_ptr< FunctionVisitor > > const &  visitor,
std::string const &  indent 
)

Print the flower function formulae for orbit.

Parameters
_clust_orbitspecified by BasisSet
_bset_orbitThe pivot of the flower is specified by
_sublat_indexThe flower function of site
_sublat_indexand orbit
_clust_orbitis obtained by summing the contributions of all cluster functions from
_bset_orbitthat 'touch' the site (b,i,j,k)=(sublat_index,0,0,0), including functions that are found by translations of equivalent clusters in
_clust_orbit.Depending on the orbit periodicity (i.e., Orbit::sym_compare()), not all translations of the cluster that touch (sublat_index,0,0,0) are translationally equivalent. Thus, the result is the std::map that associates UnitCell (i.e, translation) to a set of formulae, (i.e., std::vector<std::string>), with one formula per function in _clust_orbit[i] (some or all formulae may evaluate to zero, if if
_clust_orbitdoesn't include site of type
_sublat_index.
_bset_transfromis a function/functor that applies a transformation to each _bset_orbit[i].
_nlistis the PrimNeighborList, used to index sites in the neighborhood
_labelersis a set of FunctionVisitors that can be used to control formatting of the formulae

Definition at line 302 of file ClexBasisWriter_impl.hh.

◆ clexulator_global_prepare_definition()

template<typename OrbitType >
std::string CASM::ClexBasisWriter_impl::clexulator_global_prepare_definition ( std::string const &  class_name,
ClexBasis const &  clex,
std::vector< OrbitType > const &  _tree,
std::vector< std::unique_ptr< OrbitFunctionTraits > > const &  orbit_func_traits,
std::map< UnitCellCoord, std::set< UnitCellCoord > > const &  _nhood,
PrimNeighborList _nlist,
std::string const &  indent 
)

Definition at line 949 of file ClexBasisWriter_impl.hh.

◆ clexulator_interface_declaration()

std::string CASM::ClexBasisWriter_impl::clexulator_interface_declaration ( std::string const &  class_name,
ClexBasis const &  clex,
ParamPackMixIn const &  _param_pack_mix_in,
std::string const &  indent 
)

Definition at line 408 of file ClexBasisWriter.cc.

◆ clexulator_member_declarations()

std::string CASM::ClexBasisWriter_impl::clexulator_member_declarations ( std::string const &  class_name,
ClexBasis const &  clex,
ParamPackMixIn const &  _param_pack_mix_in,
std::vector< std::unique_ptr< OrbitFunctionTraits > > const &  orbit_func_traits,
Index  N_flower,
std::string const &  indent 
)

Definition at line 50 of file ClexBasisWriter.cc.

◆ clexulator_orbit_function_strings()

template<typename OrbitType >
std::tuple< std::string, std::string > CASM::ClexBasisWriter_impl::clexulator_orbit_function_strings ( std::string const &  class_name,
ClexBasis::BSetOrbit const &  _bset_orbit,
OrbitType const &  _clust_orbit,
std::function< std::string(Index, Index)>  method_namer,
PrimNeighborList _nlist,
std::vector< std::unique_ptr< FunctionVisitor > > const &  visitors,
std::string const &  indent 
)

Definition at line 262 of file ClexBasisWriter_impl.hh.

◆ clexulator_point_prepare_definition()

template<typename OrbitType >
std::string CASM::ClexBasisWriter_impl::clexulator_point_prepare_definition ( std::string const &  class_name,
ClexBasis const &  clex,
std::vector< OrbitType > const &  _tree,
std::vector< std::unique_ptr< OrbitFunctionTraits > > const &  orbit_func_traits,
std::map< UnitCellCoord, std::set< UnitCellCoord > > const &  _nhood,
PrimNeighborList _nlist,
std::string const &  indent 
)

Definition at line 916 of file ClexBasisWriter_impl.hh.

◆ clexulator_private_method_declarations()

std::string CASM::ClexBasisWriter_impl::clexulator_private_method_declarations ( std::string const &  class_name,
ClexBasis const &  clex,
std::string const &  indent 
)

Definition at line 154 of file ClexBasisWriter.cc.

◆ clexulator_public_method_declarations()

std::string CASM::ClexBasisWriter_impl::clexulator_public_method_declarations ( std::string const &  class_name,
ClexBasis const &  clex,
std::string const &  indent 
)

Definition at line 370 of file ClexBasisWriter.cc.

◆ dependency_neighborhood()

template<typename OrbitIterType >
std::map< UnitCellCoord, std::set< UnitCellCoord > > CASM::ClexBasisWriter_impl::dependency_neighborhood ( OrbitIterType  begin,
OrbitIterType  end 
)

Definition at line 614 of file ClexBasisWriter_impl.hh.

◆ equiv_ucc()

template<typename UCCIterType , typename IntegralClusterSymCompareType >
std::set< UnitCellCoord > CASM::ClexBasisWriter_impl::equiv_ucc ( UCCIterType  begin,
UCCIterType  end,
UnitCellCoord const &  _pivot,
Structure const &  _prim,
IntegralClusterSymCompareType const &  _sym_compare 
)

Definition at line 669 of file ClexBasisWriter_impl.hh.

◆ flower_function_cpp_strings()

template<typename OrbitType >
std::vector< std::string > CASM::ClexBasisWriter_impl::flower_function_cpp_strings ( ClexBasis::BSetOrbit  _bset_orbit,
std::function< BasisSet(BasisSet const &)>  _bset_transform,
OrbitType const &  _clust_orbit,
std::map< UnitCellCoord, std::set< UnitCellCoord > > const &  _nhood,
PrimNeighborList _nlist,
std::vector< std::unique_ptr< FunctionVisitor > > const &  _visitors,
UnitCellCoord const &  _nbor 
)

nlist_index is the index of the basis site in the neighbor list

For each equivalent ucc that is in the equivalent cluster, translate the cluster so that the site coincides with nbor

For each equivalent ucc that is in the equivalent cluster, translate the cluster so that the site coincides with nbor

Definition at line 477 of file ClexBasisWriter_impl.hh.

◆ orbit_function_cpp_strings()

template<typename OrbitType >
std::vector< std::string > CASM::ClexBasisWriter_impl::orbit_function_cpp_strings ( ClexBasis::BSetOrbit  _bset_orbit,
OrbitType const &  _clust_orbit,
PrimNeighborList _nlist,
std::vector< std::unique_ptr< FunctionVisitor > > const &  visitors 
)

Definition at line 436 of file ClexBasisWriter_impl.hh.

◆ print_proto_clust_funcs()

template<typename OrbitType >
void CASM::ClexBasisWriter_impl::print_proto_clust_funcs ( ClexBasis const &  clex,
std::ostream &  out,
std::vector< OrbitType > const &  _tree 
)

Definition at line 556 of file ClexBasisWriter_impl.hh.