CASM  1.1.0
A Clusters Approach to Statistical Mechanics
ConfigEnumIO.hh
Go to the documentation of this file.
1 #ifndef CASM_enumerator_io_formatter_ConfigEnumIO
2 #define CASM_enumerator_io_formatter_ConfigEnumIO
3 
4 #include "casm/misc/TypeInfo.hh"
5 
6 namespace CASM {
7 
8 template <typename EnumeratorType, typename InitialStateType>
9 struct ConfigEnumData;
10 class Supercell;
11 
12 // Note:
13 // - The following formatters are all templated to expect a ConfigEnumDataType
14 // that follows the
15 // minimum interface defined by `ConfigEnumData`
16 // - Besides the functions included here, you can also use
17 // `make_datum_formatter_adapter` to adapt
18 // DatumFormatters from ConfigIO or ScelIO for use with ConfigEnumDataType.
19 // Examples:
20 // - `make_datum_formatter_adapter<ConfigEnumDataType,
21 // Configuration>(ConfigIO::scelname())`
22 // - `make_datum_formatter_adapter<ConfigEnumDataType,
23 // Supercell>(ScelIO::TransfMat())`
24 // - Note that `make_datum_formatter_adapter` has overrides that can change
25 // the name if that
26 // is appropriate.
27 // - Using `make_datum_formatter_adapter` requires defining an
28 // adapter::Adapter
29 
30 namespace adapter {
31 
32 template <typename ToType, typename FromType>
33 struct Adapter;
34 
35 template <typename EnumeratorType, typename InitialStateType>
37  ConfigEnumData<EnumeratorType, InitialStateType>> {
38  Configuration const &operator()(
40 };
41 
42 template <typename EnumeratorType, typename InitialStateType>
43 struct Adapter<Supercell, ConfigEnumData<EnumeratorType, InitialStateType>> {
44  Supercell const &operator()(
46 };
47 } // namespace adapter
48 
49 namespace ConfigEnumIO {
50 
51 template <typename ConfigEnumDataType>
53 
54 template <typename ConfigEnumDataType>
56 
57 template <typename ConfigEnumDataType>
59 
60 template <typename ConfigEnumDataType>
62 
63 template <typename ConfigEnumDataType>
65 
66 template <typename ConfigEnumDataType>
68 
69 template <typename ConfigEnumDataType>
71 
72 template <typename ConfigEnumDataType>
75 
76 template <typename ConfigEnumDataType>
79 
80 template <typename ConfigEnumDataType>
82 
86 template <typename EnumeratorType>
87 Eigen::VectorXd get_normal_coordinate(EnumeratorType const &enumerator);
88 
89 template <typename ConfigEnumDataType>
92 
93 template <typename ConfigEnumDataType>
95 } // namespace ConfigEnumIO
96 } // namespace CASM
97 
98 #endif
Extract data from objects of 'DataObject' class.
A DatumFormatter that returns a 1D value of specified type, via functions that may be specified at ru...
A DatumFormatter that returns a value of specified type, via functions that may be specified at runti...
Represents a supercell of the primitive parent crystal structure.
Definition: Supercell.hh:51
GenericDatumFormatter< std::string, ConfigEnumDataType > name()
GenericDatumFormatter< std::string, ConfigEnumDataType > initial_state_configname()
GenericDatumFormatter< bool, ConfigEnumDataType > is_new()
GenericDatumFormatter< bool, ConfigEnumDataType > is_existing()
GenericDatumFormatter< Index, ConfigEnumDataType > initial_state_index()
DataFormatter< ConfigEnumDataType > make_standard_data_formatter()
GenericDatumFormatter< std::string, ConfigEnumDataType > initial_state_name()
Generic1DDatumFormatter< std::vector< Index >, ConfigEnumDataType > selected_sites()
Generic1DDatumFormatter< Eigen::VectorXd, ConfigEnumDataType > normal_coordinate()
GenericDatumFormatter< bool, ConfigEnumDataType > selected()
GenericDatumFormatter< Index, ConfigEnumDataType > n_selected_sites()
GenericDatumFormatter< bool, ConfigEnumDataType > is_excluded_by_filter()
Eigen::VectorXd get_normal_coordinate(EnumeratorType const &enumerator)
ConfigEnumData< ConfigEnumSiteDoFs, ConfigEnumInput > ConfigEnumDataType
Main CASM namespace.
Definition: APICommand.hh:8
Eigen::VectorXd VectorXd