13 if(kwargs.is_null()) {
18 scel_input[
"existing_only"] =
true;
19 kwargs.
get_if(scel_input,
"supercells");
22 if(enum_opt.
vm().count(
"min")) {
26 if(enum_opt.
vm().count(
"max")) {
31 scel_input.
erase(
"min");
32 scel_input.
erase(
"max");
33 scel_input[
"existing_only"] =
true;
36 if(enum_opt.
vm().count(
"scelnames")) {
69 return notstd::make_unique<SupercellEnumerator<Lattice> >(
71 unit_cell.factor_group(),
83 return notstd::make_unique<ScelEnum>(
95 std::vector<std::string> filter_expr;
97 if(enum_opt.
vm().count(
"filter")) {
100 else if(_kwargs.
contains(
"filter")) {
101 filter_expr.push_back(_kwargs[
"filter"].get<std::string>());
std::vector< std::string > make_enumerator_filter_expr(const jsonParser &_kwargs, const Completer::EnumOption &enum_opt)
Standardizes parsing casm enum filter expressions.
bool get_if(T &t, const std::string &key, Args...args) const
const std::vector< std::string > & filter_strs() const
Data structure for holding supercell enumeration properties.
const Lattice & lattice() const
Represents a supercell of the primitive parent crystal structure.
jsonParser make_enumerator_scel_enum_input(const jsonParser &_kwargs, const Completer::EnumOption &enum_opt)
Standardizes parsing casm enum input options to make ScelEnum JSON input.
ScelEnumProps make_enumerator_scel_enum_props(PrimClex &primclex, const jsonParser &_kwargs, const Completer::EnumOption &enum_opt)
Standardizes parsing casm enum input options to make an ScelEnumProps.
size_type erase(const std::string &name)
Erase key:value pair from an object.
ScelEnumProps make_scel_enum_props(PrimClex &primclex, const jsonParser &input)
Make a ScelEnumProps object from JSON input.
Eigen::Matrix3i generating_matrix() const
std::unique_ptr< SupercellEnumerator< Lattice > > make_enumerator_superlat_enum(PrimClex &primclex, const jsonParser &_kwargs, const Completer::EnumOption &enum_opt)
Standardizes parsing casm enum input options to make an SupercellEnumerator ...
PrimClex is the top-level data structure for a CASM project.
bool all_existing() const
const std::vector< std::string > & supercell_strs() const
Returns the list of the supercells for add_scelnames_suboption()
po::variables_map & vm()
Get the variables map.
bool contains(const std::string &name) const
Return true if JSON object contains 'name'.
std::unique_ptr< ScelEnum > make_enumerator_scel_enum(PrimClex &primclex, const jsonParser &_kwargs, const Completer::EnumOption &enum_opt)
Standardizes parsing casm enum input options to make an ScelEnum.
static jsonParser object()
Returns an empty json object.
const Structure & get_prim() const
const Access to primitive Structure