CASM  1.1.0
A Clusters Approach to Statistical Mechanics
ProtoFuncsPrinter.hh
Go to the documentation of this file.
1 #ifndef CASM_clex_io_ProtoFuncsPrinter
2 #define CASM_clex_io_ProtoFuncsPrinter
3 
4 #include <vector>
5 
9 
10 namespace CASM {
11 
12 namespace xtal {
13 class BasicStructure;
14 }
15 
16 class ClexBasis;
17 class Structure;
18 class jsonParser;
19 
24  typedef std::shared_ptr<const PrimType> PrimType_ptr;
25 
27 
28  std::vector<SubExpressionLabeler> labelers;
29 
31  bool align,
33 
37  template <typename OrbitType>
38  void operator()(const OrbitType &orbit, Log &out, Index orbit_index,
39  Index Norbits) const;
40 
41  template <typename OrbitType>
42  jsonParser &to_json(const OrbitType &orbit, jsonParser &json,
43  Index orbit_index, Index Norbits) const;
44 
45  private:
47  bool m_align;
48 };
49 
51 void print_tex_tabular_cluster_sites(Log &out, IntegralCluster const &cluster,
52  xtal::BasicStructure const &prim,
53  COORD_TYPE mode);
54 
56 void print_site_basis_funcs(std::shared_ptr<const Structure> prim_ptr,
57  ClexBasis const &clex_basis, Log &out,
58  Index indent_space = 6, COORD_TYPE mode = FRAC);
59 
61 void print_aligned_site_basis_funcs(std::shared_ptr<const Structure> prim_ptr,
62  ClexBasis const &clex_basis, Log &out,
63  Index indent_space = 6,
64  COORD_TYPE mode = FRAC);
65 
66 void write_site_basis_funcs(std::shared_ptr<const Structure> prim_ptr,
67  ClexBasis const &clex_basis, jsonParser &json);
68 
69 } // namespace CASM
70 
71 #endif
Definition: Log.hh:48
BasicStructure specifies the lattice and atomic basis of a crystal.
Main CASM namespace.
Definition: APICommand.hh:8
void write_site_basis_funcs(std::shared_ptr< const Structure > prim_ptr, ClexBasis const &clex_basis, jsonParser &json)
COORD_TYPE
Definition: enum.hh:6
void print_tex_tabular_cluster_sites(Log &out, IntegralCluster const &cluster, xtal::BasicStructure const &prim, COORD_TYPE mode)
Print prototype cluster sites as a tex tabular.
const COORD_TYPE FRAC
Definition: enum.hh:8
void print_site_basis_funcs(std::shared_ptr< const Structure > prim_ptr, ClexBasis const &clex_basis, Log &out, Index indent_space=6, COORD_TYPE mode=FRAC)
Print site basis functions, as for 'casm bset –functions'.
INDEX_TYPE Index
For long integer indexing:
Definition: definitions.hh:39
void print_aligned_site_basis_funcs(std::shared_ptr< const Structure > prim_ptr, ClexBasis const &clex_basis, Log &out, Index indent_space=6, COORD_TYPE mode=FRAC)
Print aligned site basis functions, as for 'casm bset –functions –align'.
Print Orbit<SymCompareType> & ClexBasis, including prototypes and prototype basis functions.
std::shared_ptr< const PrimType > PrimType_ptr
jsonParser & to_json(const OrbitType &orbit, jsonParser &json, Index orbit_index, Index Norbits) const
ClexBasis const & clex_basis
xtal::BasicStructure PrimType
void operator()(const OrbitType &orbit, Log &out, Index orbit_index, Index Norbits) const
Print to JSON.
std::vector< SubExpressionLabeler > labelers
ProtoFuncsPrinter(ClexBasis const &_clex_basis, PrimType_ptr prim_ptr, bool align, OrbitPrinterOptions const &_opt=OrbitPrinterOptions())