CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM Namespace Reference

Detailed Description

Main CASM namespace.

Cluster expansion class.

Namespaces

 adapter
 
 api_impl
 
 BasisSet_impl
 
 bset_impl
 
 CASM_TMP
 
 clex_SimpleStructureTools_impl
 
 ClexBasis_impl
 
 ClexBasisWriter_impl
 
 ClexParamPack_impl
 
 Clexulator_impl
 
 ClusterSpecs_impl
 
 ClusterSpecs_json_io_impl
 
 ComparePTLeaf
 
 Completer
 
 ConfigDoFIsEquivalent
 Namespace containing DoF comparison functors.
 
 ConfigEnumIO
 
 ConfigEnumSiteDoFsInterface_impl
 
 ConfigEnumStrainInterface_impl
 
 ConfigIO
 Contains ConfigIO classes and functions.
 
 ConfigIO_impl
 
 ConfigMapping
 
 DataStream_impl
 
 DB
 
 DiffClexParamPack_impl
 
 DoF
 
 DoF_impl
 
 DoFSpace_impl
 
 DoFSpaceIO
 
 DoFType
 
 FunctionLabel_impl
 
 Hull_impl
 
 HungarianMethod_impl
 
 Local
 
 local_impl
 
 make_report_impl
 
 Monte
 
 multivector_impl
 
 normal_form_impl
 
 Orbit_impl
 
 parse_OccupationDoFSpecs_impl
 
 ParsingDictionary_impl
 
 query_impl
 
 QueryIO
 
 ref_impl
 
 ScelIO
 
 SharedPrim_dataformatter_impl
 
 simpleformatter
 
 strain
 
 SubOrbits_impl
 
 SupercellSymInfo_dataformatter_impl
 
 sym
 
 SymRepBuilder
 
 SymRepTools
 
 SymRepTools_v2
 
 VaspIO
 Functions and classes related to VASP input/output.
 
 xtal
 

Classes

class  APICommandBase
 
class  APICommand
 
class  BsetCommand
 'casm enum' implementation More...
 
struct  CommandArgs
 Data structure holding basic CASM command info. More...
 
class  InterfaceBase
 Base class for generic use of algorithms through the API. More...
 
struct  ClexDescription
 Specifies a particular cluster expansion. More...
 
class  CLIParse
 
struct  QueryTraits
 
class  DirectoryStructure
 Specification of CASM project directory structure. More...
 
struct  ConfigEnumData
 
struct  ConfigEnumOptions
 Options for the enumerate_configurations function. More...
 
struct  EnumerateSupercellsOptions
 Options for the enumerate_supercells function. More...
 
class  EnumInterfaceBase
 
class  InputParser
 
class  ConfigEnumAllOccupationsInterface
 Interface for ConfigEnumAllOccupations. More...
 
class  ConfigEnumRandomLocalInterface
 Interface for ConfigEnumRandomLocal. More...
 
class  ConfigEnumRandomOccupationsInterface
 Interface for ConfigEnumRandomOccupations. More...
 
class  ConfigEnumSiteDoFsInterface
 Interface for ConfigEnumSiteDoFs. More...
 
class  ConfigEnumStrainInterface
 Interface for ConfigEnumStrain. More...
 
class  ScelEnumInterface
 Interface for ScelEnum. More...
 
class  SuperConfigEnumInterface
 Interface for SuperConfigEnum. More...
 
class  EnumCommand
 
class  EnumeratorHandler
 
class  runtime_error
 
class  FileEnumerator
 Lists all files in a CASM project, for use with 'casm files' command. More...
 
class  ParsingDictionary
 Parsing dictionary for obtaining the correct MoleculeAttribute given a name. More...
 
class  HamiltonianModules
 
class  ImportCommandImpl
 
class  ImportCommand
 
class  InfoInterfaceBase
 
class  NeighborListInfoInterface
 Interface for neighbor list info. More...
 
class  PrimInfoInterface
 Interface for prim info. More...
 
class  SupercellInfoInterface
 Interface for supercell info. More...
 
class  InfoCommand
 
class  QueryHandler
 
class  ProjectSettings
 
struct  jsonConstructor
 Helper struct for constructing objects that need additional data. More...
 
struct  jsonConstructor< ProjectSettings >
 
struct  QueryData
 
class  QueryCommandImpl
 
class  QueryCommand
 
class  RmCommandImpl
 
class  RmCommand
 
class  SelectCommandImpl
 
class  SelectCommand
 
class  SymCommand
 
class  UpdateCommandImpl
 
class  UpdateCommand
 
class  SparseTensor
 
class  Function
 
class  InnerProduct
 
class  FunctionOperation
 
class  DoFSpecs
 
struct  BasisFunctionSpecs
 Specify how to construct basis functions. More...
 
class  BasisSet
 
class  OccupantDoF
 
class  DiscreteDoF
 
class  ContinuousDoF
 
class  DoFIsEquivalent
 Class for checking equivalence of two DoFSet objects, with respect to symmetry transformations. More...
 
class  OccupantDoFIsEquivalent
 Class for checking equivalence of two OccupantDoF objects, with respect to symmetry transformations. More...
 
struct  DoFSetInfo
 
class  DoFSet
 
class  Array
 Basic std::vector like container (deprecated) More...
 
class  FunctionVisitor
 
class  OccFuncLabeler
 
class  OccFuncBasisIndexer
 
class  OccFuncEvaluator
 Evaluates. More...
 
class  VariableLabeler
 
class  SubExpressionLabeler
 
class  OccupantFunction
 
class  OccOccOperation
 
class  PolynomialFunction
 
class  BasicPolyPolyScalarProd
 
class  PolyPolyOperation
 
class  PolyVarOperation
 
class  PolyOccOperation
 
class  Variable
 
class  BasicVarVarScalarProd
 
class  VarVarOperation
 
class  DataFormatter
 Extract data from objects of 'DataObject' class. More...
 
class  BaseDatumFormatter
 Abstract base class from which all other DatumFormatter<DataObject> classes inherit. More...
 
class  FormattedPrintable
 Abstract base class to enable generic formatting. More...
 
struct  DictionaryConverter
 
class  DataFormatterDictionary
 Parsing dictionary for constructing a DataFormatter<DataObject> object. More...
 
class  DataFormatterOperator
 DataFormatters that operate on the results of other DataFormatters. More...
 
class  DatumFormatterAlias
 Implements a DatumFormatter that is an alias for a combination of others. More...
 
class  ConstantValueFormatter
 Prints a string value specified at construction. A header string can also be passed. More...
 
class  BaseValueFormatter
 Base class for creating scalar DatumFormatter. More...
 
class  GenericDatumFormatter
 A DatumFormatter that returns a value of specified type, via functions that may be specified at runtime. More...
 
class  Base1DDatumFormatter
 Abstract base class for creating 1D DatumFormatter. More...
 
class  Generic1DDatumFormatter
 A DatumFormatter that returns a 1D value of specified type, via functions that may be specified at runtime. More...
 
class  Base2DDatumFormatter
 A DatumFormatter that returns a value of specified 2d container. More...
 
class  Generic2DDatumFormatter
 A DatumFormatter that returns a 2D value of specified type, via functions that may be specified at runtime. More...
 
struct  DataFormatterFilter
 
class  DataStream
 
class  CountDataStream
 
class  ValueDataStream
 
class  VectorDataStream
 
class  DatumFormatterAdapter
 
class  MatrixXdDataStream
 
class  LabeledMatrixXdDataStream
 
struct  FormattedDataFileOptions
 
class  FormattedDataFile
 
struct  traits
 
class  FileData
 Interface class to check and/or store path and last_write_time of file on disk. Used to determine if files have been updated or deleted. More...
 
class  FormatFlag
 
struct  KwargsParser
 
class  ParentInputParser
 
class  jsonFile
 Slightly more compact construction of jsonParser from file. More...
 
class  jsonParserIterator
 
class  jsonParser
 
struct  jsonMake
 Helper struct for constructing objects that need additional data. More...
 
struct  jsonConstructor< std::optional< T > >
 Helper struct for constructing std::optional<T> objects. More...
 
struct  LogText
 
struct  LogParagraph
 
struct  LogVerbatim
 
class  Log
 
class  FixedLog
 A Log whose underlying ostream* cannot be reset. More...
 
class  OStringStreamLog
 
class  ScopedLogging
 
class  ScopedNullLogging
 
class  ScopedStringStreamLogging
 
class  SafeOfstream
 Write to a temporary file to ensure a good write, then rename. More...
 
class  BasicClexParamKey
 
class  BasicClexParamPack
 Abstract base class for reading/writing clexulator parameters Parameters are assume be naturally representable as 1D or 2D arrays. More...
 
struct  ValAccess< double >
 
struct  traits< BasicClexParamPack::EvalMode >
 
class  Calculable
 
struct  ChemicalReferenceState
 Stores the composition and energy in a single reference state. More...
 
class  ChemicalReference
 
struct  ChemicalReferencePrinter
 BasicStructure to help print ChemicalReference. More...
 
struct  Clex
 Pair of Clexulator and ECIContainer. More...
 
class  ClexBasis
 
struct  ClexBasisSpecs
 Provides parameters for constructing a cluster expansion basis (ClexBasis) More...
 
class  ClexBasisWriter
 
struct  ValAccess
 
class  ParamPackMixIn
 ParamPackMixIn is interface class to control ClexParamPack portion of Clexulator printing Used primarily by ClexBasisWriter. More...
 
class  ClexParamKey
 Key for indexing clexulator parameters Contains pointer to implementation of the Key. More...
 
class  ClexParamPack
 Abstract base class for reading/writing clexulator parameters Parameters are assumed to be stored as, or at least sliceable into, 2D or 1D arrays in order to standardize read/write interface via Eigen types Arrays are layed out along two dimensions to form (m x N) or (m x 1) matrices where 'N' is the number of sites in the neighborhood of a unit cell, and 'm' is the intrinsic dimension of a particular parameter. Macroscopic or homogeneous properties of the crystal, such as evaluated crystal basis functions or homogeneous strain, which are not associated with individual sites, are represented as a (m x 1) array. The length of the 'm' dimension of a parameter array is referred do as 'dim' and the length of the N' dimension is referred to as 'size'. More...
 
class  Clexulator
 Evaluates correlations. More...
 
struct  CompositionAxes
 
class  CompositionConverter
 Convert between number of species per unit cell and parametric composition. More...
 
class  GenericConfigCompare
 Class for less than comparison of Configurations implemented via a ConfigTypeIsEqual class that also stores the less than result. More...
 
class  ConfigDoF
 
class  ConfigDoFCompare
 Wrapper class for generic less than comparison of ConfigDoF. More...
 
class  ConfigDoFValues
 
class  LocalDiscreteConfigDoFValues
 
class  LocalContinuousConfigDoFValues
 
class  GlobalContinuousConfigDoFValues
 
class  ConfigEnumAllOccupations
 
class  ConfigEnumByPermutation
 Enumerate all equivalent Configurations obtained by permuations in a Supercell. More...
 
struct  ConfigEnumRandomLocalParams
 Parameters controlling ConfigEnumRandomLocal. More...
 
class  ConfigEnumRandomLocal
 Enumerate random values for continuous degrees of freedom. More...
 
struct  ConfigEnumRandomOccupationsParams
 Parameters controlling ConfigEnumRandomOccupations. More...
 
class  ConfigEnumRandomOccupations
 Enumerate n random occupations in a particular Supercell. More...
 
struct  ConfigEnumSiteDoFsParams
 
class  ConfigEnumSiteDoFs
 
struct  ConfigEnumStrainParams
 
class  ConfigEnumStrain
 
class  Norm
 
class  ConfigIsEquivalent
 Class for comparison of Configurations (with the same Supercell) More...
 
class  PrimStrucMapCalculator
 
struct  ConfigMapperResult
 Data structure holding results of ConfigMapper algorithm. More...
 
class  ConfigMapper
 
class  Configuration
 
struct  ConfigInsertResult
 Holds results of Configuration::insert. More...
 
struct  RefToCanonicalPrim
 Operations that transform a canonical primitive configuration to any equivalent. More...
 
struct  traits< Configuration >
 
class  DiffClexParamKey
 Abstract base class for all keys that interact with DiffClexParamPack DiffClexParamPack values are assumed to be 1D, 2D, or to be naturally accessed via 2D slices Standalone values are assumed to be 1D or 2D (for example, a 3xN displacement field) Derived values typically have more dimensions (for example, the derivative of the Mx1 correlation vector with respect to the displacement field has 3 indices, whild the second derivative wrt the displacement field has 5 indices). Derivatives are always asociated with the first independent standalone value in the key name. The key "diff/corr/disp_var" would be associated with "disp_var", which is a 3xN Matrix, and thus the resulting derived value (which is the first derifative of correlations with respect to displacements) will be sliced into 3xN slices. Each slice corresponds to a particular entry in the Mx1 correlation vector (i.e., slice 'j' is the gradient of correlation value j with respect to the entire set of displacement variables). The 'j' index that specifies the particular slice is called a 'secondary identifier', and it can be specified via ClexParamKey::set_identifiers(). More...
 
struct  DiffScalarContainer
 container struct for storing a standalone value as 2D arrays of both autodiff Scalars doubles More...
 
class  DiffClexParamPack
 Class for managing the set of all dependent and independent paramters used/generated by clexulator. More...
 
class  DiffClexParamValKey
 
class  DiffClexParamGradKey
 
class  DiffClexParamHessKey
 
struct  traits< DiffClexParamPack::EvalMode >
 
struct  ValAccess< typename DiffClexParamPack::DiffScalar >
 
class  ECIContainer
 A sparse container of ECI values and their corresponding orbit indices. More...
 
class  FillSupercell
 
class  FilteredConfigIterator
 
class  CanonicalForm
 Implements canonical form finding when using SymCompare. More...
 
class  ConfigCanonicalForm
 Implements canonical form finding for Configuration and DiffTransConfiguration. More...
 
class  SupercellCanonicalForm
 
class  HasPrimClex
 Implements PrimClex dependent functions. More...
 
class  HasSupercell
 Implements PrimClex dependent functions. More...
 
struct  jsonConstructor< HyperPlaneReference >
 
struct  jsonConstructor< ChemicalReference >
 Read chemical reference from JSON. More...
 
struct  jsonMake< ConfigDoF >
 
struct  jsonConstructor< ConfigDoF >
 
struct  jsonConstructor< Configuration >
 
struct  jsonMake< Configuration >
 
struct  ProtoFuncsPrinter
 Print Orbit<SymCompareType> & ClexBasis, including prototypes and prototype basis functions. More...
 
class  ClexBasisFunctionPrinter
 
struct  MappedProperties
 
class  ScoreMappedProperties
 
class  PrimNeighborList
 The PrimNeighborList gives the coordinates of UnitCell that are neighbors of the origin UnitCell. More...
 
class  SuperNeighborList
 
class  NormPerUnitCell
 
class  NormPerSpecies
 
class  ClexBasisBuilder
 
class  OrbitFunctionTraits
 virtual base class for printing orbit functions of type specified by implementation. More...
 
class  InvariantPolyBasisBuilder
 
class  InvariantPolyOrbitFunctionTraits
 
class  ParamComposition
 
class  PrimClex
 PrimClex is the top-level data structure for a CASM project. More...
 
class  ConstantReference
 Maps all Configurations to the same value. More...
 
class  HyperPlaneReferenceBase
 Maps a Configuration to a scalar value via a hyperplane. More...
 
class  HyperPlaneReference
 Maps a Configuration to a scalar value via a hyperplane. More...
 
class  ScelEnumByProps
 
class  ScelEnumEquivalents
 Enumerate equivalent Supercell. More...
 
class  ScelCanonicalGenerator
 Functor to find the canonical generating element for an orbit in a Supercell. More...
 
struct  ScelIsCanonical
 Functor to find to check if element is in canonical form. More...
 
class  ConfigIterator
 
class  Supercell
 Represents a supercell of the primitive parent crystal structure. More...
 
struct  traits< Supercell >
 
class  SuperConfigEnum
 Given a selection of Configurations, enumerate all tilings into some supercell. More...
 
class  ClusterInvariants
 Stores cluster invariants: number of sites and site distances. More...
 
class  WithinScelClusterInvariants
 Stores cluster invariants: number of sites and site distances (using robust_min_dist) More...
 
struct  OrbitGenerators
 Data structure that holds canonical generating elements and can then make sorted orbits. More...
 
struct  IntegralClusterOrbitGenerator
 
class  OrbitBranchSpecs
 Store data used to generate an orbit branch of IntegralCluster. More...
 
class  ClusterSpecs
 
class  PeriodicMaxLengthClusterSpecs
 
class  LocalMaxLengthClusterSpecs
 Parameters most commonly used for local orbit generation. More...
 
class  GenericPeriodicClusterSpecs
 
class  GenericLocalClusterSpecs
 
class  ClusterSymCompare
 CRTP Base class for common cluster symmetry and comparison implementations. More...
 
class  AperiodicSymCompare< Element >
 Comparisons of clusters using aperiodic symmetry. More...
 
class  PrimPeriodicSymCompare< Element >
 Comparisons of clusters using prim periodic symmetry. More...
 
class  ScelPeriodicSymCompare< Element >
 Comparisons of clusters using supercell periodic symmetry, but without periodic images. More...
 
class  AperiodicSymCompare
 Template class to be specialized for comparisons with aperiodic symmetry. More...
 
class  PrimPeriodicSymCompare
 Template class to be specialized for comparisons with periodic symmetry of the primitive lattice. More...
 
class  ScelPeriodicSymCompare
 Template class to be specialized for comparisons with periodic symmetry of the supercell lattice. More...
 
class  GenericCluster
 A CRTP base class for a cluster of anything. More...
 
struct  traits< IntegralCluster >
 traits, required for GenericCluster More...
 
class  IntegralCluster
 
struct  IntegralClusterSymCompareTraits
 
struct  traits< AperiodicSymCompare< IntegralCluster > >
 
struct  traits< PrimPeriodicSymCompare< IntegralCluster > >
 
struct  traits< ScelPeriodicSymCompare< IntegralCluster > >
 
struct  jsonConstructor< IntegralCluster >
 
struct  OrbitPrinterOptions
 
struct  jsonConstructor< OrbitPrinterOptions >
 
struct  PrinterBase
 
struct  Printer
 
struct  Printer< IntegralCluster >
 
struct  OrbitPrinter
 
struct  OrbitPrinter< _Element, ORBIT_PRINT_MODE::PROTO >
 Print Orbit<SymCompareType>, including only prototypes. More...
 
struct  OrbitPrinter< _Element, ORBIT_PRINT_MODE::FULL >
 Print Orbit<SymCompareType>, including all equivalents. More...
 
class  SubClusterGenerator
 Generates subclusters of a cluster with an iterator-like interface. More...
 
struct  ClusterSiteIndicesCompare
 Sort std::set<Index> by size, then value (lexicographical compare) More...
 
class  ReturnArray
 
class  ArraySizeLessThan
 
class  CounterValueIterator
 
class  BaseCounter
 A Counter allows looping over many incrementing variables in one loop. More...
 
struct  ContainerTraits
 Specialize container traits Expects: More...
 
struct  ContainerTraits< std::vector< _value_type, Allocator > >
 
struct  ContainerTraits< Eigen::Matrix< _value_type, a, b, c, d, e > >
 Eigen::MatrixXd container traits. More...
 
class  Counter
 A Counter allows looping over many incrementing variables in one loop. More...
 
struct  traits< Counter< _Container, _value_type, _size_type, _Access, _Compare > >
 
class  IsoCounter
 A IsoCounter allows looping over many incrementing variables in one loop. More...
 
struct  traits< IsoCounter< _Container, _value_type, _size_type, _Access, _Compare > >
 
class  MultiCounter
 
class  CounterValueIterator< MultiCounter< SubCounterType > >
 
struct  multivector
 Shortcut for multidimensional vector (std::vector< std::vector< ...) More...
 
class  Permutation
 
class  PolyTrie
 
class  PTNode
 
class  PTLeaf
 
class  PTIterator
 
class  GramSchmidt
 
class  DynamicMatrix
 
class  ReturnTensor
 
class  Tensor
 
class  TensorBasis
 
class  AnisoValTraits
 Specifies traits of (possibly) anisotropic crystal properties. More...
 
struct  jsonConstructor< xtal::AtomPosition >
 
struct  jsonConstructor< xtal::Molecule >
 
struct  jsonConstructor< xtal::Site >
 
struct  jsonConstructor< xtal::SiteDoFSet >
 
struct  jsonConstructor< xtal::DoFSet >
 
class  SimpleJSonSiteStructure
 Used to construct a BasicStructure from a 'properties.calc.json' object. More...
 
struct  jsonConstructor< xtal::ScelEnumProps >
 Make a ScelEnumProps object from JSON input. More...
 
class  LatticeEnumEquivalents
 Enumerate equivalent Lattics, given a SymGroup. More...
 
class  Structure
 Structure specifies the lattice and atomic basis of a crystal. More...
 
class  SymRepBuilderInterface
 Abstract base class that provides interface for converting cartesian isometry to specialized transformation matrix Given a symmetry operation as a 3x3 orthogonal matrix acting on Cartesian space, a 3x1 Cartesian translation, and a time-reversal flag (true indicates +t goes to -t and false indicates +t goes to +t), returns a particular NxN matrix transformation whose dimension and value depends on the underlying implementation. More...
 
class  TemplateSymRepBuilderBase
 
class  NullSymRepBuilder
 Un-cloneable class for specifying absence of valid SymRepBuilder. More...
 
class  CartesianSymRepBuilder
 Builds symmetry representation as the Cartesian matrix of povided SymOp. More...
 
class  KroneckerSymRepBuilder
 Builds symmetry representation as the Kronecker product of two other representations. More...
 
class  IdentitySymRepBuilder
 Builds symmetry representation as the 'dim' x 'dim' identity matrix, regardless of symop. More...
 
class  AngularMomentumSymRepBuilder
 Builds symmetry representation that is the angular momentum symmetry representation of provided symop. More...
 
class  TimeReversalSymRepBuilder
 Builds symmetry representation that is 'dim'x'dim' +Identity (-Identity) matrix if time_reversal is false (true) More...
 
class  Rank2TensorSymRepBuilder
 Build 6x6 symmetry representation for a rank 2 Cartesian tensor represented in Kelvin notation. More...
 
class  TimeReversalSwapSymRepBuilder
 
class  dOrbitalOccupationSymRepBuilder
 
class  dOrbitalOccupationSpinPolarizedSymRepBuilder
 
class  CopyApplyWithPrim_crtp
 
struct  traits< CASM::xtal::UnitCellCoord >
 
struct  traits< DB::jsonDB >
 
class  ConfigEnumInput
 
class  DoFSpace
 
class  make_symmetry_adapted_dof_space_error
 
struct  VectorSpaceMixingInfo
 A struct which gives out the mixing information of given column_vector_space and a subspace. More...
 
class  EnumeratorBase
 Abstract base class for enumerators. More...
 
class  ValEnumerator
 
class  EnumIteratorBase
 
class  ValEnumIterator
 
class  InputEnumeratorBase
 Base class for implementing specialized input enumerators. More...
 
class  InputEnumIterator
 
class  InputEnumIteratorBase
 
class  InputEnumerator
 Generic input enumerator. More...
 
struct  jsonConstructor< ConfigEnumInput >
 Read ConfigEnumInput from JSON. More...
 
struct  jsonConstructor< DoFSpace >
 
struct  jsonMake< DoFSpace >
 
struct  AxesCounterParams
 Data structure used for continuous DoF enumeration IO. More...
 
class  RandomAccessEnumIterator
 The iterator type for RandomAccessEnumerator. More...
 
class  RandomAccessEnumeratorBase
 Base class for implementing specialized random access enumerators. More...
 
class  RandomAccessEnumerator
 Generic random access enumerator. More...
 
class  RandomAccessEnumIteratorBase
 RandomAccessEnumIterator implemenation. More...
 
class  UnaryCompare_f
 
class  libcasm_runtime_error
 
class  Hull
 Generate and inspect the convex hull generated from a selection of Configurations. More...
 
struct  FloatCompare
 
class  FilterIterator
 
class  HallOfFame
 A container for storing best scoring objects. More...
 
class  HierarchyID
 
class  DerivedID
 
class  PCA
 Principle component analysis. More...
 
struct  Validator
 Data structure to hold error and warning messages. More...
 
struct  jsonConstructor< Monte::OccCandidate >
 
struct  jsonConstructor< Monte::OccSwap >
 
class  StrainConverter
 
class  EnumEquivalents
 Enumerate over all equivalents. More...
 
struct  traits< EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare > >
 
struct  jsonConstructor< SymInfoOptions >
 
struct  SymInfoOptions
 Options for printing SymInfo. More...
 
class  Orbit
 An Orbit of Element. More...
 
struct  GetPrototype
 
struct  GetInvariants
 
class  SymCompare
 CRTP base class for implementing element and orbit comparison. More...
 
struct  OrbitGeneratorCompare
 Compare concept functor for canonical generating elements. More...
 
struct  CanonicalGenerator
 Functor to find the canonical generating element for an orbit. More...
 
struct  IsCanonical
 Functor to find to check if element is in canonical form. More...
 
class  PermuteIterator
 
struct  jsonConstructor< PermuteIterator >
 
class  SimpleOrbit
 
class  MakeSubOrbitGenerators
 Output the orbit generators necessary to construct the sub-orbits corresponding to group -> subgroup symmetry breaking. More...
 
class  SupercellSymInfo
 A class that collects all symmetry information for for performing symmetry transformations on the site indices, site DoFs, and global DoFs of a Supercell or Configuration. More...
 
class  SymBasisPermute
 SymBasisPermute describes how a symmetry operation permutes atoms in a basis. More...
 
class  SymGroup
 SymGroup is a collection of symmetry operations that satisfy the group property The symmetry operations are stored as their coordinate representation, as described by the SymOp class i.e., if SymOps 'A' and 'B' are in SymGroup, C=A*B is also in SymGroup if 'A' is in SymGroup, then A.inverse() is in SymGroup SymGroup always contains an identity operation. More...
 
class  MasterSymGroup
 
class  SymGroupRep
 SymGroupRep is an alternative representation of a SymGroup for something other than real space. There is a one-to-one correspondence of SymOps in some SymGroup with the SymOpRepresentations in SymGroupRep SymGroupRep does not know or care about the specifics of what the SymOpRepresentations describe or how they are implemented. More...
 
class  SymGroupRepHandle
 
class  SymGroupRepID
 Type-safe ID object for communicating and accessing Symmetry representation info. More...
 
struct  SymInfo
 Simple struct to be used as return type for SymOp::info(). More...
 
class  SymMatrixXd
 Generalized symmetry matrix representation for arbitrary dimension Can be used to describe application of symmetry to N-dimensional vector spaces Use for 3-dimensional transformations if they do not describe coordinate transformations. More...
 
class  SymOp
 SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian (CART) information about how a symetry operation transforms 3D spatial coordinates. More...
 
class  SymOpRepresentation
 SymOpRepresentation is the base class for anything describes a symmetry operation. More...
 
struct  SymRepIndexCompare
 
class  SymPermutation
 SymPermutation describes how a symmetry operation permutes a list of 'things' For example, Coordinates in a Cluster, basis atoms in a Structure, Clusters in an Orbit, etc. More...
 
struct  VectorSpaceSymReport
 Summary of data associated with the action of a symmetry group on a vector space. More...
 
class  VectorSymCompare
 
class  VectorInvariants
 
class  DirectionSymCompare
 
struct  traits< DirectionSymCompare< _Element, _SymApply > >
 Traits class for DirectionSymCompare. More...
 
class  SubspaceSymCompare
 
struct  traits< SubspaceSymCompare< _Element, _SymApply > >
 Traits class for SubspaceSymCompare. More...
 
struct  traits< VectorSymCompare< Base > >
 Traits class for VectorSymCompare. More...
 
class  EigenSymCompare
 CRTP Base class for Vector comparisons. More...
 
class  EigenSymRepApply
 
class  Popen
 Remember how to use popen. More...
 
class  runtime_lib_compile_error
 
class  runtime_lib_shared_error
 
class  RuntimeLibrary
 Write, compile, load and use code at runtime. More...
 
class  ImportCommandImplBase
 Defaults used if DataObject type doesn't matter or not given. More...
 
class  QueryCommandImplBase
 Defaults used if DataObject type doesn't matter or not given. More...
 
class  RmCommandImplBase
 Defaults used if DataObject type doesn't matter or not given. More...
 
class  SelectCommandImplBase
 Defaults used if DataObject type doesn't matter or not given. More...
 
struct  PrintDetails
 
class  UpdateCommandImplBase
 Defaults used if DataObject type doesn't matter or not given. More...
 
struct  WriteBasisSetDataImpl
 Write clust.json, basis.json, and clexulator source code, given orbits. More...
 
struct  PolyWriter
 

Typedefs

typedef std::function< int(const CommandArgs &)> Command
 
typedef std::map< std::string, CommandCommandMap
 
template<typename OptionType >
using InterfaceMap = notstd::unique_cloneable_map< std::string, InterfaceBase< OptionType > >
 Used to hold a list of all algorithms that may be accessed via the API. More...
 
typedef std::vector< notstd::cloneable_ptr< EnumInterfaceBase > > EnumInterfaceVector
 
typedef std::vector< notstd::cloneable_ptr< InfoInterfaceBase > > InfoInterfaceVector
 
template<typename DataObject >
using StringAttribute = BaseValueFormatter< std::string, DataObject >
 Template alias for BaseValueFormatter returning std::string. More...
 
template<typename DataObject >
using StringAttributeDictionary = DataFormatterDictionary< DataObject, StringAttribute< DataObject > >
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
using BooleanAttribute = BaseValueFormatter< bool, DataObject >
 Template alias for BaseValueFormatter returning bool. More...
 
template<typename DataObject >
using BooleanAttributeDictionary = DataFormatterDictionary< DataObject, BooleanAttribute< DataObject > >
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
using IntegerAttribute = BaseValueFormatter< Index, DataObject >
 Template alias for BaseValueFormatter returning Index. More...
 
template<typename DataObject >
using IntegerAttributeDictionary = DataFormatterDictionary< DataObject, IntegerAttribute< DataObject > >
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
using ScalarAttribute = BaseValueFormatter< double, DataObject >
 Template alias for BaseValueFormatter returning double. More...
 
template<typename DataObject >
using ScalarAttributeDictionary = DataFormatterDictionary< DataObject, ScalarAttribute< DataObject > >
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
using VectorXiAttribute = Base1DDatumFormatter< Eigen::VectorXi, DataObject >
 Template alias for BaseValueFormatter returning Eigen::VectorXi. More...
 
template<typename DataObject >
using VectorXiAttributeDictionary = DataFormatterDictionary< DataObject, VectorXiAttribute< DataObject > >
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
using VectorXdAttribute = Base1DDatumFormatter< Eigen::VectorXd, DataObject >
 Template alias for BaseValueFormatter returning Eigen::VectorXd. More...
 
template<typename DataObject >
using VectorXdAttributeDictionary = DataFormatterDictionary< DataObject, VectorXdAttribute< DataObject > >
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
using MatrixXdAttribute = Base2DDatumFormatter< Eigen::MatrixXd, DataObject >
 Template alias for BaseValueFormatter returning Eigen::MatrixXd. More...
 
template<typename DataObject >
using MatrixXdAttributeDictionary = DataFormatterDictionary< DataObject, MatrixXdAttribute< DataObject > >
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
using ConfigCompare = GenericConfigCompare< Configuration, ConfigIsEquivalent >
 
typedef ConfigCanonicalForm< HasSupercell< Comparisons< Calculable< CRTPBase< Configuration > > > > > ConfigurationBase
 
typedef ScalarAttribute< ConfigurationReference
 
typedef std::function< bool(xtal::Site)> SiteFilterFunction
 
typedef std::function< bool(IntegralCluster)> ClusterFilterFunction
 
typedef std::function< std::vector< xtal::UnitCellCoord >Structure const &, SiteFilterFunction)> CandidateSitesFunction
 
template<typename Element , typename U = void>
using LocalSymCompare = AperiodicSymCompare< Element, U >
 
template<typename Element >
using AperiodicOrbit = Orbit< AperiodicSymCompare< Element > >
 
template<typename Element >
using LocalOrbit = AperiodicOrbit< Element >
 
template<typename Element >
using ScelPeriodicOrbit = Orbit< ScelPeriodicSymCompare< Element > >
 
template<typename Element >
using PrimPeriodicOrbit = Orbit< PrimPeriodicSymCompare< Element > >
 
typedef AperiodicOrbit< IntegralClusterAperiodicIntegralClusterOrbit
 
typedef LocalOrbit< IntegralClusterLocalIntegralClusterOrbit
 
typedef PrimPeriodicOrbit< IntegralClusterPrimPeriodicIntegralClusterOrbit
 
typedef ScelPeriodicOrbit< IntegralClusterScelPeriodicIntegralClusterOrbit
 
typedef Printer< IntegralClusterSitesPrinter
 
template<typename _Element >
using PrototypePrinter = OrbitPrinter< _Element, ORBIT_PRINT_MODE::PROTO >
 
typedef PrototypePrinter< IntegralClusterProtoSitesPrinter
 
template<typename _Element >
using FullOrbitPrinter = OrbitPrinter< _Element, ORBIT_PRINT_MODE::FULL >
 
typedef FullOrbitPrinter< IntegralClusterFullSitesPrinter
 
template<typename EigenType >
using EigenCounter = Counter< EigenType, typename EigenType::Scalar, typename EigenType::Index, CASM_TMP::ParenthesesAccess< EigenType, typename EigenType::Scalar, typename EigenType::Index > >
 
typedef EigenCounter< Eigen::VectorXd > EigenVectorXdCounter
 Counter for Eigen::VectorXd. More...
 
typedef EigenCounter< Eigen::MatrixXd > EigenMatrixXdCounter
 Counter for Eigen::MatrixXd. More...
 
typedef EigenCounter< Eigen::Matrix3d > EigenMatrix3dCounter
 Counter for Eigen::Matrix3d. More...
 
typedef EigenCounter< Eigen::Vector3d > EigenVector3dCounter
 Counter for Eigen::Vector3d. More...
 
typedef EigenCounter< Eigen::Vector3i > EigenVector3iCounter
 Counter for Eigen::Vector3i. More...
 
typedef EigenCounter< Eigen::VectorXi > EigenVectorXiCounter
 Counter for Eigen::VectorXi. More...
 
typedef EigenCounter< Eigen::MatrixXi > EigenMatrixXiCounter
 Counter for Eigen::MatrixXd. More...
 
typedef EigenCounter< Eigen::Matrix3i > EigenMatrix3iCounter
 Counter for Eigen::MatrixXd. More...
 
typedef std::string DoFKey
 
using SymRepBuilderBase = TemplateSymRepBuilderBase< false >
 
using TimeReversalSymRepBuilderBase = TemplateSymRepBuilderBase< true >
 
typedef unsigned int uint
 
typedef unsigned long int ulint
 
typedef long int lint
 
typedef INDEX_TYPE Index
 For long integer indexing: More...
 
typedef Eigen::MatrixXd::Index EigenIndex
 
template<bool B, class T = void>
using enable_if_t = typename std::enable_if< B, T >::type
 
template<typename Base >
using Comparisons = notstd::Comparisons< Base >
 
template<typename MostDerived >
using CRTPBase = notstd::CRTPBase< MostDerived >
 
typedef Eigen::VectorXd VectorXd
 
typedef Eigen::MatrixXd MatrixXd
 
typedef Eigen::Matrix3d Matrix3d
 
typedef strain::METRIC STRAIN_METRIC
 
template<typename OrbitIterator >
using PrototypeIterator = boost::transform_iterator< GetPrototype, OrbitIterator >
 
template<typename OrbitIterator >
using InvariantsIterator = boost::transform_iterator< GetInvariants, OrbitIterator >
 
template<typename OrbitType >
using OrbitGeneratorSet = std::set< typename OrbitType::Element, OrbitGeneratorCompare< OrbitType > >
 An std::set of Orbit. More...
 
typedef ArgHandler::ARG_TYPE ARG_TYPE
 

Enumerations

enum class  PARAM_PACK_TYPE { DEFAULT , DIFF }
 
enum class  DatumFormatterClass { Property , Operator }
 
enum class  JustificationType { Left , Right , Center , Full }
 
enum  COMPOSITION_TYPE { PARAM_COMP = 0 , NUMBER_ATOMS = 1 }
 
enum class  CLUSTER_PERIODICITY_TYPE : int {
  PRIM_PERIODIC = 0 , APERIODIC = 1 , LOCAL = 1 , WITHIN_SCEL = 2 ,
  SCEL_PERIODIC = 3
}
 
enum class  ORBIT_PRINT_MODE { PROTO , FULL }
 
enum class  COORD_TYPE { FRAC , CART , INTEGRAL , COORD_DEFAULT }
 
enum class  PERIODICITY_TYPE : int { PERIODIC = 0 , APERIODIC = 1 , LOCAL = 1 , PERIODICITY_DEFAULT = 2 }
 
enum class  EQUIVALENCE_TYPE { PRIM , SCEL , CONFIG }
 
enum class  CELL_TYPE { PRIM , SCEL }
 
enum class  OnError { THROW , WARN , CONTINUE }
 
enum class  symmetry_type {
  identity_op , mirror_op , glide_op , rotation_op ,
  screw_op , inversion_op , rotoinversion_op , invalid_op
}
 

Functions

template<typename CommandType >
std::unique_ptr< CommandType > make_api_command (CommandArgs const &args, typename CommandType::OptionType &opt)
 Parse command line options and make API command. Throws for parsing errors. More...
 
template<typename CommandType >
std::unique_ptr< CommandType > make_api_command (std::string cli_str, PrimClex &primclex, typename CommandType::OptionType &opt)
 Parse command line options and make API command. Throws for parsing errors. More...
 
template<typename CommandType >
int run_api_command (const CommandArgs &args)
 Standardizes how 'casm X' api commands are executed and implemented. More...
 
void print_splash (std::ostream &out)
 
CommandMapcommand_map ()
 Return static CommandMap containing all CASM API commands. More...
 
int casm_api (const CommandArgs &args)
 Executes CASM commands specified by args. More...
 
PrimClexmake_primclex_if_not (const CommandArgs &args, std::unique_ptr< PrimClex > &uniq_primclex)
 If !_primclex, construct new PrimClex stored in uniq_primclex, then return reference to existing or constructed PrimClex. More...
 
std::ostream & make_ostream_if (bool output, std::ostream &sout, std::unique_ptr< std::ostream > &fout, fs::path out_path, bool gzip)
 Return a reference to proper std::ostream. More...
 
int help_command (const CommandArgs &args)
 Print CASM help info to log() More...
 
int version_command (const CommandArgs &args)
 
template<typename OptionType >
std::unique_ptr< InterfaceMap< OptionType > > make_interface_map ()
 Use to construct an InterfaceMap. More...
 
ClexDescription default_configuration_clex ()
 
bool operator< (const ClexDescription &A, const ClexDescription &B)
 Compare using name strings: A.name < B.name. More...
 
jsonParserto_json (const ClexDescription &desc, jsonParser &json)
 
void from_json (ClexDescription &desc, const jsonParser &json)
 
bool clex_exists (const DirectoryStructure &dir, const ClexDescription &desc)
 
bool new_dir (const DirectoryStructure &dir, ClexDescription const &desc)
 
void parse_args (Completer::OptionHandlerBase &opt, std::string args)
 
int composition_command (const CommandArgs &args)
 
template<typename MakeEnumeratorFunction , typename InputNameValuePairIterator , typename ConfigEnumDataType >
void enumerate_configurations (PrimClex const &primclex, ConfigEnumOptions const &options, MakeEnumeratorFunction make_enumerator_f, InputNameValuePairIterator name_value_pairs_begin, InputNameValuePairIterator name_value_pairs_end, DataFormatter< ConfigEnumDataType > const &formatter)
 Enumerate configurations. More...
 
template<typename EnumeratorType >
void enumerate_supercells (EnumerateSupercellsOptions const &options, EnumeratorType &enumerator, DB::Database< Supercell > &supercell_db)
 
jsonParserto_json (const Completer::EnumOption &enum_opt, jsonParser &json)
 Convert casm enum CLI input to JSON. More...
 
ParentInputParser make_enum_parent_parser (Log &log, jsonParser const &json_options, jsonParser const &cli_options_as_json)
 Combine –input / –settings JSON with CLI options. More...
 
std::string dry_run_msg (bool dry_run)
 
jsonParser combine_configuration_enum_json_options (jsonParser const &json_options, jsonParser const &cli_options_as_json)
 
void parse (InputParser< ConfigEnumOptions > &parser, std::string method_name, PrimClex const &primclex, DataFormatterDictionary< Configuration > const &dict)
 
jsonParser combine_supercell_enum_json_options (jsonParser const &json_options, jsonParser const &cli_options_as_json)
 
void parse (InputParser< EnumerateSupercellsOptions > &parser, std::string method_name, PrimClex const &primclex, DataFormatterDictionary< Supercell > const &dict)
 
template<typename PermuteIteratorIt >
void print_dof_space (Log &log, DoFSpace const &dof_space, std::string const &identifier, ConfigEnumInput const &input_state, PermuteIteratorIt permute_begin, PermuteIteratorIt permute_end, bool sym_axes, bool calc_wedges)
 Print DoFSpace information. More...
 
template<typename NamedInitialStatesType >
void print_initial_states (Log &log, NamedInitialStatesType const &named_initial_states)
 
void print_options (Log &log, ConfigEnumOptions const &options)
 
std::string standard_ConfigEnumInput_help ()
 
EnumInterfaceVector make_standard_enumerator_interfaces ()
 
template<typename EnumInterfaceVectorInserter , typename RuntimeLibInserter >
std::pair< EnumInterfaceVectorInserter, RuntimeLibInserter > load_enumerator_plugins (ProjectSettings const &set, EnumInterfaceVectorInserter enum_it, RuntimeLibInserter lib_it)
 Load enumerator plugins from a CASM project. More...
 
int files_command (const CommandArgs &args)
 
int format_command (const CommandArgs &args)
 
template<>
HamiltonianModules::SymRepBuilderDictionary make_parsing_dictionary< SymRepBuilderInterface > ()
 
template<typename DoFDictInserter , typename RuntimeLibInserter >
std::pair< DoFDictInserter, RuntimeLibInserter > load_dof_plugins (const ProjectSettings &set, DoFDictInserter dict_it, RuntimeLibInserter lib_it)
 Load DoF plugins from a CASM project. More...
 
template<typename SymRepBuilderDictInserter , typename RuntimeLibInserter >
std::pair< SymRepBuilderDictInserter, RuntimeLibInserter > load_symrep_builder_plugins (const ProjectSettings &set, SymRepBuilderDictInserter dict_it, RuntimeLibInserter lib_it)
 Load SymRepBuilder plugins from a CASM project. More...
 
InfoInterfaceVector make_standard_info_method_interfaces ()
 A vector containing casm info method interfaces. More...
 
int init_command (const CommandArgs &args)
 
void write_lat (Supercell const &supercell, DirectoryStructure const &dir)
 
void write_pos (Configuration const &configuration, DirectoryStructure const &dir)
 Write configuration "POS" file (VASP POSCAR) to standard location. More...
 
void write_structure_json (Configuration const &configuration, DirectoryStructure const &dir)
 
void write_config_json (Configuration const &configuration, DirectoryStructure const &dir)
 
template<typename OptionType >
jsonParser make_json_input (const OptionType &opt)
 
jsonParsercombine_json_options (std::map< std::string, std::string > const &source_to_combined_keys, jsonParser const &json_source, jsonParser &json_combined)
 Copy from json_source to json_combined More...
 
std::shared_ptr< RuntimeLibrarylog_make_shared_runtime_lib (std::string filename_base, std::string compile_options, std::string so_options, std::string compile_msg)
 Make shared_ptr<RuntimeLibrary>, logging progress and errors. More...
 
int monte_command (const CommandArgs &args)
 
void build_project (ProjectSettings const &project_settings, Structure const &prim)
 
ProjectSettings make_default_project_settings (xtal::BasicStructure const &prim, std::string project_name)
 
ProjectSettings make_default_project_settings (xtal::BasicStructure const &prim, std::string project_name, fs::path root_dir)
 
Eigen::Matrix3l default_nlist_weight_matrix (xtal::BasicStructure const &prim, double tol)
 
std::set< int > default_nlist_sublat_indices (xtal::BasicStructure const &prim)
 
bool is_valid_project_name (std::string project_name)
 
void throw_if_project_name_is_not_valid (std::string project_name)
 Throw if project name is invalid. More...
 
bool create_all_directories (ProjectSettings const &set)
 
void print_compiler_settings_summary (ProjectSettings const &set, Log &log)
 Print summary of compiler settings, as for 'casm settings -l'. More...
 
void print_summary (ProjectSettings const &set, Log &log)
 Print summary of ProjectSettings, as for 'casm settings -l'. More...
 
jsonParserto_json (const ProjectSettings &set, jsonParser &json)
 Serialize ProjectSettings to JSON. More...
 
void write_project_settings (ProjectSettings const &set, fs::path project_settings_path)
 
ProjectSettings read_project_settings (fs::path project_settings_path)
 
void commit (ProjectSettings const &set)
 
ProjectSettings open_project_settings (fs::path path_in_project)
 
template<typename DataFormatterDictInserter , typename RuntimeLibInserter >
std::pair< DataFormatterDictInserter, RuntimeLibInserter > load_query_plugins (const ProjectSettings &set, DataFormatterDictInserter dict_it, RuntimeLibInserter lib_it)
 Load enumerator plugins from a CASM project. More...
 
int ref_command (const CommandArgs &args)
 
int run_command (const CommandArgs &args)
 
int settings_command (const CommandArgs &args)
 
int status_command (const CommandArgs &args)
 
int super_command (const CommandArgs &args)
 
std::string dof_space_analysis_desc ()
 Describe DoF space analysis input. More...
 
void dof_space_analysis (PrimClex &primclex, jsonParser const &json_options, jsonParser const &cli_options_as_json)
 Perform DoF space analysis. More...
 
jsonParserto_json (const Completer::SymOption &sym_opt, jsonParser &json)
 Convert casm sym CLI input to JSON. More...
 
std::string symmetrize_desc ()
 Describe the symmetrize method. More...
 
void symmetrize (PrimClex &primclex, jsonParser const &json_options, jsonParser const &cli_options_as_json)
 Adjust a structure's lattice and basis to increase factor group symmetry. More...
 
std::string write_prim_symmetry_desc ()
 Describe the default casm sym option. More...
 
void write_prim_symmetry (PrimClex &primclex, jsonParser const &json_options, jsonParser const &cli_options_as_json)
 Write/print prim symmetry. More...
 
int view_command (const CommandArgs &args)
 
jsonParserto_json (const Function *func, jsonParser &json)
 
template<typename DoFSpecsType >
DoFSpecsType const & get (DoFKey const &key, BasisFunctionSpecs const &basis_function_specs)
 
jsonParserto_json (const BasisSet &bset, jsonParser &json)
 
void from_json (BasisSet &bset, const jsonParser &json)
 
BasisSet operator* (const SymOp &LHS, const BasisSet &RHS)
 
BasisSet direct_sum (BasisSet::ArgList const &_subs)
 
bool compare_no_value (ContinuousDoF const &A, ContinuousDoF const &B)
 
bool operator== (DoFSet const &A, DoFSet const &B)
 
bool operator!= (DoFSet const &A, DoFSet const &B)
 
void parse (InputParser< BasisFunctionSpecs > &parser, Structure const &prim, ParsingDictionary< DoFType::Traits > const *dof_dict)
 
jsonParserto_json (const BasisFunctionSpecs &basis_function_specs, jsonParser &json, Structure const &prim, ParsingDictionary< DoFType::Traits > const *dof_dict)
 
void parse (InputParser< DoF_impl::MagSpinDoFSpecs > &parser, const Structure &prim)
 
void to_json (const DoF_impl::MagSpinDoFSpecs &occ_specs, jsonParser &json)
 
jsonParserto_json (const OccupantFunction &func, jsonParser &json)
 
void from_json (OccupantFunction &func, const jsonParser &json)
 
void parse (InputParser< DoF_impl::OccupationDoFSpecs > &parser, const Structure &prim)
 
void to_json (const DoF_impl::OccupationDoFSpecs &occupation_dof_specs, jsonParser &json)
 
jsonParserto_json (const Variable &var, jsonParser &json)
 
void from_json (Variable &var, const jsonParser &json)
 
template<typename T , typename... Args>
jsonParserto_json (const Array< T > &value, jsonParser &json, Args &&... args)
 
template<typename T , typename... Args>
void from_json (Array< T > &value, const jsonParser &json, Args &&... args)
 This requires that 'T::T()' exists, if not, you must do this by hand. More...
 
template<class T >
std::istream & operator>> (std::istream &_in, std::vector< T > &vec)
 
std::pair< std::vector< long >, std::vector< long > > index_expression_to_bounds (const std::string &_expr)
 
void split_formatter_expression (const std::string &input_expr, std::vector< std::string > &tag_names, std::vector< std::string > &sub_exprs)
 
template<typename DataObject >
DataFormatterDictionary< DataObject > make_attribute_dictionary ()
 Dictionary of all AttributeFormatter (i.e. BaseValueFormatter<V, DataObject>) More...
 
template<typename DataObject >
DataFormatterDictionary< DataObject > make_operator_dictionary ()
 Dictionary of all DatumFormatterOperator. More...
 
template<typename DataObject >
DataFormatterDictionary< DataObject > make_dictionary ()
 Template to can be specialized for constructing dictionaries for particular DataObject. More...
 
jsonParserto_json (const FormattedPrintable &_obj, jsonParser &json)
 
std::ostream & operator<< (std::ostream &_stream, const FormattedPrintable &_formatted)
 
DataStreamoperator<< (DataStream &_stream, const FormattedPrintable &_formatted)
 
template<typename T >
bool always_true (const T &)
 
template<typename DataObject >
StringAttributeDictionary< DataObject > make_string_dictionary ()
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
BooleanAttributeDictionary< DataObject > make_boolean_dictionary ()
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
IntegerAttributeDictionary< DataObject > make_integer_dictionary ()
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
ScalarAttributeDictionary< DataObject > make_scalar_dictionary ()
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
VectorXiAttributeDictionary< DataObject > make_vectorxi_dictionary ()
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
VectorXdAttributeDictionary< DataObject > make_vectorxd_dictionary ()
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
MatrixXdAttributeDictionary< DataObject > make_matrixxd_dictionary ()
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
DataFormatterDictionary< DataObject, BaseValueFormatter< jsonParser, DataObject > > make_json_dictionary ()
 Template to be specialized for constructing dictionaries for particular DataObject. More...
 
template<typename DataObject >
DataFormatterFilter< DataObject > make_data_formatter_filter (std::string const &filter_expr, DataFormatterDictionary< DataObject > const &_dict)
 
template<typename DataObject >
DataFormatterFilter< DataObject > make_data_formatter_filter (std::vector< std::string > const &filter_expr, DataFormatterDictionary< DataObject > const &_dict)
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_add ()
 Makes a DataFormatterOperator that adds two or more numbers. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_sub ()
 Makes a DataFormatterOperator that subtracts two numbers. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_mult ()
 Makes a DataFormatterOperator that returns the product of two or more numbers. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_div ()
 Makes a DataFormatterOperator that divides two numbers. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_rms ()
 Makes a DataFormatterOperator that returns the root-mean-square value of 0 or more elements. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_pnorm ()
 Makes a DataFormatterOperator that returns the root-mean-square value of 0 or more elements. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_max ()
 Makes a DataFormatterOperator that returns the maximum of two or more numbers. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_min ()
 Makes a DataFormatterOperator that returns the minimum of two or more numbers. More...
 
template<typename DataObject >
DataFormatterOperator< long, double, DataObject > format_operator_imax ()
 Makes a DataFormatterOperator that returns the index (from 0) of the maximum of two or more numbers. More...
 
template<typename DataObject >
DataFormatterOperator< long, double, DataObject > format_operator_imin ()
 Makes a DataFormatterOperator that returns the index (from 0) of the minimum of two or more numbers. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_exp ()
 Makes a DataFormatterOperator that returns the exponential of a number. More...
 
template<typename DataObject >
DataFormatterOperator< bool, std::string, DataObject > format_operator_re ()
 Makes a DataFormatterOperator that checks if a string matches a regular expression. More...
 
template<typename DataObject >
DataFormatterOperator< bool, std::string, DataObject > format_operator_rs ()
 Makes a DataFormatterOperator that checks if a string contains a regular expression. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_sq ()
 Makes a DataFormatterOperator that returns the square of a number. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_sqrt ()
 Makes a DataFormatterOperator that returns the square root of a number. More...
 
template<typename DataObject >
DataFormatterOperator< double, double, DataObject > format_operator_neg ()
 Makes a DataFormatterOperator that returns the negative of a number. More...
 
template<typename DataObject >
DataFormatterOperator< bool, bool, DataObject > format_operator_and ()
 Makes a DataFormatterOperator that returns the boolean AND for a sequence of boolean values. More...
 
template<typename DataObject >
DataFormatterOperator< bool, bool, DataObject > format_operator_or ()
 Makes a DataFormatterOperator that returns the boolean OR for a sequence of boolean values. More...
 
template<typename DataObject >
DataFormatterOperator< bool, bool, DataObject > format_operator_xor ()
 Makes a DataFormatterOperator that returns the boolean NOT for a single boolean value. More...
 
template<typename DataObject >
DataFormatterOperator< bool, bool, DataObject > format_operator_not ()
 
template<typename DataObject >
DataFormatterOperator< bool, double, DataObject > format_operator_eq ()
 Makes a DataFormatterOperator for equality comparison of two numbers. More...
 
template<typename DataObject >
DataFormatterOperator< bool, double, DataObject > format_operator_lt ()
 Makes a DataFormatterOperator for less-than comparison of two numbers. More...
 
template<typename DataObject >
DataFormatterOperator< bool, double, DataObject > format_operator_le ()
 Makes a DataFormatterOperator for less-than-or-equal comparison of two numbers. More...
 
template<typename DataObject >
DataFormatterOperator< bool, double, DataObject > format_operator_gt ()
 Makes a DataFormatterOperator for greater-than comparison of two numbers. More...
 
template<typename DataObject >
DataFormatterOperator< bool, double, DataObject > format_operator_ge ()
 Makes a DataFormatterOperator for greater-than-or-equal comparison of two numbers. More...
 
template<typename DataObject >
DatumFormatterAlias< DataObject > datum_formatter_alias (const std::string &_name, const std::string &_command, const DataFormatterDictionary< DataObject > &_dict, const std::string &_help="")
 Make a DatumFormatterAlias. More...
 
template<typename DataObject >
DatumFormatterAlias< DataObject > datum_formatter_alias (const std::string &_name, const BaseDatumFormatter< DataObject > &_inside, const std::string &_help="")
 Make a DatumFormatterAlias. More...
 
template<typename DataObject >
GenericDatumFormatter< std::string, DataObject > name ()
 
template<typename DataObject >
GenericDatumFormatter< std::string, DataObject > alias ()
 
template<typename DataObject >
GenericDatumFormatter< std::string, DataObject > alias_or_name ()
 
DataStreamoperator<< (DataStream &_stream, int i)
 
DataStreamoperator<< (DataStream &_stream, float f)
 
DataStreamoperator<< (DataStream &_stream, unsigned int i)
 
DataStreamoperator<< (DataStream &_stream, unsigned long i)
 
template<class T >
DataStreamoperator<< (DataStream &_stream, const std::vector< T > &vec)
 
template<typename ExternalType , typename InternalType >
DatumFormatterAdapter< ExternalType, InternalType > make_datum_formatter_adapter (BaseDatumFormatter< InternalType > const &_base_formatter)
 
template<typename ENUM >
std::string to_string (ENUM val)
 Return string representation of enum class. More...
 
template<typename ENUM >
std::string multiline_enum_help ()
 Print help message describing recognized strings for allowed enum values. More...
 
template<typename StringContainer >
std::string standard_singleline_help (StringContainer options, std::string _default="")
 Print short help message describing recognized strings for allowed enum values. More...
 
template<typename ENUM >
std::string standard_singleline_enum_help (std::string _default="", std::string other="")
 Print short help message describing recognized strings for allowed enum values. More...
 
template<typename ENUM >
std::string singleline_enum_help ()
 Print short help message describing recognized strings for allowed enum values. More...
 
template<typename ENUM >
void invalid_enum_string (std::string val)
 Throw invalid_argument error for unrecognized strings. More...
 
template<typename ENUM >
std::set< ENUM > matches (const std::string &val)
 Return all matching enum class members from string representation. More...
 
template<typename ENUM >
ENUM from_string (const std::string &val)
 Return enum class object from string representation. More...
 
std::ostream & operator<< (std::ostream &_stream, const FormatFlag &flag)
 
template<typename T >
std::string multiline_help ()
 Help message for reading a type T from input. More...
 
template<typename T >
std::string singleline_help ()
 Help message for reading a type T from input. More...
 
template<typename T >
std::string help ()
 Uses 'multiline_help<T>()' by default. More...
 
int parse_verbosity (KwargsParser &parser, int default_verbosity=10)
 
void parse (InputParser< std::nullptr_t > &parser)
 Temporary – enables compilation of legacy code. More...
 
template<typename T >
void parse (InputParser< T > &parser)
 
void print_warnings (KwargsParser const &parser, Log &log, std::string header="Warnings")
 Formatted print warning messages, including all subparsers. More...
 
void print_errors (KwargsParser const &parser, Log &log, std::string header="Errors")
 Formatted print error messages, including all subparsers. More...
 
jsonParser make_report (KwargsParser const &parser)
 Return parser.input with error and warning messages added in place. More...
 
template<typename ErrorType >
void report_and_throw_if_invalid (KwargsParser const &parser, Log &log, ErrorType error)
 
std::ostream & operator<< (std::ostream &stream, const jsonParser &json)
 
std::istream & operator>> (std::istream &stream, jsonParser &json)
 
jsonParserto_json (bool value, jsonParser &json)
 To JSON for basic types. More...
 
jsonParserto_json (int value, jsonParser &json)
 
jsonParserto_json (unsigned int value, jsonParser &json)
 
jsonParserto_json (long int value, jsonParser &json)
 
jsonParserto_json (unsigned long int value, jsonParser &json)
 
jsonParserto_json (double value, jsonParser &json)
 
jsonParserto_json (const std::string &value, jsonParser &json)
 
jsonParserto_json (const char *value, jsonParser &json)
 
jsonParserto_json (const jsonParser &value, jsonParser &json)
 
template<typename T >
from_json (const jsonParser &json)
 From JSON for basic types. More...
 
template<typename T >
std::unique_ptr< T > make_from_json (const jsonParser &json)
 Make from JSON for basic types. More...
 
template<>
bool from_json< bool > (const jsonParser &json)
 
template<>
int from_json< int > (const jsonParser &json)
 
template<>
unsigned int from_json< unsigned int > (const jsonParser &json)
 
template<>
long int from_json< long int > (const jsonParser &json)
 
template<>
unsigned long int from_json< unsigned long int > (const jsonParser &json)
 
template<>
double from_json< double > (const jsonParser &json)
 
template<>
std::string from_json< std::string > (const jsonParser &json)
 
template<>
jsonParser from_json< jsonParser > (const jsonParser &json)
 
void from_json (bool &value, const jsonParser &json)
 From JSON for basic types. More...
 
void from_json (int &value, const jsonParser &json)
 
void from_json (unsigned int &value, const jsonParser &json)
 
void from_json (long int &value, const jsonParser &json)
 
void from_json (unsigned long int &value, const jsonParser &json)
 
void from_json (double &value, const jsonParser &json)
 
void from_json (std::string &value, const jsonParser &json)
 
void from_json (jsonParser &value, const jsonParser &json)
 
void from_json (std::istream &stream, const jsonParser &json)
 
void from_json (fs::path &value, const jsonParser &json)
 
void to_json (std::istream &stream, jsonParser &json)
 Create a jsonParser from a stream. More...
 
void to_json (fs::path file_path, jsonParser &json)
 Create a jsonParser by reading a file. More...
 
template<typename T >
jsonParserto_json (const std::complex< T > &value, jsonParser &json)
 To JSON for complex. More...
 
template<typename T >
void from_json (std::complex< T > &value, const jsonParser &json)
 From JSON for complex. More...
 
template<typename Key , typename T >
jsonParserto_json (const std::pair< Key, T > &value, jsonParser &json)
 To JSON for std::pair<std::string, T> More...
 
template<typename Key , typename T >
void from_json (std::pair< Key, T > &value, const jsonParser &json)
 From JSON for std::pair<std::string, T> More...
 
template<typename T , typename... Args>
void make_from_json (std::unique_ptr< T > &ptr, const jsonParser &json, Args &&... args)
 Make from JSON for basic types. More...
 
fs::path find_diff (const jsonParser &A, const jsonParser &B)
 Return the location at which jsonParser 'A' != 'B' as a fs::path. More...
 
fs::path find_diff (const jsonParser &A, const jsonParser &B, double tol)
 
template<typename T >
jsonParser json_pair (const std::string &key, const T &value)
 Create pair/value json object without intermediate temporary. More...
 
template<typename T , typename... Args>
jsonParserto_json (std::optional< T > const &value, jsonParser &json)
 
template<typename T , typename... Args>
void from_json (std::optional< T > &value, jsonParser const &json, Args &&... args)
 
template<typename T >
Logoperator<< (Log &log, const T &msg_details)
 
Logoperator<< (Log &log, std::ostream &(*fptr)(std::ostream &))
 
Logdefault_log ()
 
Logdefault_err_log ()
 
Loglog ()
 
Logerr_log ()
 
Logcout_log ()
 
Logcerr_log ()
 
Lognull_log ()
 
std::string to_string (const std::string &s, std::string begin="\"", std::string end="\"")
 
template<typename T1 , typename T2 >
std::string to_string (const std::pair< T1, T2 > &value)
 
template<typename Iterator >
std::string container_to_string (Iterator begin_it, Iterator end_it, std::string begin="[", std::string end="]", std::string delim=", ")
 
template<class T >
std::string to_string (const std::vector< T > &container, std::string begin="[", std::string end="]", std::string delim=", ")
 
template<class T , class Compare >
std::string to_string (const std::set< T, Compare > &container, std::string begin="[", std::string end="]", std::string delim=", ")
 
template<class Key , class T , class Compare >
std::string to_string (const std::map< T, Key, Compare > &container, std::string begin="{", std::string end="}", std::string delim=", ")
 
template<typename ConfigType >
bool is_calculated (const ConfigType &config, std::string calctype="")
 Return true if all required properties have been been calculated for the configuration. More...
 
template<typename ConfigType >
void reset_properties (ConfigType &config)
 
template<typename ConfigType >
std::string calc_status (const ConfigType &_config, std::string calctype="")
 Status of calculation. More...
 
template<typename ConfigType >
std::string failure_type (const ConfigType &config, std::string calctype="")
 
template<typename ConfigType >
bool has_calc_status (const ConfigType &config, std::string calctype="")
 
template<typename ConfigType >
bool has_failure_type (const ConfigType &config, std::string calctype="")
 
template<typename ConfigType >
std::string calc_properties_path (const ConfigType &config, std::string calctype="")
 
template<typename ConfigType >
std::string pos_path (const ConfigType &config, std::string calctype="")
 
template<typename ConfigType >
std::string calc_status_path (const ConfigType &config, std::string calctype="")
 
bool is_calculated (const MappedProperties &calc_properties, const std::vector< std::string > &required_properties)
 Return true if all required properties are included in the JSON. More...
 
std::string calc_properties_path (const PrimClex &primclex, const std::string &configname, std::string calctype="")
 
std::string pos_path (const PrimClex &primclex, const std::string &configname)
 
std::string calc_status_path (const PrimClex &primclex, const std::string &configname, std::string calctype="")
 
Index print_clust_basis (std::ostream &stream, BasisSet _clust_basis, IntegralCluster const &_prototype, Index func_ind=0, int space=18, char delim='\n')
 
template<typename OrbitType >
void print_proto_clust_funcs (ClexBasis const &_clex_basis, std::ostream &out, BasicStructure const &_prim, std::vector< OrbitType > const &_tree)
 
template<typename OrbitType >
Index _orbit_max_poly_order (OrbitType const &orbit, BasisFunctionSpecs const &basis_function_specs)
 allow basis_function_specs to specify max_poly_order by branch, orbit, etc. More...
 
template<typename OutputIterator >
OutputIterator standard_composition_axes (ParamComposition::AllowedOccupants _allowed_occs, OutputIterator result)
 Generate CompositionConverter specifying standard composition axes for a prim Structure. More...
 
void display_composition_axes (std::ostream &stream, const std::map< std::string, CompositionConverter > &map)
 Pretty-print map of name/CompositionConverter pairs. More...
 
void display_comp (std::ostream &stream, const CompositionConverter &f, int indent=0)
 Pretty-print comp in terms of comp_n. More...
 
void display_comp_n (std::ostream &stream, const CompositionConverter &f, int indent=0)
 Pretty-print comp_n in terms of comp. More...
 
void display_param_chem_pot (std::ostream &stream, const CompositionConverter &f, int indent=0)
 Pretty-print param_chem_pot in terms of chem_pot. More...
 
Eigen::MatrixXd end_members (const ParamComposition::AllowedOccupants &_allowed_occs)
 Serialize CompositionConverter to JSON. More...
 
Eigen::MatrixXd composition_space (const ParamComposition::AllowedOccupants &_allowed_occs, double tol=1e-14)
 Return the composition space of a ParamComposition::AllowedOccupants. More...
 
Eigen::MatrixXd null_composition_space (const ParamComposition::AllowedOccupants &_allowed_occs, double tol=1e-14)
 Return the null composition space of a ParamComposition::AllowedOccupants. More...
 
void swap (ConfigDoF &A, ConfigDoF &B)
 
void reset_properties (ConfigDoF &_dof)
 
ConfigDoF make_configdof (Structure const &prim, Index volume)
 Construct zero-valued ConfigDoF. More...
 
ConfigDoF make_configdof (Structure const &prim, Index volume, double tol)
 Construct zero-valued ConfigDoF. More...
 
std::unique_ptr< ConfigDoFmake_unique_configdof (Structure const &prim, Index volume)
 Construct zero-valued std::unique_ptr<ConfigDoF> More...
 
std::unique_ptr< ConfigDoFmake_unique_configdof (Structure const &prim, Index volume, double tol)
 Construct zero-valued std::unique_ptr<ConfigDoF> More...
 
ConfigDoF make_configdof (Supercell const &supercell)
 Construct zero-valued ConfigDoF. More...
 
ConfigDoF make_configdof (Supercell const &supercell, double tol)
 Construct zero-valued ConfigDoF. More...
 
std::unique_ptr< ConfigDoFmake_unique_configdof (Supercell const &supercell)
 Construct zero-valued std::unique_ptr<ConfigDoF> More...
 
std::unique_ptr< ConfigDoFmake_unique_configdof (Supercell const &supercell, double tol)
 Construct zero-valued std::unique_ptr<ConfigDoF> More...
 
template<>
bool is_guaranteed_for_database_insert (ConfigEnumAllOccupations const &enumerator)
 
template<>
StringAttributeDictionary< Configurationmake_string_dictionary< Configuration > ()
 
template<>
BooleanAttributeDictionary< Configurationmake_boolean_dictionary< Configuration > ()
 
template<>
IntegerAttributeDictionary< Configurationmake_integer_dictionary< Configuration > ()
 
template<>
ScalarAttributeDictionary< Configurationmake_scalar_dictionary< Configuration > ()
 
template<>
VectorXdAttributeDictionary< Configurationmake_vectorxd_dictionary< Configuration > ()
 
template<>
MatrixXdAttributeDictionary< Configurationmake_matrixxd_dictionary< Configuration > ()
 
MappingNode copy_apply (PermuteIterator const &_it, MappingNode const &_node, bool transform_cost_mat=true)
 Reorders the permutation and compounds the spatial isometry (rotation. More...
 
std::pair< ConfigDoF, std::set< std::string > > to_configdof (SimpleStructure const &_child_struc, Supercell const &_scel)
 Initializes configdof of Supercell '_scel' corresponding to an idealized child structure (encoded by _child_struc) _child_struc is assumed to have been idealized via structure-mapping or to be the result of converting a configuration to a SimpleStructure. result.second gives list of properties that were utilized in the course of building the configdof. More...
 
Configuration sub_configuration (std::shared_ptr< Supercell const > sub_scel_ptr, const Configuration &super_config, const UnitCell &origin=UnitCell(0, 0, 0))
 Returns the sub-configuration that fills a particular Supercell. More...
 
Configuration make_configuration (const PrimClex &primclex, std::string name)
 Make Configuration from name string. More...
 
Eigen::VectorXd correlations (const Configuration &config, Clexulator const &clexulator)
 Returns correlations using 'clexulator'. More...
 
Eigen::VectorXd corr_contribution (Index linear_unitcell_index, const Configuration &config, Clexulator const &clexulator)
 Returns correlation contribution from a single unit cell, not normalized. More...
 
Eigen::VectorXd point_corr (Index linear_unitcell_index, Index neighbor_index, const Configuration &config, Clexulator const &clexulator)
 Returns point correlations from a single site, normalized by cluster orbit size. More...
 
Eigen::MatrixXd gradcorrelations (const Configuration &config, Clexulator const &clexulator, DoFKey &key)
 Returns gradient correlations using 'clexulator', with respect to DoF 'dof_type'. More...
 
Eigen::VectorXd comp (const Configuration &config)
 Returns parametric composition, as calculated using PrimClex::param_comp. More...
 
Eigen::VectorXd comp_n (const Configuration &config)
 Returns the composition, as number of each species per unit cell. More...
 
double n_vacancy (const Configuration &config)
 Returns the vacancy composition, as number per unit cell. More...
 
double n_species (const Configuration &config)
 Returns the total number species per unit cell. More...
 
Eigen::VectorXd species_frac (const Configuration &config)
 Returns the composition as species fraction, with [Va] = 0.0, in the order of Structure::get_struc_molecule. More...
 
Eigen::VectorXd site_frac (const Configuration &config)
 Returns the composition as site fraction, in the order of Structure::get_struc_molecule. More...
 
double energy (const Configuration &config)
 Returns the energy, normalized per unit cell. More...
 
double energy_per_species (const Configuration &config)
 Returns the energy, normalized per species. More...
 
double reference_energy (const Configuration &config)
 Returns the reference energy, normalized per unit cell. More...
 
double reference_energy_per_species (const Configuration &config)
 Returns the reference energy, normalized per species. More...
 
double formation_energy (const Configuration &config)
 Returns the formation energy, normalized per unit cell. More...
 
double formation_energy_per_species (const Configuration &config)
 Returns the formation energy, normalized per species. More...
 
double clex_formation_energy (const Configuration &config)
 Returns the formation energy, normalized per unit cell. More...
 
double clex_formation_energy_per_species (const Configuration &config)
 Returns the formation energy, normalized per species. More...
 
double rms_force (const Configuration &_config)
 Root-mean-square forces of relaxed configurations, determined from DFT (eV/Angstr.) More...
 
double atomic_deformation (const Configuration &_config)
 Cost function that describes the degree to which basis sites have relaxed. More...
 
double lattice_deformation (const Configuration &_config)
 Cost function that describes the degree to which lattice has relaxed. More...
 
double volume_relaxation (const Configuration &_config)
 Change in volume due to relaxation, expressed as the ratio V/V_0. More...
 
double relaxed_magmom (const Configuration &_config)
 Returns the relaxed magnetic moment, normalized per unit cell. More...
 
double relaxed_magmom_per_species (const Configuration &_config)
 Returns the relaxed magnetic moment, normalized per species. More...
 
Eigen::MatrixXd relaxed_forces (const Configuration &_config)
 relaxed forces of configuration, determined from DFT (eV/Angstr.), as a 3xN matrix More...
 
IntegralCluster config_diff (const Configuration &_config1, const Configuration &_config2)
 Returns an Integral Cluster representing the perturbed sites between the configs. More...
 
Configuration closest_setting (const Configuration &_config1, const Configuration &_config2)
 
Configuration config_clip (const Configuration &_config, const Configuration &_bg, IntegralCluster &_clust)
 Returns a Configuration with the sites in _clust clipped from _config and placed in _bg. More...
 
bool is_primitive (const Configuration &_config)
 returns true if _config describes primitive cell of the configuration it describes More...
 
bool is_canonical (const Configuration &_config)
 returns true if no symmetry transformation applied to _config will increase its lexicographic order More...
 
bool is_diff_trans_endpoint (const Configuration &_config)
 returns true if _config is an endpoint of any existing diff_trans_config More...
 
std::string diff_trans_endpoint_of (const Configuration &_config)
 returns which diff_trans _config is an endpoint of More...
 
bool has_energy (const Configuration &_config)
 
bool has_reference_energy (const Configuration &_config)
 
bool has_formation_energy (const Configuration &_config)
 
bool has_rms_force (const Configuration &_config)
 
bool has_atomic_deformation (const Configuration &_config)
 
bool has_lattice_deformation (const Configuration &_config)
 
bool has_volume_relaxation (const Configuration &_config)
 
bool has_relaxed_magmom (const Configuration &_config)
 
bool has_relaxed_mag_basis (const Configuration &_config)
 
Eigen::VectorXd correlations (const ConfigDoF &configdof, const Supercell &scel, Clexulator const &clexulator)
 Returns correlations using 'clexulator'. Supercell needs a correctly populated neighbor list. More...
 
Eigen::VectorXd corr_contribution (Index linear_unitcell_index, const ConfigDoF &configdof, const Supercell &scel, Clexulator const &clexulator)
 Returns correlation contribution from a single unit cell, not normalized. More...
 
Eigen::VectorXd point_corr (Index linear_unitcell_index, Index neighbor_index, const ConfigDoF &configdof, const Supercell &scel, Clexulator const &clexulator)
 Returns point correlations from a single site, normalized by cluster orbit size. More...
 
Eigen::MatrixXd gradcorrelations (const ConfigDoF &configdof, const Supercell &scel, Clexulator const &clexulator, DoFKey &key)
 Returns gradient correlations using 'clexulator', with respect to DoF 'dof_type'. More...
 
Eigen::VectorXi num_each_molecule (const ConfigDoF &configdof, const Supercell &scel)
 Returns num_each_molecule(molecule_type), where 'molecule_type' is ordered as Structure::get_struc_molecule() More...
 
Eigen::VectorXd comp_n (const ConfigDoF &configdof, const Supercell &scel)
 Returns comp_n, the number of each molecule per primitive cell, ordered as Structure::get_struc_molecule() More...
 
double operator* (const ECIContainer &_eci, const Eigen::VectorXd &_corr)
 Evaluate property given an ECIContainer and correlations. More...
 
double operator* (const ECIContainer &_eci, double const *_corr_begin)
 Evaluate property given an ECIContainer and pointer to beginning of range of correlation. More...
 
bool is_valid_sub_configuration (xtal::Lattice const &sub_configuration_lattice, Supercell const &supercell)
 
Configuration fill_supercell (Configuration const &motif, std::shared_ptr< Supercell const > const &shared_supercell)
 
Configuration fill_supercell (Configuration const &motif, Supercell const &supercell)
 
Configuration fill_supercell (SymOp const &symop, Configuration const &motif, std::shared_ptr< Supercell const > const &shared_supercell)
 
Configuration fill_supercell (SymOp const &symop, Configuration const &motif, Supercell const &supercell)
 
template<typename ConfigOutputIterator >
ConfigOutputIterator make_all_super_configurations (Configuration const &configuration, std::shared_ptr< Supercell const > shared_supercell, ConfigOutputIterator result)
 Make all super configurations that fill a particular supercell. More...
 
template<typename IteratorType >
void swap (FilteredConfigIterator< IteratorType > &a, FilteredConfigIterator< IteratorType > &b)
 Definitions. More...
 
template<typename IteratorType , typename DataObject >
FilteredConfigIterator< IteratorType > filter_begin (const IteratorType &it, const IteratorType &it_end, const std::vector< std::string > &filter_expr, const DataFormatterDictionary< DataObject > &_dict)
 
template<typename IteratorType >
FilteredConfigIterator< IteratorType > filter_end (const IteratorType &it_end)
 
ChemicalReference read_chemical_reference (fs::path filename, BasicStructure const &prim, double tol)
 Read chemical reference states from JSON file. More...
 
void write_chemical_reference (const ChemicalReference &chem_ref, fs::path filename)
 Write chemical reference states to JSON file. More...
 
CompositionAxes read_composition_axes (fs::path _filename)
 
void write_composition_axes (fs::path _filename, CompositionAxes const &composition_axes)
 Write CompositionAxes to file. More...
 
void parse (InputParser< ClexBasisSpecs > &parser, std::shared_ptr< Structure const > shared_prim, ParsingDictionary< DoFType::Traits > const *dof_dict)
 
jsonParserto_json (ClexBasisSpecs const &basis_set_specs, jsonParser &json, Structure const &prim, ParsingDictionary< DoFType::Traits > const *dof_dict)
 
void from_json (CompositionAxes &composition_axes, const jsonParser &json)
 
jsonParserto_json (CompositionAxes const &composition_axes, jsonParser &json)
 Write CompositionAxes to JSON. More...
 
jsonParserto_json (const CompositionConverter &f, jsonParser &json)
 Serialize CompositionConverter to JSON. More...
 
void from_json (CompositionConverter &f, const jsonParser &json)
 Deserialize CompositionConverter from JSON. More...
 
jsonParserto_json (const ConfigDoF &configdof, jsonParser &json)
 
void from_json (ConfigDoF &configdof, const jsonParser &json)
 Read ConfigDoF from JSON. More...
 
jsonParserto_json (ConfigMapping::Settings const &_set, jsonParser &_json)
 
jsonParser const & from_json (ConfigMapping::Settings &_set, jsonParser const &_json)
 
jsonParserto_json (Configuration const &configuration, jsonParser &json)
 Insert Configuration to JSON. More...
 
void from_json (Configuration &configuration, jsonParser const &json)
 Read Configuration from JSON. More...
 
void parse (InputParser< ECIContainer > &parser)
 Make ECIContainer from JSON (eci.json file) More...
 
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. More...
 
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'. More...
 
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'. More...
 
void write_site_basis_funcs (std::shared_ptr< const Structure > prim_ptr, ClexBasis const &clex_basis, jsonParser &json)
 
void print_basis_functions (Log &log, std::shared_ptr< Structure const > const &shared_prim, ClexBasisSpecs const &basis_set_specs, bool align, OrbitPrinterOptions opt=OrbitPrinterOptions())
 Pretty-print basis functions – generate, then print. More...
 
void print_basis_functions (Log &log, PrimClex const &primclex, std::string basis_set_name, bool align, OrbitPrinterOptions opt=OrbitPrinterOptions())
 Pretty-print basis functions – read clusters from existing clust.json file. More...
 
void print_poscar (Configuration const &configuration, std::ostream &sout)
 
jsonParserto_json (const MappedProperties &prop, jsonParser &json)
 
jsonParser const & from_json (MappedProperties &prop, const jsonParser &json)
 
jsonParserto_json (const ScoreMappedProperties &score, jsonParser &json)
 
jsonParser const & from_json (ScoreMappedProperties &score, const jsonParser &json)
 
MappedProperties copy_apply (PermuteIterator const &op, MappedProperties const &props)
 
void write_basis_set_data (std::shared_ptr< Structure const > shared_prim, ProjectSettings const &settings, std::string const &basis_set_name, ClexBasisSpecs const &basis_set_specs, PrimNeighborList &prim_neighbor_list)
 
Clexulator make_clexulator (ProjectSettings const &settings, std::string const &basis_set_name, PrimNeighborList &prim_neighbor_list)
 
template<>
bool is_guaranteed_for_database_insert (ScelEnumByProps const &enumerator)
 Always true for ScelEnumByProps. More...
 
xtal::SimpleStructure make_simple_structure (Supercell const &_scel, ConfigDoF const &_dof, std::vector< DoFKey > const &_which_dofs={})
 Construct from ConfigDoF _dof belonging to provided Supercell _scel. More...
 
xtal::SimpleStructure make_simple_structure (Configuration const &_config, std::vector< DoFKey > const &_which_dofs={}, bool relaxed=false)
 Construct SimpleStructure from Configuration. More...
 
xtal::SimpleStructure make_simple_structure (Supercell const &_scel, ConfigDoF const &_dof, MappedProperties const &_props, std::vector< DoFKey > const &_which_dofs={}, bool relaxed=false)
 Construct from ConfigDoF _dof belonging to provided Supercell _scel and using calculated properties. More...
 
std::vector< std::set< Index > > atom_site_compatibility (xtal::SimpleStructure const &sstruc, Configuration const &_config)
 Determine which sites of a Configuration can host each atom of a SimpleStructure result[i] is set of site indices in. More...
 
std::vector< std::set< Index > > mol_site_compatibility (xtal::SimpleStructure const &sstruc, Configuration const &_config)
 Determine which sites of a Configuration can host each molecule of a SimpleStructure result[i] is set of site indices in. More...
 
std::string make_supercell_name (Structure const &prim, xtal::Superlattice const &superlattice)
 Make the supercell name from a Superlattice. More...
 
std::string make_canonical_supercell_name (Structure const &prim, xtal::Superlattice const &superlattice)
 Make the canonical supercell name from a Superlattice. More...
 
xtal::Superlattice make_superlattice_from_supercell_name (Structure const &prim, std::string supercell_name)
 Construct a Superlattice from the supercell name. More...
 
Supercellapply (const SymOp &op, Supercell &scel)
 Apply symmetry operation to Supercell. More...
 
Supercell copy_apply (const SymOp &op, const Supercell &scel)
 Copy and apply symmetry operation to Supercell. More...
 
const Supercellmake_supercell (const PrimClex &primclex, std::string name)
 
std::shared_ptr< Supercellmake_shared_supercell (const PrimClex &primclex, std::string name)
 
Eigen::Matrix3l transf_mat (const Lattice &prim_lat, const Lattice &super_lat)
 
std::string generate_name (const Eigen::Matrix3l &transf_mat)
 Make hermite normal form name [deprecated]. More...
 
std::string scelname (const Structure &prim, const Lattice &superlat)
 Make supercell name name [deprecated]. More...
 
std::string canonical_scelname (const Structure &prim, const Lattice &superlat)
 Make canonical supercell name name [deprecated]. More...
 
template<>
StringAttributeDictionary< Supercellmake_string_dictionary< Supercell > ()
 
template<>
BooleanAttributeDictionary< Supercellmake_boolean_dictionary< Supercell > ()
 
template<>
IntegerAttributeDictionary< Supercellmake_integer_dictionary< Supercell > ()
 
template<>
ScalarAttributeDictionary< Supercellmake_scalar_dictionary< Supercell > ()
 
template<>
VectorXiAttributeDictionary< Supercellmake_vectorxi_dictionary< Supercell > ()
 
template<>
VectorXdAttributeDictionary< Supercellmake_vectorxd_dictionary< Supercell > ()
 
bool almost_equal (ClusterInvariants const &A, ClusterInvariants const &B, double tol)
 Check if ClusterInvariants are equal. More...
 
bool compare (ClusterInvariants const &A, ClusterInvariants const &B, double tol)
 Compare ClusterInvariants. More...
 
bool almost_equal (WithinScelClusterInvariants const &A, WithinScelClusterInvariants const &B, double tol)
 Check if WithinScelClusterInvariants are equal. More...
 
bool compare (WithinScelClusterInvariants const &A, WithinScelClusterInvariants const &B, double tol)
 Compare WithinScelClusterInvariants. More...
 
template<typename OutputIterator >
OutputIterator neighborhood (Structure const &unit, double max_radius, SiteFilterFunction site_filter, OutputIterator result, double xtal_tol)
 Output the neighborhood of UnitCellCoord within max_radius of any sites in unit cell. More...
 
template<typename OutputIterator >
OutputIterator neighborhood (IntegralCluster const &phenomenal, double cutoff_radius, SiteFilterFunction site_filter, bool include_phenomenal_sites, OutputIterator result, double xtal_tol)
 Output the neighborhood of sites within cutoff_radius of any sites in the phenomenal. More...
 
template<typename OrbitType , typename OutputIterator >
OutputIterator local_orbit_neighborhood (const OrbitType &orbit, OutputIterator result)
 Iterate over all sites in an orbit and insert a UnitCellCoord. More...
 
template<typename ClusterOrbitIterator , typename OutputIterator >
OutputIterator local_neighborhood (ClusterOrbitIterator begin, ClusterOrbitIterator end, OutputIterator result)
 Iterate over all sites in all orbits and insert a UnitCellCoord. More...
 
template<typename OrbitType >
bool has_local_neighborhood_overlap (std::vector< OrbitType > &local_orbits, const Eigen::Matrix3i &transf_mat)
 Check if periodic images of sites in an orbit are overlapping in supercells defined by the given superlattice transformation matrix. More...
 
template<typename OrbitType >
std::vector< Eigen::Matrix3i > viable_supercells (std::vector< OrbitType > &local_orbits, const std::vector< Eigen::Matrix3i > &transf_mat)
 Return superlattice transf. matrices for which has_local_neighborhood_overlap is false. More...
 
template<typename OrbitType >
OrbitGenerators< OrbitType > & insert_subcluster_generators (typename OrbitType::Element cluster, OrbitGenerators< OrbitType > &generators)
 Given a cluster, generate all subcluster generators. More...
 
template<typename OrbitIterator >
std::pair< OrbitIterator, OrbitIterator > orbit_branch (OrbitIterator begin, OrbitIterator end, Index size)
 Returns the first range containing orbits of the requested orbit branch in the given range of Orbit. More...
 
template<typename OrbitType , typename OrbitOutputIterator >
OrbitOutputIterator make_asymmetric_unit (const OrbitBranchSpecs< OrbitType > &specs, OrbitOutputIterator result, std::ostream &status)
 Generate the asymmetric unit, using OrbitBranchSpecs. More...
 
template<typename OrbitType , typename OrbitInputIterator , typename OrbitOutputIterator >
OrbitOutputIterator make_next_orbitbranch (OrbitInputIterator begin, OrbitInputIterator end, const OrbitBranchSpecs< OrbitType > &specs, OrbitOutputIterator result, std::ostream &status)
 Use orbits of size n to generate orbits of size n+1. More...
 
template<typename OrbitBranchSpecsIterator , typename OrbitOutputIterator >
OrbitOutputIterator make_orbits (OrbitBranchSpecsIterator begin, OrbitBranchSpecsIterator end, const std::vector< IntegralClusterOrbitGenerator > &custom_generators, OrbitOutputIterator result, std::ostream &status)
 Generate orbits of IntegralCluster using OrbitBranchSpecs. More...
 
template<typename OutputIterator >
OutputIterator prim_periodic_orbit_neighborhood (const PrimPeriodicOrbit< IntegralCluster > &orbit, OutputIterator result)
 Iterate over all sites in an orbit and insert a UnitCellCoord. More...
 
template<typename ClusterOrbitIterator , typename OutputIterator >
OutputIterator prim_periodic_neighborhood (ClusterOrbitIterator begin, ClusterOrbitIterator end, OutputIterator result)
 Iterate over all sites in all orbits and insert a UnitCellCoord. More...
 
template<typename OutputIterator , typename OrbitType >
OutputIterator flower_neighborhood (OrbitType const &orbit, OutputIterator result)
 Iterate over all sites in an orbit and insert a UnitCellCoord. More...
 
template<typename ClusterOrbitIterator , typename OutputIterator >
OutputIterator flower_neighborhood (ClusterOrbitIterator begin, ClusterOrbitIterator end, OutputIterator result)
 Iterate over all sites in all orbits and insert a UnitCellCoord. More...
 
template<typename OrbitType >
bool has_local_neighborhood_overlap (std::vector< OrbitType > const &local_orbits, Eigen::Matrix3i const &transf_mat)
 Check if periodic images of sites in an orbit are overlapping in supercells defined by the given superlattice transformation matrix. More...
 
template<typename FunctorType >
void for_all_orbits (ClusterSpecs const &cluster_specs, std::vector< IntegralCluster > const &generating_elements, FunctorType const &f)
 
template<typename FunctorType >
void for_all_orbits (ClusterSpecs const &cluster_specs, std::ostream &status, FunctorType const &f)
 
bool all_sites_filter (const xtal::Site &site)
 Generate clusters using all Site. More...
 
bool alloy_sites_filter (const xtal::Site &site)
 Generate clusters using Site with site_occupant.size() > 1. More...
 
SiteFilterFunction dof_sites_filter (const std::vector< DoFKey > &dofs={})
 Generate clusters using Site with specified DoF. More...
 
ClusterFilterFunction all_clusters_filter ()
 Accept all clusters. More...
 
ClusterFilterFunction max_length_cluster_filter (double max_length)
 Accept clusters with max pair distance less than max_length. More...
 
CandidateSitesFunction empty_neighborhood ()
 No sites (for null orbit, or global dof only) More...
 
CandidateSitesFunction origin_neighborhood ()
 Only sites in the origin unit cell {b, 0, 0, 0}. More...
 
CandidateSitesFunction max_length_neighborhood (double max_length)
 
CandidateSitesFunction cutoff_radius_neighborhood (IntegralCluster const &phenomenal, double cutoff_radius, bool include_phenomenal_sites=false)
 Sites within cutoff_radius distance to any site in the phenomenal cluster. More...
 
jsonParserto_json (const IntegralClusterOrbitGenerator &orbit_generator, jsonParser &json)
 Write custom orbit specs to JSON. More...
 
void parse (InputParser< std::vector< IntegralClusterOrbitGenerator >> &parser, Structure const &prim)
 Parse custom orbit specs from JSON. More...
 
void parse (InputParser< PeriodicMaxLengthClusterSpecs > &parser, const std::shared_ptr< Structure const > &shared_prim, const SymGroup &super_group)
 Parse PeriodicMaxLengthClusterSpecs from JSON. More...
 
void parse (InputParser< LocalMaxLengthClusterSpecs > &parser, const std::shared_ptr< Structure const > &shared_prim, const SymGroup &super_group)
 Parse LocalMaxLengthClusterSpecs from JSON. More...
 
void parse (InputParser< ClusterSpecs > &parser, const std::shared_ptr< Structure const > &shared_prim)
 Parse PeriodicMaxLengthClusterSpecs or LocalMaxLengthClusterSpecs from JSON & validate. More...
 
void parse (InputParser< ClusterSpecs > &parser, const std::shared_ptr< Structure const > &shared_prim, const SymGroup &super_group)
 Parse ClusterSpecs from JSON & validate. More...
 
jsonParserto_json (const PeriodicMaxLengthClusterSpecs &cspecs, jsonParser &json)
 Write PeriodicMaxLengthClusterSpecs to JSON. More...
 
jsonParserto_json (const LocalMaxLengthClusterSpecs &cspecs, jsonParser &json)
 Write LocalMaxLengthClusterSpecs to JSON. More...
 
jsonParserto_json (const ClusterSpecs &cspecs, jsonParser &json)
 Write PeriodicMaxLengthClusterSpecs or LocalMaxLengthClusterSpecs to JSON. More...
 
jsonParserto_json (IntegralCluster const &clust, jsonParser &json)
 Write IntegralCluster to JSON object. More...
 
void from_json (IntegralCluster &clust, jsonParser const &json)
 Read from JSON. More...
 
void parse (InputParser< IntegralCluster > &parser, Structure const &prim)
 Parse IntegralCluster from JSON. More...
 
jsonParserto_json (const OrbitPrinterOptions &opt, jsonParser &json)
 
void from_json (OrbitPrinterOptions &opt, const jsonParser &json)
 Read from JSON. More...
 
template<typename ClusterOrbitIterator , typename OrbitPrinter >
void print_clust (ClusterOrbitIterator begin, ClusterOrbitIterator end, Log &out, OrbitPrinter printer)
 Print IntegralCluster orbits. More...
 
template<typename ClusterOrbitIterator >
void print_clust (ClusterOrbitIterator begin, ClusterOrbitIterator end, Log &out, const OrbitPrinterOptions &opt=OrbitPrinterOptions())
 Print IntegralCluster orbits. More...
 
template<typename ClusterOutputIterator , typename SymCompareType >
ClusterOutputIterator read_clust (ClusterOutputIterator result, const jsonParser &json, const Structure &prim, const SymGroup &generating_grp, const SymCompareType &sym_compare)
 Read JSON containing Orbit<SymCompareType> prototypes. More...
 
template<typename ClusterOutputIterator >
ClusterOutputIterator read_clust (ClusterOutputIterator result, const jsonParser &json, const Structure &prim)
 Read JSON containing IntegralCluster prototypes, as IntegralCluster. More...
 
template<typename ClusterOrbitIterator , typename Printer >
jsonParserwrite_clust (ClusterOrbitIterator begin, ClusterOrbitIterator end, jsonParser &json, Printer printer)
 Write Orbit<SymCompareType> to JSON. More...
 
template<typename ClusterOrbitIterator >
jsonParserwrite_clust (ClusterOrbitIterator begin, ClusterOrbitIterator end, jsonParser &json, const OrbitPrinterOptions &opt=OrbitPrinterOptions())
 Write Orbit<SymCompareType> to JSON. More...
 
template<typename ClusterOrbitIterator , typename Printer >
jsonParserwrite_clust (ClusterOrbitIterator begin, ClusterOrbitIterator end, jsonParser &json, Printer printer, const jsonParser &bspecs)
 Write Orbit<SymCompareType> to JSON, including 'bspecs'. More...
 
template<typename OrbitPrinter , typename Element >
void print_coordinates (OrbitPrinter &printer, const Element &element, Log &out)
 
std::ostream & operator<< (std::ostream &sout, ClusterInvariants const &invariants)
 Print ClusterInvariants. More...
 
std::ostream & operator<< (std::ostream &sout, WithinScelClusterInvariants const &invariants)
 Print WithinScelClusterInvariants. More...
 
std::ostream & operator<< (std::ostream &sout, const IntegralCluster &clust)
 Print IntegralCluster to stream, using default Printer<IntegralCluster> More...
 
std::set< Indexmake_cluster_site_indices (IntegralCluster const &cluster, SupercellSymInfo const &sym_info)
 Return site indices of cluster sites. More...
 
IntegralCluster make_cluster (std::set< Index > const &cluster_site_indices, Structure const &prim, SupercellSymInfo const &sym_info)
 Return cluster from cluster site indices. More...
 
template<typename PermuteIteratorIt >
std::vector< Permutationmake_inverse_permutations (PermuteIteratorIt begin, PermuteIteratorIt end)
 Make inverse permutations. More...
 
std::set< Indexpermute_cluster_site_indices (Permutation const &inverse_permute, std::set< Index > const &cluster_site_indices)
 Rather than permute values, here we want to permute cluster site indices. More...
 
template<typename InversePermutationIterator >
std::set< Indexmake_canonical_cluster_site_indices (InversePermutationIterator inverse_permutations_begin, InversePermutationIterator inverse_permutations_end, std::set< Index > const &cluster_site_indices)
 
template<typename InversePermutationIterator , typename ElementIterator >
std::set< std::set< Index >, ClusterSiteIndicesComparemake_orbit_generators_under_periodic_boundary_conditions (SupercellSymInfo const &sym_info, InversePermutationIterator inverse_permutations_begin, InversePermutationIterator inverse_permutations_end, ElementIterator element_begin, ElementIterator element_end)
 Return "within_scel" orbit generators, as sets of cluster site indices. More...
 
std::string dry_run_help ()
 
std::string coordinate_mode_help ()
 
std::string indent_space_help ()
 
std::string orbit_print_mode_help ()
 
std::string prec_help (std::string what, int default_prec)
 
std::string verbosity_help ()
 
template<typename T >
std::vector< T > sequence (T first, T last)
 
template<typename T >
std::vector< T > sequence (T first, T inc, T last)
 
template<class T >
Array< T > array_cat (const Array< T > &A1, const Array< T > &A2)
 
template<class T >
std::ostream & operator<< (std::ostream &out, const Array< T > &array_out)
 
template<typename T >
void swap (Array< T > &A1, Array< T > &A2)
 
jsonParserto_json (const Permutation &value, jsonParser &json)
 
void from_json (Permutation &value, const jsonParser &json)
 
std::ostream & operator<< (std::ostream &, const Permutation &)
 
template<class T >
Tensor< T > operator* (const T &LHS, const Tensor< T > &RHS)
 
template<class T >
Tensor< T > operator* (const SymOp &LHS, const Tensor< T > &RHS)
 
template<class T >
std::ostream & operator<< (std::ostream &stream, const Tensor< T > &RHS)
 
template<class T >
std::istream & operator>> (std::istream &stream, Tensor< T > &RHS)
 
template<class T >
dot (const Tensor< T > &LHS, const Tensor< T > &RHS)
 
template<class T >
norm (const Tensor< T > &ttens)
 
template<>
ParsingDictionary< AnisoValTraitsmake_parsing_dictionary< AnisoValTraits > ()
 
bool identical (AnisoValTraits const &A, AnisoValTraits const &B)
 
jsonParser const & from_json (xtal::SpeciesAttribute &_attr, jsonParser const &json)
 Read SpeciesAttribute from json. More...
 
jsonParserto_json (xtal::SpeciesAttribute const &_attr, jsonParser &json)
 From SpeciesAttribute to json. More...
 
jsonParserto_json (const xtal::AtomPosition &apos, jsonParser &json, Eigen::Ref< const Eigen::Matrix3d > const &cart2frac)
 Print AtomPosition to json after applying affine transformation cart2frac*cart()+trans. More...
 
void from_json (xtal::AtomPosition &apos, const jsonParser &json, Eigen::Ref< const Eigen::Matrix3d > const &frac2cart, ParsingDictionary< AnisoValTraits > const &_aniso_val_dict)
 Read AtomPosition from json and then apply affine transformation cart2frac*cart() More...
 
jsonParserto_json (const xtal::Molecule &mol, jsonParser &json, Eigen::Ref< const Eigen::Matrix3d > const &c2f_mat)
 
void from_json (xtal::Molecule &mol, const jsonParser &json, Eigen::Ref< const Eigen::Matrix3d > const &f2c_mat, ParsingDictionary< AnisoValTraits > const &_aniso_val_dict)
 
jsonParserto_json (const xtal::Site &value, jsonParser &json, COORD_TYPE coordtype)
 
void from_json (xtal::Site &value, const jsonParser &json, xtal::Lattice const &_home, COORD_TYPE coordtype, std::map< std::string, xtal::Molecule > const &mol_map, ParsingDictionary< AnisoValTraits > const &_aniso_val_dict)
 
xtal::BasicStructure read_prim (fs::path filename, double xtal_tol, ParsingDictionary< AnisoValTraits > const *_aniso_val_dict=nullptr)
 
xtal::BasicStructure read_prim (const jsonParser &json, double xtal_tol, ParsingDictionary< AnisoValTraits > const *_aniso_val_dict)
 Read prim.json. More...
 
void write_prim (const xtal::BasicStructure &prim, fs::path filename, COORD_TYPE mode, bool include_va=false)
 Write prim.json to file. More...
 
void write_prim (const xtal::BasicStructure &prim, jsonParser &json, COORD_TYPE mode, bool include_va=false)
 Write prim.json as JSON. More...
 
void from_json (xtal::BasicStructure &prim, jsonParser const &json, double xtal_tol, ParsingDictionary< AnisoValTraits > const *_aniso_val_dict=nullptr)
 
jsonParserto_json (const xtal::BasicStructure &prim, jsonParser &json, COORD_TYPE mode, bool include_va=false)
 
template<>
DataFormatterDictionary< std::shared_ptr< const Structure > > make_attribute_dictionary< std::shared_ptr< const Structure > > ()
 
jsonParserto_json (xtal::SiteDoFSet const &_dof, jsonParser &json)
 
jsonParserto_json (xtal::DoFSet const &_dof, jsonParser &json)
 
jsonParserto_json (const xtal::Lattice &lat, jsonParser &json)
 
void from_json (xtal::Lattice &lat, const jsonParser &json, double xtal_tol)
 
jsonParserto_json (xtal::SimpleStructure const &simple_structure, jsonParser &json, std::set< std::string > const &excluded_species={"Va", "VA", "va"}, COORD_TYPE coordinate_mode=CART)
 Output SimpleStructure to JSON. More...
 
void from_json (xtal::SimpleStructure &simple_structure, const jsonParser &json)
 Read SimpleStructure from JSON. More...
 
jsonParserto_json (const xtal::ScelEnumProps &props, jsonParser &json)
 
void from_json (xtal::ScelEnumProps &props, const jsonParser &json)
 Make a ScelEnumProps object from JSON input. More...
 
void parse (InputParser< xtal::ScelEnumProps > &parser)
 Make a ScelEnumProps object from JSON input. More...
 
jsonParserto_json (const xtal::UnitCellCoord &ucc_val, jsonParser &fill_json)
 Print to json as [b, i, j, k]. More...
 
void from_json (xtal::UnitCellCoord &fill_value, const jsonParser &read_json)
 Read from json [b, i, j, k]. More...
 
template<>
std::string singleline_enum_help< DB::SELECTION_TYPE > ()
 
template<typename Inserter >
Inserter select_cluster_sites (ConfigEnumInput const &reference_config_enum_input, std::vector< PrimPeriodicIntegralClusterOrbit > const &orbits, Inserter result)
 
std::vector< PermuteIteratormake_invariant_subgroup (ConfigEnumInput const &config_enum_input)
 
template<typename PermuteIteratorIt >
std::vector< PermuteIteratormake_invariant_subgroup (ConfigEnumInput const &config_enum_input, PermuteIteratorIt group_begin, PermuteIteratorIt group_end)
 
bool is_valid_dof_space (Configuration const &config, DoFSpace const &dof_space)
 
void throw_if_invalid_dof_space (Configuration const &config, DoFSpace const &dof_space)
 Throw if !is_valid_dof_space(config, dof_space) More...
 
Eigen::VectorXd get_normal_coordinate (Configuration const &config, DoFSpace const &dof_space)
 Return config DoF value as a coordinate in the DoFSpace basis. More...
 
void set_dof_value (Configuration &config, DoFSpace const &dof_space, Eigen::VectorXd const &normal_coordinate)
 Set config DoF value from a coordinate in the DoFSpace basis. More...
 
Index get_dof_space_dimension (DoFKey dof_key, xtal::BasicStructure const &prim, std::optional< Eigen::Matrix3l > const &transformation_matrix_to_super=std::nullopt, std::optional< std::set< Index >> const &sites=std::nullopt)
 Return dimension of DoFSpace. More...
 
std::vector< std::string > make_dof_space_axis_glossary (DoFKey dof_key, xtal::BasicStructure const &prim, std::optional< Eigen::Matrix3l > const &transformation_matrix_to_super=std::nullopt, std::optional< std::set< Index >> const &sites=std::nullopt)
 Make DoFSpace axis glossary. More...
 
void make_dof_space_axis_info (DoFKey dof_key, xtal::BasicStructure const &prim, std::optional< Eigen::Matrix3l > const &transformation_matrix_to_super, std::optional< std::set< Index >> const &sites, std::vector< std::string > &axis_glossary, std::optional< std::vector< Index >> &axis_site_index, std::optional< std::vector< Index >> &axis_dof_component)
 Make DoFSpace axis glossary, axis site index, and axis dof component. More...
 
DoFSpace make_dof_space (DoFKey dof_key, ConfigEnumInput const &input_state, std::optional< Eigen::MatrixXd > const &basis=std::nullopt)
 
SymGroupRep const & make_dof_space_symrep (DoFSpace const &dof_space, SupercellSymInfo const &sym_info, std::vector< PermuteIterator > const &group, MasterSymGroup &symrep_master_group, SymGroupRepID &id)
 Make a SymGroupRep for a DoFSpace. More...
 
VectorSpaceSymReport vector_space_sym_report (DoFSpace const &dof_space, SupercellSymInfo const &sym_info, std::vector< PermuteIterator > const &group, bool calc_wedges=false)
 Make VectorSpaceSymReport. More...
 
SymRepTools_v2::VectorSpaceSymReport vector_space_sym_report_v2 (DoFSpace const &dof_space, SupercellSymInfo const &sym_info, std::vector< PermuteIterator > const &group, bool calc_wedges=false)
 Make VectorSpaceSymReport. More...
 
DoFSpace make_symmetry_adapted_dof_space (DoFSpace const &dof_space, SupercellSymInfo const &sym_info, std::vector< PermuteIterator > const &group, bool calc_wedges, std::optional< VectorSpaceSymReport > &symmetry_report)
 Make DoFSpace with symmetry adapated basis. More...
 
DoFSpace make_symmetry_adapted_dof_space_v2 (DoFSpace const &dof_space, SupercellSymInfo const &sym_info, std::vector< PermuteIterator > const &group, bool calc_wedges, std::optional< SymRepTools_v2::VectorSpaceSymReport > &symmetry_report)
 Make DoFSpace with symmetry adapated basis. More...
 
DoFSpace exclude_homogeneous_mode_space (DoFSpace const &dof_space)
 Removes the homogeneous mode space from the DoFSpace basis. More...
 
Eigen::MatrixXd make_homogeneous_mode_space (DoFSpace const &dof_space)
 Make the homogeneous mode space of a local DoFSpace. More...
 
template<typename EnumeratorType >
bool is_guaranteed_for_database_insert (EnumeratorType const &enumerator)
 
jsonParserto_json (ConfigEnumInput const &config_enum_input, jsonParser &json)
 Output ConfigEnumInput to JSON. More...
 
void parse (InputParser< ConfigEnumInput > &parser, std::shared_ptr< Structure const > const &shared_prim)
 Read ConfigEnumInput from JSON. More...
 
void from_json (std::vector< std::pair< std::string, ConfigEnumInput >> &config_enum_input, jsonParser const &json, std::shared_ptr< Structure const > shared_prim, PrimClex const *primclex, DB::Database< Supercell > &supercell_db, DB::Database< Configuration > &configuration_db)
 
void parse (InputParser< xtal::ScelEnumProps > &parser, DB::Database< Supercell > &supercell_db)
 
std::string parse_ConfigEnumInput_desc ()
 A string describing the JSON format for parsing named ConfigEnumInput. More...
 
void parse (InputParser< std::vector< std::pair< std::string, ConfigEnumInput >>> &parser, std::shared_ptr< Structure const > shared_prim, PrimClex const *primclex, DB::Database< Supercell > &supercell_db, DB::Database< Configuration > &configuration_db)
 
void from_json (DoFSpace &dofspace, jsonParser const &json, std::shared_ptr< Structure const > const &shared_prim)
 
jsonParserto_json (DoFSpace const &dofspace, jsonParser &json, std::optional< std::string > const &identifier=std::nullopt, std::optional< ConfigEnumInput > const &input_state=std::nullopt, std::optional< VectorSpaceSymReport > const &sym_report=std::nullopt)
 
jsonParserto_json (DoFSpace const &dofspace, jsonParser &json, std::optional< std::string > const &identifier, std::optional< ConfigEnumInput > const &input_state, std::optional< SymRepTools_v2::VectorSpaceSymReport > const &sym_report)
 
void parse (InputParser< AxesCounterParams > &parser, Index dof_space_dimension)
 
bool valid_index (Index i)
 
template<typename Object , typename Transform , typename... Args>
Object & apply (const Transform &f, Object &obj, Args &&... args)
 
template<typename Object , typename Transform , typename... Args>
Object copy_apply (const Transform &f, Object obj, Args &&... args)
 
template<typename Iterator , typename T , typename BinaryCompare >
Iterator find (Iterator begin, Iterator end, const T &value, BinaryCompare q)
 Equivalent to std::find(begin, end, value), but with custom comparison. More...
 
template<typename Iterator , typename T >
Index find_index (Iterator begin, Iterator end, const T &value)
 Equivalent to std::distance(begin, std::find(begin, end, value)) More...
 
template<typename Iterator , typename T , typename BinaryCompare >
Index find_index (Iterator begin, Iterator end, const T &value, BinaryCompare q)
 Equivalent to std::distance(begin, find(begin, end, value, q)) More...
 
template<typename Container , typename T , typename BinaryCompare >
Index find_index (const Container &container, const T &value, BinaryCompare q)
 Equivalent to std::distance(container.begin(), find(container.begin(), container.end(), value,q)) More...
 
template<typename Container , typename T >
Index find_index (const Container &container, const T &value)
 Equivalent to std::distance(container.begin(), std::find(container.begin(), container.end(), value)) More...
 
template<typename Iterator , typename UnaryPredicate >
Index find_index_if (Iterator begin, Iterator end, UnaryPredicate p)
 Equivalent to std::distance(begin, std::find_if(begin, end, p)) More...
 
template<typename Container , typename UnaryPredicate >
Index find_index_if (const Container &container, UnaryPredicate p)
 Equivalent to std::distance(container.begin(), std::find_if(container.begin(), container.end(), p)) More...
 
template<typename Iterator , typename UnaryPredicate >
Index find_index_if_not (Iterator begin, Iterator end, UnaryPredicate q)
 Equivalent to std::distance(begin, std::find_if_not(begin, end, q)) More...
 
template<typename Container , typename UnaryPredicate >
Index find_index_if_not (const Container &container, UnaryPredicate q)
 Equivalent to std::distance(container.begin(), std::find_if_not(container.begin(), container.end(), p)) More...
 
template<typename Container , typename T >
bool contains (const Container &container, const T &value)
 Equivalent to container.end() != std::find(container.begin(), container.end(), value) More...
 
template<typename Container , typename T , typename BinaryCompare >
bool contains (const Container &container, const T &value, BinaryCompare q)
 Equivalent to container.end() != find(container.begin(), container.end(), value, q) More...
 
template<typename Container , typename UnaryPredicate >
bool contains_if (const Container &container, UnaryPredicate p)
 Equivalent to container.end() != std::find_if(container.begin(), container.end(), p) More...
 
template<typename Container , typename UnaryPredicate >
bool contains_if_not (const Container &container, UnaryPredicate q)
 Equivalent to container.end() != std::find_if_not(container.begin(), container.end(), q) More...
 
template<typename Container1 , typename Container2 >
bool contains_all (const Container1 &container, const Container2 &values)
 Returns true if each elements of 'values' is contained in 'container'. More...
 
template<typename Container1 , typename Container2 , typename BinaryCompare >
bool contains_all (const Container1 &container, const Container2 &values, BinaryCompare q)
 Returns true if each elements of 'values' is contained in 'container', using comparison functor 'q'. More...
 
template<typename Container >
Container::value_type sum (const Container &container, typename Container::value_type init_val=0)
 
template<typename T >
T * end_ptr (std::vector< T > &container)
 Return pointer one past end of vector. Equivalent to convainer.data()+container.size() More...
 
template<typename T >
T const * end_ptr (std::vector< T > const &container)
 Return const pointer one past end of vector. Equivalent to convainer.data()+container.size() More...
 
Index which_unique_combination (const Array< Index > &input, const Array< Index >::X2 &unique, const Array< Index >::X2 &ind_equiv)
 
Index which_unique_combination (const Array< Index > &input, const Array< Index >::X2 &unique)
 
int lcm (const Array< int > &series)
 Find least common multiple. More...
 
ReturnArray< Array< int > > get_prime_factors (int target)
 
template<typename IntType >
IntType multinomial_coeff (const Array< IntType > &exponents)
 
template<typename IntType >
IntType multinomial_coeff (const Array< IntType > &exponents, const Array< Index > &sublist)
 
template<typename T >
bool almost_equal (const Array< T > &A, const Array< T > &B, double tol=TOL)
 
template<typename T >
ReturnArray< T > cum_sum (const Array< T > &arr)
 
template<typename Derived >
ReturnArray< Indexpartition_distinct_values (const Eigen::MatrixBase< Derived > &value, double tol=TOL)
 
bool float_lexicographical_compare (const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::MatrixXd > &B, double tol)
 Floating point lexicographical comparison with tol. More...
 
template<typename Derived >
bool colmajor_lex_compare (const Eigen::MatrixBase< Derived > &A, const Eigen::MatrixBase< Derived > &B, double tol)
 Floating point lexicographical comparison with tol. More...
 
template<typename Derived >
Derived::PlainObject reduced_column_echelon (Eigen::MatrixBase< Derived > const &M, double _tol)
 
Eigen::VectorXd eigen_vector_from_string (const std::string &tstr, const int &size)
 
double hungarian_method (const Eigen::MatrixXd &cost_matrix, std::vector< Index > &optimal_assignments, const double _tol)
 
template<typename Derived >
Derived::Scalar * end_ptr (Eigen::PlainObjectBase< Derived > &container)
 Return pointer one past end of vector. Equivalent to convainer.data()+container.size() More...
 
template<typename Derived >
Derived::Scalar const * end_ptr (Eigen::PlainObjectBase< Derived > const &container)
 Return const pointer one past end of vector. Equivalent to convainer.data()+container.size() More...
 
void get_Hermitian (Eigen::MatrixXcd &original_mat, Eigen::MatrixXcd &hermitian_mat, Eigen::MatrixXcd &antihermitian_mat)
 
bool is_Hermitian (Eigen::MatrixXcd &mat)
 
std::pair< Eigen::MatrixXi, Eigen::MatrixXi > hermite_normal_form (const Eigen::MatrixXi &M)
 Return the hermite normal form, M == H*V. More...
 
double angle (const Eigen::Ref< const Eigen::Vector3d > &a, const Eigen::Ref< const Eigen::Vector3d > &b)
 Get angle, in radians, between two vectors on range [0,pi]. More...
 
double signed_angle (const Eigen::Ref< const Eigen::Vector3d > &a, const Eigen::Ref< const Eigen::Vector3d > &b, const Eigen::Ref< const Eigen::Vector3d > &pos_ref)
 signed angle, in radians, between -pi and pi that describe separation in direction of two vectors More...
 
Eigen::MatrixXd pretty (const Eigen::MatrixXd &M, double tol)
 Round entries that are within tol of being integer to that integer value. More...
 
template<typename Derived >
Derived::Scalar triple_product (const Derived &vec0, const Derived &vec1, const Derived &vec2)
 
template<typename Derived >
bool is_integer (const Eigen::MatrixBase< Derived > &M, double tol)
 Check if Eigen::Matrix is integer. More...
 
template<typename Derived >
bool is_unimodular (const Eigen::MatrixBase< Derived > &M, double tol)
 Check if Eigen::Matrix is unimodular. More...
 
template<typename Derived >
bool is_diagonal (const Eigen::MatrixBase< Derived > &M, double tol=TOL)
 Check if Eigen::Matrix is diagonal. More...
 
template<typename Derived >
Eigen::CwiseUnaryOp< decltype(Local::round_l< typename Derived::Scalar >), const Derived > round (const Eigen::MatrixBase< Derived > &val)
 Round Eigen::MatrixXd. More...
 
template<typename Derived >
Eigen::CwiseUnaryOp< decltype(Local::iround_l< typename Derived::Scalar >), const Derived > iround (const Eigen::MatrixBase< Derived > &val)
 Round Eigen::MatrixXd to Eigen::MatrixXi. More...
 
template<typename Derived >
Eigen::CwiseUnaryOp< decltype(Local::lround_l< typename Derived::Scalar >), const Derived > lround (const Eigen::MatrixBase< Derived > &val)
 Round Eigen::MatrixXd to Eigen::MatrixXl. More...
 
template<typename Derived >
Derived::Scalar matrix_minor (const Eigen::MatrixBase< Derived > &M, int row, int col)
 Return the minor of integer Matrix M element row, col. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, Derived::RowsAtCompileTime, Derived::ColsAtCompileTime > cofactor (const Eigen::MatrixBase< Derived > &M)
 Return cofactor matrix. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, Derived::RowsAtCompileTime, Derived::ColsAtCompileTime > adjugate (const Eigen::MatrixBase< Derived > &M)
 Return adjugate matrix. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, Derived::RowsAtCompileTime, Derived::ColsAtCompileTime > inverse (const Eigen::MatrixBase< Derived > &M)
 Return the integer inverse matrix of an invertible integer matrix. More...
 
template<typename DerivedIn , typename DerivedOut >
void smith_normal_form (const Eigen::MatrixBase< DerivedIn > &M, Eigen::MatrixBase< DerivedOut > &U, Eigen::MatrixBase< DerivedOut > &S, Eigen::MatrixBase< DerivedOut > &V)
 Return the smith normal form, M == U*S*V. More...
 
Eigen::Matrix3d polar_decomposition (Eigen::Matrix3d const &mat)
 
std::vector< Eigen::Matrix3i > _unimodular_matrices (bool positive, bool negative, int range=1)
 
const std::vector< Eigen::Matrix3i > & positive_unimodular_matrices ()
 
const std::vector< Eigen::Matrix3i > & negative_unimodular_matrices ()
 
template<int range = 1>
const std::vector< Eigen::Matrix3i > & unimodular_matrices ()
 
int round (double val)
 
template<typename T >
min (const T &A, const T &B)
 
template<typename T >
max (const T &A, const T &B)
 
template<typename T , typename std::enable_if< std::is_floating_point< T >::value, T >::type * = nullptr>
bool almost_zero (const T &val, double tol=TOL)
 If T is not integral, use std::abs(val) < tol;. More...
 
template<typename T , typename std::enable_if< std::is_floating_point< T >::value, T >::type * = nullptr>
bool almost_zero (const std::complex< T > &val, double tol=TOL)
 If std::complex<T>, use std::abs(val) < tol;. More...
 
template<typename T , typename std::enable_if<!std::is_integral< T >::value, T >::type * = nullptr>
bool almost_equal (const T &val1, const T &val2, double tol=TOL)
 If T is not integral, use almost_zero(val1 - val2, tol);. More...
 
template<typename T , typename std::enable_if< std::is_floating_point< T >::value, T >::type * = nullptr>
bool compare (const T &A, const T &B, double tol)
 Floating point comparison with tol, return A < B. More...
 
template<class InputIt1 , class InputIt2 >
bool float_lexicographical_compare (InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, double tol)
 Floating point lexicographical comparison with tol. More...
 
template<typename T , typename std::enable_if< std::is_integral< T >::value, T >::type * = nullptr>
int sgn (T val)
 
template<typename T , typename std::enable_if< std::is_floating_point< T >::value, T >::type * = nullptr>
int float_sgn (T val, double compare_tol=TOL)
 
template<typename IntType >
IntType nchoosek (IntType n, IntType k)
 
template<typename IntType >
std::vector< IntType > index_to_kcombination (IntType ind, IntType k)
 
int dl_string_dist (const std::string &a, const std::string &b)
 Computes the Damerescau-Levenshtein distance – the number of edits (deletions, insertions, transpositions) to go from string 'a' to string 'b'. More...
 
double ran0 (int &idum)
 
int gcf (int i1, int i2)
 Find greatest common factor. More...
 
int lcm (int i1, int i2)
 Find least common multiple. More...
 
template<typename IntType >
IntType extended_gcf (IntType i1, IntType i2, IntType &p1, IntType &p2)
 Calculate greatest common factor of two integers, and bezout coefficients. More...
 
double gaussian (double a, double x, double b, double c)
 
double gaussian_moment (int expon, double sigma)
 
double gaussian_moment (int expon, double sigma, double x0)
 
void nearest_rational_number (double val, long &numerator, long &denominator, double tol=TOL)
 
std::string irrational_to_tex_string (double val, int lim, int max_pow=2)
 
std::string to_sequential_string (Index i, Index max_i, char prepend_char='0')
 
int mod (int a, int b)
 
double cuberoot (double number)
 
template<typename IteratorType >
void swap (FilterIterator< IteratorType > &a, FilterIterator< IteratorType > &b)
 Definitions. More...
 
template<typename IteratorType , typename DataObject >
FilterIterator< IteratorType > filter_begin (IteratorType const &it, IteratorType const &it_end, std::function< bool(typename FilterIterator< IteratorType >::reference)> filter_function)
 
template<typename IteratorType >
FilterIterator< IteratorType > filter_end (IteratorType const &it_end)
 
template<typename T >
ParsingDictionary< T > make_parsing_dictionary ()
 
Eigen::MatrixXd pad (const Eigen::MatrixXd &M, int n)
 Construct a matrix consisting of blocks M and Identity(n,n) More...
 
template<typename T >
std::string type_name ()
 
template<typename Element , typename OpIterator , typename SymCompareType , typename OpOutputIterator >
OpOutputIterator make_invariant_subgroup (Element const &element, OpIterator group_begin, OpIterator group_end, SymCompareType const &sym_compare, OpOutputIterator result)
 Construct the subgroup that leaves an element unchanged. More...
 
template<typename Element , typename SymCompareType , typename OutputIterator >
OutputIterator make_invariant_subgroup (Element const &element, PermuteIterator permute_begin, PermuteIterator permute_end, SymCompareType const &sym_compare, OutputIterator result)
 Construct the subgroup (PermuteIterator) that leaves an element unchanged. More...
 
template<typename Element , typename SymCompareType >
SymGroup make_invariant_subgroup (const Element &element, const SymGroup &generating_grp, const SymCompareType &sym_compare)
 Construct the subgroup that leaves an element unchanged. More...
 
template<typename OrbitType >
SymGroup make_invariant_subgroup (const OrbitType &orbit, Index element_index=0)
 Construct the subgroup that leaves an element of the orbit unchanged. More...
 
template<>
DataFormatterDictionary< SupercellSymInfomake_attribute_dictionary< SupercellSymInfo > ()
 
void write_symop (SymGroup const &grp, Index i, jsonParser &j)
 
void write_symgroup (SymGroup const &grp, jsonParser &json)
 
void write_basis_permutation_rep (SymGroup const &grp, jsonParser &group_rep_json, SymGroupRepID symgrouprep_id)
 Describes how integral site coordinates transform under application of symmetry. More...
 
void write_occ_permutation_rep (SymGroup const &grp, jsonParser &json, std::vector< SymGroupRepID > occupant_symrep_IDs)
 
void write_matrix_rep (SymGroupRepHandle const &grp, jsonParser &json)
 
jsonParserto_json (const SymInfoOptions &opt, jsonParser &json)
 
void from_json (SymInfoOptions &opt, const jsonParser &json)
 Read from JSON. More...
 
void to_json (const SymInfo &info, jsonParser &json)
 Adds to existing JSON object. More...
 
jsonParserto_json (SymRepTools::IrrepInfo const &irrep, jsonParser &json)
 
jsonParserto_json (SymRepTools::SubWedge const &wedge, jsonParser &json)
 
jsonParserto_json (VectorSpaceSymReport const &obj, jsonParser &json)
 
jsonParserto_json (SymRepTools_v2::IrrepInfo const &irrep, jsonParser &json)
 
jsonParserto_json (SymRepTools_v2::SubWedge const &wedge, jsonParser &json)
 
jsonParserto_json (SymRepTools_v2::VectorSpaceSymReport const &obj, jsonParser &json)
 
void print_sym_info (Log &log, const SymInfo &info, SymInfoOptions opt=SymInfoOptions())
 Print SymInfo. More...
 
std::string to_string (const SymInfo &info, SymInfoOptions opt=SymInfoOptions())
 Print SymInfo to string. More...
 
std::string to_brief_unicode (const SymInfo &info, SymInfoOptions opt=SymInfoOptions())
 Print symmetry symbol to string. More...
 
std::string description (const SymOp &op, const xtal::Lattice &lat, SymInfoOptions opt=SymInfoOptions())
 Print SymInfo to string. More...
 
void description (Log &log, const SymGroup &g, const xtal::Lattice &lat, SymInfoOptions opt=SymInfoOptions())
 Print SymGroup with matrix / tau. More...
 
std::string brief_description (const SymOp &op, const xtal::Lattice &lat, SymInfoOptions opt=SymInfoOptions())
 Print SymInfo to brief string. More...
 
void brief_description (Log &log, const SymGroup &g, const xtal::Lattice &lat, SymInfoOptions opt=SymInfoOptions())
 Print SymGroup with brief string. More...
 
SymRepTools_v2::IrrepDecomposition make_irrep_decomposition (SymGroupRep const &rep, SymGroup const &head_group, Eigen::MatrixXd const &_init_subspace, bool allow_complex)
 Make an IrrepDecompotion using CASM::SymGroupRep and CASM::SymGroup. More...
 
template<typename GeneratorIterator , typename SymCompareType , typename OrbitOutputIterator >
OrbitOutputIterator make_orbits (GeneratorIterator gen_begin, GeneratorIterator gen_end, const SymGroup &generating_group, const SymCompareType &sym_compare, OrbitOutputIterator result)
 Iterator over Generators (potential prototypes) and insert resulting orbits into 'result' iterator. More...
 
template<typename OrbitIterator , typename Element >
OrbitIterator find_orbit (OrbitIterator begin, OrbitIterator end, Element e)
 Find orbit containing an element in a range of Orbit. More...
 
template<typename OrbitIterator >
PrototypeIterator< OrbitIterator > prototype_iterator (OrbitIterator orbit_it)
 Convert an Orbit iterator to a prototype iterator. More...
 
template<typename OrbitIterator >
InvariantsIterator< OrbitIterator > invariants_iterator (OrbitIterator orbit_it)
 Convert an Orbit iterator to an invariants iterator. More...
 
template<typename SymCompareType >
std::vector< Orbit< SymCompareType > > generate_orbits (std::vector< typename SymCompareType::Element > const &generating_elements, SymGroup const &generating_group, SymCompareType const &sym_compare)
 Construct orbits from a vector of generating elements. More...
 
template<typename GroupOpIterator , typename SubgroupOpIterator >
MakeSubOrbitGenerators< GroupOpIterator, SubgroupOpIterator > make_suborbit_generators_f (GroupOpIterator group_begin, GroupOpIterator group_end, SubgroupOpIterator subgroup_begin, SubgroupOpIterator subgroup_end)
 
template<typename GroupOpIterator , typename SubgroupOpIterator , typename ElementIterator , typename SymCompareType , typename ElementOutputIterator >
ElementOutputIterator make_suborbit_generators (GroupOpIterator group_begin, GroupOpIterator group_end, SubgroupOpIterator subgroup_begin, SubgroupOpIterator subgroup_end, ElementIterator element_begin, ElementIterator element_end, SymCompareType const &sym_compare, ElementOutputIterator result)
 
std::string hermite_normal_form_name (const Eigen::Matrix3l &matrix)
 
Eigen::Matrix3l make_hermite_normal_form (std::string hermite_normal_form_name)
 
std::string make_supercell_name (SymGroup const &point_group, Lattice const &prim_lattice, Lattice const &supercell_lattice)
 Make the supercell name. More...
 
std::string make_canonical_supercell_name (SymGroup const &point_group, Lattice const &prim_lattice, Lattice const &supercell_lattice)
 Make the canonical supercell name. More...
 
xtal::Superlattice make_superlattice_from_supercell_name (SymGroup const &factor_group, Lattice const &prim_lattice, std::string supercell_name)
 Construct a Superlattice from the supercell name. More...
 
std::pair< MasterSymGroup, SymGroupRepIDmake_collective_dof_symrep (std::set< Index > const &site_indices, SupercellSymInfo const &_syminfo, DoFKey const &_key, std::vector< PermuteIterator > const &_group)
 Make the matrix representation for group '_group' describing the transformation of DoF '_key' among a subset of sites. More...
 
std::map< std::string, std::string > point_group_info (SymGroup const &group)
 return dictionary of point group info: result["centricity"] : "Centric" or "Acentric" result["crystal_system"] : cubic, hexagonal, etc result["international_name"] : Hermann-Mauguin point group name result["name"] : Schoenflies name result["latex_name"] : Schoenflies name (in LaTeX markup) result["space_group_range"] : range of possible space group numbers If group is magnetic, then point group name has form "G1(G2)" where G1 is point group name of entire group (with time-reversal turned of) and G2 is the subgroup of operations that do not effect time reversal. If G1 is identical to G2 (every operation has a time-reversed partner), then the name is G1' does not work for icosahedral groups More...
 
SymGroup molecular_point_group (std::map< int, std::vector< Eigen::Vector3d >> coord_map)
 
MasterSymGroup make_master_sym_group (SymGroup const &_group, Lattice const &_lattice)
 
bool compare_periodic (const SymOp &a, const SymOp &b, const Lattice &lat, PERIODICITY_TYPE periodicity, double _tol)
 
SymOp within_cell (const SymOp &a, const Lattice &lat, PERIODICITY_TYPE periodicity)
 
const SymOp::matrix_typeget_matrix (const SymOp &op)
 
const SymOp::vector_typeget_translation (const SymOp &op)
 
bool get_time_reversal (const SymOp &op)
 
void print_matrix_tau_col (Log &log, const SymOp &op, Index prec)
 Print formatted SymOp matrix and tau. More...
 
VectorSpaceSymReport vector_space_sym_report (SymGroupRep const &_rep, SymGroup const &head_group, Eigen::Ref< const Eigen::MatrixXd > const &_subspace, bool calc_wedges=false)
 Construct the VectorSpaceSymReport for. More...
 
multivector< Eigen::VectorXcd >::X< 2 > special_irrep_directions (SymGroupRep const &_rep, SymGroup const &head_group, double vec_compare_tol)
 Assuming that _rep is an irrep of head_group, find high-symmetry directions throws if _rep is not an irrep. More...
 
multivector< Eigen::VectorXcd >::X< 2 > special_irrep_directions (SymGroupRep const &_rep, SymGroup const &head_group, Eigen::Ref< const Eigen::MatrixXcd > const &_subspace, double vec_compare_tol, bool all_subgroups=false)
 Assuming that _rep is an irrep of head_group, find high-symmetry directions throws if _rep is not an irrep. More...
 
SymRepTools::Symmetrizer irrep_symmetrizer (SymGroupRep const &_rep, const SymGroup &head_group, double vec_compare_tol)
 
SymRepTools::Symmetrizer irrep_symmetrizer (SymGroupRep const &_rep, const SymGroup &head_group, Eigen::Ref< const Eigen::MatrixXcd > const &_subspace, double vec_compare_tol)
 
Index num_blocks (SymGroupRep const &_rep, const SymGroup &head_group)
 counts number of nonzero blocks in matrix representation of head_group as specified by _rep Reveals number of invariant subspaces (with respect to head_group) that comprise the vector space supporting _rep More...
 
Eigen::MatrixXd full_trans_mat (std::vector< SymRepTools::IrrepInfo > const &irreps)
 Assumes that irreps are real, and concatenates their individual trans_mats to form larger trans_mat. More...
 
multivector< Eigen::VectorXd >::X< 3 > special_total_directions (SymGroupRep const &_rep, const SymGroup &head_group)
 finds high-symmetry directions within vector space supporting _rep, wrt symmetry of head_group More...
 
std::vector< std::vector< Eigen::MatrixXd > > special_subspaces (SymGroupRep const &_rep, const SymGroup &head_group)
 finds high-symmetry subspaces within vector space supporting _rep, wrt symmetry of head_group High-symmetry subspaces are closed under the action of a nontrivial subgroup of head_group, without spanning the entire vector space supporting _rep More...
 
std::vector< SymGroupRepIDirrep_IDs (SymGroupRep const &_rep, const SymGroup &head_group)
 Find irrep decomposition of _rep wrt group head_group and returns it as a list of SymGroupRepIDs corresponding to representtions of master_group. More...
 
bool is_irrep (SymGroupRep const &_rep, const SymGroup &head_group)
 Returns true if _rep is irreducible wrt head_group (does not use character table information) More...
 
Eigen::MatrixXd irrep_trans_mat (SymGroupRep const &_rep, const SymGroup &head_group)
 Finds the transformation matrix that block-diagonalizes this representation of head_group into irrep blocks It does not rely on the character table, but instead utilizes a brute-force method This routine additionally orients the resulting basis vectors along high-symmetry directions of the vector space on which they are defined. More...
 
std::pair< Eigen::MatrixXd, std::vector< Eigen::VectorXcd > > irrep_trans_mat_and_characters (SymGroupRep const &_rep, const SymGroup &head_group, SymRepTools::SymmetrizerFunction symmetrizer_func)
 Finds the transformation matrix that block-diagonalizes this representation of head_group into irrep blocks It does not rely on the character table, but instead utilizes a brute-force method. More...
 
std::vector< SymRepTools::IrrepInfoirrep_decomposition (SymGroupRep const &_rep, SymGroup const &head_group, bool allow_complex)
 Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method. More...
 
std::vector< SymRepTools::IrrepInfoirrep_decomposition (SymGroupRep const &_rep, SymGroup const &head_group, Eigen::Ref< const Eigen::MatrixXd > const &_subspace, bool allow_complex)
 Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method. More...
 
std::vector< SymRepTools::IrrepInfoirrep_decomposition (SymGroupRep const &_rep, SymGroup const &head_group, SymRepTools::SymmetrizerFunction const &symmetrizer_func, bool allow_complex)
 Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method. More...
 
std::vector< SymRepTools::IrrepInfoirrep_decomposition (SymGroupRep const &_rep, SymGroup const &head_group, SymRepTools::SymmetrizerFunction const &symmetrizer_func, Eigen::MatrixXd subspace, bool allow_complex)
 Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method. More...
 
SymGroupRep subset_permutation_rep (const SymGroupRep &permute_rep, const std::vector< std::set< Index >> &subsets)
 
SymGroupRep permuted_direct_sum_rep (const SymGroupRep &permute_rep, const std::vector< SymGroupRep const * > &sum_reps)
 
SymGroupRep kron_rep (const SymGroupRep &LHS, const SymGroupRep &RHS)
 
template<typename GeneratorIterator , typename SymCompareType , typename OrbitOutputIterator >
OrbitOutputIterator make_orbits (GeneratorIterator gen_begin, GeneratorIterator gen_end, const SymGroup &generating_group, const SymCompareType &sym_compare, OrbitOutputIterator result, std::ostream &status)
 Generate Orbit<IntegralVector> using OrbitBranchSpecs. More...
 
SymRepTools_v2::VectorSpaceSymReport vector_space_sym_report_v2 (SymGroupRep const &rep, SymGroup const &head_group, Eigen::MatrixXd const &subspace, bool calc_wedges=false)
 Construct VectorSpaceSymReport, using CASM::SymGroupRep and CASM::SymGroup. More...
 
bool almost_equal (VectorInvariants const &A_invariants, VectorInvariants const &B_invariants, double tol)
 Check if VectorInvariants are equal. More...
 
bool compare (VectorInvariants const &A_invariants, VectorInvariants const &B_invariants, double tol)
 Compare ClusterInvariants. More...
 
bool almost_equal (SymRepTools_v2::VectorInvariants const &A_invariants, SymRepTools_v2::VectorInvariants const &B_invariants, double tol)
 
bool compare (SymRepTools_v2::VectorInvariants const &A_invariants, SymRepTools_v2::VectorInvariants const &B_invariants, double tol)
 
std::string include_path (const fs::path &dir)
 
std::string link_path (const fs::path &dir)
 
const std::string & version ()
 
void display (std::ostream &sout, const CompositionAxes &comp_axes)
 
void throw_if_no_root_dir (DirectoryStructure const &dir)
 
void parse (InputParser< ConfigEnumRandomLocalParams > &parser, MTRand &mtrand)
 
void parse (InputParser< ConfigEnumRandomOccupationsParams > &parser, MTRand &mtrand)
 
void parse (InputParser< ConfigEnumSiteDoFsParams > &parser, ConfigEnumInput const &initial_state, AxesCounterParams &axes_params, bool sym_axes_option, bool exclude_homogeneous_modes)
 Parse the ConfigEnumSiteDoFsParams JSON input. More...
 
void require_all_input_have_the_same_number_of_selected_sites (InputParser< std::vector< std::pair< std::string, ConfigEnumInput >>> &parser)
 
void parse (InputParser< ConfigEnumStrainParams > &parser, ConfigEnumInput const &initial_state, AxesCounterParams &axes_params, bool sym_axes_option)
 
void require_valid_sub_configurations (ParentInputParser &parser, DB::Selection< Configuration > const &config_selection, Supercell const &supercell)
 
template std::pair< enum_it_type, runtimelib_it_type > load_enumerator_plugins (ProjectSettings const &set, enum_it_type enum_it, runtimelib_it_type lib_it)
 
std::tuple< std::string, std::string, BasicStructurestandardize_prim (BasicStructure const &prim, bool force)
 
void print_runtime_lib_options_help (std::ostream &sout)
 
void print_monte_help (std::ostream &sout, const po::options_description &desc)
 
void print_monte_desc (std::ostream &sout, const po::options_description &desc)
 
template<typename MCType >
int _initial_POSCAR (PrimClex &primclex, const CommandArgs &args, const Completer::MonteOption &monte_opt)
 
template<typename MCType >
int _final_POSCAR (PrimClex &primclex, const CommandArgs &args, const Completer::MonteOption &monte_opt)
 
template<typename MCType >
int _traj_POSCAR (PrimClex &primclex, const CommandArgs &args, const Completer::MonteOption &monte_opt)
 
template<typename MCType >
int _driver (PrimClex &primclex, const CommandArgs &args, const Completer::MonteOption &monte_opt)
 
int _run_GrandCanonical (PrimClex &primclex, const Monte::MonteSettings &monte_settings, const CommandArgs &args, const Completer::MonteOption &monte_opt)
 
int _run_Canonical (PrimClex &primclex, const Monte::MonteSettings &monte_settings, const CommandArgs &args, const Completer::MonteOption &monte_opt)
 
int perturb_command (const CommandArgs &args)
 
template<typename DataObject >
void _update_query_dict (DataFormatterDictionary< QueryData< DataObject >> &query_dict)
 
template<>
void _update_query_dict< Configuration > (DataFormatterDictionary< QueryData< Configuration >> &query_dict)
 
template<typename DataObject >
void _query_equivalents (DataFormatter< QueryData< DataObject >> &formatter, jsonParser &json, PrimClex const &primclex, DataObject const &object)
 
template<>
void _query_equivalents (DataFormatter< QueryData< Configuration >> &formatter, jsonParser &json, PrimClex const &primclex, Configuration const &object)
 
template<typename DataObject >
void _query_equivalents (DataFormatter< QueryData< DataObject >> &formatter, std::ostream &stream, PrimClex const &primclex, DataObject const &object)
 
template<>
void _query_equivalents (DataFormatter< QueryData< Configuration >> &formatter, std::ostream &stream, PrimClex const &primclex, Configuration const &object)
 
void status_unitialized (const CommandArgs &args)
 
void composition_unselected (const CommandArgs &args)
 
void supercells_ungenerated (const CommandArgs &args)
 
void configs_ungenerated (const CommandArgs &args)
 
void configs_uncalculated (const CommandArgs &args)
 
void references_unset (const CommandArgs &args)
 
void bset_uncalculated (const CommandArgs &args)
 
void eci_uncalculated (const CommandArgs &args)
 
void montecarlo (const CommandArgs &args)
 
void write_prim_symmetry_impl (Structure const &prim, DirectoryStructure const &dir, COORD_TYPE coordtype, bool brief, Log &log, bool print_lattice_point_group, bool print_factor_group, bool print_crystal_point_group)
 
template<>
DoFType::TraitsDictionary make_parsing_dictionary< DoFType::Traits > ()
 
std::vector< std::string > parse_label_template (std::string const &_template)
 
std::string::const_iterator end_of_literal (std::string::const_iterator it, std::string::const_iterator end_it)
 
template<bool IsConst>
void swap (jsonParserIterator< IsConst > &a, jsonParserIterator< IsConst > &b)
 
template void swap< true > (jsonParserIterator< true > &, jsonParserIterator< true > &)
 
template void swap< false > (jsonParserIterator< false > &, jsonParserIterator< false > &)
 
std::vector< int > rand_unique (int n, int c, MTRand &mtrand)
 Choose c random unique numbers in [0,n) More...
 
template<typename ConfigType >
std::string pos_path (const ConfigType &config)
 
Eigen::MatrixXd _composition_space (const ParamComposition::AllowedOccupants &_allowed_occs, double tol)
 Non-orthogonal composition space. More...
 
template<>
VectorXiAttributeDictionary< Configurationmake_vectorxi_dictionary< Configuration > ()
 
template<>
DataFormatterDictionary< Configuration, BaseValueFormatter< jsonParser, Configuration > > make_json_dictionary< Configuration > ()
 
std::ostream & operator<< (std::ostream &sout, const Configuration &c)
 
template<>
ChemicalReferenceState from_json (const jsonParser &json)
 Read ChemicalReferenceState from: '{"A" : X, "B" : X, ..., "energy_per_species" : X }'. More...
 
BasicStructure read_prim (ProjectSettings const &project_settings)
 
std::shared_ptr< Structure const > read_shared_prim (ProjectSettings const &project_settings)
 
Eigen::Matrix3l transf_mat (const Lattice &prim_lat, const Lattice &super_lat, double tol)
 Make superlattice transformation matrix [deprecated]. More...
 
template<>
DataFormatterDictionary< Supercell, BaseValueFormatter< jsonParser, Supercell > > make_json_dictionary< Supercell > ()
 
std::vector< std::string > make_axis_glossary (DoFKey dof_key, xtal::BasicStructure const &prim, std::optional< Eigen::Matrix3l > const &transformation_matrix_to_super, std::optional< std::set< Index >> const &sites)
 The axis_glossary gives names to an un-symmetrized coordinate system. More...
 
void parse (InputParser< DoFSpace > &parser, std::shared_ptr< Structure const > const &shared_prim)
 
void parse_axes_counter_range (InputParser< AxesCounterParams > &parser)
 
void parse_axes_from_object (InputParser< AxesCounterParams > &parser, Index dof_space_dimension)
 
void parse_axes_from_array (InputParser< AxesCounterParams > &parser, Index dof_space_dimension)
 
void parse_dof_space_axes (InputParser< AxesCounterParams > &parser, Index dof_space_dimension)
 
Index which_unique_combination (const Array< Index > &input, const Array< Array< Index > > &unique, const Array< Array< Index > > &ind_equiv)
 
Index which_unique_combination (const Array< Index > &input, const Array< Array< Index > > &unique)
 
std::string sym_line (const xtal::Coordinate &axis, const xtal::Coordinate &point, SymInfoOptions opt)
 Use axis and invariant point to return line in '0, y, 0'-type notation. More...
 
std::string sym_plane (const xtal::Coordinate &v1, const xtal::Coordinate &v2, const xtal::Coordinate &point, SymInfoOptions opt)
 Use two perpendicular vectors in plane and invariant point to return plane in 'x, y, 0'-type notation. More...
 
std::string sym_plane (const xtal::Coordinate &axis, const xtal::Coordinate &point, SymInfoOptions opt)
 Use axis and invariant point to return plane in 'x, y, 0'-type notation. More...
 
template SymGroup make_sym_group (PermuteIterator begin, PermuteIterator end, const Lattice &supercell_lattice)
 
template SymGroup make_sym_group (std::vector< PermuteIterator >::const_iterator begin, std::vector< PermuteIterator >::const_iterator end, const Lattice &supercell_lattice)
 
template SymGroup make_sym_group (std::vector< PermuteIterator >::iterator begin, std::vector< PermuteIterator >::iterator end, const Lattice &supercell_lattice)
 
template SymGroup make_point_group (PermuteIterator begin, PermuteIterator end, const Lattice &supercell_lattice)
 
template SymGroup make_point_group (std::vector< PermuteIterator >::const_iterator begin, std::vector< PermuteIterator >::const_iterator end, const Lattice &supercell_lattice)
 
template SymGroup make_point_group (std::vector< PermuteIterator >::iterator begin, std::vector< PermuteIterator >::iterator end, const Lattice &supercell_lattice)
 
void swap (PermuteIterator &a, PermuteIterator &b)
 
std::vector< Permutationmake_translation_permutations (const Eigen::Matrix3l &transformation_matrix, int basis_sites_in_prim)
 
SymGroupRepID make_permutation_representation (const SymGroup &group, const xtal::UnitCellCoordIndexConverter &bijk_index_converter, const Lattice &prim_lattice, const SymGroupRepID &prim_symrep_ID)
 
std::string recast (ARG_TYPE atype)
 
void subopt_test ()
 
void opt_test ()
 
void opt_test2 ()
 
void po_test ()
 
Option generate_option (std::string postfix, char beginshort)
 
void engine_test ()
 
void argtype_test ()
 
void property_test ()
 
fs::path find_casmroot (const fs::path &cwd)
 
fs::path relative_casmroot (const fs::path &cwd)
 
void recurs_rm_files (fs::path p, bool dry_run, Log &log)
 Remove files recursively. More...
 
Index recurs_cp_files (const fs::path &from_dir, const fs::path &to_dir, bool dry_run, Log &log)
 Copy files recursively, and returns a count of copied files. More...
 
void throw_if_no_basis_set_specs (std::string basis_set_name, DirectoryStructure const &dir)
 
void throw_if_no_clexulator_src (std::string project_name, std::string basis_set_name, DirectoryStructure const &dir)
 
template<typename K , typename V >
jsonParserto_json (const std::map< K, V > &map, jsonParser &json)
 Converts to a JSON object. More...
 
template<typename K , typename V >
void from_json (std::map< K, V > &map, const jsonParser &json)
 
template<typename T , typename... Args>
jsonParserto_json (const std::map< std::string, T > &map, jsonParser &json, Args &&... args)
 Converts to a JSON object. More...
 
template<typename T , typename... Args>
void from_json (std::map< std::string, T > &map, const jsonParser &json, Args &&... args)
 
template<typename T , typename... Args>
jsonParserto_json (const std::vector< T > &vec, jsonParser &json, Args &&... args)
 Converts to a JSON array. More...
 
template<typename T , typename... Args>
void from_json (std::vector< T > &vec, const jsonParser &json, Args &&... args)
 
template<typename T >
void from_json (std::vector< T > &vec, const jsonParser &json, const T &initial)
 
template<typename T , std::size_t N>
jsonParserto_json (const std::array< T, N > &arr, jsonParser &json)
 Converts to a JSON array. More...
 
template<typename T , std::size_t N>
void from_json (std::array< T, N > &arr, const jsonParser &json)
 
template<typename T , typename Compare >
jsonParserto_json (const std::set< T, Compare > &set, jsonParser &json)
 Converts to a JSON array. More...
 
template<typename T , typename Compare , typename... Args>
void from_json (std::set< T, Compare > &set, const jsonParser &json, Args &&... args)
 
template<typename T , typename Compare >
jsonParserto_json (const std::unordered_set< T, Compare > &set, jsonParser &json)
 Converts to a JSON array. More...
 
template<typename T , typename Compare , typename... Args>
void from_json (std::unordered_set< T, Compare > &set, const jsonParser &json, Args &&... args)
 
template<typename Derived >
CASM::jsonParserto_json (const Eigen::MatrixBase< Derived > &value, CASM::jsonParser &json)
 Write Eigen Matrix/Vector to JSON. More...
 
template<typename Derived >
CASM::jsonParserto_json (const Eigen::MatrixBase< Derived > &value, CASM::jsonParser &json, CASM::jsonParser::as_array)
 Write Eigen Matrix/Vector to JSON. More...
 
template<typename Derived >
CASM::jsonParserto_json (const Eigen::MatrixBase< Derived > &value, CASM::jsonParser &json, CASM::jsonParser::as_flattest)
 Write Eigen Matrix/Vector to JSON. More...
 
template<typename Derived >
CASM::jsonParserto_json_array (const Eigen::MatrixBase< Derived > &value, CASM::jsonParser &json)
 Write Eigen Matrix with 1 row or 1 column to JSON array. More...
 
template<typename Derived >
CASM::jsonParser to_json_array (const Eigen::MatrixBase< Derived > &value)
 Write Eigen Matrix with 1 row or 1 column to JSON array. More...
 
template<typename Derived >
void from_json (Eigen::MatrixBase< Derived > &value, const CASM::jsonParser &json)
 Read Eigen Matrix/Vector from JSON. More...
 
std::ostream & operator<< (std::ostream &sout, const BasicClexParamPack::EvalMode &val)
 
std::istream & operator>> (std::istream &sin, BasicClexParamPack::EvalMode &val)
 
ChemicalReference auto_chemical_reference (const PrimClex &primclex, double lin_alg_tol)
 Automatically set ChemicalReference using calculated Configurations with 'extreme' compositions. More...
 
std::ostream & operator<< (std::ostream &sout, const DiffClexParamPack::EvalMode &val)
 
std::istream & operator>> (std::istream &sin, DiffClexParamPack::EvalMode &val)
 
jsonParserto_json (const ChemicalReferenceState &ref_state, jsonParser &json)
 Write ChemicalReferenceState to: '{"A" : X, "B" : X, ..., "energy_per_species" : X }'. More...
 
template<>
ChemicalReferenceState from_json< ChemicalReferenceState > (const jsonParser &json)
 Read ChemicalReferenceState from: '{"A" : X, "B" : X, ..., "energy_per_species" : X }'. More...
 
void from_json (ChemicalReferenceState &ref_state, const jsonParser &json)
 Read ChemicalReferenceState from: '{"A" : X, "B" : X, ..., "energy_per_species" : X }'. More...
 
jsonParserto_json (const HyperPlaneReference &ref, jsonParser &json)
 
void from_json (HyperPlaneReference &ref, const jsonParser &json, HyperPlaneReference::InputFunction f)
 
jsonParserto_json (const ChemicalReference &ref, jsonParser &json)
 Write chemical reference. More...
 
std::pair< Eigen::VectorXd, std::vector< ChemicalReferenceState > > one_chemical_reference_from_json (xtal::BasicStructure const &prim, jsonParser const &json)
 Read chemical reference from one of 3 alternative forms. More...
 
void from_json (ChemicalReference &ref, jsonParser const &json, xtal::BasicStructure const &prim, double tol=1e-14)
 Read chemical reference from JSON. More...
 
template<typename CounterType >
std::ostream & operator<< (std::ostream &stream, const MultiCounter< CounterType > &counter)
 
template<bool IsConst>
void from_json (const SimpleJSonSiteStructure< IsConst > &jstruc, const jsonParser &json)
 
template<bool IsConst>
jsonParserto_json (const SimpleJSonSiteStructure< IsConst > &jstruc, jsonParser &json)
 
SimpleJSonSiteStructure< true > simple_json (const BasicStructure &struc, const std::string &prefix)
 
SimpleJSonSiteStructure< false > simple_json (BasicStructure &struc, const std::string &prefix)
 
std::vector< std::vector< Index > > make_index_converter (const Structure &struc, std::vector< xtal::Molecule > mol_list)
 
std::vector< std::vector< Index > > make_index_converter (const Structure &struc, std::vector< std::string > mol_name_list)
 
std::vector< std::vector< Index > > make_index_converter_inverse (const Structure &struc, std::vector< std::string > mol_name_list)
 
std::map< DoFKey, CASM::DoFSetInfoglobal_dof_info (Structure const &_struc)
 
std::map< DoFKey, std::vector< CASM::DoFSetInfo > > local_dof_info (Structure const &_struc)
 
SupercellSymInfo make_supercell_sym_info (Structure const &prim, Lattice const &super_lattice)
 
template<typename IterType >
IterType begin_next_fg_op (IterType it, IterType end)
 
template<typename PermuteIteratorContainer >
SymGroup make_point_group (const PermuteIteratorContainer &container, const Lattice &supercell_lattice)
 Returns a SymGroup generated from a container of PermuteIterator. More...
 
template<typename PermuteIteratorIt >
SymGroup make_point_group (PermuteIteratorIt begin, PermuteIteratorIt end, const Lattice &supercell_lattice)
 Returns a SymGroup generated from a range of PermuteIterator. More...
 
template<typename PermuteIteratorContainer >
SymGroup make_sym_group (const PermuteIteratorContainer &container, const Lattice &supercell_lattice)
 Returns a SymGroup generated from a container of PermuteIterator. More...
 
template<typename PermuteIteratorIt >
SymGroup make_sym_group (PermuteIteratorIt begin, PermuteIteratorIt end, const Lattice &supercell_lattice)
 Returns a SymGroup generated from a range of PermuteIterator. More...
 
template<typename PermuteIteratorContainer >
std::unique_ptr< SymGroupmake_unique_sym_group (const PermuteIteratorContainer &container, const Lattice &supercell_lattice)
 Returns a std::unique_ptr<SymGroup> generated from a container of PermuteIterator. More...
 
template<typename PermuteIteratorIt >
std::unique_ptr< SymGroupmake_unique_sym_group (PermuteIteratorIt begin, PermuteIteratorIt end, const Lattice &supercell_lattice)
 Returns a SymGroup generated from a range of PermuteIterator. More...
 
bool site_indices_are_invariant (PermuteIterator const &permute_it, std::set< Index > const &site_indices)
 Return true if the permutation does not mix given sites and other sites. More...
 
jsonParserto_json (const PermuteIterator &clust, jsonParser &json)
 
SymGroupRep coord_transformed_copy (SymGroupRep const &_rep, const Eigen::MatrixXd &trans_mat)
 Make a copy of representation on vector space 'V' that is transformed into a representation on vector space 'W' 'trans_mat' is the unitary matrix that isomorphically maps 'V'->'W' (i.e., [w = trans_mat * v] and [v = trans_mat.transpose() * w] ) If the original representation to be transformed is just a temporary standalone SymGroupRep, be sure to delete it before falling out of scope. More...
 
bool operator== (SymGroupRepID const &a, SymGroupRepID const &b)
 Compares true if group_index() and rep_index() are equal. More...
 
bool operator!= (SymGroupRepID const &a, SymGroupRepID const &b)
 Compares false if group_index() and rep_index() are equal. More...
 
bool operator< (SymGroupRepID const &a, SymGroupRepID const &b)
 Less-than comparison for use in STL containers (std::set, std::map, etc) More...
 
jsonParserto_json (SymGroupRepID const &_id, jsonParser &json)
 
jsonParser const & from_json (SymGroupRepID &_id, jsonParser const &json)
 
std::ostream & operator<< (std::ostream &out, SymGroupRepID const &_id)
 

Variables

const double TOL = 0.00001
 
const double KB = 8.6173423E-05
 
const double PLANCK = 4.135667516E-15
 
const COORD_TYPE FRAC = COORD_TYPE::FRAC
 
const COORD_TYPE CART = COORD_TYPE::CART
 
const COORD_TYPE INTEGRAL = COORD_TYPE::INTEGRAL
 
const COORD_TYPE COORD_DEFAULT = COORD_TYPE::COORD_DEFAULT
 
const PERIODICITY_TYPE PERIODIC = PERIODICITY_TYPE::PERIODIC
 
const PERIODICITY_TYPE LOCAL = PERIODICITY_TYPE::LOCAL
 
const PERIODICITY_TYPE PERIODICITY_DEFAULT
 
const CELL_TYPE PRIM = CELL_TYPE::PRIM
 
const CELL_TYPE SCEL = CELL_TYPE::SCEL
 
const std::string subproject_opt = "sub"
 
const std::string write_prim_opt = "write-prim"
 
const std::string relaxed_opt = "relaxed"
 
const std::string molecule_opt = "as-molecules"
 
const std::string include_va_opt = "include-va"
 

Typedef Documentation

◆ AperiodicIntegralClusterOrbit

◆ AperiodicOrbit

template<typename Element >
using CASM::AperiodicOrbit = typedef Orbit<AperiodicSymCompare<Element> >

Definition at line 38 of file ClusterSymCompareDecl.hh.

◆ ARG_TYPE

Definition at line 10 of file complete_tests.cpp.

◆ CandidateSitesFunction

typedef std::function<std::vector<xtal::UnitCellCoord>Structure const &, SiteFilterFunction)> CASM::CandidateSitesFunction

A CandidateSitesFunction generates a vector of UnitCellCoord from a Structure and SiteFilterFuntion

Definition at line 47 of file ClusterOrbits.hh.

◆ ClusterFilterFunction

typedef std::function<bool(IntegralCluster)> CASM::ClusterFilterFunction

A ClusterFilterFunction returns true if an IntegralCluster should be included and false if it should be excluded

Definition at line 41 of file ClusterOrbits.hh.

◆ Comparisons

template<typename Base >
using CASM::Comparisons = typedef notstd::Comparisons<Base>

Definition at line 51 of file Comparisons.hh.

◆ ConfigCompare

◆ CRTPBase

template<typename MostDerived >
using CASM::CRTPBase = typedef notstd::CRTPBase<MostDerived>

Definition at line 24 of file CRTPBase.hh.

◆ DoFKey

typedef std::string CASM::DoFKey

Definition at line 7 of file DoFDecl.hh.

◆ EigenIndex

typedef Eigen::MatrixXd::Index CASM::EigenIndex

Definition at line 7 of file eigen.hh.

◆ enable_if_t

template<bool B, class T = void>
using CASM::enable_if_t = typedef typename std::enable_if<B, T>::type

Definition at line 18 of file CASM_TMP.hh.

◆ EnumInterfaceVector

◆ FullOrbitPrinter

template<typename _Element >
using CASM::FullOrbitPrinter = typedef OrbitPrinter<_Element, ORBIT_PRINT_MODE::FULL>

Definition at line 155 of file OrbitPrinter.hh.

◆ FullSitesPrinter

◆ Index

For long integer indexing:

Definition at line 39 of file definitions.hh.

◆ InfoInterfaceVector

◆ InvariantsIterator

template<typename OrbitIterator >
using CASM::InvariantsIterator = typedef boost::transform_iterator<GetInvariants, OrbitIterator>

Definition at line 223 of file Orbit.hh.

◆ lint

typedef long int CASM::lint

Definition at line 27 of file definitions.hh.

◆ LocalIntegralClusterOrbit

◆ LocalOrbit

template<typename Element >
using CASM::LocalOrbit = typedef AperiodicOrbit<Element>

Definition at line 41 of file ClusterSymCompareDecl.hh.

◆ LocalSymCompare

template<typename Element , typename U = void>
using CASM::LocalSymCompare = typedef AperiodicSymCompare<Element, U>

Definition at line 25 of file ClusterSymCompareDecl.hh.

◆ Matrix3d

typedef Eigen::Matrix3d CASM::Matrix3d

Definition at line 31 of file StrainConverter.hh.

◆ MatrixXd

typedef Eigen::MatrixXd CASM::MatrixXd

Definition at line 30 of file StrainConverter.hh.

◆ PrimPeriodicIntegralClusterOrbit

◆ PrimPeriodicOrbit

template<typename Element >
using CASM::PrimPeriodicOrbit = typedef Orbit<PrimPeriodicSymCompare<Element> >

Definition at line 47 of file ClusterSymCompareDecl.hh.

◆ ProtoSitesPrinter

◆ PrototypeIterator

template<typename OrbitIterator >
using CASM::PrototypeIterator = typedef boost::transform_iterator<GetPrototype, OrbitIterator>

Definition at line 205 of file Orbit.hh.

◆ PrototypePrinter

template<typename _Element >
using CASM::PrototypePrinter = typedef OrbitPrinter<_Element, ORBIT_PRINT_MODE::PROTO>

Definition at line 131 of file OrbitPrinter.hh.

◆ Reference

Definition at line 18 of file Reference.hh.

◆ ScelPeriodicIntegralClusterOrbit

◆ ScelPeriodicOrbit

template<typename Element >
using CASM::ScelPeriodicOrbit = typedef Orbit<ScelPeriodicSymCompare<Element> >

Definition at line 44 of file ClusterSymCompareDecl.hh.

◆ SiteFilterFunction

typedef std::function<bool(xtal::Site)> CASM::SiteFilterFunction

A SiteFilterFunction returns true if a Site should be included and false if it should be excluded

Definition at line 37 of file ClusterOrbits.hh.

◆ SitesPrinter

Definition at line 106 of file OrbitPrinter.hh.

◆ STRAIN_METRIC

Definition at line 35 of file StrainConverter.hh.

◆ SymRepBuilderBase

Definition at line 82 of file SymRepBuilder.hh.

◆ TimeReversalSymRepBuilderBase

Definition at line 84 of file SymRepBuilder.hh.

◆ uint

typedef unsigned int CASM::uint

Definition at line 25 of file definitions.hh.

◆ ulint

typedef unsigned long int CASM::ulint

Definition at line 26 of file definitions.hh.

◆ VectorXd

typedef Eigen::VectorXd CASM::VectorXd

Definition at line 29 of file StrainConverter.hh.

Enumeration Type Documentation

◆ CELL_TYPE

enum CASM::CELL_TYPE
strong
Enumerator
PRIM 
SCEL 

Definition at line 27 of file enum.hh.

◆ CLUSTER_PERIODICITY_TYPE

enum CASM::CLUSTER_PERIODICITY_TYPE : int
strong
Enumerator
PRIM_PERIODIC 
APERIODIC 
LOCAL 
WITHIN_SCEL 
SCEL_PERIODIC 

Definition at line 8 of file ClusterSymCompareDecl.hh.

◆ COMPOSITION_TYPE

Enumerator
PARAM_COMP 
NUMBER_ATOMS 

Definition at line 12 of file ParamComposition.hh.

◆ COORD_TYPE

enum CASM::COORD_TYPE
strong
Enumerator
FRAC 
CART 
INTEGRAL 
COORD_DEFAULT 

Definition at line 6 of file enum.hh.

◆ DatumFormatterClass

Enumerator
Property 
Operator 

Definition at line 321 of file DataFormatter.hh.

◆ EQUIVALENCE_TYPE

Enumerator
PRIM 
SCEL 
CONFIG 

Definition at line 25 of file enum.hh.

◆ JustificationType

Enumerator
Left 
Right 
Center 
Full 

Definition at line 17 of file Log.hh.

◆ OnError

enum CASM::OnError
strong

Standard Error handling options:

THROW: Throw an exception WARN: Print warning message, and continue CONTINUE: Continue quietly

Enumerator
THROW 
WARN 
CONTINUE 

Definition at line 37 of file enum.hh.

◆ ORBIT_PRINT_MODE

Enumerator
PROTO 
FULL 

Definition at line 18 of file OrbitPrinter.hh.

◆ PARAM_PACK_TYPE

enum CASM::PARAM_PACK_TYPE
strong

Specify the Clexulator underlying data structure type.

Choices:

  • DEFAULT: For BasisClexParamPack, the default.
  • DIFF: For DiffClexParamPack, to make use of FADBAD++ automatic differentiation library
Enumerator
DEFAULT 
DIFF 

Definition at line 22 of file BasisFunctionSpecs.hh.

◆ PERIODICITY_TYPE

enum CASM::PERIODICITY_TYPE : int
strong
Enumerator
PERIODIC 
APERIODIC 
LOCAL 
PERIODICITY_DEFAULT 

Definition at line 13 of file enum.hh.

Function Documentation

◆ _composition_space()

Eigen::MatrixXd CASM::_composition_space ( const ParamComposition::AllowedOccupants _allowed_occs,
double  tol 
)

Non-orthogonal composition space.

Definition at line 578 of file CompositionConverter.cc.

◆ _driver()

template<typename MCType >
int CASM::_driver ( PrimClex primclex,
const CommandArgs args,
const Completer::MonteOption monte_opt 
)

Definition at line 292 of file monte.cc.

◆ _final_POSCAR()

template<typename MCType >
int CASM::_final_POSCAR ( PrimClex primclex,
const CommandArgs args,
const Completer::MonteOption monte_opt 
)

Definition at line 250 of file monte.cc.

◆ _initial_POSCAR()

template<typename MCType >
int CASM::_initial_POSCAR ( PrimClex primclex,
const CommandArgs args,
const Completer::MonteOption monte_opt 
)

Definition at line 229 of file monte.cc.

◆ _orbit_max_poly_order()

template<typename OrbitType >
Index CASM::_orbit_max_poly_order ( OrbitType const &  orbit,
BasisFunctionSpecs const &  basis_function_specs 
)

allow basis_function_specs to specify max_poly_order by branch, orbit, etc.

Definition at line 21 of file ClexBasis_impl.hh.

◆ _query_equivalents() [1/4]

template<>
void CASM::_query_equivalents ( DataFormatter< QueryData< Configuration >> &  formatter,
jsonParser json,
PrimClex const &  primclex,
Configuration const &  object 
)

Definition at line 389 of file query.cc.

◆ _query_equivalents() [2/4]

template<>
void CASM::_query_equivalents ( DataFormatter< QueryData< Configuration >> &  formatter,
std::ostream &  stream,
PrimClex const &  primclex,
Configuration const &  object 
)

Definition at line 414 of file query.cc.

◆ _query_equivalents() [3/4]

template<typename DataObject >
void CASM::_query_equivalents ( DataFormatter< QueryData< DataObject >> &  formatter,
jsonParser json,
PrimClex const &  primclex,
DataObject const &  object 
)

Definition at line 379 of file query.cc.

◆ _query_equivalents() [4/4]

template<typename DataObject >
void CASM::_query_equivalents ( DataFormatter< QueryData< DataObject >> &  formatter,
std::ostream &  stream,
PrimClex const &  primclex,
DataObject const &  object 
)

Definition at line 404 of file query.cc.

◆ _run_Canonical()

int CASM::_run_Canonical ( PrimClex primclex,
const Monte::MonteSettings monte_settings,
const CommandArgs args,
const Completer::MonteOption monte_opt 
)

Definition at line 434 of file monte.cc.

◆ _run_GrandCanonical()

int CASM::_run_GrandCanonical ( PrimClex primclex,
const Monte::MonteSettings monte_settings,
const CommandArgs args,
const Completer::MonteOption monte_opt 
)

Definition at line 308 of file monte.cc.

◆ _traj_POSCAR()

template<typename MCType >
int CASM::_traj_POSCAR ( PrimClex primclex,
const CommandArgs args,
const Completer::MonteOption monte_opt 
)

Definition at line 271 of file monte.cc.

◆ _update_query_dict()

template<typename DataObject >
void CASM::_update_query_dict ( DataFormatterDictionary< QueryData< DataObject >> &  query_dict)

Definition at line 224 of file query.cc.

◆ _update_query_dict< Configuration >()

Definition at line 228 of file query.cc.

◆ alias()

template<typename DataObject >
GenericDatumFormatter<std::string, DataObject> CASM::alias ( )

Definition at line 931 of file DataFormatterTools.hh.

◆ alias_or_name()

template<typename DataObject >
GenericDatumFormatter<std::string, DataObject> CASM::alias_or_name ( )

Definition at line 944 of file DataFormatterTools.hh.

◆ all_clusters_filter()

ClusterFilterFunction CASM::all_clusters_filter ( )

Accept all clusters.

Definition at line 493 of file ClusterSpecs.cc.

◆ all_sites_filter()

bool CASM::all_sites_filter ( const xtal::Site site)

Generate clusters using all Site.

Definition at line 476 of file ClusterSpecs.cc.

◆ alloy_sites_filter()

bool CASM::alloy_sites_filter ( const xtal::Site site)

Generate clusters using Site with site_occupant.size() > 1.

Definition at line 479 of file ClusterSpecs.cc.

◆ almost_equal() [1/6]

bool CASM::almost_equal ( ClusterInvariants const &  A,
ClusterInvariants const &  B,
double  tol 
)

Check if ClusterInvariants are equal.

Definition at line 36 of file ClusterInvariants.cc.

◆ almost_equal() [2/6]

template<typename T >
bool CASM::almost_equal ( const Array< T > &  A,
const Array< T > &  B,
double  tol = TOL 
)

Definition at line 76 of file CASM_Array_math.hh.

◆ almost_equal() [3/6]

template<typename T , typename std::enable_if<!std::is_integral< T >::value, T >::type * = nullptr>
bool CASM::almost_equal ( const T &  val1,
const T &  val2,
double  tol = TOL 
)

If T is not integral, use almost_zero(val1 - val2, tol);.

If T is integral type, use val1 == val2;.

Definition at line 127 of file CASM_math.hh.

◆ almost_equal() [4/6]

bool CASM::almost_equal ( SymRepTools_v2::VectorInvariants const &  A_invariants,
SymRepTools_v2::VectorInvariants const &  B_invariants,
double  tol 
)

Definition at line 19 of file VectorSymCompare_v2.cc.

◆ almost_equal() [5/6]

bool CASM::almost_equal ( VectorInvariants const &  A_invariants,
VectorInvariants const &  B_invariants,
double  tol 
)

Check if VectorInvariants are equal.

Definition at line 12 of file VectorSymCompare.cc.

◆ almost_equal() [6/6]

bool CASM::almost_equal ( WithinScelClusterInvariants const &  A,
WithinScelClusterInvariants const &  B,
double  tol 
)

Check if WithinScelClusterInvariants are equal.

Check if ClusterInvariants are equal.

Definition at line 113 of file ClusterInvariants.cc.

◆ almost_zero() [1/2]

template<typename T , typename std::enable_if< std::is_floating_point< T >::value, T >::type * = nullptr>
bool CASM::almost_zero ( const std::complex< T > &  val,
double  tol = TOL 
)
inline

If std::complex<T>, use std::abs(val) < tol;.

Definition at line 111 of file CASM_math.hh.

◆ almost_zero() [2/2]

template<typename T , typename std::enable_if< std::is_floating_point< T >::value, T >::type * = nullptr>
bool CASM::almost_zero ( const T &  val,
double  tol = TOL 
)
inline

If T is not integral, use std::abs(val) < tol;.

If T is integral, val == 0;.

Definition at line 104 of file CASM_math.hh.

◆ always_true()

template<typename T >
bool CASM::always_true ( const T &  )

Definition at line 29 of file DataFormatterDecl.hh.

◆ apply()

template<typename Object , typename Transform , typename... Args>
Object& CASM::apply ( const Transform &  f,
Object &  obj,
Args &&...  args 
)

Apply a transformation, in place

  • Default is equivalent to
    obj.apply_sym(f, args...)

Definition at line 83 of file definitions.hh.

◆ argtype_test()

void CASM::argtype_test ( )

Definition at line 187 of file complete_tests.cpp.

◆ atom_site_compatibility()

std::vector< std::set< Index > > CASM::atom_site_compatibility ( xtal::SimpleStructure const &  sstruc,
Configuration const &  _config 
)

Determine which sites of a Configuration can host each atom of a SimpleStructure result[i] is set of site indices in.

Parameters
_configthat can host atom 'i' of
sstruc

Definition at line 111 of file SimpleStructureTools.cc.

◆ auto_chemical_reference()

ChemicalReference CASM::auto_chemical_reference ( const PrimClex primclex,
double  lin_alg_tol 
)

Automatically set ChemicalReference using calculated Configurations with 'extreme' compositions.

Definition at line 405 of file ChemicalReference.cc.

◆ begin_next_fg_op()

template<typename IterType >
IterType CASM::begin_next_fg_op ( IterType  it,
IterType  end 
)

Iterator to next beginning of next factor group operation skipping all of the intervening operations that differ only by a translation

Definition at line 165 of file PermuteIterator.hh.

◆ brief_description() [1/2]

std::string CASM::brief_description ( const SymOp op,
const xtal::Lattice lat,
SymInfoOptions  opt = SymInfoOptions() 
)

Print SymInfo to brief string.

Definition at line 489 of file SymInfo_stream_io.cc.

◆ brief_description() [2/2]

void CASM::brief_description ( Log log,
const SymGroup g,
const xtal::Lattice lat,
SymInfoOptions  opt 
)

Print SymGroup with brief string.

Print SymGroup with brief strings.

Uses indexing starting at 1 Format: <group index> (master group index): <symmetry operation> The master group index is only printed when some differ from the group index.

Definition at line 501 of file SymInfo_stream_io.cc.

◆ bset_uncalculated()

void CASM::bset_uncalculated ( const CommandArgs args)

Definition at line 232 of file status.cc.

◆ build_project()

void CASM::build_project ( ProjectSettings const &  project_settings,
Structure const &  prim 
)

Build a CASM project directory tree and populate with standard files

Notes:

  • The project is built at project_settings.root_dir()
  • Throws if !project_settings.has_dir()
  • Throws if a CASM project already exists at that location (subprojects are OK)

Definition at line 21 of file ProjectBuilder.cc.

◆ calc_properties_path() [1/2]

template<typename ConfigType >
std::string CASM::calc_properties_path ( const ConfigType &  config,
std::string  calctype = "" 
)

Definition at line 197 of file Calculable.cc.

◆ calc_properties_path() [2/2]

std::string CASM::calc_properties_path ( const PrimClex primclex,
const std::string &  configname,
std::string  calctype = "" 
)

Definition at line 228 of file Calculable.cc.

◆ calc_status()

template<typename ConfigType >
std::string CASM::calc_status ( const ConfigType &  _config,
std::string  calctype = "" 
)

Status of calculation.

Definition at line 153 of file Calculable.cc.

◆ calc_status_path() [1/2]

template<typename ConfigType >
std::string CASM::calc_status_path ( const ConfigType &  config,
std::string  calctype = "" 
)

Definition at line 211 of file Calculable.cc.

◆ calc_status_path() [2/2]

std::string CASM::calc_status_path ( const PrimClex primclex,
const std::string &  configname,
std::string  calctype = "" 
)

Definition at line 241 of file Calculable.cc.

◆ cerr_log()

Log& CASM::cerr_log ( )
inline

Definition at line 433 of file Log.hh.

◆ clex_exists()

bool CASM::clex_exists ( const DirectoryStructure dir,
const ClexDescription desc 
)

Definition at line 71 of file ClexDescription.cc.

◆ colmajor_lex_compare()

template<typename Derived >
bool CASM::colmajor_lex_compare ( const Eigen::MatrixBase< Derived > &  A,
const Eigen::MatrixBase< Derived > &  B,
double  tol 
)

Floating point lexicographical comparison with tol.

Definition at line 54 of file CASM_Eigen_math.hh.

◆ combine_configuration_enum_json_options()

jsonParser CASM::combine_configuration_enum_json_options ( jsonParser const &  json_options,
jsonParser const &  cli_options_as_json 
)

A standard approach to combine CLI options with user JSON options into one JSON document

A standard approach to combine CLI options with user JSON options into one JSON document

Not all configuration enumerator interfaces need to incorporate the CLI output using this method, but it is the most common way to do so.

"min": <int, min supercell volume to do enumerations>, "max": <int, max supercell volume to do enumerations>, "scelnames": <array of string, list of supercell names, context dependent usage>, "confignames": <array of string, list of config names, context dependent usage>, "all": <bool, use all existing supercells for enumeration, ignore other inputs>, "filter": <array of string, filter query/select expression, save configs if evaluates true>, "verbosity": <string, to be read by Log::verbosity_level>, "dry_run": <bool, print/return method results but do not save results>

"min": <int, min supercell volume to do enumerations>, "max": <int, max supercell volume to do enumerations>, "scelnames": <array of string, list of supercell names, context dependent usage>, "confignames": <array of string, list of config names, context dependent usage>, "all": <bool, use all existing supercells for enumeration, ignore other inputs>, "filter": <array of string, filter query/select expression, save configs if evaluates true>, "verbosity": <string, to be read by Log::verbosity_level>, "dry_run": <bool, print/return method results but do not save results>

Definition at line 16 of file enumerate_configurations_json_io.cc.

◆ combine_json_options()

jsonParser & CASM::combine_json_options ( std::map< std::string, std::string > const &  source_to_combined_keys,
jsonParser const &  json_source,
jsonParser json_combined 
)

Copy from json_source to json_combined

Definition at line 8 of file json_io.cc.

◆ combine_supercell_enum_json_options()

jsonParser CASM::combine_supercell_enum_json_options ( jsonParser const &  json_options,
jsonParser const &  cli_options_as_json 
)

A standard approach to combine CLI options with user JSON options into one JSON document

A standard approach to combine CLI options with user JSON options into one JSON document

Not all supercell enumerator interfaces need to incorporate the CLI output using this method, but it is the most common way to do so (only way currently).

Definition at line 16 of file enumerate_supercells_json_io.cc.

◆ compare() [1/5]

bool CASM::compare ( ClusterInvariants const &  A,
ClusterInvariants const &  B,
double  tol 
)

Compare ClusterInvariants.

Returns
True if A < B, to specified tolerance
  • First compares by number of sites in cluster
  • Then compare all displacements, from longest to shortest

Definition at line 52 of file ClusterInvariants.cc.

◆ compare() [2/5]

template<typename T , typename std::enable_if< std::is_floating_point< T >::value, T >::type * = nullptr>
bool CASM::compare ( const T &  A,
const T &  B,
double  tol 
)

Floating point comparison with tol, return A < B.

Implements:

if(!almost_equal(A,B,tol)) { return A < B; }
return false;
bool almost_equal(ClusterInvariants const &A, ClusterInvariants const &B, double tol)
Check if ClusterInvariants are equal.

Definition at line 149 of file CASM_math.hh.

◆ compare() [3/5]

bool CASM::compare ( SymRepTools_v2::VectorInvariants const &  A_invariants,
SymRepTools_v2::VectorInvariants const &  B_invariants,
double  tol 
)

Definition at line 26 of file VectorSymCompare_v2.cc.

◆ compare() [4/5]

bool CASM::compare ( VectorInvariants const &  A_invariants,
VectorInvariants const &  B_invariants,
double  tol 
)

Compare ClusterInvariants.

Definition at line 18 of file VectorSymCompare.cc.

◆ compare() [5/5]

bool CASM::compare ( WithinScelClusterInvariants const &  A,
WithinScelClusterInvariants const &  B,
double  tol 
)

Compare WithinScelClusterInvariants.

Returns
True if A < B, to specified tolerance
  • First compares by number of sites in cluster
  • Then compare all displacements, from longest to shortest

Definition at line 129 of file ClusterInvariants.cc.

◆ compare_no_value()

bool CASM::compare_no_value ( ContinuousDoF const &  A,
ContinuousDoF const &  B 
)
inline

Definition at line 412 of file DoF.hh.

◆ composition_command()

int CASM::composition_command ( const CommandArgs args)

–help option

–help option

Definition at line 69 of file composition.cc.

◆ composition_space()

Eigen::MatrixXd CASM::composition_space ( const ParamComposition::AllowedOccupants _allowed_occs,
double  tol 
)

Return the composition space of a ParamComposition::AllowedOccupants.

Return the composition space of a BasicStructure.

Parameters
_allowed_occsA BasicStructure to find the standard composition space for (does not check if it is actually primitive).
toltolerance for checking rank (default 1e-14)
  • Each column corresponds to an orthogonal vector in atom fraction space
  • Each row corresponds to a Molecule, ordered as from BasicStructure::struc_molecule

Definition at line 615 of file CompositionConverter.cc.

◆ composition_unselected()

void CASM::composition_unselected ( const CommandArgs args)

Definition at line 80 of file status.cc.

◆ configs_uncalculated()

void CASM::configs_uncalculated ( const CommandArgs args)

Definition at line 133 of file status.cc.

◆ configs_ungenerated()

void CASM::configs_ungenerated ( const CommandArgs args)

Definition at line 108 of file status.cc.

◆ container_to_string()

template<typename Iterator >
std::string CASM::container_to_string ( Iterator  begin_it,
Iterator  end_it,
std::string  begin = "[",
std::string  end = "]",
std::string  delim = ", " 
)

Definition at line 23 of file string_io.hh.

◆ contains() [1/2]

template<typename Container , typename T >
bool CASM::contains ( const Container &  container,
const T &  value 
)

Equivalent to container.end() != std::find(container.begin(), container.end(), value)

Definition at line 83 of file algorithm.hh.

◆ contains() [2/2]

template<typename Container , typename T , typename BinaryCompare >
bool CASM::contains ( const Container &  container,
const T &  value,
BinaryCompare  q 
)

Equivalent to container.end() != find(container.begin(), container.end(), value, q)

Definition at line 91 of file algorithm.hh.

◆ contains_all() [1/2]

template<typename Container1 , typename Container2 >
bool CASM::contains_all ( const Container1 &  container,
const Container2 &  values 
)

Returns true if each elements of 'values' is contained in 'container'.

Definition at line 112 of file algorithm.hh.

◆ contains_all() [2/2]

template<typename Container1 , typename Container2 , typename BinaryCompare >
bool CASM::contains_all ( const Container1 &  container,
const Container2 &  values,
BinaryCompare  q 
)

Returns true if each elements of 'values' is contained in 'container', using comparison functor 'q'.

Definition at line 122 of file algorithm.hh.

◆ contains_if()

template<typename Container , typename UnaryPredicate >
bool CASM::contains_if ( const Container &  container,
UnaryPredicate  p 
)

Equivalent to container.end() != std::find_if(container.begin(), container.end(), p)

Definition at line 98 of file algorithm.hh.

◆ contains_if_not()

template<typename Container , typename UnaryPredicate >
bool CASM::contains_if_not ( const Container &  container,
UnaryPredicate  q 
)

Equivalent to container.end() != std::find_if_not(container.begin(), container.end(), q)

Definition at line 105 of file algorithm.hh.

◆ coord_transformed_copy()

SymGroupRep CASM::coord_transformed_copy ( SymGroupRep const &  _rep,
const Eigen::MatrixXd &  trans_mat 
)

Make a copy of representation on vector space 'V' that is transformed into a representation on vector space 'W' 'trans_mat' is the unitary matrix that isomorphically maps 'V'->'W' (i.e., [w = trans_mat * v] and [v = trans_mat.transpose() * w] ) If the original representation to be transformed is just a temporary standalone SymGroupRep, be sure to delete it before falling out of scope.

Definition at line 175 of file SymGroupRep.cc.

◆ coordinate_mode_help()

std::string CASM::coordinate_mode_help ( )

Definition at line 17 of file help.cc.

◆ copy_apply() [1/3]

template<typename Object , typename Transform , typename... Args>
Object CASM::copy_apply ( const Transform &  f,
Object  obj,
Args &&...  args 
)

Copy and apply a transformation

  • We can also include a specialization for cloneable objects, via SFINAE
  • Default is equivalent to
    Object result(obj); apply(f, obj, args...)
    Supercell & apply(const SymOp &op, Supercell &scel)
    Apply symmetry operation to Supercell.
    Definition: Supercell.cc:357

Definition at line 93 of file definitions.hh.

◆ copy_apply() [2/3]

MappingNode CASM::copy_apply ( PermuteIterator const &  _it,
MappingNode const &  _node,
bool  transform_cost_mat = true 
)

Reorders the permutation and compounds the spatial isometry (rotation.

  • translation) of _node with that of _it

Definition at line 174 of file ConfigMapping.cc.

◆ copy_apply() [3/3]

MappedProperties CASM::copy_apply ( PermuteIterator const &  op,
MappedProperties const &  props 
)

Definition at line 8 of file MappedPropertiesTools.cc.

◆ cout_log()

Log& CASM::cout_log ( )
inline

Definition at line 428 of file Log.hh.

◆ cuberoot()

double CASM::cuberoot ( double  number)

Definition at line 272 of file CASM_math.cc.

◆ cum_sum()

template<typename T >
ReturnArray<T> CASM::cum_sum ( const Array< T > &  arr)

Definition at line 87 of file CASM_Array_math.hh.

◆ cutoff_radius_neighborhood()

CandidateSitesFunction CASM::cutoff_radius_neighborhood ( IntegralCluster const &  phenomenal,
double  cutoff_radius,
bool  include_phenomenal_sites = false 
)

Sites within cutoff_radius distance to any site in the phenomenal cluster.

Definition at line 519 of file ClusterSpecs.cc.

◆ default_configuration_clex()

ClexDescription CASM::default_configuration_clex ( )

Create default configuration ClexDescription

Using:

  • name,property="formation_energy"
  • calctype,ref,bset,eci="default"

Definition at line 26 of file ClexDescription.cc.

◆ default_err_log()

Log& CASM::default_err_log ( )
inline

Definition at line 419 of file Log.hh.

◆ default_log()

Log& CASM::default_log ( )
inline

Definition at line 414 of file Log.hh.

◆ default_nlist_sublat_indices()

std::set< int > CASM::default_nlist_sublat_indices ( xtal::BasicStructure const &  prim)

Make default list of sublattice indices that will be included in the neighbor list

Includes sublattices with either:

Definition at line 114 of file ProjectBuilder.cc.

◆ default_nlist_weight_matrix()

Eigen::Matrix3l CASM::default_nlist_weight_matrix ( xtal::BasicStructure const &  prim,
double  tol 
)

Make default weight matrix for approximately spherical neighborhood in Cartesian coordinates

Equivalent to:

PrimNeighborList::make_weight_matrix(prim.lattice().lat_column_mat(), 10,
tol());
static Matrix3Type make_weight_matrix(const Eigen::Matrix3d lat_column_mat, Index max_element_value, double tol)
Returns a NeighborList weighting matrix appropriate for a particular lattice.

Definition at line 108 of file ProjectBuilder.cc.

◆ description() [1/2]

std::string CASM::description ( const SymOp op,
const xtal::Lattice lat,
SymInfoOptions  opt = SymInfoOptions() 
)

Print SymInfo to string.

Definition at line 454 of file SymInfo_stream_io.cc.

◆ description() [2/2]

void CASM::description ( Log log,
const SymGroup g,
const xtal::Lattice lat,
SymInfoOptions  opt 
)

Print SymGroup with matrix / tau.

Print SymGroup info.

Uses indexing starting at 1

Definition at line 462 of file SymInfo_stream_io.cc.

◆ direct_sum()

BasisSet CASM::direct_sum ( BasisSet::ArgList const &  _subs)

Definition at line 1324 of file BasisSet.cc.

◆ display()

void CASM::display ( std::ostream &  sout,
const CompositionAxes comp_axes 
)

Definition at line 20 of file composition.cc.

◆ display_comp()

void CASM::display_comp ( std::ostream &  stream,
const CompositionConverter f,
int  indent 
)

Pretty-print comp in terms of comp_n.

Example:

comp(a) = c00*(comp_n(A) - 1) + c01*comp_n(B) + ...
comp(b) = c00*comp_n(A) + c01*(comp_n(B) - 2) + ...
...
Eigen::VectorXd comp(const Configuration &config)
Returns parametric composition, as calculated using PrimClex::param_comp.
Eigen::VectorXd comp_n(const Configuration &config)
Returns the composition, as number of each species per unit cell.

Definition at line 522 of file CompositionConverter.cc.

◆ display_comp_n()

void CASM::display_comp_n ( std::ostream &  stream,
const CompositionConverter f,
int  indent 
)

Pretty-print comp_n in terms of comp.

Pretty-print comp in terms of comp_n.

Example:

comp_n(A) = nAo + c00*comp(a) + c01*comp(b) + ...
comp_n(B) = nBo + c10*comp(a) + c11*comp(b) + ...
...

Definition at line 537 of file CompositionConverter.cc.

◆ display_composition_axes()

void CASM::display_composition_axes ( std::ostream &  stream,
const std::map< std::string, CompositionConverter > &  map 
)

Pretty-print map of name/CompositionConverter pairs.

Parameters
streamOutput stream
mapMap of name/CompositionConverter pairs
nameName for this set of composition axes

Definition at line 472 of file CompositionConverter.cc.

◆ display_param_chem_pot()

void CASM::display_param_chem_pot ( std::ostream &  stream,
const CompositionConverter f,
int  indent 
)

Pretty-print param_chem_pot in terms of chem_pot.

Example:

param_chem_pot(a) = c00*chem_pot(A) + c01*chem_pot(B) + ...
param_chem_pot(b) = c10*chem_pot(A) + c11*chem_pot(B) + ...
...

Definition at line 552 of file CompositionConverter.cc.

◆ dl_string_dist()

int CASM::dl_string_dist ( const std::string &  a,
const std::string &  b 
)

Computes the Damerescau-Levenshtein distance – the number of edits (deletions, insertions, transpositions) to go from string 'a' to string 'b'.

Definition at line 45 of file CASM_math.cc.

◆ dof_sites_filter()

SiteFilterFunction CASM::dof_sites_filter ( std::vector< DoFKey > const &  dofs)

Generate clusters using Site with specified DoF.

If dofs is empty, return true if Site has any continuous DoF or >1 allowed occupant DoF If dofs is not empty, return true if Site has any of the DoF types included. Use "occ" for / Site with >1 occupant allowed

Definition at line 488 of file ClusterSpecs.cc.

◆ dof_space_analysis()

void CASM::dof_space_analysis ( PrimClex primclex,
jsonParser const &  json_options,
jsonParser const &  cli_options_as_json 
)

Perform DoF space analysis.

Perform DoF space analysis

Usage:

  • Specify one or more DoF spaces and a symmetry group via selection of configurations, sites within the configurations, DoF type, and DoF subspace.
    • The supercell, selected sites, DoF type, and subspace determine the DoF space
    • The subgroup of the configuration factor group that leaves selected sites invariant is used for symmetry analysis
  • The analysis finds irreducible representations of the DoF vector space and optionally calculates the symmetrically unique wedges in that space
  • See dof_space_analysis_desc() for JSON and CLI input options

Definition at line 205 of file dof_space_analysis.cc.

◆ dof_space_analysis_desc()

std::string CASM::dof_space_analysis_desc ( )

Describe DoF space analysis input.

Describe DoF space analysis.

Definition at line 73 of file dof_space_analysis.cc.

◆ dry_run_help()

std::string CASM::dry_run_help ( )

Definition at line 7 of file help.cc.

◆ dry_run_msg()

std::string CASM::dry_run_msg ( bool  dry_run)
inline

Standardized string that can prepended to method output to make clear that method results are not going to be committed

Definition at line 76 of file EnumInterface.hh.

◆ eci_uncalculated()

void CASM::eci_uncalculated ( const CommandArgs args)

Definition at line 249 of file status.cc.

◆ eigen_vector_from_string()

Eigen::VectorXd CASM::eigen_vector_from_string ( const std::string &  tstr,
const int &  size 
)

Definition at line 10 of file CASM_Eigen_math.cc.

◆ empty_neighborhood()

CandidateSitesFunction CASM::empty_neighborhood ( )

No sites (for null orbit, or global dof only)

Definition at line 503 of file ClusterSpecs.cc.

◆ end_members()

Eigen::MatrixXd CASM::end_members ( const ParamComposition::AllowedOccupants _allowed_occs)

Serialize CompositionConverter to JSON.

Generate a column matrix containing all the possible molecular end members.

Generate a column matrix containing all the possible molecular end members

Parameters
_allowed_occsA BasicStructure to find the end members of (does not check if it is actually primitive).
  • Each column corresponds to a point in composition space (specifying number of each Molecule per prim)
  • Each row corresponds to a Molecule, ordered as from BasicStructure::struc_molecule, with units number Molecule / prim

Definition at line 570 of file CompositionConverter.cc.

◆ end_of_literal()

std::string::const_iterator CASM::end_of_literal ( std::string::const_iterator  it,
std::string::const_iterator  end_it 
)

Definition at line 47 of file DataFormatter.cc.

◆ end_ptr() [1/4]

template<typename Derived >
Derived::Scalar* CASM::end_ptr ( Eigen::PlainObjectBase< Derived > &  container)

Return pointer one past end of vector. Equivalent to convainer.data()+container.size()

Definition at line 114 of file CASM_Eigen_math.hh.

◆ end_ptr() [2/4]

template<typename Derived >
Derived::Scalar const* CASM::end_ptr ( Eigen::PlainObjectBase< Derived > const &  container)

Return const pointer one past end of vector. Equivalent to convainer.data()+container.size()

Definition at line 121 of file CASM_Eigen_math.hh.

◆ end_ptr() [3/4]

template<typename T >
T* CASM::end_ptr ( std::vector< T > &  container)

Return pointer one past end of vector. Equivalent to convainer.data()+container.size()

Definition at line 142 of file algorithm.hh.

◆ end_ptr() [4/4]

template<typename T >
T const* CASM::end_ptr ( std::vector< T > const &  container)

Return const pointer one past end of vector. Equivalent to convainer.data()+container.size()

Definition at line 149 of file algorithm.hh.

◆ engine_test()

void CASM::engine_test ( )

Definition at line 166 of file complete_tests.cpp.

◆ enumerate_configurations()

template<typename MakeEnumeratorFunction , typename InputNameValuePairIterator , typename ConfigEnumDataType >
void CASM::enumerate_configurations ( PrimClex const &  primclex,
ConfigEnumOptions const &  options,
MakeEnumeratorFunction  make_enumerator_f,
InputNameValuePairIterator  name_value_pairs_begin,
InputNameValuePairIterator  name_value_pairs_end,
DataFormatter< ConfigEnumDataType > const &  formatter 
)

Enumerate configurations.

Enumerate configurations

This method enumerates configurations given a rage of starting values, typically a range of supercells or initial configurations, possibly with particular sites selected for enumeration, represented using ConfigEnumInput.

A pseudo-code outline of the method is:

for name_value_pair in range [name_value_pairs_begin, name_value_pairs_end):
print "Enumerate configuration for " + name_value_pair.first + "..."
auto enumerator = make_enumerator_f(name_value_pair.first,
name_value_pair.second); for configuration generated by enumerator:
if options.filter and !options.filter(configuration):
do not insert configuration
else
insert configuration in configuration_db
else:
make primitive canonical configuration and insert in
configuration_db if !options.primitive_only:
make non-primitive canonical configuration and insert in
configuration_db
if options.output_enumerated_configurations:
formatter(data)
if !options.dry_run:
commit supercell_db
commit configuration_db
if options.output_enumerated_configurations:
write formatted data to options.output_path
bool is_guaranteed_for_database_insert(ConfigEnumAllOccupations const &enumerator)
void commit(ProjectSettings const &set)
ConfigEnumData< ConfigEnumSiteDoFs, ConfigEnumInput > ConfigEnumDataType
SharedPrimFormatter< jsonParser > primitive()

Note:

  • To avoid unnecessary configuration canonicalization, specialize the following method: template<> bool is_guaranteed_for_database_insert(EnumeratorType const &);
Parameters
primclexPrimClex provides access to project database and other data
optionsSee ConfigEnumOptions for method options
make_enumerator_fA function that constructs a Configuration enumerator of type EnumeratorType for each value in the range [name_value_pairs_begin, name_value_pairs_end). Requires signature: EnumeratorType make_enumerator_f(Index initial_state_index, std::string initial_state_name, InitialStateType const &initial_state);
name_value_pairs_begin,name_value_pairs_endA range of pairs of name (for printing progress) to InitialStateType value (typically, but not necessarily InputType = ConfigEnumInput). The value InputType is used as the argument to make_enumerator_f to construct a series of enumerators which are executed in turn.
formatterDataFormatter used to record enumerated configurations. See ConfigEnumOptions for output options. The ConfigEnumDataType should follow the example of ConfigEnumData which provides the minimum required interface.

Note:

Use while transitioning Supercell to no longer need a PrimClex const *

Use while transitioning Supercell to no longer need a PrimClex const *

Definition at line 80 of file enumerate_configurations_impl.hh.

◆ enumerate_supercells()

template<typename EnumeratorType >
void CASM::enumerate_supercells ( EnumerateSupercellsOptions const &  options,
EnumeratorType &  enumerator,
DB::Database< Supercell > &  supercell_db 
)

Enumerate supercells

Note:

  • To avoid unnecessary supercell canonicalization, specialize the following method: template<> bool is_guaranteed_for_database_insert(EnumeratorType const &);
Parameters
optionsSee EnumerateSupercellsOptions for method options
enumeratorA supercell enumerator.
supercell_dbWill commit any new Supercell if options.dry_run==false.

Note:

Use while transitioning Supercell to no longer need a PrimClex const *

Use while transitioning Supercell to no longer need a PrimClex const *

Definition at line 30 of file enumerate_supercells_impl.hh.

◆ err_log()

Log& CASM::err_log ( )
inline

Definition at line 426 of file Log.hh.

◆ exclude_homogeneous_mode_space()

DoFSpace CASM::exclude_homogeneous_mode_space ( DoFSpace const &  dof_space)

Removes the homogeneous mode space from the DoFSpace basis.

Removes the homogeneous mode space from the local continuous DoFSpace basis.

Parameters
dof_spaceDoF space to remove the homogeneous mode space from. Must be a DoF space for a local continuous DoF and include all sites in the supercell (dof_space.includes_all_sites==true), else will throw.
Returns
A copy of dof_space with basis modified to remove homogeneous modes.

Definition at line 673 of file DoFSpace.cc.

◆ extended_gcf()

template<typename IntType >
IntType CASM::extended_gcf ( IntType  i1,
IntType  i2,
IntType &  p1,
IntType &  p2 
)

Calculate greatest common factor of two integers, and bezout coefficients.

Returns
greatest common factor
Parameters
i1,i2two integers for which to find greatest common factor
[out]p1,p2bezout coefficients such that p1*i1 + p2*i2 = gcf(abs(i1),abs(i2));
See also
smith_normal_form

Definition at line 277 of file CASM_math.hh.

◆ failure_type()

template<typename ConfigType >
std::string CASM::failure_type ( const ConfigType &  config,
std::string  calctype = "" 
)

Definition at line 167 of file Calculable.cc.

◆ files_command()

int CASM::files_command ( const CommandArgs args)

Set command line options using boost program_options

–help option

Set command line options using boost program_options

–help option

Definition at line 47 of file files.cc.

◆ fill_supercell() [1/4]

Configuration CASM::fill_supercell ( Configuration const &  motif,
std::shared_ptr< Supercell const > const &  shared_supercell 
)

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.

Definition at line 33 of file FillSupercell.cc.

◆ fill_supercell() [2/4]

Configuration CASM::fill_supercell ( Configuration const &  motif,
Supercell const &  supercell 
)

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

Note:

  • Prefer to use std::shared_ptr<Supercell const> overload if possible
  • 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.

Definition at line 48 of file FillSupercell.cc.

◆ fill_supercell() [3/4]

Configuration CASM::fill_supercell ( SymOp const &  symop,
Configuration const &  motif,
std::shared_ptr< Supercell const > const &  shared_supercell 
)

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

Note:

  • Will throw if apply(symop, motif) cannot be tiled into the supercell

Definition at line 59 of file FillSupercell.cc.

◆ fill_supercell() [4/4]

Configuration CASM::fill_supercell ( SymOp const &  symop,
Configuration const &  motif,
Supercell const &  supercell 
)

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

Note:

  • Prefer to use std::shared_ptr<Supercell const> overload if possible
  • Will throw if apply(symop, motif) cannot be tiled into the supercell

Definition at line 72 of file FillSupercell.cc.

◆ filter_begin() [1/2]

template<typename IteratorType , typename DataObject >
FilteredConfigIterator<IteratorType> CASM::filter_begin ( const IteratorType &  it,
const IteratorType &  it_end,
const std::vector< std::string > &  filter_expr,
const DataFormatterDictionary< DataObject > &  _dict 
)

Definition at line 114 of file FilteredConfigIterator.hh.

◆ filter_begin() [2/2]

template<typename IteratorType , typename DataObject >
FilterIterator<IteratorType> CASM::filter_begin ( IteratorType const &  it,
IteratorType const &  it_end,
std::function< bool(typename FilterIterator< IteratorType >::reference)>  filter_function 
)

Definition at line 79 of file FilterIterator.hh.

◆ filter_end() [1/2]

template<typename IteratorType >
FilteredConfigIterator<IteratorType> CASM::filter_end ( const IteratorType &  it_end)

Definition at line 122 of file FilteredConfigIterator.hh.

◆ filter_end() [2/2]

template<typename IteratorType >
FilterIterator<IteratorType> CASM::filter_end ( IteratorType const &  it_end)

Definition at line 87 of file FilterIterator.hh.

◆ find()

template<typename Iterator , typename T , typename BinaryCompare >
Iterator CASM::find ( Iterator  begin,
Iterator  end,
const T &  value,
BinaryCompare  q 
)

Equivalent to std::find(begin, end, value), but with custom comparison.

Definition at line 16 of file algorithm.hh.

◆ find_casmroot()

fs::path CASM::find_casmroot ( const fs::path &  cwd)

return path to current or parent directory containing ".casm" directory if none found, return empty path

Definition at line 14 of file DirectoryStructure.cc.

◆ find_index() [1/4]

template<typename Container , typename T >
Index CASM::find_index ( const Container &  container,
const T &  value 
)

Equivalent to std::distance(container.begin(), std::find(container.begin(), container.end(), value))

Definition at line 46 of file algorithm.hh.

◆ find_index() [2/4]

template<typename Container , typename T , typename BinaryCompare >
Index CASM::find_index ( const Container &  container,
const T &  value,
BinaryCompare  q 
)

Equivalent to std::distance(container.begin(), find(container.begin(), container.end(), value,q))

Definition at line 38 of file algorithm.hh.

◆ find_index() [3/4]

template<typename Iterator , typename T >
Index CASM::find_index ( Iterator  begin,
Iterator  end,
const T &  value 
)

Equivalent to std::distance(begin, std::find(begin, end, value))

Definition at line 24 of file algorithm.hh.

◆ find_index() [4/4]

template<typename Iterator , typename T , typename BinaryCompare >
Index CASM::find_index ( Iterator  begin,
Iterator  end,
const T &  value,
BinaryCompare  q 
)

Equivalent to std::distance(begin, find(begin, end, value, q))

Definition at line 30 of file algorithm.hh.

◆ find_index_if() [1/2]

template<typename Container , typename UnaryPredicate >
Index CASM::find_index_if ( const Container &  container,
UnaryPredicate  p 
)

Equivalent to std::distance(container.begin(), std::find_if(container.begin(), container.end(), p))

Definition at line 60 of file algorithm.hh.

◆ find_index_if() [2/2]

template<typename Iterator , typename UnaryPredicate >
Index CASM::find_index_if ( Iterator  begin,
Iterator  end,
UnaryPredicate  p 
)

Equivalent to std::distance(begin, std::find_if(begin, end, p))

Definition at line 53 of file algorithm.hh.

◆ find_index_if_not() [1/2]

template<typename Container , typename UnaryPredicate >
Index CASM::find_index_if_not ( const Container &  container,
UnaryPredicate  q 
)

Equivalent to std::distance(container.begin(), std::find_if_not(container.begin(), container.end(), p))

Definition at line 75 of file algorithm.hh.

◆ find_index_if_not() [2/2]

template<typename Iterator , typename UnaryPredicate >
Index CASM::find_index_if_not ( Iterator  begin,
Iterator  end,
UnaryPredicate  q 
)

Equivalent to std::distance(begin, std::find_if_not(begin, end, q))

Definition at line 67 of file algorithm.hh.

◆ find_orbit()

template<typename OrbitIterator , typename Element >
OrbitIterator CASM::find_orbit ( OrbitIterator  begin,
OrbitIterator  end,
Element  e 
)

Find orbit containing an element in a range of Orbit.

Find orbit containing an element in a range of Orbit<ClusterType>

Parameters
begin,endRange of Orbit
eElement to find
Returns
Iterator to Orbit containing e, or end if not found
  • Expects typename std::iterator_traits<OrbitIterator>::value_type to be the Orbit<SymCompareType> type
  • Expects e to be prepared via SymCompareType::prepare
  • Assume range of orbit is sorted according to SymCompareType::invariants_compare
  • Uses SymCompareType::compare (via Orbit::contains) to check for element in orbit

Definition at line 295 of file Orbit_impl.hh.

◆ float_lexicographical_compare() [1/2]

bool CASM::float_lexicographical_compare ( const Eigen::Ref< const Eigen::MatrixXd > &  A,
const Eigen::Ref< const Eigen::MatrixXd > &  B,
double  tol 
)
inline

Floating point lexicographical comparison with tol.

Definition at line 45 of file CASM_Eigen_math.hh.

◆ float_lexicographical_compare() [2/2]

template<class InputIt1 , class InputIt2 >
bool CASM::float_lexicographical_compare ( InputIt1  first1,
InputIt1  last1,
InputIt2  first2,
InputIt2  last2,
double  tol 
)

Floating point lexicographical comparison with tol.

Definition at line 169 of file CASM_math.hh.

◆ float_sgn()

template<typename T , typename std::enable_if< std::is_floating_point< T >::value, T >::type * = nullptr>
int CASM::float_sgn ( val,
double  compare_tol = TOL 
)

Definition at line 188 of file CASM_math.hh.

◆ for_all_orbits() [1/2]

template<typename FunctorType >
void CASM::for_all_orbits ( ClusterSpecs const &  cluster_specs,
std::ostream &  status,
FunctorType const &  f 
)

Call functor for orbits generated by ClusterSpecs

Selects the correct make_X_orbits method and then calls f for all orbits, as with:

auto orbits = cluster_specs.make_X_orbits(status); f(orbits);

The FunctorType should have the template method:

template<typename OrbitVecType>
void FunctorType::operator()(OrbitVecType const &orbits) const;

Definition at line 38 of file ClusterSpecs_impl.hh.

◆ for_all_orbits() [2/2]

template<typename FunctorType >
void CASM::for_all_orbits ( ClusterSpecs const &  cluster_specs,
std::vector< IntegralCluster > const &  generating_elements,
FunctorType const &  f 
)

Call functor for orbits generated by ClusterSpecs

Selects the correct make_X_orbits method and then calls f for all orbits, as with:

auto orbits = cluster_specs.make_X_orbits(generating_elements);
f(orbits);

The FunctorType should have the template method:

template<typename OrbitVecType>
void FunctorType::operator()(OrbitVecType const &orbits) const;

Definition at line 13 of file ClusterSpecs_impl.hh.

◆ format_command()

int CASM::format_command ( const CommandArgs args)

–help option

–help option

Definition at line 46 of file format.cc.

◆ format_operator_not()

template<typename DataObject >
DataFormatterOperator<bool, bool, DataObject> CASM::format_operator_not ( )

Definition at line 417 of file DataFormatterTools.hh.

◆ from_json() [1/34]

template<typename T , typename... Args>
void CASM::from_json ( Array< T > &  value,
const jsonParser json,
Args &&...  args 
)

This requires that 'T::T()' exists, if not, you must do this by hand.

re-throw exceptions

Definition at line 27 of file json_io.hh.

◆ from_json() [2/34]

void CASM::from_json ( BasisSet bset,
const jsonParser json 
)

◆ from_json() [3/34]

void CASM::from_json ( ChemicalReference ref,
jsonParser const &  json,
xtal::BasicStructure const &  prim,
double  tol = 1e-14 
)

Read chemical reference from JSON.

Definition at line 287 of file ChemicalReference_json_io.cc.

◆ from_json() [4/34]

void CASM::from_json ( ChemicalReferenceState ref_state,
const jsonParser json 
)

Read ChemicalReferenceState from: '{"A" : X, "B" : X, ..., "energy_per_species" : X }'.

Definition at line 49 of file ChemicalReference_json_io.cc.

◆ from_json() [5/34]

void CASM::from_json ( ClexDescription desc,
const jsonParser json 
)

Definition at line 52 of file ClexDescription.cc.

◆ from_json() [6/34]

void CASM::from_json ( CompositionAxes composition_axes,
const jsonParser json 
)

Definition at line 9 of file CompositionAxes_json_io.cc.

◆ from_json() [7/34]

void CASM::from_json ( CompositionConverter f,
const jsonParser json 
)

Deserialize CompositionConverter from JSON.

Definition at line 24 of file CompositionConverter_json_io.cc.

◆ from_json() [8/34]

void CASM::from_json ( ConfigDoF configdof,
const jsonParser json 
)

Read ConfigDoF from JSON.

Definition at line 145 of file ConfigDoF_json_io.cc.

◆ from_json() [9/34]

jsonParser const & CASM::from_json ( ConfigMapping::Settings _set,
jsonParser const &  _json 
)

Definition at line 31 of file ConfigMapping_json_io.cc.

◆ from_json() [10/34]

void CASM::from_json ( Configuration configuration,
jsonParser const &  json 
)

Read Configuration from JSON.

Read Configuration from JSON

Note:

Definition at line 120 of file Configuration_json_io.cc.

◆ from_json() [11/34]

template<>
ChemicalReferenceState CASM::from_json ( const jsonParser json)

Read ChemicalReferenceState from: '{"A" : X, "B" : X, ..., "energy_per_species" : X }'.

Definition at line 21 of file ChemicalReference_json_io.cc.

◆ from_json() [12/34]

template<bool IsConst>
void CASM::from_json ( const SimpleJSonSiteStructure< IsConst > &  jstruc,
const jsonParser json 
)

Definition at line 114 of file jsonStruc.hh.

◆ from_json() [13/34]

void CASM::from_json ( DoFSpace dofspace,
jsonParser const &  json,
std::shared_ptr< Structure const > const &  shared_prim 
)

Definition at line 51 of file DoFSpace.cc.

◆ from_json() [14/34]

void CASM::from_json ( HyperPlaneReference ref,
const jsonParser json,
HyperPlaneReference::InputFunction  f 
)

Definition at line 71 of file ChemicalReference_json_io.cc.

◆ from_json() [15/34]

void CASM::from_json ( IntegralCluster clust,
const jsonParser json 
)

Read from JSON.

Read IntegralCluster from JSON.

Format:

{
"min_length" : number,
"max_length" : number,
"coordinate_mode" : ("FRAC", "CART", "INT" (default)) (optional)
"sites" : [
[b, i, j, k],
...
]
}
  • Also accepts "prototype" in place of "sites"

Definition at line 61 of file IntegralCluster_json_io.cc.

◆ from_json() [16/34]

jsonParser const & CASM::from_json ( MappedProperties prop,
const jsonParser json 
)

Definition at line 66 of file MappedProperties.cc.

◆ from_json() [17/34]

void CASM::from_json ( OccupantFunction func,
const jsonParser json 
)

◆ from_json() [18/34]

void CASM::from_json ( OrbitPrinterOptions opt,
const jsonParser json 
)

Read from JSON.

Definition at line 33 of file OrbitPrinter.cc.

◆ from_json() [19/34]

void CASM::from_json ( Permutation value,
const jsonParser json 
)

re-throw exceptions

re-throw exceptions

Definition at line 22 of file PermutationIO.cc.

◆ from_json() [20/34]

jsonParser const & CASM::from_json ( ScoreMappedProperties score,
const jsonParser json 
)

Definition at line 175 of file MappedProperties.cc.

◆ from_json() [21/34]

template<typename T , typename... Args>
void CASM::from_json ( std::optional< T > &  value,
jsonParser const &  json,
Args &&...  args 
)

Definition at line 21 of file optional.hh.

◆ from_json() [22/34]

void CASM::from_json ( std::vector< std::pair< std::string, ConfigEnumInput >> &  config_enum_input,
jsonParser const &  json,
std::shared_ptr< Structure const >  shared_prim,
PrimClex const *  primclex,
DB::Database< Supercell > &  supercell_db,
DB::Database< Configuration > &  configuration_db 
)

Read std::map<std::string, ConfigEnumInput> from JSON input, allowing queries from databases

Read std::vector<ConfigEnumInput> from JSON input, allowing queries from databases

Note: See parse for JSON documentation

Definition at line 58 of file ConfigEnumInput_json_io.cc.

◆ from_json() [23/34]

jsonParser const & CASM::from_json ( SymGroupRepID _id,
jsonParser const &  json 
)

Definition at line 20 of file SymGroupRepID.cc.

◆ from_json() [24/34]

void CASM::from_json ( SymInfoOptions opt,
const jsonParser json 
)

Read from JSON.

Definition at line 23 of file SymInfo_json_io.cc.

◆ from_json() [25/34]

void CASM::from_json ( Variable var,
const jsonParser json 
)

◆ from_json() [26/34]

void CASM::from_json ( xtal::AtomPosition apos,
const jsonParser json,
Eigen::Ref< const Eigen::Matrix3d > const &  frac2cart,
ParsingDictionary< AnisoValTraits > const &  _aniso_val_dict 
)

Read AtomPosition from json and then apply affine transformation cart2frac*cart()

Definition at line 44 of file BasicStructureIO.cc.

◆ from_json() [27/34]

void CASM::from_json ( xtal::BasicStructure prim,
jsonParser const &  json,
double  xtal_tol,
ParsingDictionary< AnisoValTraits > const *  _aniso_val_dict = nullptr 
)

Definition at line 507 of file BasicStructureIO.cc.

◆ from_json() [28/34]

void CASM::from_json ( xtal::Lattice lat,
const jsonParser json,
double  xtal_tol 
)

re-throw exceptions

re-throw exceptions

Definition at line 18 of file LatticeIO.cc.

◆ from_json() [29/34]

void CASM::from_json ( xtal::Molecule mol,
const jsonParser json,
Eigen::Ref< const Eigen::Matrix3d > const &  f2c_mat,
ParsingDictionary< AnisoValTraits > const &  _aniso_val_dict 
)

Definition at line 108 of file BasicStructureIO.cc.

◆ from_json() [30/34]

void CASM::from_json ( xtal::ScelEnumProps props,
const jsonParser json 
)

Make a ScelEnumProps object from JSON input.

Definition at line 43 of file SuperlatticeEnumeratorIO.cc.

◆ from_json() [31/34]

void CASM::from_json ( xtal::SimpleStructure simple_structure,
const jsonParser json 
)

Read SimpleStructure from JSON.

Read SimpleStructure from JSON

Parameters
simple_structurextal::SimpleStructure to read from JSON
jsonA JSON object, from which the xtal::SimpleStructure JSON is read. Expects JSON formatted either i) as documented for to_json for xtal::SimpleStructure or ii) if the "atoms_per_type" attribute exists, using the legacy properties.calc.json format as documented for from_json_legacy.

Note:

  • This is the expected format for properties.calc.json

Definition at line 387 of file SimpleStructureIO.cc.

◆ from_json() [32/34]

void CASM::from_json ( xtal::Site value,
const jsonParser json,
xtal::Lattice const &  _home,
COORD_TYPE  coordtype,
std::map< std::string, xtal::Molecule > const &  mol_map,
ParsingDictionary< AnisoValTraits > const &  _aniso_val_dict 
)

Definition at line 184 of file BasicStructureIO.cc.

◆ from_json() [33/34]

jsonParser const & CASM::from_json ( xtal::SpeciesAttribute _attr,
jsonParser const &  json 
)

Read SpeciesAttribute from json.

Definition at line 18 of file BasicStructureIO.cc.

◆ from_json() [34/34]

void CASM::from_json ( xtal::UnitCellCoord fill_value,
const jsonParser read_json 
)

Read from json [b, i, j, k].

Read from json [b, i, j, k], assuming fill_value.unit() is already set.

Definition at line 19 of file UnitCellCoordIO.cc.

◆ from_json< ChemicalReferenceState >()

Read ChemicalReferenceState from: '{"A" : X, "B" : X, ..., "energy_per_species" : X }'.

◆ full_trans_mat()

Eigen::MatrixXd CASM::full_trans_mat ( std::vector< SymRepTools::IrrepInfo > const &  irreps)

Assumes that irreps are real, and concatenates their individual trans_mats to form larger trans_mat.

Definition at line 447 of file SymRepTools.cc.

◆ gaussian()

double CASM::gaussian ( double  a,
double  x,
double  b,
double  c 
)

Definition at line 120 of file CASM_math.cc.

◆ gaussian_moment() [1/2]

double CASM::gaussian_moment ( int  expon,
double  sigma 
)

Definition at line 130 of file CASM_math.cc.

◆ gaussian_moment() [2/2]

double CASM::gaussian_moment ( int  expon,
double  sigma,
double  x0 
)

Definition at line 149 of file CASM_math.cc.

◆ gcf()

int CASM::gcf ( int  i1,
int  i2 
)

Find greatest common factor.

Definition at line 94 of file CASM_math.cc.

◆ generate_option()

Option CASM::generate_option ( std::string  postfix,
char  beginshort 
)

Definition at line 137 of file complete_tests.cpp.

◆ generate_orbits()

template<typename SymCompareType >
std::vector<Orbit<SymCompareType> > CASM::generate_orbits ( std::vector< typename SymCompareType::Element > const &  generating_elements,
SymGroup const &  generating_group,
SymCompareType const &  sym_compare 
)

Construct orbits from a vector of generating elements.

Definition at line 56 of file OrbitGeneration_impl.hh.

◆ get()

template<typename DoFSpecsType >
DoFSpecsType const & CASM::get ( DoFKey const &  key,
BasisFunctionSpecs const &  basis_function_specs 
)

Find DoFSpecs and static_cast to DoFSpecsType, or throw exception if not found

Definition at line 169 of file BasisFunctionSpecs.hh.

◆ get_dof_space_dimension()

Index CASM::get_dof_space_dimension ( DoFKey  dof_key,
xtal::BasicStructure const &  prim,
std::optional< Eigen::Matrix3l > const &  transformation_matrix_to_super = std::nullopt,
std::optional< std::set< Index >> const &  sites = std::nullopt 
)

Return dimension of DoFSpace.

Definition at line 359 of file DoFSpace.cc.

◆ get_normal_coordinate()

Eigen::VectorXd CASM::get_normal_coordinate ( Configuration const &  config,
DoFSpace const &  dof_space 
)

Return config DoF value as a coordinate in the DoFSpace basis.

Return config DoF value as a coordinate in the DoFSpace basis

TODO: handle DoF values not in the basis subspace

Definition at line 284 of file DoFSpace.cc.

◆ get_prime_factors()

ReturnArray< Array< int > > CASM::get_prime_factors ( int  target)

Definition at line 72 of file CASM_Array_math.cc.

◆ global_dof_info()

std::map< DoFKey, DoFSetInfo > CASM::global_dof_info ( Structure const &  _struc)

Definition at line 384 of file Structure.cc.

◆ has_calc_status()

template<typename ConfigType >
bool CASM::has_calc_status ( const ConfigType &  config,
std::string  calctype = "" 
)

Definition at line 181 of file Calculable.cc.

◆ has_failure_type()

template<typename ConfigType >
bool CASM::has_failure_type ( const ConfigType &  config,
std::string  calctype = "" 
)

Definition at line 189 of file Calculable.cc.

◆ has_local_neighborhood_overlap() [1/2]

template<typename OrbitType >
bool CASM::has_local_neighborhood_overlap ( std::vector< OrbitType > &  local_orbits,
const Eigen::Matrix3i &  transf_mat 
)

Check if periodic images of sites in an orbit are overlapping in supercells defined by the given superlattice transformation matrix.

◆ has_local_neighborhood_overlap() [2/2]

template<typename OrbitType >
bool CASM::has_local_neighborhood_overlap ( std::vector< OrbitType > const &  local_orbits,
Eigen::Matrix3i const &  transf_mat 
)

Check if periodic images of sites in an orbit are overlapping in supercells defined by the given superlattice transformation matrix.

Parameters
local_orbitsVector of IntegralCluster orbits defining the local neighborhood
transf_matA supercell transformation matrix

Definition at line 195 of file ClusterOrbits_impl.hh.

◆ help()

template<typename T >
std::string CASM::help ( )

Uses 'multiline_help<T>()' by default.

Definition at line 22 of file Help.hh.

◆ hermite_normal_form_name()

std::string CASM::hermite_normal_form_name ( const Eigen::Matrix3l matrix)

Definition at line 217 of file SupercellSymInfo.cc.

◆ hungarian_method()

double CASM::hungarian_method ( const Eigen::MatrixXd &  cost_matrix,
std::vector< Index > &  optimal_assignments,
const double  _tol 
)

Definition at line 458 of file CASM_Eigen_math.cc.

◆ identical()

bool CASM::identical ( AnisoValTraits const &  A,
AnisoValTraits const &  B 
)
inline

Check for equivalence of AnisoValTraits

Compares: name(), standard_var_names(), options(), symrep_builder_name(), incompatible(), must_apply_before(), must_apply_after(), and is_default()

Definition at line 245 of file AnisoValTraits.hh.

◆ include_path()

std::string CASM::include_path ( const fs::path &  dir)

Definition at line 401 of file RuntimeLibrary.cc.

◆ indent_space_help()

std::string CASM::indent_space_help ( )

Definition at line 12 of file help.cc.

◆ index_expression_to_bounds()

std::pair< std::vector< long >, std::vector< long > > CASM::index_expression_to_bounds ( const std::string &  _expr)

Definition at line 14 of file DataFormatter.cc.

◆ index_to_kcombination()

template<typename IntType >
std::vector<IntType> CASM::index_to_kcombination ( IntType  ind,
IntType  k 
)

Definition at line 228 of file CASM_math.hh.

◆ init_command()

int CASM::init_command ( const CommandArgs args)

Set command line options using boost program_options

–help option

Set command line options using boost program_options

–help option

Definition at line 139 of file init.cc.

◆ invariants_iterator()

template<typename OrbitIterator >
InvariantsIterator<OrbitIterator> CASM::invariants_iterator ( OrbitIterator  orbit_it)

Convert an Orbit iterator to an invariants iterator.

Definition at line 228 of file Orbit.hh.

◆ irrational_to_tex_string()

std::string CASM::irrational_to_tex_string ( double  val,
int  lim,
int  max_pow = 2 
)

Definition at line 199 of file CASM_math.cc.

◆ irrep_decomposition() [1/4]

std::vector< SymRepTools::IrrepInfo > CASM::irrep_decomposition ( SymGroupRep const &  _rep,
SymGroup const &  head_group,
bool  allow_complex 
)

Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method.

Parameters
_repmatrix representation of head_group, this defines group action on the underlying vector space
head_groupgroup for which the irreps are to be found
allow_complexif true, irreps may be complex-valued, if false, complex irreps would be combined to form real representations
Returns
vector of IrrepInfo objects. Irreps are ordered by dimension, with identity first (if present) repeated irreps are sequential, and are distinguished by IrrepInfo::index

Definition at line 761 of file SymRepTools.cc.

◆ irrep_decomposition() [2/4]

std::vector< SymRepTools::IrrepInfo > CASM::irrep_decomposition ( SymGroupRep const &  _rep,
SymGroup const &  head_group,
Eigen::Ref< const Eigen::MatrixXd > const &  _subspace,
bool  allow_complex 
)

Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method.

Parameters
_repmatrix representation of head_group, this defines group action on the underlying vector space
head_groupgroup for which the irreps are to be found
allow_complexif true, irreps may be complex-valued, if false, complex irreps would be combined to form real representations
Returns
vector of IrrepInfo objects. Irreps are ordered by dimension, with identity first (if present) repeated irreps are sequential, and are distinguished by IrrepInfo::index

Definition at line 770 of file SymRepTools.cc.

◆ irrep_decomposition() [3/4]

std::vector< SymRepTools::IrrepInfo > CASM::irrep_decomposition ( SymGroupRep const &  _rep,
SymGroup const &  head_group,
SymRepTools::SymmetrizerFunction const &  symmetrizer_func,
bool  allow_complex 
)

Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method.

Parameters
_repmatrix representation of head_group, this defines group action on the underlying vector space
head_groupgroup for which the irreps are to be found
allow_complexif true, irreps may be complex-valued, if false, complex irreps would be combined to form real representations
Returns
vector of IrrepInfo objects. Irreps are ordered by dimension, with identity first (if present) repeated irreps are sequential, and are distinguished by IrrepInfo::index

Definition at line 842 of file SymRepTools.cc.

◆ irrep_decomposition() [4/4]

std::vector< SymRepTools::IrrepInfo > CASM::irrep_decomposition ( SymGroupRep const &  _rep,
SymGroup const &  head_group,
SymRepTools::SymmetrizerFunction const &  symmetrizer_func,
Eigen::MatrixXd  subspace,
bool  allow_complex 
)

Finds irreducible subspaces that comprise an underlying subspace It does not rely on the character table, but instead utilizes a brute-force method.

Parameters
_repmatrix representation of head_group, this defines group action on the underlying vector space
head_groupgroup for which the irreps are to be found
allow_complexif true, irreps may be complex-valued, if false, complex irreps would be combined to form real representations
Returns
vector of IrrepInfo objects. Irreps are ordered by dimension, with identity first (if present) repeated irreps are sequential, and are distinguished by IrrepInfo::index

Definition at line 787 of file SymRepTools.cc.

◆ irrep_IDs()

std::vector<SymGroupRepID> CASM::irrep_IDs ( SymGroupRep const &  _rep,
const SymGroup head_group 
)

Find irrep decomposition of _rep wrt group head_group and returns it as a list of SymGroupRepIDs corresponding to representtions of master_group.

◆ irrep_symmetrizer() [1/2]

SymRepTools::Symmetrizer CASM::irrep_symmetrizer ( SymGroupRep const &  _rep,
const SymGroup head_group,
double  vec_compare_tol 
)

Find a new coordinate system oriented along high-symmetry directions in underlying vector space

Parameters
_repmatrix representation specifying group action on underlying vector space
head_groupsubgroup of operations in _rep to be used for symmetry analysis
vec_compare_toltolerance for elementwise floating-point comparisons of vectors The ROWS of result.first are the new basis vectors in terms of the old such that new_symrep_matrix = result.first * old_symrep_matrix * result.first.transpose();

Definition at line 420 of file SymRepTools.cc.

◆ irrep_symmetrizer() [2/2]

SymRepTools::Symmetrizer CASM::irrep_symmetrizer ( SymGroupRep const &  _rep,
const SymGroup head_group,
Eigen::Ref< const Eigen::MatrixXcd > const &  _subspace,
double  vec_compare_tol 
)

Find a new coordinate system oriented along high-symmetry directions in vector space spanned by columns of

Parameters
_subspace
_repmatrix representation specifying group action on underlying vector space
head_groupsubgroup of operations in _rep to be used for symmetry analysis
_subspacematrix such that _subspace.rows()==_rep.dim() and whose columns specify a subspace of underlying vector space
vec_compare_toltolerance for elementwise floating-point comparisons of vectors The ROWS of result.first are the new basis vectors in terms of the old such that new_symrep_matrix = result.first * old_symrep_matrix * result.first.transpose();

Definition at line 431 of file SymRepTools.cc.

◆ irrep_trans_mat()

Eigen::MatrixXd CASM::irrep_trans_mat ( SymGroupRep const &  _rep,
const SymGroup head_group 
)

Finds the transformation matrix that block-diagonalizes this representation of head_group into irrep blocks It does not rely on the character table, but instead utilizes a brute-force method This routine additionally orients the resulting basis vectors along high-symmetry directions of the vector space on which they are defined.

Parameters
head_groupThe group with respect to which irreps are determined, which may be a subset of all operations in this representation
Returns
Transformation matrix with the ROWS comprising the new basis vectors in terms of the old such that new_symrep_matrix = trans_mat * old_symrep_matrix * trans_mat.transpose();

Definition at line 1128 of file SymRepTools.cc.

◆ irrep_trans_mat_and_characters()

std::pair<Eigen::MatrixXd, std::vector<Eigen::VectorXcd> > CASM::irrep_trans_mat_and_characters ( SymGroupRep const &  _rep,
const SymGroup head_group,
SymRepTools::SymmetrizerFunction  symmetrizer_func 
)

Finds the transformation matrix that block-diagonalizes this representation of head_group into irrep blocks It does not rely on the character table, but instead utilizes a brute-force method.

Parameters
head_groupThe group with respect to which irreps are determined, which may be a subset of all operations in this representation
symmetrizer_func,afunction object that takes an unsymmetrized irrep subspace and returns its Symmetrizer object
Returns
Pair, with result.first being the transformation matrix with the ROWS comprising the new basis vectors in terms of the old such that new_symrep_matrix = trans_mat * old_symrep_matrix * trans_mat.transpose(); result.second contains the complex character vectors of the irreducible subspaces, in same order as they appear in result.first

◆ is_calculated() [1/2]

template<typename ConfigType >
bool CASM::is_calculated ( const ConfigType &  config,
std::string  calctype = "" 
)

Return true if all required properties have been been calculated for the configuration.

Return true if all required properties have been been calculated for the configuration in the calctype specified (current calctype if none specified)

Definition at line 137 of file Calculable.cc.

◆ is_calculated() [2/2]

bool CASM::is_calculated ( const MappedProperties calc_properties,
const std::vector< std::string > &  required_properties 
)

Return true if all required properties are included in the JSON.

Definition at line 219 of file Calculable.cc.

◆ is_guaranteed_for_database_insert()

template<>
bool CASM::is_guaranteed_for_database_insert ( ScelEnumByProps const &  enumerator)

Always true for ScelEnumByProps.

Definition at line 13 of file ScelEnum.cc.

◆ is_irrep()

bool CASM::is_irrep ( SymGroupRep const &  _rep,
const SymGroup head_group 
)

Returns true if _rep is irreducible wrt head_group (does not use character table information)

Definition at line 708 of file SymRepTools.cc.

◆ is_valid_dof_space()

bool CASM::is_valid_dof_space ( Configuration const &  config,
DoFSpace const &  dof_space 
)

Return true if dof_space is valid for config

Checks that:

  • The prim are equivalent
  • For local DoF, that the transformation_matrix_to_super are equivalent

Definition at line 257 of file DoFSpace.cc.

◆ is_valid_sub_configuration()

bool CASM::is_valid_sub_configuration ( xtal::Lattice const &  sub_configuration_lattice,
Supercell const &  supercell 
)

Return true if a configuration (in any equivalent orientation) can be tiled into a supercell

Note:

  • This will return true if, for any SymOp in the prim factor group, apply(symop, sub_configuration_lattice) can be used used to fill the Supercell. Otherwise it will return false.

Return true if a configuration (in any equivalent orientation) can be tiled into a supercell

Note:

  • This will return true if, any SymOp in the prim factor group, apply(symop, configuration) can be used used to fill the Supercell. Otherwise it will return false.

Definition at line 20 of file FillSupercell.cc.

◆ kron_rep()

SymGroupRep CASM::kron_rep ( const SymGroupRep LHS,
const SymGroupRep RHS 
)

Build a large matrix representation by forming kronecker products of a matrix from

Parameters
LHSwith a matrix from
RHS

Definition at line 1256 of file SymRepTools.cc.

◆ lcm() [1/2]

int CASM::lcm ( const Array< int > &  series)

Find least common multiple.

Definition at line 62 of file CASM_Array_math.cc.

◆ lcm() [2/2]

int CASM::lcm ( int  i1,
int  i2 
)

Find least common multiple.

Definition at line 113 of file CASM_math.cc.

◆ link_path()

std::string CASM::link_path ( const fs::path &  dir)

Definition at line 408 of file RuntimeLibrary.cc.

◆ load_dof_plugins()

template<typename DoFDictInserter , typename RuntimeLibInserter >
std::pair< DoFDictInserter, RuntimeLibInserter > CASM::load_dof_plugins ( const ProjectSettings set,
DoFDictInserter  dict_it,
RuntimeLibInserter  lib_it 
)

Load DoF plugins from a CASM project.

Definition at line 14 of file HamiltonianModules_impl.hh.

◆ load_enumerator_plugins() [1/2]

template std::pair<enum_it_type, runtimelib_it_type> CASM::load_enumerator_plugins ( ProjectSettings const &  set,
enum_it_type  enum_it,
runtimelib_it_type  lib_it 
)

◆ load_enumerator_plugins() [2/2]

template<typename EnumInterfaceVectorInserter , typename RuntimeLibInserter >
std::pair< EnumInterfaceVectorInserter, RuntimeLibInserter > CASM::load_enumerator_plugins ( ProjectSettings const &  set,
EnumInterfaceVectorInserter  enum_it,
RuntimeLibInserter  lib_it 
)

Load enumerator plugins from a CASM project.

Parameters
setCASM project settings to read enumerator plugins from
enum_itInserter to EnumInterfaceVector where the plugins should be stored
lib_itInserter to container of pair<std::string, std::shared_ptr<RuntimeLibrary> > holding the libraries with the enumerator plugins
  • Checks the directory primclex.dir().enumerator_plugins() for ENUMNAME.cc files
  • All *.cc files found are compiled and linked, and the base of the filename (ENUMNAME) is assumed to be the enumerator name
  • An extern C function named make_ENUMNAME_interface is assumed to exist with signature: CASM::EnumInterfaceBase* make_ENUMNAME_interface(), that returns a pointer which owns a CASM::EnumInterfaceBase-derived object
Note
The lifetime of the RuntimeLibrary must be longer than the lifetime of the EnumInterface

Definition at line 36 of file EnumeratorHandler_impl.hh.

◆ load_query_plugins()

template<typename DataFormatterDictInserter , typename RuntimeLibInserter >
std::pair< DataFormatterDictInserter, RuntimeLibInserter > CASM::load_query_plugins ( const ProjectSettings set,
DataFormatterDictInserter  dict_it,
RuntimeLibInserter  lib_it 
)

Load enumerator plugins from a CASM project.

Definition at line 105 of file QueryHandler_impl.hh.

◆ load_symrep_builder_plugins()

template<typename SymRepBuilderDictInserter , typename RuntimeLibInserter >
std::pair< SymRepBuilderDictInserter, RuntimeLibInserter > CASM::load_symrep_builder_plugins ( const ProjectSettings set,
SymRepBuilderDictInserter  dict_it,
RuntimeLibInserter  lib_it 
)

Load SymRepBuilder plugins from a CASM project.

Definition at line 66 of file HamiltonianModules_impl.hh.

◆ local_dof_info()

std::map< DoFKey, std::vector< DoFSetInfo > > CASM::local_dof_info ( Structure const &  _struc)

Definition at line 395 of file Structure.cc.

◆ log()

Log& CASM::log ( )
inline

Definition at line 424 of file Log.hh.

◆ log_make_shared_runtime_lib()

std::shared_ptr< RuntimeLibrary > CASM::log_make_shared_runtime_lib ( std::string  filename_base,
std::string  compile_options,
std::string  so_options,
std::string  compile_msg 
)

Make shared_ptr<RuntimeLibrary>, logging progress and errors.

Definition at line 19 of file LogRuntimeLibrary.cc.

◆ make_all_super_configurations()

template<typename ConfigOutputIterator >
ConfigOutputIterator CASM::make_all_super_configurations ( Configuration const &  configuration,
std::shared_ptr< Supercell const >  shared_supercell,
ConfigOutputIterator  result 
)

Make all super configurations that fill a particular supercell.

Make all equivalent configurations with respect to the prim factor group that fill a supercell

Method:

  • Generate primitive of "configuration"
  • Find all non-equivalent ways (w.r.t. supercell factor group) to fill "shared_supercell" with the primitive configuration
  • For each, use ConfigEnumByPermutation to generate all equivalents (w.r.t. supercell factor group) in "shared_supercell"

Note:

  • Does not check if "shared_supercell" can be tiled by configuration. To do this check with is_valid_sub_configuration.

Definition at line 27 of file FillSupercell_impl.hh.

◆ make_api_command() [1/2]

template<typename CommandType >
std::unique_ptr< CommandType > CASM::make_api_command ( CommandArgs const &  args,
typename CommandType::OptionType &  opt 
)

Parse command line options and make API command. Throws for parsing errors.

Definition at line 13 of file APICommand_impl.hh.

◆ make_api_command() [2/2]

template<typename CommandType >
std::unique_ptr< CommandType > CASM::make_api_command ( std::string  cli_str,
PrimClex primclex,
typename CommandType::OptionType &  opt 
)

Parse command line options and make API command. Throws for parsing errors.

Parse command line options and make API command. Throws for parsing errors.

Parameters
cli_strCLI args string, ex: 'casm X ...'
primclexExisting PrimClex

Definition at line 27 of file APICommand_impl.hh.

◆ make_asymmetric_unit()

template<typename OrbitType , typename OrbitOutputIterator >
OrbitOutputIterator CASM::make_asymmetric_unit ( const OrbitBranchSpecs< OrbitType > &  specs,
OrbitOutputIterator  result,
std::ostream &  status 
)
related

Generate the asymmetric unit, using OrbitBranchSpecs.

◆ make_attribute_dictionary()

template<typename DataObject >
DataFormatterDictionary< DataObject > CASM::make_attribute_dictionary ( )

Dictionary of all AttributeFormatter (i.e. BaseValueFormatter<V, DataObject>)

Dictionary of all Attribute.

Dictionary of all Attribute types of DataObject.

Default includes String, Boolean, Integer, Scalar, and VectorXd attributes

Definition at line 1182 of file DataFormatterTools.hh.

◆ make_attribute_dictionary< std::shared_ptr< const Structure > >()

template<>
DataFormatterDictionary< std::shared_ptr< const Structure > > CASM::make_attribute_dictionary< std::shared_ptr< const Structure > > ( )

Definition at line 1 of file SharedPrim_data_io.cc.

◆ make_attribute_dictionary< SupercellSymInfo >()

◆ make_axis_glossary()

std::vector<std::string> CASM::make_axis_glossary ( DoFKey  dof_key,
xtal::BasicStructure const &  prim,
std::optional< Eigen::Matrix3l > const &  transformation_matrix_to_super,
std::optional< std::set< Index >> const &  sites 
)

The axis_glossary gives names to an un-symmetrized coordinate system.

Definition at line 388 of file DoFSpace.cc.

◆ make_boolean_dictionary< Supercell >()

◆ make_canonical_cluster_site_indices()

template<typename InversePermutationIterator >
std::set< Index > CASM::make_canonical_cluster_site_indices ( InversePermutationIterator  inverse_permutations_begin,
InversePermutationIterator  inverse_permutations_end,
std::set< Index > const &  cluster_site_indices 
)

Apply inverse permutations and return the maximum equivalent cluster_site_indices

Definition at line 26 of file SupercellClusterOrbits_impl.hh.

◆ make_canonical_supercell_name()

std::string CASM::make_canonical_supercell_name ( SymGroup const &  point_group,
Lattice const &  prim_lattice,
Lattice const &  supercell_lattice 
)

Make the canonical supercell name.

Make the canonical supercell name from SupercellSymInfo.

Definition at line 300 of file SupercellSymInfo.cc.

◆ make_cluster()

IntegralCluster CASM::make_cluster ( std::set< Index > const &  cluster_site_indices,
Structure const &  prim,
SupercellSymInfo const &  sym_info 
)

Return cluster from cluster site indices.

Definition at line 28 of file SupercellClusterOrbits.cc.

◆ make_cluster_site_indices()

std::set< Index > CASM::make_cluster_site_indices ( IntegralCluster const &  cluster,
SupercellSymInfo const &  sym_info 
)

Return site indices of cluster sites.

Definition at line 17 of file SupercellClusterOrbits.cc.

◆ make_collective_dof_symrep()

std::pair< MasterSymGroup, SymGroupRepID > CASM::make_collective_dof_symrep ( std::set< Index > const &  site_indices,
SupercellSymInfo const &  _syminfo,
DoFKey const &  _key,
std::vector< PermuteIterator > const &  _group 
)

Make the matrix representation for group '_group' describing the transformation of DoF '_key' among a subset of sites.

Parameters
site_indicesSet of site indices that define subset of sites of interest
_syminfoSupercellSymInfo object that defines all symmetry properties of supercell
_keyDoFKey specifying which local DoF is of interest
_groupvector of PermuteIterators forming the group that is to be represented (this may be larger than a crystallographic factor group)
Returns
A std::pair containing a MasterSymGroup instantiation of _group and a SymGroupRepID that can be used to access the 'collective_dof_symrep' within the returned MasterSymGroup

Definition at line 372 of file SupercellSymInfo.cc.

◆ make_configdof() [1/4]

ConfigDoF CASM::make_configdof ( Structure const &  prim,
Index  volume 
)

Construct zero-valued ConfigDoF.

Definition at line 10 of file ConfigDoFTools.cc.

◆ make_configdof() [2/4]

ConfigDoF CASM::make_configdof ( Structure const &  prim,
Index  volume,
double  tol 
)

Construct zero-valued ConfigDoF.

Definition at line 17 of file ConfigDoFTools.cc.

◆ make_configdof() [3/4]

ConfigDoF CASM::make_configdof ( Supercell const &  supercell)

Construct zero-valued ConfigDoF.

Definition at line 39 of file ConfigDoFTools.cc.

◆ make_configdof() [4/4]

ConfigDoF CASM::make_configdof ( Supercell const &  supercell,
double  tol 
)

Construct zero-valued ConfigDoF.

Definition at line 44 of file ConfigDoFTools.cc.

◆ make_data_formatter_filter() [1/2]

template<typename DataObject >
DataFormatterFilter< DataObject > CASM::make_data_formatter_filter ( std::string const &  filter_expr,
DataFormatterDictionary< DataObject > const &  _dict 
)

Definition at line 24 of file DataFormatterFilter_impl.hh.

◆ make_data_formatter_filter() [2/2]

template<typename DataObject >
DataFormatterFilter< DataObject > CASM::make_data_formatter_filter ( std::vector< std::string > const &  filter_expr,
DataFormatterDictionary< DataObject > const &  _dict 
)

Definition at line 31 of file DataFormatterFilter_impl.hh.

◆ make_datum_formatter_adapter()

template<typename ExternalType , typename InternalType >
DatumFormatterAdapter<ExternalType, InternalType> CASM::make_datum_formatter_adapter ( BaseDatumFormatter< InternalType > const &  _base_formatter)

Definition at line 122 of file DatumFormatterAdapter.hh.

◆ make_default_project_settings() [1/2]

ProjectSettings CASM::make_default_project_settings ( xtal::BasicStructure const &  prim,
std::string  project_name 
)

Construct default project settings for a given prim structure, without setting a root dir

Notes:

  • Uses default_nlist_weight_matrix and default_nlist_sublat_indices
  • Create default clex using default_configuration_clex
  • Sets required_properties for Configuration to "energy"

Definition at line 88 of file ProjectBuilder.cc.

◆ make_default_project_settings() [2/2]

ProjectSettings CASM::make_default_project_settings ( xtal::BasicStructure const &  prim,
std::string  project_name,
fs::path  root_dir 
)

Construct default project settings for a given prim structure, including a root dir

Notes:

  • Uses default_nlist_weight_matrix and default_nlist_sublat_indices
  • Create default clex using default_configuration_clex
  • Sets required_properties for Configuration to "energy"
  • Sets root dir in project settings

Definition at line 100 of file ProjectBuilder.cc.

◆ make_dictionary()

template<typename DataObject >
DataFormatterDictionary<DataObject> CASM::make_dictionary ( )

Template to can be specialized for constructing dictionaries for particular DataObject.

Default includes the make_attribute_dictionary() and make_operator_dictionary()

Definition at line 732 of file DataFormatter.hh.

◆ make_dof_space()

DoFSpace CASM::make_dof_space ( DoFKey  dof_key,
ConfigEnumInput const &  input_state,
std::optional< Eigen::MatrixXd > const &  basis = std::nullopt 
)

Make DoFSpace using dof_key, transformation matrix and sites from input_state, and basis

Definition at line 487 of file DoFSpace.cc.

◆ make_dof_space_axis_glossary()

std::vector<std::string> CASM::make_dof_space_axis_glossary ( DoFKey  dof_key,
xtal::BasicStructure const &  prim,
std::optional< Eigen::Matrix3l > const &  transformation_matrix_to_super = std::nullopt,
std::optional< std::set< Index >> const &  sites = std::nullopt 
)

Make DoFSpace axis glossary.

◆ make_dof_space_axis_info()

void CASM::make_dof_space_axis_info ( DoFKey  dof_key,
xtal::BasicStructure const &  prim,
std::optional< Eigen::Matrix3l > const &  transformation_matrix_to_super,
std::optional< std::set< Index >> const &  sites,
std::vector< std::string > &  axis_glossary,
std::optional< std::vector< Index >> &  axis_site_index,
std::optional< std::vector< Index >> &  axis_dof_component 
)

Make DoFSpace axis glossary, axis site index, and axis dof component.

The axis_glossary gives names to an un-symmetrized coordinate system.

Definition at line 429 of file DoFSpace.cc.

◆ make_dof_space_symrep()

SymGroupRep const & CASM::make_dof_space_symrep ( DoFSpace const &  dof_space,
SupercellSymInfo const &  sym_info,
std::vector< PermuteIterator > const &  group,
MasterSymGroup symrep_master_group,
SymGroupRepID id 
)

Make a SymGroupRep for a DoFSpace.

Make a SymGroupRep for a DoFSpace

Usage:

DoFSpace dof_space = ... ;
SupercellSymInfo const &sym_info = ... ;
std::vector<PermuteIterator> invariant_group = ... ;
MasterSymGroup symrep_master_group;
SymGroupRepID id;
SymGroupRep const &rep = make_dof_space_symrep(
dof_space, sym_info, invariant_group, symrep_master_group, id);
for (SymOp const &op : group) {
Eigen::MatrixXd matrix_rep = *(rep.MatrixXd(op));
// transformed_dof_values = matrix_rep * dof_values_in_dof_space_basis;
// }
Eigen::MatrixXd MatrixXd
SymGroupRep const & make_dof_space_symrep(DoFSpace const &dof_space, SupercellSymInfo const &sym_info, std::vector< PermuteIterator > const &group, MasterSymGroup &symrep_master_group, SymGroupRepID &id)
Make a SymGroupRep for a DoFSpace.
Definition: DoFSpace.cc:513

Definition at line 513 of file DoFSpace.cc.

◆ make_enum_parent_parser()

ParentInputParser CASM::make_enum_parent_parser ( Log log,
jsonParser const &  json_options,
jsonParser const &  cli_options_as_json 
)

Combine –input / –settings JSON with CLI options.

Definition at line 78 of file EnumInterface.cc.

◆ make_hermite_normal_form()

Eigen::Matrix3l CASM::make_hermite_normal_form ( std::string  hermite_normal_form_name)

Definition at line 231 of file SupercellSymInfo.cc.

◆ make_homogeneous_mode_space()

Eigen::MatrixXd CASM::make_homogeneous_mode_space ( DoFSpace const &  dof_space)

Make the homogeneous mode space of a local DoFSpace.

Make the homogeneous mode space of a local DoFSpace

Parameters
dof_spaceDoF space to find the homogeneous mode space of. Should be a DoF space for a local continuous DoF and include all sites in the supercell.
Returns
The column vector space of allowed homogeneous modes (i.e. allowed rigid translations)

The prim DoF basis may not be either equal to the standard DoF basis, or the same on all sublattices. The homoegeneous mode space then is limited to the common part of dof_info.basis() for each site in the prim.

Ex: most typical, all displacements allowed on all sites: prim_dof_info[0].basis(): [[dx], [dy], [dz]], prim_dof_info[1].basis(): [[dx], [dy], [dz]] Common basis: Rigid translations in [[dx], [dy], [dz]]

Ex: 2d displacements: prim_dof_info[0].basis(): [[dx], [dy]], prim_dof_info[1].basis(): [[dx], [dy]] Common basis: Rigid translations are only allowed in [[dx], [dy]]

Ex: 2d displacements of differing orientation, 1d common basis: prim_dof_info[0].basis(): [[dx, dy], [dz]], prim_dof_info[1].basis(): [[-dx, dy], [dz]] Common basis: Rigid translations are only allowed in [[dz]]

Ex: some fixed sites: prim_dof_info[0].basis(): <not allowed>, prim_dof_info[1].basis(): [[dx], [dy], [dz]] Common basis: No rigid translations allowed

The common basis, in the standard DoF basis, is: common_standard_basis = nullspace( Prod_i P(i) - I ), where projector P(i), is: P(i) = prim_dof_info[i].basis() * prim_dof_info[i].inv_basis()

If the common_standard_basis is not empty, the homogeneous mode space is the column vector space constructed by transforming the common_standard_basis back into the basis for each site in the DoFSpace:

[[ sites_dof_info[0].inv_basis() * common_standard_basis ],
 [ sites_dof_info[1].inv_basis() * common_standard_basis ],
 ...,
 [ sites_dof_info[n_sites-1].inv_basis() * common_standard_basis ]]

Note that the lines above represent blocks equal to the dimension of the DoF basis on each site.

DoFSetInfo for each sublattice

DoFSetInfo for each site in the DoFSpace with 'dof_key'

DoFSetInfo for each sublattice

DoFSetInfo for each site in the DoFSpace with 'dof_key'

Definition at line 740 of file DoFSpace.cc.

◆ make_index_converter() [1/2]

std::vector< std::vector< Index > > CASM::make_index_converter ( const Structure struc,
std::vector< std::string >  mol_name_list 
)

Returns 'converter' which converts site_occupant indices to 'mol_name_list' indices: mol_name_list_index = converter[basis_site][site_occupant_index]

Returns 'converter' which converts Site::site_occupant indices to 'mol_name_list' indices: mol_name_list_index = converter[basis_site][site_occupant_index]

Definition at line 341 of file Structure.cc.

◆ make_index_converter() [2/2]

std::vector<std::vector<Index> > CASM::make_index_converter ( const Structure struc,
std::vector< xtal::Molecule mol_list 
)

Returns 'converter' which converts site_occupant indices to 'mol_list' indices: mol_list_index = converter[basis_site][site_occupant_index]

Returns 'converter' which converts Site::site_occupant indices to 'mol_list' indices: mol_list_index = converter[basis_site][site_occupant_index]

Definition at line 322 of file Structure.cc.

◆ make_index_converter_inverse()

std::vector< std::vector< Index > > CASM::make_index_converter_inverse ( const Structure struc,
std::vector< std::string >  mol_name_list 
)

Returns 'converter_inverse' which converts 'mol_name_list' indices to Site::site_occupant indices: site_occupant_index = converter_inverse[basis_site][mol_name_list_index]

Returns 'converter_inverse' which converts 'mol_name_list' indices to Site::site_occupant indices: site_occupant_index = converter_inverse[basis_site][mol_name_list_index]

If mol is not allowed on basis_site, return struc.basis()[basis_site].occupant_dof().size()

Definition at line 363 of file Structure.cc.

◆ make_integer_dictionary< Supercell >()

◆ make_invariant_subgroup() [1/4]

template<typename Element , typename SymCompareType >
SymGroup CASM::make_invariant_subgroup ( const Element &  element,
const SymGroup generating_grp,
const SymCompareType &  sym_compare 
)

Construct the subgroup that leaves an element unchanged.

Includes translations as determined from 'sym_compare'

Implementation is equivalent to:

Element e {sym_compare.prepare(element)};
SymGroup result = generating_grp;
result.clear();
for(const auto &op : generating_grp) {
if(sym_compare.equal(e, sym_compare.prepare(sym_compare.copy_apply(op,
e)))) {
result.push_back(sym_compare.spatial_transform()*op);
}
}
return result;

Definition at line 92 of file InvariantSubgroup_impl.hh.

◆ make_invariant_subgroup() [2/4]

template<typename OrbitType >
SymGroup CASM::make_invariant_subgroup ( const OrbitType &  orbit,
Index  element_index 
)

Construct the subgroup that leaves an element of the orbit unchanged.

Does not include translations as determined from 'sym_compare'

The equivalence map is: element(i) compares equivalent to prototype().copy_apply(equivalence_map[i][j]) for all j

The subgroup that leaves element 'i' of the orbit unchanged is, for all j: eq_map[i][0]*eq_map[0][j]*eq_map[i][0].inverse()

Definition at line 118 of file InvariantSubgroup_impl.hh.

◆ make_invariant_subgroup() [3/4]

template<typename Element , typename OpIterator , typename SymCompareType , typename OpOutputIterator >
OpOutputIterator CASM::make_invariant_subgroup ( Element const &  element,
OpIterator  group_begin,
OpIterator  group_end,
SymCompareType const &  sym_compare,
OpOutputIterator  result 
)

Construct the subgroup that leaves an element unchanged.

Construct the subgroup that leaves an element unchanged

Includes translations as determined from 'sym_compare'

Implementation is equivalent to:

Element e {sym_compare.prepare(element)};
for(auto group_it=group_begin; group_it!=group_end; ++group_it) {
if(sym_compare.equal(e, sym_compare.prepare(sym_compare.copy_apply(*it,
e)))) {
*result++ = sym_compare.spatial_transform() * (*it);
}
}
return result;

Definition at line 29 of file InvariantSubgroup_impl.hh.

◆ make_invariant_subgroup() [4/4]

template<typename Element , typename SymCompareType , typename OutputIterator >
OutputIterator CASM::make_invariant_subgroup ( Element const &  element,
PermuteIterator  permute_begin,
PermuteIterator  permute_end,
SymCompareType const &  sym_compare,
OutputIterator  result 
)

Construct the subgroup (PermuteIterator) that leaves an element unchanged.

Construct the subgroup (PermuteIterator) that leaves an element unchanged

Implementation is equivalent to:

Element e {sym_compare.prepare(element)};
for(auto permute_it=permute_begin; permute_it!=permute_end; ++permute_it) {
if(sym_compare.equal(e,
sym_compare.prepare(sym_compare.copy_apply(permute_it->sym_op(), e)))) {
*result++ = permute_it;
}
}
return result;

Definition at line 58 of file InvariantSubgroup_impl.hh.

◆ make_inverse_permutations()

template<typename PermuteIteratorIt >
std::vector< Permutation > CASM::make_inverse_permutations ( PermuteIteratorIt  begin,
PermuteIteratorIt  end 
)

Make inverse permutations.

Make inverse permutations

Inverse permutations allow fast permutation of cluster site indices. For the details see permute_cluster_site_indices.

Definition at line 14 of file SupercellClusterOrbits_impl.hh.

◆ make_irrep_decomposition()

SymRepTools_v2::IrrepDecomposition CASM::make_irrep_decomposition ( SymGroupRep const &  rep,
SymGroup const &  head_group,
Eigen::MatrixXd const &  _init_subspace,
bool  allow_complex 
)

Make an IrrepDecompotion using CASM::SymGroupRep and CASM::SymGroup.

Definition at line 150 of file IrrepDecomposition.cc.

◆ make_json_dictionary< Configuration >()

◆ make_json_dictionary< Supercell >()

◆ make_json_input()

template<typename OptionType >
jsonParser CASM::make_json_input ( const OptionType &  opt)

Check for –settings, then –input and return JSON input. Else return empty JSON object.

Definition at line 11 of file json_io_impl.hh.

◆ make_operator_dictionary()

template<typename DataObject >
DataFormatterDictionary< DataObject > CASM::make_operator_dictionary ( )

Dictionary of all DatumFormatterOperator.

Definition at line 514 of file DataFormatterTools.hh.

◆ make_orbit_generators_under_periodic_boundary_conditions()

template<typename InversePermutationIterator , typename ElementIterator >
std::set< std::set< Index >, ClusterSiteIndicesCompare > CASM::make_orbit_generators_under_periodic_boundary_conditions ( SupercellSymInfo const &  sym_info,
InversePermutationIterator  inverse_permutations_begin,
InversePermutationIterator  inverse_permutations_end,
ElementIterator  element_begin,
ElementIterator  element_end 
)

Return "within_scel" orbit generators, as sets of cluster site indices.

Return orbit generators, as sets of cluster site indices, under periodic boundary conditions

Given a range of elements (IntegralCluster), convert to sets of cluster site indices, and apply permute group operations (using inverse permutations to permute site indices instead of site values) to identify unique cluster site indices under periodic boundary conditions

Note:

  • A supercell/configuration may have lower symmetry than the prim, resulting in orbit breaking. The input elements must have been generated using the supercell/configuration symmetry in order to generate all the unique orbit generating elements under periodic boundary conditions. Using "prim_periodic" orbit prototypes is allowed, but then the output of this method will not reflect any symmetry breaking do to the supercell/configuration.
Parameters
sym_infoSupercellSymInfo for the supercell in which cluster orbits are generated
inverse_permutations_begin,inverse_permutations_endThe inverse permutations of the permute group that will be used to generate cluster orbits in the supercell (i.e the result of make_inverse_permutations for the range [sym_info.permute_begin(), sym_info.permute_end()) or a subgroup (i.e. Configuration::factor_group()).
element_begin,element_endIterators that provide orbit elements (IntegralCluster).

Definition at line 72 of file SupercellClusterOrbits_impl.hh.

◆ make_orbits() [1/3]

template<typename GeneratorIterator , typename SymCompareType , typename OrbitOutputIterator >
OrbitOutputIterator CASM::make_orbits ( GeneratorIterator  gen_begin,
GeneratorIterator  gen_end,
const SymGroup generating_group,
const SymCompareType &  sym_compare,
OrbitOutputIterator  result 
)

Iterator over Generators (potential prototypes) and insert resulting orbits into 'result' iterator.

Definition at line 179 of file Orbit.hh.

◆ make_orbits() [2/3]

template<typename GeneratorIterator , typename SymCompareType , typename OrbitOutputIterator >
OrbitOutputIterator CASM::make_orbits ( GeneratorIterator  gen_begin,
GeneratorIterator  gen_end,
const SymGroup generating_group,
const SymCompareType &  sym_compare,
OrbitOutputIterator  result,
std::ostream &  status 
)

Generate Orbit<IntegralVector> using OrbitBranchSpecs.

Definition at line 19 of file VectorOrbits.hh.

◆ make_orbits() [3/3]

template<typename OrbitBranchSpecsIterator , typename OrbitOutputIterator >
OrbitOutputIterator CASM::make_orbits ( OrbitBranchSpecsIterator  begin,
OrbitBranchSpecsIterator  end,
const std::vector< IntegralClusterOrbitGenerator > &  custom_generators,
OrbitOutputIterator  result,
std::ostream &  status 
)

Generate orbits of IntegralCluster using OrbitBranchSpecs.

Generate Orbit<IntegralCluster> using OrbitBranchSpecs.

Parameters
begin,endA range of OrbitBranchSpecs, starting with the null branch
custom_generatorsA vector of custom orbit generating clusters
resultAn output iterator for Orbit
statusStream for status messages

Definition at line 479 of file ClusterOrbits_impl.hh.

◆ make_parsing_dictionary()

template<typename T >
ParsingDictionary<T> CASM::make_parsing_dictionary ( )

◆ make_parsing_dictionary< AnisoValTraits >()

◆ make_parsing_dictionary< DoFType::Traits >()

◆ make_parsing_dictionary< SymRepBuilderInterface >()

◆ make_permutation_representation()

SymGroupRepID CASM::make_permutation_representation ( const SymGroup group,
const xtal::UnitCellCoordIndexConverter bijk_index_converter,
const Lattice prim_lattice,
const SymGroupRepID prim_symrep_ID 
)

Definition at line 103 of file SupercellSymInfo.cc.

◆ make_point_group() [1/5]

template<typename PermuteIteratorContainer >
SymGroup CASM::make_point_group ( const PermuteIteratorContainer &  container,
const Lattice supercell_lattice 
)

Returns a SymGroup generated from a container of PermuteIterator.

Parameters
containerA container of PermuteIterator
  • The result is sorted

Definition at line 179 of file PermuteIterator.hh.

◆ make_point_group() [2/5]

template SymGroup CASM::make_point_group ( PermuteIterator  begin,
PermuteIterator  end,
const Lattice supercell_lattice 
)

◆ make_point_group() [3/5]

template<typename PermuteIteratorIt >
SymGroup CASM::make_point_group ( PermuteIteratorIt  begin,
PermuteIteratorIt  end,
const Lattice supercell_lattice 
)

Returns a SymGroup generated from a range of PermuteIterator.

Parameters
begin,endA range of PermuteIterator
  • The result is sorted
  • The result uses the Supercell lattice for periodic comparisons

Definition at line 236 of file PermuteIterator.cc.

◆ make_point_group() [4/5]

template SymGroup CASM::make_point_group ( std::vector< PermuteIterator >::const_iterator  begin,
std::vector< PermuteIterator >::const_iterator  end,
const Lattice supercell_lattice 
)

◆ make_point_group() [5/5]

template SymGroup CASM::make_point_group ( std::vector< PermuteIterator >::iterator  begin,
std::vector< PermuteIterator >::iterator  end,
const Lattice supercell_lattice 
)

◆ make_report()

jsonParser CASM::make_report ( KwargsParser const &  parser)

Return parser.input with error and warning messages added in place.

Return parser.input with error and warning messages added in place, including all subparsers

Definition at line 214 of file InputParser.cc.

◆ make_scalar_dictionary< Supercell >()

◆ make_simple_structure() [1/3]

xtal::SimpleStructure CASM::make_simple_structure ( Configuration const &  _config,
std::vector< DoFKey > const &  _which_dofs = {},
bool  relaxed = false 
)

Construct SimpleStructure from Configuration.

Parameters
_configConfiguration used as source data
_which_dofsList of DoF type-names that specify which DoF values to utilize from _config when building the result. If empty, all DoFs are used. To exclude all DoFs from conversion, pass _which_dofs={"none"}.
relaxedFlag specifying to use relaxed coordinates and parameters (if true) or to only use the imposed DoFs (if false).

Note:

  • If (relaxed==true && is_calculated(_config):
    • MappedProperties from _config.calc_properties() are applied.
    • Relaxed coordinates are obtained from _config.calc_properties().site.at("coordinate")
    • Relaxed lattice vectors are obtained from _config.calc_properties().global.at("latvec")
    • It is expected, but not checked, that there exist no DoF whose application further affects the coordinates or lattice vectors
  • Otherwise: no MappedProperties are applied.

Definition at line 33 of file SimpleStructureTools.cc.

◆ make_simple_structure() [2/3]

xtal::SimpleStructure CASM::make_simple_structure ( Supercell const &  _scel,
ConfigDoF const &  _dof,
MappedProperties const &  _props,
std::vector< DoFKey > const &  _which_dofs = {},
bool  relaxed = false 
)

Construct from ConfigDoF _dof belonging to provided Supercell _scel and using calculated properties.

Parameters
_propsRecord of calculated properties to use during conversion
relaxedflag specifying to use _props argument during conversion (if true)

Note:

  • If relaxed==true:
    • Relaxed coordinates are obtained from _config.calc_properties().site.at("coordinate")
    • Relaxed lattice vectors are obtained from _config.calc_properties().global.at("latvec")
    • It is expected, but not checked, that there exist no DoF whose application further affects the coordinates or lattice vectors.
  • Otherwise: no MappedProperties are applied.

If not, initialize it

If not, initialize it

Definition at line 45 of file SimpleStructureTools.cc.

◆ make_simple_structure() [3/3]

xtal::SimpleStructure CASM::make_simple_structure ( Supercell const &  _scel,
ConfigDoF const &  _dof,
std::vector< DoFKey > const &  _which_dofs = {} 
)

Construct from ConfigDoF _dof belonging to provided Supercell _scel.

Parameters
_which_dofsList of DoF type-names that specify which DoF values to utilize from _config when building the result if empty, all DoFs are used. To exclude all DoFs from conversion, pass _which_dofs={"none"}

Definition at line 26 of file SimpleStructureTools.cc.

◆ make_standard_enumerator_interfaces()

EnumInterfaceVector CASM::make_standard_enumerator_interfaces ( )

A map containing interfaces that allow casm enum to run the enumeration methods in libcasm

Definition at line 19 of file standard_enumerator_interfaces.cc.

◆ make_standard_info_method_interfaces()

InfoInterfaceVector CASM::make_standard_info_method_interfaces ( )

A vector containing casm info method interfaces.

Definition at line 14 of file standard_info_method_interfaces.cc.

◆ make_string_dictionary< Supercell >()

◆ make_suborbit_generators()

template<typename GroupOpIterator , typename SubgroupOpIterator , typename ElementIterator , typename SymCompareType , typename ElementOutputIterator >
ElementOutputIterator CASM::make_suborbit_generators ( GroupOpIterator  group_begin,
GroupOpIterator  group_end,
SubgroupOpIterator  subgroup_begin,
SubgroupOpIterator  subgroup_end,
ElementIterator  element_begin,
ElementIterator  element_end,
SymCompareType const &  sym_compare,
ElementOutputIterator  result 
)

Definition at line 143 of file SubOrbits_impl.hh.

◆ make_suborbit_generators_f()

template<typename GroupOpIterator , typename SubgroupOpIterator >
MakeSubOrbitGenerators<GroupOpIterator, SubgroupOpIterator> CASM::make_suborbit_generators_f ( GroupOpIterator  group_begin,
GroupOpIterator  group_end,
SubgroupOpIterator  subgroup_begin,
SubgroupOpIterator  subgroup_end 
)

Definition at line 50 of file SubOrbits.hh.

◆ make_supercell_name()

std::string CASM::make_supercell_name ( SymGroup const &  point_group,
Lattice const &  prim_lattice,
Lattice const &  supercell_lattice 
)

Make the supercell name.

Make the supercell name from SupercellSymInfo

For supercells that are equivalent to the canonical supercell:

  • The supercell name is SCELV_A_B_C_D_E_F, where 'V' is supercell volume (number of unit cells), and 'A-F' are the six non-zero elements of the hermite normal form of the canonical supercell transformation matrix (T00, T11, T22, T12, T02, T01)

For supercells that are not equivalent to the canonical supercell:

  • The supercell name is $CANON_SCELNAME.$FG_INDEX where CANON_SCELNAME is the supercell name for the canonical equivalent supercell and FG_INDEX is the lowest index prim factor group operation which can be applied to the canonical supercell lattice to construct a lattice equivalent to the input supercell lattice.

Definition at line 278 of file SupercellSymInfo.cc.

◆ make_supercell_sym_info()

SupercellSymInfo CASM::make_supercell_sym_info ( Structure const &  prim,
Lattice const &  super_lattice 
)

Definition at line 419 of file Structure.cc.

◆ make_superlattice_from_supercell_name()

xtal::Superlattice CASM::make_superlattice_from_supercell_name ( SymGroup const &  factor_group,
Lattice const &  prim_lattice,
std::string  supercell_name 
)

Construct a Superlattice from the supercell name.

Definition at line 311 of file SupercellSymInfo.cc.

◆ make_sym_group() [1/5]

template<typename PermuteIteratorContainer >
SymGroup CASM::make_sym_group ( const PermuteIteratorContainer &  container,
const Lattice supercell_lattice 
)

Returns a SymGroup generated from a container of PermuteIterator.

Parameters
containerA container of PermuteIterator
  • The result is sorted

Definition at line 196 of file PermuteIterator.hh.

◆ make_sym_group() [2/5]

template SymGroup CASM::make_sym_group ( PermuteIterator  begin,
PermuteIterator  end,
const Lattice supercell_lattice 
)

◆ make_sym_group() [3/5]

template<typename PermuteIteratorIt >
SymGroup CASM::make_sym_group ( PermuteIteratorIt  begin,
PermuteIteratorIt  end,
const Lattice supercell_lattice 
)

Returns a SymGroup generated from a range of PermuteIterator.

Parameters
begin,endA range of PermuteIterator
  • The result is sorted
  • The result uses the Supercell lattice for periodic comparisons

Definition at line 262 of file PermuteIterator.cc.

◆ make_sym_group() [4/5]

template SymGroup CASM::make_sym_group ( std::vector< PermuteIterator >::const_iterator  begin,
std::vector< PermuteIterator >::const_iterator  end,
const Lattice supercell_lattice 
)

◆ make_sym_group() [5/5]

template SymGroup CASM::make_sym_group ( std::vector< PermuteIterator >::iterator  begin,
std::vector< PermuteIterator >::iterator  end,
const Lattice supercell_lattice 
)

◆ make_symmetry_adapted_dof_space()

DoFSpace CASM::make_symmetry_adapted_dof_space ( DoFSpace const &  dof_space,
SupercellSymInfo const &  sym_info,
std::vector< PermuteIterator > const &  group,
bool  calc_wedges,
std::optional< VectorSpaceSymReport > &  symmetry_report 
)

Make DoFSpace with symmetry adapated basis.

Definition at line 604 of file DoFSpace.cc.

◆ make_symmetry_adapted_dof_space_v2()

DoFSpace CASM::make_symmetry_adapted_dof_space_v2 ( DoFSpace const &  dof_space,
SupercellSymInfo const &  sym_info,
std::vector< PermuteIterator > const &  group,
bool  calc_wedges,
std::optional< SymRepTools_v2::VectorSpaceSymReport > &  symmetry_report 
)

Make DoFSpace with symmetry adapated basis.

Definition at line 635 of file DoFSpace.cc.

◆ make_translation_permutations()

std::vector<Permutation> CASM::make_translation_permutations ( const Eigen::Matrix3l transformation_matrix,
int  basis_sites_in_prim 
)

Definition at line 24 of file SupercellSymInfo.cc.

◆ make_unique_configdof() [1/4]

std::unique_ptr< ConfigDoF > CASM::make_unique_configdof ( Structure const &  prim,
Index  volume 
)

Construct zero-valued std::unique_ptr<ConfigDoF>

Definition at line 23 of file ConfigDoFTools.cc.

◆ make_unique_configdof() [2/4]

std::unique_ptr< ConfigDoF > CASM::make_unique_configdof ( Structure const &  prim,
Index  volume,
double  tol 
)

Construct zero-valued std::unique_ptr<ConfigDoF>

Definition at line 31 of file ConfigDoFTools.cc.

◆ make_unique_configdof() [3/4]

std::unique_ptr< ConfigDoF > CASM::make_unique_configdof ( Supercell const &  supercell)

Construct zero-valued std::unique_ptr<ConfigDoF>

Definition at line 49 of file ConfigDoFTools.cc.

◆ make_unique_configdof() [4/4]

std::unique_ptr< ConfigDoF > CASM::make_unique_configdof ( Supercell const &  supercell,
double  tol 
)

Construct zero-valued std::unique_ptr<ConfigDoF>

Definition at line 54 of file ConfigDoFTools.cc.

◆ make_unique_sym_group() [1/2]

template<typename PermuteIteratorContainer >
std::unique_ptr<SymGroup> CASM::make_unique_sym_group ( const PermuteIteratorContainer &  container,
const Lattice supercell_lattice 
)

Returns a std::unique_ptr<SymGroup> generated from a container of PermuteIterator.

Parameters
containerA container of PermuteIterator
  • The result is sorted

Definition at line 213 of file PermuteIterator.hh.

◆ make_unique_sym_group() [2/2]

template<typename PermuteIteratorIt >
std::unique_ptr< SymGroup > CASM::make_unique_sym_group ( PermuteIteratorIt  begin,
PermuteIteratorIt  end,
const Lattice supercell_lattice 
)

Returns a SymGroup generated from a range of PermuteIterator.

Returns a std::unique_ptr<SymGroup> generated from a range of PermuteIterator.

Parameters
begin,endA range of PermuteIterator
  • The result is sorted
  • The result uses the Supercell lattice for periodic comparisons

Definition at line 282 of file PermuteIterator.cc.

◆ make_vectorxd_dictionary< Supercell >()

◆ make_vectorxi_dictionary< Configuration >()

◆ make_vectorxi_dictionary< Supercell >()

◆ max()

template<typename T >
T CASM::max ( const T &  A,
const T &  B 
)

Definition at line 95 of file CASM_math.hh.

◆ max_length_cluster_filter()

ClusterFilterFunction CASM::max_length_cluster_filter ( double  max_length)

Accept clusters with max pair distance less than max_length.

Definition at line 498 of file ClusterSpecs.cc.

◆ max_length_neighborhood()

CandidateSitesFunction CASM::max_length_neighborhood ( double  max_length)

Sites within max_length distance to any site in the origin unit cell {b, 0, 0, 0}

Definition at line 514 of file ClusterSpecs.cc.

◆ min()

template<typename T >
T CASM::min ( const T &  A,
const T &  B 
)

Definition at line 88 of file CASM_math.hh.

◆ mod()

int CASM::mod ( int  a,
int  b 
)

Definition at line 262 of file CASM_math.cc.

◆ mol_site_compatibility()

std::vector< std::set< Index > > CASM::mol_site_compatibility ( xtal::SimpleStructure const &  sstruc,
Configuration const &  _config 
)

Determine which sites of a Configuration can host each molecule of a SimpleStructure result[i] is set of site indices in.

Parameters
_configthat can host molecule 'i' of
sstruc

Definition at line 96 of file SimpleStructureTools.cc.

◆ monte_command()

int CASM::monte_command ( const CommandArgs args)

–help option

–help option

Definition at line 123 of file monte.cc.

◆ montecarlo()

void CASM::montecarlo ( const CommandArgs args)

Definition at line 286 of file status.cc.

◆ multiline_help()

template<typename T >
std::string CASM::multiline_help ( )

Help message for reading a type T from input.

Definition at line 10 of file Help.hh.

◆ multinomial_coeff() [1/2]

template<typename IntType >
IntType CASM::multinomial_coeff ( const Array< IntType > &  exponents)

Definition at line 53 of file CASM_Array_math.hh.

◆ multinomial_coeff() [2/2]

template<typename IntType >
IntType CASM::multinomial_coeff ( const Array< IntType > &  exponents,
const Array< Index > &  sublist 
)

Definition at line 65 of file CASM_Array_math.hh.

◆ name()

template<typename DataObject >
GenericDatumFormatter<std::string, DataObject> CASM::name ( )

Definition at line 924 of file DataFormatterTools.hh.

◆ nchoosek()

template<typename IntType >
IntType CASM::nchoosek ( IntType  n,
IntType  k 
)

Definition at line 207 of file CASM_math.hh.

◆ nearest_rational_number()

void CASM::nearest_rational_number ( double  val,
long &  numerator,
long &  denominator,
double  tol = TOL 
)

Definition at line 165 of file CASM_math.cc.

◆ new_dir()

bool CASM::new_dir ( const DirectoryStructure dir,
ClexDescription const &  desc 
)

Add directories for a particular cluster expansion

Create bset, calc_settings, ref, and eci directories for the cluster expansion desc.

Returns
bool, true if all directories exist afterwards

Definition at line 61 of file ClexDescription.cc.

◆ null_composition_space()

Eigen::MatrixXd CASM::null_composition_space ( const ParamComposition::AllowedOccupants _allowed_occs,
double  tol 
)

Return the null composition space of a ParamComposition::AllowedOccupants.

Return the null composition space of a BasicStructure.

Parameters
_allowed_occsA BasicStructure to find the standard composition space for (does not check if it is actually primitive).
toltolerance for checking rank (default 1e-14)
  • Each column corresponds to an orthogonal vector in atom fraction space
  • Each row corresponds to a Molecule, ordered as from BasicStructure::struc_molecule

Definition at line 633 of file CompositionConverter.cc.

◆ null_log()

Log& CASM::null_log ( )
inline

Definition at line 438 of file Log.hh.

◆ num_blocks()

Index CASM::num_blocks ( SymGroupRep const &  _rep,
const SymGroup head_group 
)

counts number of nonzero blocks in matrix representation of head_group as specified by _rep Reveals number of invariant subspaces (with respect to head_group) that comprise the vector space supporting _rep

Definition at line 402 of file SymRepTools.cc.

◆ one_chemical_reference_from_json()

std::pair< Eigen::VectorXd, std::vector< ChemicalReferenceState > > CASM::one_chemical_reference_from_json ( BasicStructure const &  prim,
jsonParser const &  json 
)

Read chemical reference from one of 3 alternative forms.

This function returns a pair with only one element initialized. If alternative 1, then the vector is set. If alternative 2 or 3, then the Eigen::VectorXd is set.

Expected input form: 1)

[
{"A": 3.4, "C": 2.0, "energy_per_species": 2.0},
{"B": 2.0, "energy_per_species": 4.0},
{"C": 1.0, "energy_per_species": 3.0}
]

2) Expects all species in prim, except vacancy:

{"A": X, "C": X, "D": X}

3) Expects one element for each species in prim, including 0.0 for vacancy:

[X, X, X, X]

Definition at line 177 of file ChemicalReference_json_io.cc.

◆ operator!=() [1/2]

bool CASM::operator!= ( DoFSet const &  A,
DoFSet const &  B 
)
inline

Definition at line 320 of file DoFSet.hh.

◆ operator!=() [2/2]

bool CASM::operator!= ( SymGroupRepID const &  a,
SymGroupRepID const &  b 
)
inline

Compares false if group_index() and rep_index() are equal.

Definition at line 88 of file SymGroupRepID.hh.

◆ operator*() [1/3]

double CASM::operator* ( const ECIContainer _eci,
const Eigen::VectorXd &  _corr 
)

Evaluate property given an ECIContainer and correlations.

Definition at line 10 of file ECIContainer.cc.

◆ operator*() [2/3]

double CASM::operator* ( const ECIContainer _eci,
double const *  _corr_begin 
)

Evaluate property given an ECIContainer and pointer to beginning of range of correlation.

Definition at line 21 of file ECIContainer.cc.

◆ operator*() [3/3]

BasisSet CASM::operator* ( const SymOp LHS,
const BasisSet RHS 
)

Definition at line 1408 of file BasisSet.cc.

◆ operator<() [1/2]

bool CASM::operator< ( const ClexDescription A,
const ClexDescription B 
)

Compare using name strings: A.name < B.name.

Definition at line 37 of file ClexDescription.cc.

◆ operator<() [2/2]

bool CASM::operator< ( SymGroupRepID const &  a,
SymGroupRepID const &  b 
)
inline

Less-than comparison for use in STL containers (std::set, std::map, etc)

Definition at line 93 of file SymGroupRepID.hh.

◆ operator<<() [1/19]

DataStream& CASM::operator<< ( DataStream _stream,
const FormattedPrintable _formatted 
)
inline

Definition at line 754 of file DataFormatter.hh.

◆ operator<<() [2/19]

template<class T >
DataStream& CASM::operator<< ( DataStream _stream,
const std::vector< T > &  vec 
)
inline

Definition at line 316 of file DataStream.hh.

◆ operator<<() [3/19]

DataStream& CASM::operator<< ( DataStream _stream,
float  f 
)
inline

Definition at line 303 of file DataStream.hh.

◆ operator<<() [4/19]

DataStream& CASM::operator<< ( DataStream _stream,
int  i 
)
inline

Definition at line 299 of file DataStream.hh.

◆ operator<<() [5/19]

DataStream& CASM::operator<< ( DataStream _stream,
unsigned int  i 
)
inline

Definition at line 307 of file DataStream.hh.

◆ operator<<() [6/19]

DataStream& CASM::operator<< ( DataStream _stream,
unsigned long  i 
)
inline

Definition at line 311 of file DataStream.hh.

◆ operator<<() [7/19]

template<typename T >
Log& CASM::operator<< ( Log log,
const T &  msg_details 
)

Definition at line 394 of file Log.hh.

◆ operator<<() [8/19]

Log & CASM::operator<< ( Log log,
std::ostream &(*)(std::ostream &)  fptr 
)

Definition at line 270 of file Log.cc.

◆ operator<<() [9/19]

std::ostream & CASM::operator<< ( std::ostream &  out,
const Permutation perm 
)

Definition at line 11 of file PermutationIO.cc.

◆ operator<<() [10/19]

std::ostream & CASM::operator<< ( std::ostream &  _stream,
const FormatFlag flag 
)

Definition at line 9 of file FormatFlag.cc.

◆ operator<<() [11/19]

std::ostream& CASM::operator<< ( std::ostream &  _stream,
const FormattedPrintable _formatted 
)
inline

Definition at line 747 of file DataFormatter.hh.

◆ operator<<() [12/19]

std::ostream& CASM::operator<< ( std::ostream &  out,
SymGroupRepID const &  _id 
)
inline

Definition at line 102 of file SymGroupRepID.hh.

◆ operator<<() [13/19]

std::ostream & CASM::operator<< ( std::ostream &  sout,
ClusterInvariants const &  invariants 
)

Print ClusterInvariants.

Definition at line 10 of file ClusterInvariants_stream_io.cc.

◆ operator<<() [14/19]

std::ostream& CASM::operator<< ( std::ostream &  sout,
const BasicClexParamPack::EvalMode val 
)

Definition at line 201 of file BasicClexParamPack.hh.

◆ operator<<() [15/19]

std::ostream& CASM::operator<< ( std::ostream &  sout,
const Configuration c 
)

Definition at line 1094 of file Configuration.cc.

◆ operator<<() [16/19]

std::ostream& CASM::operator<< ( std::ostream &  sout,
const DiffClexParamPack::EvalMode val 
)
inline

Definition at line 672 of file DiffClexParamPack.hh.

◆ operator<<() [17/19]

std::ostream & CASM::operator<< ( std::ostream &  sout,
const IntegralCluster clust 
)

Print IntegralCluster to stream, using default Printer<IntegralCluster>

Definition at line 10 of file IntegralCluster_stream_io.cc.

◆ operator<<() [18/19]

std::ostream & CASM::operator<< ( std::ostream &  sout,
WithinScelClusterInvariants const &  invariants 
)

◆ operator<<() [19/19]

template<typename CounterType >
std::ostream& CASM::operator<< ( std::ostream &  stream,
const MultiCounter< CounterType > &  counter 
)

Definition at line 183 of file MultiCounter.hh.

◆ operator==() [1/2]

bool CASM::operator== ( DoFSet const &  A,
DoFSet const &  B 
)
inline

Definition at line 314 of file DoFSet.hh.

◆ operator==() [2/2]

bool CASM::operator== ( SymGroupRepID const &  a,
SymGroupRepID const &  b 
)
inline

Compares true if group_index() and rep_index() are equal.

Definition at line 83 of file SymGroupRepID.hh.

◆ operator>>() [1/3]

template<class T >
std::istream& CASM::operator>> ( std::istream &  _in,
std::vector< T > &  vec 
)

Definition at line 10 of file stream_io.hh.

◆ operator>>() [2/3]

std::istream& CASM::operator>> ( std::istream &  sin,
BasicClexParamPack::EvalMode val 
)

Definition at line 207 of file BasicClexParamPack.hh.

◆ operator>>() [3/3]

std::istream& CASM::operator>> ( std::istream &  sin,
DiffClexParamPack::EvalMode val 
)
inline

Definition at line 678 of file DiffClexParamPack.hh.

◆ opt_test()

void CASM::opt_test ( )

Definition at line 52 of file complete_tests.cpp.

◆ opt_test2()

void CASM::opt_test2 ( )

Definition at line 79 of file complete_tests.cpp.

◆ orbit_print_mode_help()

std::string CASM::orbit_print_mode_help ( )

Definition at line 22 of file help.cc.

◆ origin_neighborhood()

CandidateSitesFunction CASM::origin_neighborhood ( )

Only sites in the origin unit cell {b, 0, 0, 0}.

Definition at line 508 of file ClusterSpecs.cc.

◆ pad()

Eigen::MatrixXd CASM::pad ( const Eigen::MatrixXd &  M,
int  n 
)
inline

Construct a matrix consisting of blocks M and Identity(n,n)

M -> [ M 0 ]
[ 0 I ]

Definition at line 73 of file PCA.hh.

◆ parse() [1/25]

void CASM::parse ( InputParser< AxesCounterParams > &  parser,
Index  dof_space_dimension 
)

Parse DoFSpace subspace from "axes" and normal coordinate grid counter from "min", "max", and "increment"

Definition at line 439 of file DoFSpace.cc.

◆ parse() [2/25]

void CASM::parse ( InputParser< BasisFunctionSpecs > &  parser,
Structure const &  prim,
ParsingDictionary< DoFType::Traits > const *  dof_dict 
)

Parse BasisFunctionSpecs from JSON & validate

Allowed JSON attributes: dofs: array of string (optional, default= all prim dof keys) An array of string of dof type names that should be used to construct basis functions. The default value is all DoF types included in the prim. global_max_poly_order: int (optional, default=-1) See orbit_branch_max_poly_order documentation. orbit_branch_max_poly_order: object (optional, default={}) By default, for a given cluster orbit, polynomials of order up to the cluster size are created. Higher order polynomials can be requested either on a per-orbit-branch or global basis. The most specific level specified is used. Orbit branches are specified using the string value of the cluster size as a key.

Example: "orbit_branch_max_poly_order": { "4": 7 // use maximum polynomial order == 7, for orbits of cluster size == 4 }, "global_max_poly_order": 3, // use max(3, cluster size), for all other orbits

param_pack_type: string (optional, default="default") Specifies the ParamPack type to use when writing the Clexulator. Options are "default" or "diff", which enables fadbad automatic differentiating. dof_specs: object (required for some dofs) Provides DoF-particular specifications for constructing basis functions. Not all DoF types require their own DoFSpecs. See documentation for a particular DoF type to determine if it is required.

For "occ": (required if occupation dof included) site_basis_functions: string or array (required) Must be one of:

  • "chebychev": For basis functions generated about the random alloy.
  • "occupation": For basis functions generated about the order alloy generated by the first occupant listed for every sublattice in the prim structure.
  • An array specifying sublat compositions, for "composition" basis functions generated about an average composition speficified for each sublattice.

    Example sublattice composition specification, for a prim structure with four sublattices and two allowed occupants ("A" and "B") on each sublattice:

    [
      { // composition on sublattices 0 and 1, as listed
      in prim
        "sublat_indices": [0, 1],
        "composition": {"A": 0.25, "B": 0.75}
      },
      { // composition on sublattices 2 and 3, as listed
      in prim
        "sublat_indices": [2, 3],
        "composition": {"A": 0.75, "B": 0.25}
      }
    ]
    

    For "<flavor>magspin": (optional if "<flavor>magspin" dof included) max_poly_order: int (optional, default=-1) Specifies the maximum polynomial order for site basis functions.

Definition at line 86 of file BasisFunctionSpecs_json_io.cc.

◆ parse() [3/25]

void CASM::parse ( InputParser< ClexBasisSpecs > &  parser,
std::shared_ptr< Structure const >  shared_prim,
ParsingDictionary< DoFType::Traits > const *  dof_dict 
)

Parse ClexBasisSpecs from JSON & validate (bspecs.json input)

Expects:

{
"basis_function_specs": <BasisFunctionSpecs JSON>,
"cluster_specs": <ClusterSpecs JSON>
}

Note:

Definition at line 15 of file ClexBasisSpecs_json_io.cc.

◆ parse() [4/25]

void CASM::parse ( InputParser< ClusterSpecs > &  parser,
const std::shared_ptr< const Structure > &  shared_prim 
)

Parse PeriodicMaxLengthClusterSpecs or LocalMaxLengthClusterSpecs from JSON & validate.

This overload is equivalent to: parse(parser, shared_prim, shared_prim->factor_group()).

Definition at line 327 of file ClusterSpecs_json_io.cc.

◆ parse() [5/25]

void CASM::parse ( InputParser< ClusterSpecs > &  parser,
const std::shared_ptr< const Structure > &  shared_prim,
const SymGroup super_group 
)

Parse ClusterSpecs from JSON & validate.

Parse any supported type of ClusterSpecs from JSON & validate with specified generating_group.

Parameters
parser(InputParser<ClusterSpecs>) Holds resulting value and error or warning messages
shared_prim(const std::shared_ptr<const Structure> &) Prim structure
super_group(const SymGroup &) Used to generate orbits.
transformation_matrix_to_super(Eigen::Matrix3l const *) Optional super lattice transformation matrix for contexts when "within_scel_max_length" is supported.

This is used by PrimClex to read any user's bspecs.json file. Update this if you want to add more recognized cluster specs.

Notes on the naming conventions:

  • An "orbit" is the set of all equivalent objects under some generating symmetry group. It is a general term, and in different contexts within CASM could be used for orbits of clusters, orbits of functions, or orbits of other objects.
  • There are infinitely many orbits of 2-point clusters, corresponding to 1st nearest neighbor, 2nd nearest neighbor, 3rd nearest neighbor, etc. clusters. The same applies to 3-point, 4-point, etc. clusters.
  • The "orbit tree" of all clusters is made up of "orbit branches" where each "branch" of the "orbit tree" is made up of all clusters with the same number of sites. For example, the n=2 "orbit branch" consists of all orbits of 2-point clusters, the n=3 "orbit branch" consists of all orbits of 3-point clusters, etc.

Notes on cluster generation methods:

  • Clusters are generated recursively, meaning 2-point clusters are generated by attempting to add sites to 1-point clusters, 3-point clusters are generated by attempting to add sites to 2-point clusters, etc. This means that some (n+1)-point clusters that would otherwise be included may not be if the (n+1)-point cluster max_length is greater than the n-point cluster max_length. (The max_length value does not matter for null and 1-point cluster orbits, so this applies to n >= 2).

Expected JSON format:

method: string (required)
    Specify which cluster orbit generating method will be used. One of:
    - "periodic_max_length": Clusters differing by a lattice translation
    are considered
      equivalent. Cluster generation is truncated by specifying the
      maximum distance between sites in a cluster for 2-point, 3-point,
      etc. clusters. The point clusters comprising the asymmetric unit
      of the prim structure are always included. This is the appropriate
      method for cluster expansions of crystal properties.
    - "local_max_length": Clusters differing by a lattice translation
    are considered
      distinct. Cluster generation is truncated by specifying for
      2-point, 3-point, etc. clusters the radius of sites from
      "phenomenal" cluster include, and the maximum distance between
      sites in a cluster. This is the appropriate method for cluster
      expansions of properties associated with the "phenomenal" cluster.
params: object (required)
    Specifies parameters for the method selected by `method`. Options
    depend on the `method` chosen:

    For method=="periodic_max_length":
        orbit_branch_specs: object (required)
            Cluster generation is truncated by specifying the maximum
            distance between sites in a cluster for each orbit branch
            (i.e. 2-point, 3-point, etc. clusters). The null (0-point)
            clusters are always included. The 1-point clusters
            comprising the asymmetric unit of the prim structure are
            always included if 2-point clusters or greater are included
            or if "1" is present (with any value).


            Example 1: Generate up to 3-point clusters.
            - null cluster orbit is always included
            - 1-point cluster orbits are included because 2-point
              cluster orbits are included
            - max_length value for point branch 3 is >= max_length
              value for branch 2

                "orbit_branch_specs": {
                    "2": { "max_length": 10.0 },
                    "3": { "max_length": 8.0 }
                }

            Example 2: Generate null cluster orbit only
            - null cluster orbit is always included
              ("orbit_branch_specs" itself need not be included)

                "orbit_branch_specs": {}

            Example 3: Generate null and 1-point cluster orbits only
            - null cluster orbit is always included
            - only the presence of "1" needed to included 1-point
              cluster orbits, the max_length value is not necessary for
              1-point clusters and ignored if present

                "orbit_branch_specs": {
                    "1": {}
                }

        orbit_specs: array (optional)
            An array of clusters which are used to generate and include
            orbits of clusters whether or not they meet the `max_length`
            truncation criteria. See the cluster input format below.

    For method=="local_max_length":
        phenomenal: object (required)
            The "phenomenal" cluster about which local clusters are
            generated. See the cluster input format below.
        generating_group: array of int (required)
            An array of symop indices into the prim structure factor
            group specifying the invariant group of the "phenomenal"
            cluster which should be used to for generating local cluster
            orbits. In some contexts, the relevant symmetry is lower
            than that determined from the phenomenal cluster sites
            alone.
        orbit_branch_specs: object (required)
            All sites within `cutoff_radius` distance of any site in the
            phenomenal cluster are considered candidates for inclusion
            in clusters of a particular orbit branch. Cluster generation
            is truncated by specifying the maximum distance between
            sites in a cluster for each orbit branch. The `max_length`
            parameter is not necessary for 1-point clusters and ignored
            if present.

            Example:
                "orbit_branch_specs": {
                    "1": { "cutoff_radius": 6.0 },
                    "2": { "max_length": 9.0, "cutoff_radius": 6.0 },
                    "3": { "max_length": 8.0, "cutoff_radius": 6.0 },
                    ...
                }

        orbit_specs: array (optional)
            An array of clusters which are used to generate and include
            orbits of clusters whether or not they meet the
            `cutoff_radius` or `max_length` truncation criteria. See the
            cluster input format below.

Cluster input format for "orbit_specs" and "phenomenal": object coordinate_mode: string (optional, default="Integral") Specifies the coordinate mode used to specify cluster sites. May be:

  • "Integral": 4-index coordinate [b, i, j, k], where b=sublattice index, and i,j,k are lattice vector indices. Also accepts "INT", "INTEGRAL", "integral".
  • "Cartesian": 3-index coordinate [x, y, z] giving the site in Cartesian coordinates. Also accepts "CART", "cartesian".
  • "Direct" or "Fractional": 3-index coordinate [a, b, c], where a,b,c are multiplied by the lattice vectors to give the site coordinate in Cartesian coordinates. Also accepts "FRAC", "fractional", "direct". sites: array of arrays (required) An array of coordinates of sites in the cluster. prototype: this is an allowed alias for "sites" include_subclusters: boolean (optional, default=true) Whether all subclusters of the specified clusters should also be included. This is not relevant for "phenomenal" and ignored if present.

Example cluster, with "Direct" coordinates: { "coordinate_mode" : "Direct", "sites" : [ [ 0.000000000000, 0.000000000000, 0.000000000000 ], [ 1.000000000000, 0.000000000000, 0.000000000000 ], [ 2.000000000000, 0.000000000000, 0.000000000000 ], [ 3.000000000000, 0.000000000000, 0.000000000000 ]], "include_subclusters" : true }

Example cluster, with "Integral" coordinates: { "coordinate_mode" : "Integral", "sites" : [ [ 0, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 1, 0, 0, 0 ]], "include_subclusters" : true }

Definition at line 513 of file ClusterSpecs_json_io.cc.

◆ parse() [6/25]

void CASM::parse ( InputParser< ConfigEnumInput > &  parser,
std::shared_ptr< Structure const > const &  shared_prim 
)

Read ConfigEnumInput from JSON.

Definition at line 42 of file ConfigEnumInput_json_io.cc.

◆ parse() [7/25]

void CASM::parse ( InputParser< ConfigEnumOptions > &  parser,
std::string  method_name,
PrimClex const &  primclex,
DataFormatterDictionary< Configuration > const &  dict 
)

Definition at line 72 of file enumerate_configurations_json_io.cc.

◆ parse() [8/25]

void CASM::parse ( InputParser< ConfigEnumRandomLocalParams > &  parser,
MTRand &  mtrand 
)

Definition at line 82 of file ConfigEnumRandomLocalInterface.cc.

◆ parse() [9/25]

void CASM::parse ( InputParser< ConfigEnumRandomOccupationsParams > &  parser,
MTRand &  mtrand 
)

Definition at line 60 of file ConfigEnumRandomOccupationsInterface.cc.

◆ parse() [10/25]

void CASM::parse ( InputParser< ConfigEnumSiteDoFsParams > &  parser,
ConfigEnumInput const &  initial_state,
AxesCounterParams axes_params,
bool  sym_axes_option,
bool  exclude_homogeneous_modes 
)

Parse the ConfigEnumSiteDoFsParams JSON input.

Definition at line 304 of file ConfigEnumSiteDoFsInterface.cc.

◆ parse() [11/25]

void CASM::parse ( InputParser< ConfigEnumStrainParams > &  parser,
ConfigEnumInput const &  initial_state,
AxesCounterParams axes_params,
bool  sym_axes_option 
)

Parse the ConfigEnumStrainParams (except parse "axes" instead of wedges) from JSON input

Parameters
parserInputParser will contain ConfigEnumStrainParams if successful and error messages otherwise
axesEigen::MatriXd speciying a custom user subspace / normal mode axes if provied, otherwise set to Identity matrix of size dof_space_dimension x dof_space_dimension.
dof_space_dimensionDoF space dimension detected from initial enumeration states

Definition at line 316 of file ConfigEnumStrainInterface.cc.

◆ parse() [12/25]

void CASM::parse ( InputParser< DoF_impl::MagSpinDoFSpecs > &  parser,
const Structure prim 
)

Specify max polynomial order for magspin site basis functions

Options:

{
"max_poly_order": <int, optional, default=-1>
}

Definition at line 85 of file MagSpinDoFTraits.cc.

◆ parse() [13/25]

void CASM::parse ( InputParser< DoF_impl::OccupationDoFSpecs > &  parser,
const Structure prim 
)

Reads site_basis_functions from bspecs JSON and validate

site_basis_functions: string or array (required if "occ" dof included)
Must be one of "chebychev" or "occupation" or an array specifying sublat
compositions. Example sublat composition specification:
[
{
"sublat_indices": [0, 1],
"composition": {"A": 0.25, "B": 0.75}
},
{
"sublat_indices": [2, 3],
"composition": {"A": 0.75, "B": 0.25}
}
]

Definition at line 706 of file OccupationDoFTraits.cc.

◆ parse() [14/25]

void CASM::parse ( InputParser< DoFSpace > &  parser,
std::shared_ptr< Structure const > const &  shared_prim 
)

Definition at line 135 of file DoFSpace.cc.

◆ parse() [15/25]

void CASM::parse ( InputParser< ECIContainer > &  parser)

Make ECIContainer from JSON (eci.json file)

Make ECIContainer from JSON (eci.json file)

Format:

{
"orbits":[ // "cluster_functions", prior to 1.0.X
{
"eci": <float>,
"linear_orbit_index": <int>, // "linear_cluster_index", prior to 1.0.X
...
},
...
],
...
}

Note:

  • Prior to version 1.0.X, the "orbits" array was named "cluster_functions" and the "linear_orbit_index" was named "linear_cluster_index". For compatibility, that format is also accepted.

Definition at line 31 of file ECIContainer_json_io.cc.

◆ parse() [16/25]

void CASM::parse ( InputParser< EnumerateSupercellsOptions > &  parser,
std::string  method_name,
PrimClex const &  primclex,
DataFormatterDictionary< Supercell > const &  dict 
)

Definition at line 41 of file enumerate_supercells_json_io.cc.

◆ parse() [17/25]

void CASM::parse ( InputParser< IntegralCluster > &  parser,
Structure const &  prim 
)

Parse IntegralCluster from JSON.

Format:

{
"coordinate_mode" : ("FRAC", "CART", "INT" (default)) (optional)
"sites" : [
[b, i, j, k],
...
]
}
  • Also accepts "prototype" in place of "sites"

Definition at line 89 of file IntegralCluster_json_io.cc.

◆ parse() [18/25]

void CASM::parse ( InputParser< LocalMaxLengthClusterSpecs > &  parser,
const std::shared_ptr< const Structure > &  shared_prim,
const SymGroup super_group 
)

Parse LocalMaxLengthClusterSpecs from JSON.

Parse LocalMaxLengthClusterSpecs from JSON

Parameters
parserInputParser stores resulting value, errors, and warnings
shared_primPrim structure
super_groupSuper group for generating sub groups. When reading the generating_group from JSON, only members of this group will be retained.

Expects:

{
"generating_group": [0, ...], // required, array of symop indices for
generating group "phenomenal": { // IntegralCluster as JSON
"coordinate_mode" : <COORD_TYPE>, // ("FRAC", "CART", "INT" (default))
(optional) "sites" : [
[b, i, j, k], // of type matching coordinate_mode
...
]
},
"orbit_branch_specs": { // required, start at "1"
"1": {"max_length":<number>, "cutoff_radius":<number>},
"2": {"max_length":<number>, "cutoff_radius":<number>},
...},
"orbit_specs": [ // optional
... prototype local clusters...
]
}
COORD_TYPE
Definition: enum.hh:6

Definition at line 280 of file ClusterSpecs_json_io.cc.

◆ parse() [19/25]

void CASM::parse ( InputParser< PeriodicMaxLengthClusterSpecs > &  parser,
const std::shared_ptr< const Structure > &  shared_prim,
const SymGroup super_group 
)

Parse PeriodicMaxLengthClusterSpecs from JSON.

Parse PeriodicMaxLengthClusterSpecs from JSON

Expects:

{
"orbit_branch_specs": { // optional
"2": {"max_length":<number>, "cutoff_radius":<number>},
"3": {"max_length":<number>, "cutoff_radius":<number>},
...},
"orbit_specs": [ // optional
... prototype periodic clusters...
]
}

Notes:

  • The null cluster orbit ("0") is always included with max_length value 0.0 (the value itself does not matter).
  • The point cluster orbit ("1") is included with max_length value 0.0 (the value itself does not matter), if "1" is present with any value, or if "2" or greater is included.

Definition at line 221 of file ClusterSpecs_json_io.cc.

◆ parse() [20/25]

void CASM::parse ( InputParser< std::nullptr_t > &  parser)

Temporary – enables compilation of legacy code.

Definition at line 148 of file InputParser.cc.

◆ parse() [21/25]

void CASM::parse ( InputParser< std::vector< IntegralClusterOrbitGenerator >> &  parser,
Structure const &  prim 
)

Parse custom orbit specs from JSON.

Parse vector of IntegralClusterOrbitGenerator ("orbit_specs") from JSON

Format:

[
{
"coordinate_mode" : ("FRAC", "CART", "INT" (default)) (optional)
"sites" : [ // also accepts "prototype"
[b, i, j, k],
...
],
"include_subclusters": <bool, optional, default=true>
},
...
]
  • Also accepts "prototype" in place of "sites"

Definition at line 43 of file ClusterOrbits_json_io.cc.

◆ parse() [22/25]

void CASM::parse ( InputParser< std::vector< std::pair< std::string, ConfigEnumInput >>> &  parser,
std::shared_ptr< Structure const >  shared_prim,
PrimClex const *  primclex,
DB::Database< Supercell > &  supercell_db,
DB::Database< Configuration > &  configuration_db 
)

Parse JSON to construct initial states for enumeration (as std::map<std::string, ConfigEnumInput>)

◆ parse() [23/25]

template<typename T >
void CASM::parse ( InputParser< T > &  parser)

Definition at line 286 of file InputParser_impl.hh.

◆ parse() [24/25]

void CASM::parse ( InputParser< xtal::ScelEnumProps > &  parser)

Make a ScelEnumProps object from JSON input.

Definition at line 48 of file SuperlatticeEnumeratorIO.cc.

◆ parse() [25/25]

void CASM::parse ( InputParser< xtal::ScelEnumProps > &  parser,
DB::Database< Supercell > &  supercell_db 
)

Make a ScelEnumProps object from JSON input and support "unit_cell"==supercell name

Make a ScelEnumProps object from JSON input

Notes:

  • Default "min" == 1
  • Default "dirs" == "abc"
  • Default "unit_cell" == 3x3 identity matrix

Definition at line 78 of file ConfigEnumInput_json_io.cc.

◆ parse_args()

void CASM::parse_args ( Completer::OptionHandlerBase opt,
std::string  args 
)

Take CLI args string, 'casm X ...', and use boost::program_options to parse into Options

Definition at line 48 of file CLIParse.cc.

◆ parse_axes_counter_range()

void CASM::parse_axes_counter_range ( InputParser< AxesCounterParams > &  parser)

Parse "min", "max", and one of "increment" or "num"

Parameters
parserAxesCounterParams parser

Examples of equivalent input for a grid in 2d space:

  • { "min": 0., "max": 0.101, "increment": 0.01}
  • { "min": 0., "max": 0.1, "num": 11}
  • { "min": [0., 0.], "max": [0.101, 0.101], "increment": [0.1, 0.1]}
  • { "min": [0., 0.], "max": [0.1, 0.1], "num": [11, 11]}

Notes:

  • all range inputs must be consistently either scalar or array
  • "min", "max", "increment" must be number or array of number
  • "num" must be int or array of int, specifies number of values to count over (including min and max values, unless num==1, then exclude max)
  • only "min" is optional, with default value scalar 0, or vector 0, depending on type of "max"
  • only one of "increment", "num" may be present
  • sets AxesCounterParams members scalar_input based on input

Definition at line 267 of file DoFSpace.cc.

◆ parse_axes_from_array()

void CASM::parse_axes_from_array ( InputParser< AxesCounterParams > &  parser,
Index  dof_space_dimension 
)

Read "axes" from a row-vector JSON matrix, store in parser.value->axes as a column vector matrix

Definition at line 367 of file DoFSpace.cc.

◆ parse_axes_from_object()

void CASM::parse_axes_from_object ( InputParser< AxesCounterParams > &  parser,
Index  dof_space_dimension 
)

Parse DoF space axes from a JSON object

Expected format: (this parses "axes" only)

Full space case: { "axes": { "q1": [q10, q11, q12, ...], /// note: starts with "q1", not "q0" "q2": [q20, q21, q22, ...], "q3": [q30, q31, q32, ...], ... }, "min": [q1min, q2min, q3min, ...], /// optional, default is zeros vector "max": [q1max, q2max, q3max, ...], /// required "increment": [q1inc, q2inc, q3inc, ...], /// required }

Subspace case:

  • if some qi (i in range [1, dof_space_dimension]) are missing, then use the subspace specified by the axes that are provided
  • if scalars, min, max, increment will be used along each dimension
  • if arrays, min.size() / max.size() / increment.size() must equal axes.size()
  • example: { "axes": { "q1": [q10, q11, q12, ...], "q2": [q20, q21, q22, ...], "q3": [q30, q31, q32, ...], "q5": [q50, q51, q52, ...], }, "min": [q1min, q2min, q3min, q5min], /// optional, default is zeros vector "max": [q1max, q2max, q3max, q5max], /// required "increment": [q1inc, q2inc, q3inc, q5inc], /// required }

notes:

  • if total dof_space_dimension is double digit, then use "q01", "q02", ... etc.
  • if total dof_space_dimension is triple digit, then use "q001", "q002", ... etc.

Definition at line 332 of file DoFSpace.cc.

◆ parse_ConfigEnumInput_desc()

std::string CASM::parse_ConfigEnumInput_desc ( )

A string describing the JSON format for parsing named ConfigEnumInput.

Definition at line 124 of file ConfigEnumInput_json_io.cc.

◆ parse_dof_space_axes()

void CASM::parse_dof_space_axes ( InputParser< AxesCounterParams > &  parser,
Index  dof_space_dimension 
)

Parse DoF space "axes"

Accepts a JSON object of axes or a row vector matrix of axes. May be rank deficient.

Parameters
parserJSON to be parsed
axesSet to be column vector matrix of axes
dof_space_dimensionFull DoF space dimension. If no "axes" in the JSON, the default axes are identity matrix of size dof_space_dimension. Errors are inserted into parser if axes vectors are not of length equal to dof_space_dimension.

TODO: document "axes" here

Definition at line 416 of file DoFSpace.cc.

◆ parse_label_template()

std::vector<std::string> CASM::parse_label_template ( std::string const &  _template)

Definition at line 10 of file FunctionVisitor.cc.

◆ parse_verbosity()

int CASM::parse_verbosity ( KwargsParser parser,
int  default_verbosity = 10 
)

Parse Log "verbosity" level from JSON

Expected that parser.self.find("verbosity") returns iterator to:

{
"verbosity": <int or string, default=10, range=[0,100], "none" = 0,
"quiet"=5,
"standard"=10, "verbose"=20, "debug"=100>
}

Definition at line 123 of file InputParser.cc.

◆ partition_distinct_values()

template<typename Derived >
ReturnArray<Index> CASM::partition_distinct_values ( const Eigen::MatrixBase< Derived > &  value,
double  tol = TOL 
)

Definition at line 100 of file CASM_Array_math.hh.

◆ permute_cluster_site_indices()

std::set< Index > CASM::permute_cluster_site_indices ( Permutation const &  inverse_permute,
std::set< Index > const &  cluster_site_indices 
)

Rather than permute values, here we want to permute cluster site indices.

Rather than permute values, here we want to permute cluster site indices

Since, when permuting values, value[i] = value[permute[i]], or, site_index_before = permute[site_index_after], to permute site indices use inverse_permute = permute.inverse, and then site_index_after = inverse_permute[site_index_before]

Definition at line 46 of file SupercellClusterOrbits.cc.

◆ permuted_direct_sum_rep()

SymGroupRep CASM::permuted_direct_sum_rep ( const SymGroupRep permute_rep,
const std::vector< SymGroupRep const * > &  sum_reps 
)

Given a permutation of positions, and a list of matrix representations (one per position), build a large matrix representation that has blocks specified by the smaller matrices in

Parameters
sum_repsand whose positions within the large matrix correspond to the permutation from
permute_rep

Definition at line 1194 of file SymRepTools.cc.

◆ perturb_command()

int CASM::perturb_command ( const CommandArgs args)

Definition at line 36 of file perturb.cc.

◆ po_test()

void CASM::po_test ( )

Definition at line 106 of file complete_tests.cpp.

◆ pos_path() [1/3]

template<typename ConfigType >
std::string CASM::pos_path ( const ConfigType &  config)

Definition at line 206 of file Calculable.cc.

◆ pos_path() [2/3]

template<typename ConfigType >
std::string CASM::pos_path ( const ConfigType &  config,
std::string  calctype = "" 
)

◆ pos_path() [3/3]

std::string CASM::pos_path ( const PrimClex primclex,
const std::string &  configname 
)

Definition at line 237 of file Calculable.cc.

◆ prec_help()

std::string CASM::prec_help ( std::string  what,
int  default_prec 
)

Definition at line 28 of file help.cc.

◆ print_aligned_site_basis_funcs()

void CASM::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 occ site basis functions, and continuous site and global bases.

Definition at line 390 of file ProtoFuncsPrinter.cc.

◆ print_basis_functions() [1/2]

void CASM::print_basis_functions ( Log log,
PrimClex const &  primclex,
std::string  basis_set_name,
bool  align,
OrbitPrinterOptions  opt = OrbitPrinterOptions() 
)

Pretty-print basis functions – read clusters from existing clust.json file.

Definition at line 35 of file ClexBasis_stream_io.cc.

◆ print_basis_functions() [2/2]

void CASM::print_basis_functions ( Log log,
std::shared_ptr< Structure const > const &  shared_prim,
ClexBasisSpecs const &  basis_set_specs,
bool  align,
OrbitPrinterOptions  opt = OrbitPrinterOptions() 
)

Pretty-print basis functions – generate, then print.

Definition at line 25 of file ClexBasis_stream_io.cc.

◆ print_clust() [1/2]

template<typename ClusterOrbitIterator >
void CASM::print_clust ( ClusterOrbitIterator  begin,
ClusterOrbitIterator  end,
Log out,
const OrbitPrinterOptions opt = OrbitPrinterOptions() 
)

Print IntegralCluster orbits.

Definition at line 291 of file OrbitPrinter_impl.hh.

◆ print_clust() [2/2]

template<typename ClusterOrbitIterator , typename OrbitPrinter >
void CASM::print_clust ( ClusterOrbitIterator  begin,
ClusterOrbitIterator  end,
Log out,
OrbitPrinter  printer 
)

Print IntegralCluster orbits.

Parameters
begin,endRange of Orbit<SymCompareType>
outoutput stream
modeCoordinate output mode
printerA functor to control printing for the orbit

Printer is expected to have:

Definition at line 222 of file OrbitPrinter_impl.hh.

◆ print_clust_basis()

Index CASM::print_clust_basis ( std::ostream &  stream,
BasisSet  _clust_basis,
IntegralCluster const &  _prototype,
Index  func_ind = 0,
int  space = 18,
char  delim = '\n' 
)

Print cluster with basis_index and nlist_index (from 0 to size()-1), followed by cluster basis functions Functions are labeled \Phi_{i}, starting from i =

Parameters
begin_indReturns the number of functions that were printed

Definition at line 44 of file ClexBasis.cc.

◆ print_coordinates()

template<typename OrbitPrinter , typename Element >
void CASM::print_coordinates ( OrbitPrinter printer,
const Element &  element,
Log out 
)

Definition at line 15 of file OrbitPrinter_impl.hh.

◆ print_dof_space()

template<typename PermuteIteratorIt >
void CASM::print_dof_space ( Log log,
DoFSpace const &  dof_space,
std::string const &  identifier,
ConfigEnumInput const &  input_state,
PermuteIteratorIt  permute_begin,
PermuteIteratorIt  permute_end,
bool  sym_axes,
bool  calc_wedges 
)

Print DoFSpace information.

Print DoFSpace information

Parameters
logLog to print to
nameEnumeration state name
dof_spaceDoFSpace to print information for.
sym_axesIf true, calculate and print symmetry-adapted axes. If false, print only the axis glossary
calc_wedgesIf this and sym_axes are true, calculate and print SubWedge

Notes:

  • If !sym_axes, only prints axis glossary
  • If sym_axes==true, construct and print VectorSpaceSymReport
    • TODO: Currently this prints the VectorSpaceSymReport using the JSON method. Could be specialized for nicer formatting.

Definition at line 32 of file stream_io_impl.hh.

◆ print_errors()

void CASM::print_errors ( KwargsParser const &  parser,
Log log,
std::string  header = "Errors" 
)

Formatted print error messages, including all subparsers.

Definition at line 168 of file InputParser.cc.

◆ print_initial_states()

template<typename NamedInitialStatesType >
void CASM::print_initial_states ( Log log,
NamedInitialStatesType const &  named_initial_states 
)

Definition at line 66 of file stream_io_impl.hh.

◆ print_monte_desc()

void CASM::print_monte_desc ( std::ostream &  sout,
const po::options_description &  desc 
)

Definition at line 27 of file monte.cc.

◆ print_monte_help()

void CASM::print_monte_help ( std::ostream &  sout,
const po::options_description &  desc 
)

Definition at line 22 of file monte.cc.

◆ print_options()

void CASM::print_options ( Log log,
ConfigEnumOptions const &  options 
)

Definition at line 6 of file stream_io.cc.

◆ print_poscar()

void CASM::print_poscar ( Configuration const &  configuration,
std::ostream &  sout 
)

Print Configuration as a VASP POSCAR

Note: This makes use of VaspIO::PrintPOSCAR, which can be used directly for additional formatting options.

Definition at line 9 of file Configuration_stream_io.cc.

◆ print_proto_clust_funcs()

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

◆ print_runtime_lib_options_help()

void CASM::print_runtime_lib_options_help ( std::ostream &  sout)

Definition at line 8 of file LogRuntimeLibrary.cc.

◆ print_site_basis_funcs()

void CASM::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'.

Definition at line 37 of file ProtoFuncsPrinter.cc.

◆ print_splash()

void CASM::print_splash ( std::ostream &  out)

Definition at line 37 of file casm_functions.cc.

◆ print_sym_info()

void CASM::print_sym_info ( Log log,
const SymInfo info,
SymInfoOptions  opt 
)

Print SymInfo.

Of the form:

Mirror Operation with plane Normal = 0.25 0.25 0.0

Definition at line 32 of file SymInfo_stream_io.cc.

◆ print_tex_tabular_cluster_sites()

void CASM::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.

Definition at line 126 of file ProtoFuncsPrinter.cc.

◆ print_warnings()

void CASM::print_warnings ( KwargsParser const &  parser,
Log log,
std::string  header = "Warnings" 
)

Formatted print warning messages, including all subparsers.

Definition at line 150 of file InputParser.cc.

◆ property_test()

void CASM::property_test ( )

Definition at line 200 of file complete_tests.cpp.

◆ prototype_iterator()

template<typename OrbitIterator >
PrototypeIterator<OrbitIterator> CASM::prototype_iterator ( OrbitIterator  orbit_it)

Convert an Orbit iterator to a prototype iterator.

Definition at line 210 of file Orbit.hh.

◆ ran0()

double CASM::ran0 ( int &  idum)

Definition at line 16 of file CASM_math.cc.

◆ rand_unique()

std::vector<int> CASM::rand_unique ( int  n,
int  c,
MTRand &  mtrand 
)

Choose c random unique numbers in [0,n)

Definition at line 62 of file Log.cc.

◆ read_chemical_reference()

ChemicalReference CASM::read_chemical_reference ( fs::path  filename,
BasicStructure const &  prim,
double  tol 
)

Read chemical reference states from JSON file.

See documentation with jsonConstructor<ChemicalReference> for expected format.

re-throw exceptions

re-throw exceptions

Definition at line 14 of file ChemicalReference_file_io.cc.

◆ read_clust() [1/2]

template<typename ClusterOutputIterator >
ClusterOutputIterator CASM::read_clust ( ClusterOutputIterator  result,
const jsonParser json,
const Structure prim 
)

Read JSON containing IntegralCluster prototypes, as IntegralCluster.

Read JSON containing IntegralCluster prototypes, as Orbit<SymCompareType>

  • Uses 'prim' to generate IntegralCluster from prototypes read from the JSON
  • Ignores "prim" and "bspecs" info in the JSON

Definition at line 338 of file OrbitPrinter_impl.hh.

◆ read_clust() [2/2]

template<typename ClusterOutputIterator , typename SymCompareType >
ClusterOutputIterator CASM::read_clust ( ClusterOutputIterator  result,
const jsonParser json,
const Structure prim,
const SymGroup generating_grp,
const SymCompareType &  sym_compare 
)

Read JSON containing Orbit<SymCompareType> prototypes.

  • Uses 'prim', 'generating_grp', and 'sym_compare' to generate orbits from prototypes read from the JSON
  • Ignores "prim" and "bspecs" info in the JSON

Definition at line 318 of file OrbitPrinter_impl.hh.

◆ read_composition_axes()

CompositionAxes CASM::read_composition_axes ( fs::path  _filename)

Definition at line 10 of file CompositionAxes_file_io.cc.

◆ read_prim() [1/3]

xtal::BasicStructure CASM::read_prim ( jsonParser const &  json,
double  xtal_tol,
ParsingDictionary< AnisoValTraits > const *  _aniso_val_dict = nullptr 
)

Read prim.json.

Definition at line 308 of file BasicStructureIO.cc.

◆ read_prim() [2/3]

xtal::BasicStructure CASM::read_prim ( fs::path  filename,
double  xtal_tol,
ParsingDictionary< AnisoValTraits > const *  _aniso_val_dict = nullptr 
)

Definition at line 259 of file BasicStructureIO.cc.

◆ read_prim() [3/3]

BasicStructure CASM::read_prim ( ProjectSettings const &  project_settings)

Definition at line 35 of file PrimClex.cc.

◆ read_shared_prim()

std::shared_ptr<Structure const> CASM::read_shared_prim ( ProjectSettings const &  project_settings)

Definition at line 40 of file PrimClex.cc.

◆ recast()

std::string CASM::recast ( ARG_TYPE  atype)

Definition at line 12 of file complete_tests.cpp.

◆ recurs_cp_files()

Index CASM::recurs_cp_files ( const fs::path &  from_dir,
const fs::path &  to_dir,
bool  dry_run,
Log log 
)

Copy files recursively, and returns a count of copied files.

Definition at line 94 of file DirectoryStructure.cc.

◆ recurs_rm_files()

void CASM::recurs_rm_files ( fs::path  p,
bool  dry_run,
Log log 
)

Remove files recursively.

Definition at line 42 of file DirectoryStructure.cc.

◆ reduced_column_echelon()

template<typename Derived >
Derived::PlainObject CASM::reduced_column_echelon ( Eigen::MatrixBase< Derived > const &  M,
double  _tol 
)

Returns reduced_column_echelon form of M.

Parameters
_tolis used to identify zero values.

Definition at line 78 of file CASM_Eigen_math.hh.

◆ ref_command()

int CASM::ref_command ( const CommandArgs args)

–help option

–help option

Definition at line 177 of file ref.cc.

◆ references_unset()

void CASM::references_unset ( const CommandArgs args)

Definition at line 182 of file status.cc.

◆ relative_casmroot()

fs::path CASM::relative_casmroot ( const fs::path &  cwd)

return relative path to current or parent directory containing ".casm" directory if none found, return empty path

Definition at line 29 of file DirectoryStructure.cc.

◆ report_and_throw_if_invalid()

template<typename ErrorType >
void CASM::report_and_throw_if_invalid ( KwargsParser const &  parser,
Log log,
ErrorType  error 
)

Print errors and warnings, throwing as specified if any errors exist in parser (and subparsers)

Definition at line 266 of file InputParser_impl.hh.

◆ require_all_input_have_the_same_number_of_selected_sites()

void CASM::require_all_input_have_the_same_number_of_selected_sites ( InputParser< std::vector< std::pair< std::string, ConfigEnumInput >>> &  parser)

Definition at line 355 of file ConfigEnumSiteDoFsInterface.cc.

◆ require_valid_sub_configurations()

void CASM::require_valid_sub_configurations ( ParentInputParser parser,
DB::Selection< Configuration > const &  config_selection,
Supercell const &  supercell 
)

Definition at line 96 of file SuperConfigEnumInterface.cc.

◆ reset_properties() [1/2]

void CASM::reset_properties ( ConfigDoF _dof)
inline

Definition at line 215 of file ConfigDoF.hh.

◆ reset_properties() [2/2]

template<typename ConfigType >
void CASM::reset_properties ( ConfigType &  config)

Definition at line 147 of file Calculable.cc.

◆ round()

int CASM::round ( double  val)

Definition at line 10 of file CASM_math.cc.

◆ run_api_command()

template<typename CommandType >
int CASM::run_api_command ( const CommandArgs args)

Standardizes how 'casm X' api commands are executed and implemented.

Definition at line 40 of file APICommand_impl.hh.

◆ run_command()

int CASM::run_command ( const CommandArgs args)

Set command line options using boost program_options

–help option

Set command line options using boost program_options

–help option

Definition at line 40 of file run.cc.

◆ select_cluster_sites()

template<typename Inserter >
Inserter CASM::select_cluster_sites ( ConfigEnumInput const &  reference_config_enum_input,
std::vector< PrimPeriodicIntegralClusterOrbit > const &  orbits,
Inserter  result 
)

Create ConfigEnumInput with unique cluster sites selected, starting from "prim_periodic" orbits

Definition at line 15 of file ClusterSitesSelector_impl.hh.

◆ sequence() [1/2]

template<typename T >
std::vector<T> CASM::sequence ( first,
inc,
last 
)

Definition at line 20 of file algorithm.hh.

◆ sequence() [2/2]

template<typename T >
std::vector<T> CASM::sequence ( first,
last 
)

Definition at line 9 of file algorithm.hh.

◆ set_dof_value()

void CASM::set_dof_value ( Configuration config,
DoFSpace const &  dof_space,
Eigen::VectorXd const &  normal_coordinate 
)

Set config DoF value from a coordinate in the DoFSpace basis.

Definition at line 317 of file DoFSpace.cc.

◆ settings_command()

int CASM::settings_command ( const CommandArgs args)

Set command line options using boost program_options

Set command line options using boost program_options

Definition at line 283 of file settings.cc.

◆ sgn()

template<typename T , typename std::enable_if< std::is_integral< T >::value, T >::type * = nullptr>
int CASM::sgn ( val)

Definition at line 180 of file CASM_math.hh.

◆ simple_json() [1/2]

SimpleJSonSiteStructure<false> CASM::simple_json ( BasicStructure struc,
const std::string &  prefix 
)
inline

Definition at line 130 of file jsonStruc.hh.

◆ simple_json() [2/2]

SimpleJSonSiteStructure<true> CASM::simple_json ( const BasicStructure struc,
const std::string &  prefix 
)
inline

Definition at line 125 of file jsonStruc.hh.

◆ singleline_enum_help< DB::SELECTION_TYPE >()

template<>
std::string CASM::singleline_enum_help< DB::SELECTION_TYPE > ( )
inline

Definition at line 21 of file Selection.hh.

◆ singleline_help()

template<typename T >
std::string CASM::singleline_help ( )

Help message for reading a type T from input.

Definition at line 16 of file Help.hh.

◆ site_indices_are_invariant()

bool CASM::site_indices_are_invariant ( PermuteIterator const &  permute_it,
std::set< Index > const &  site_indices 
)

Return true if the permutation does not mix given sites and other sites.

Return true if the permutation does not given sites and other sites.

Definition at line 323 of file PermuteIterator.cc.

◆ special_irrep_directions() [1/2]

multivector< Eigen::VectorXcd >::X< 2 > CASM::special_irrep_directions ( SymGroupRep const &  _rep,
SymGroup const &  head_group,
double  vec_compare_tol 
)

Assuming that _rep is an irrep of head_group, find high-symmetry directions throws if _rep is not an irrep.

Returns
Set of directions in the vector space on which '_rep' is defined, such that each direction is invariant to a unique subgroup of 'head_group' (i.e., no other direction in the space, except the negative of that direction, is invariant to that subgroup) result[i] is an orbit of symmetrically equivalent directions, result[i][j] is an individual direction. Direction vectors are normalized to unit length. The total set of all directions is guaranteed to span the space.
Parameters
vec_compare_toltolerance for elementwise floating-point comparisons of vectors

Returns array of orbits of high-symmetry directions in the vector space on which this representation is defined. This routine is different from special_total_directions in that it does not rely on the character tables to generate the special directions. The routine also adopts the faster method to generating the irreducible transformation matrix

Definition at line 488 of file SymRepTools.cc.

◆ special_irrep_directions() [2/2]

multivector< Eigen::VectorXcd >::X< 2 > CASM::special_irrep_directions ( SymGroupRep const &  _rep,
SymGroup const &  head_group,
Eigen::Ref< const Eigen::MatrixXcd > const &  _subspace,
double  vec_compare_tol,
bool  all_subgroups = false 
)

Assuming that _rep is an irrep of head_group, find high-symmetry directions throws if _rep is not an irrep.

Returns
Set of directions in the vector space on which '_rep' is defined, such that each direction is invariant to a unique subgroup of 'head_group' (i.e., no other direction in the space, except the negative of that direction, is invariant to that subgroup) result[i] is an orbit of symmetrically equivalent directions, result[i][j] is an individual direction. Direction vectors are normalized to unit length. The total set of all directions is guaranteed to span the space.
Parameters
_subspacematrix such that _subspace.rows()==_rep.dim() and whose columns specify a subspace of underlying vector space
vec_compare_toltolerance for elementwise floating-point comparisons of vectors
all_subgroupsdenotes whether all subgroups of head_group should be used for symmetry analysis (if true), or only cyclic subgroups (if false)

Returns array of orbits of high-symmetry directions in the vector space on which this representation is defined. This routine is different from special_total_directions in that it does not rely on the character tables to generate the special directions. The routine also adopts the faster method to generating the irreducible transformation matrix

Definition at line 503 of file SymRepTools.cc.

◆ special_subspaces()

std::vector< std::vector< Eigen::MatrixXd > > CASM::special_subspaces ( SymGroupRep const &  _rep,
const SymGroup head_group 
)

finds high-symmetry subspaces within vector space supporting _rep, wrt symmetry of head_group High-symmetry subspaces are closed under the action of a nontrivial subgroup of head_group, without spanning the entire vector space supporting _rep

Returns
Set of matrices MxN matrices (M>N) in the vector space on which '_rep' is defined, such that the column space of the matrix is invariant (i.e., closed) under the action of a nontrivial subgroup of head_group result[i] is an orbit of special subspaces that are equivalent by symmetry result[i][j] contains the spanning vectors of a specific special subspace Columns of each subspace matrix are orthogonal and normalized to unit length

Definition at line 610 of file SymRepTools.cc.

◆ special_total_directions()

multivector< Eigen::VectorXd >::X< 3 > CASM::special_total_directions ( SymGroupRep const &  _rep,
const SymGroup head_group 
)

finds high-symmetry directions within vector space supporting _rep, wrt symmetry of head_group

Returns
Set of directions in the vector space on which '_rep' is defined, such that each direction is invariant a subgroup of 'head_group'. These are constructed by finding irreps of _rep and then calling special_irrep_directions on each result[i] is the set of special directions belonging to the i'th irrep constituting _rep result[i][j] is an orbit of symmetrically equivalent directions, and result[i][j][k] is an individual direction. Direction vectors are normalized to unit length. The total set of all directions is guaranteed to span the space.

Definition at line 467 of file SymRepTools.cc.

◆ split_formatter_expression()

void CASM::split_formatter_expression ( const std::string &  input_expr,
std::vector< std::string > &  tag_names,
std::vector< std::string > &  sub_exprs 
)

Definition at line 63 of file DataFormatter.cc.

◆ standard_composition_axes()

template<typename OutputIterator >
OutputIterator CASM::standard_composition_axes ( ParamComposition::AllowedOccupants  _allowed_occs,
OutputIterator  result 
)

Generate CompositionConverter specifying standard composition axes for a prim Structure.

Generate CompositionConverter specifying standard composition axes for a _allowed_occs ParamComposition::AllowedOccupants.

Definition at line 242 of file CompositionConverter.hh.

◆ standard_ConfigEnumInput_help()

std::string CASM::standard_ConfigEnumInput_help ( )

Definition at line 9 of file standard_ConfigEnumInput_help.cc.

◆ standardize_prim()

std::tuple<std::string, std::string, BasicStructure> CASM::standardize_prim ( BasicStructure const &  prim,
bool  force 
)

Check if PRIM is primitive

Check that the PRIM is in reduced form:

Definition at line 40 of file init.cc.

◆ status_command()

int CASM::status_command ( const CommandArgs args)

Set command line options using boost program_options

–help option

1) Check if a project exists

2) Composition axes

3) Configuration generation

4) Calculate configuration properties

5) Choose chemical reference

6) Generate basis functions:

7) Fit effective cluster interactions (ECI):

7) Monte Carlo

Set command line options using boost program_options

–help option

1) Check if a project exists

2) Composition axes

3) Configuration generation

4) Calculate configuration properties

5) Choose chemical reference

6) Generate basis functions:

7) Fit effective cluster interactions (ECI):

7) Monte Carlo

Definition at line 364 of file status.cc.

◆ status_unitialized()

void CASM::status_unitialized ( const CommandArgs args)

Definition at line 14 of file status.cc.

◆ subopt_test()

void CASM::subopt_test ( )

Definition at line 43 of file complete_tests.cpp.

◆ subset_permutation_rep()

SymGroupRep CASM::subset_permutation_rep ( const SymGroupRep permute_rep,
const std::vector< std::set< Index >> &  subsets 
)

Given a permutation representation that permutes indices, calculate a new permutation representation of lower or equal dimension that describes the permutation of ordered subsets of indices. The total number of indices contained in

Parameters
subsetsmust be <= permute_rep.dim() and each Index in
subsetsmust be unique an on the range [0,permute_rep.dim())

Definition at line 1141 of file SymRepTools.cc.

◆ sum()

template<typename Container >
Container::value_type CASM::sum ( const Container &  container,
typename Container::value_type  init_val = 0 
)

Definition at line 131 of file algorithm.hh.

◆ super_command()

int CASM::super_command ( const CommandArgs args)

Set command line options using boost program_options

–help option

enforce a minimum volume

enforce a minimum volume

Set command line options using boost program_options

–help option

enforce a minimum volume

enforce a minimum volume

Definition at line 129 of file super.cc.

◆ supercells_ungenerated()

void CASM::supercells_ungenerated ( const CommandArgs args)

Definition at line 93 of file status.cc.

◆ swap() [1/5]

void CASM::swap ( ConfigDoF A,
ConfigDoF B 
)

Definition at line 260 of file ConfigDoF.cc.

◆ swap() [2/5]

template<typename IteratorType >
void CASM::swap ( FilteredConfigIterator< IteratorType > &  a,
FilteredConfigIterator< IteratorType > &  b 
)

Definitions.

Definition at line 104 of file FilteredConfigIterator.hh.

◆ swap() [3/5]

template<typename IteratorType >
void CASM::swap ( FilterIterator< IteratorType > &  a,
FilterIterator< IteratorType > &  b 
)

Definitions.

Definition at line 70 of file FilterIterator.hh.

◆ swap() [4/5]

template<bool IsConst>
void CASM::swap ( jsonParserIterator< IsConst > &  a,
jsonParserIterator< IsConst > &  b 
)

Definition at line 800 of file jsonParser.cc.

◆ swap() [5/5]

void CASM::swap ( PermuteIterator a,
PermuteIterator b 
)

Definition at line 315 of file PermuteIterator.cc.

◆ swap< false >()

template void CASM::swap< false > ( jsonParserIterator< false > &  ,
jsonParserIterator< false > &   
)

◆ swap< true >()

template void CASM::swap< true > ( jsonParserIterator< true > &  ,
jsonParserIterator< true > &   
)

◆ sym_line()

std::string CASM::sym_line ( const xtal::Coordinate axis,
const xtal::Coordinate point,
SymInfoOptions  opt 
)

Use axis and invariant point to return line in '0, y, 0'-type notation.

Definition at line 172 of file SymInfo_stream_io.cc.

◆ sym_plane() [1/2]

std::string CASM::sym_plane ( const xtal::Coordinate axis,
const xtal::Coordinate point,
SymInfoOptions  opt 
)

Use axis and invariant point to return plane in 'x, y, 0'-type notation.

Definition at line 325 of file SymInfo_stream_io.cc.

◆ sym_plane() [2/2]

std::string CASM::sym_plane ( const xtal::Coordinate v1,
const xtal::Coordinate v2,
const xtal::Coordinate point,
SymInfoOptions  opt 
)

Use two perpendicular vectors in plane and invariant point to return plane in 'x, y, 0'-type notation.

Definition at line 225 of file SymInfo_stream_io.cc.

◆ symmetrize()

void CASM::symmetrize ( PrimClex primclex,
jsonParser const &  json_options,
jsonParser const &  cli_options_as_json 
)

Adjust a structure's lattice and basis to increase factor group symmetry.

Definition at line 292 of file symmetrize.cc.

◆ symmetrize_desc()

std::string CASM::symmetrize_desc ( )

Describe the symmetrize method.

Definition at line 245 of file symmetrize.cc.

◆ throw_if_invalid_dof_space()

void CASM::throw_if_invalid_dof_space ( Configuration const &  config,
DoFSpace const &  dof_space 
)

Throw if !is_valid_dof_space(config, dof_space)

Definition at line 272 of file DoFSpace.cc.

◆ throw_if_no_basis_set_specs()

void CASM::throw_if_no_basis_set_specs ( std::string  basis_set_name,
DirectoryStructure const &  dir 
)

Definition at line 585 of file DirectoryStructure.cc.

◆ throw_if_no_clexulator_src()

void CASM::throw_if_no_clexulator_src ( std::string  project_name,
std::string  basis_set_name,
DirectoryStructure const &  dir 
)

Definition at line 599 of file DirectoryStructure.cc.

◆ throw_if_no_root_dir()

void CASM::throw_if_no_root_dir ( DirectoryStructure const &  dir)

Definition at line 579 of file DirectoryStructure.cc.

◆ to_brief_unicode()

std::string CASM::to_brief_unicode ( const SymInfo info,
SymInfoOptions  opt 
)

Print symmetry symbol to string.

Of the form:

m 0.25 0.25 0.0

Uses prime symbol for time reversal symmetry.

Definition at line 364 of file SymInfo_stream_io.cc.

◆ to_configdof()

std::pair< ConfigDoF, std::set< std::string > > CASM::to_configdof ( SimpleStructure const &  _child_struc,
Supercell const &  _scel 
)

Initializes configdof of Supercell '_scel' corresponding to an idealized child structure (encoded by _child_struc) _child_struc is assumed to have been idealized via structure-mapping or to be the result of converting a configuration to a SimpleStructure. result.second gives list of properties that were utilized in the course of building the configdof.

Definition at line 260 of file ConfigMapping.cc.

◆ to_json() [1/56]

jsonParser & CASM::to_json ( ClexBasisSpecs const &  basis_set_specs,
jsonParser json,
Structure const &  prim,
ParsingDictionary< DoFType::Traits > const *  dof_dict 
)

Write ClexBasisSpecs to JSON (bspecs.json output)

Example:

{
"basis_function_specs": <BasisFunctionSpecs JSON>,
"cluster_specs": <ClusterSpecs JSON>
}

Definition at line 30 of file ClexBasisSpecs_json_io.cc.

◆ to_json() [2/56]

jsonParser & CASM::to_json ( CompositionAxes const &  composition_axes,
jsonParser json 
)

Write CompositionAxes to JSON.

Definition at line 38 of file CompositionAxes_json_io.cc.

◆ to_json() [3/56]

jsonParser & CASM::to_json ( ConfigEnumInput const &  config_enum_input,
jsonParser json 
)

Output ConfigEnumInput to JSON.

Definition at line 20 of file ConfigEnumInput_json_io.cc.

◆ to_json() [4/56]

jsonParser & CASM::to_json ( ConfigMapping::Settings const &  _set,
jsonParser _json 
)

Definition at line 11 of file ConfigMapping_json_io.cc.

◆ to_json() [5/56]

jsonParser & CASM::to_json ( Configuration const &  configuration,
jsonParser json 
)

Insert Configuration to JSON.

Insert Configuration to JSON

Format:

{
"supercell_name": <string>,
"transformation_matrix_to_supercell": <3x3 array of integer>,
"dof": <JSON object representation of ConfigDoF>
}

Note:

  • "supercell_name": string The name of the supercell. If the supercell is in canonical form, the name has the format "SCELV_A_B_C_D_E_F", where V is the integer supercell volume (multiple of the primitive cell), and "A_B_C_D_E_F" are integer values of the hermite normal form of the "transformation_matrix_to_supercell". If the supercell is not in canonical form, the name has the format "SCELV_A_B_C_D_E_F.FG_INDEX", where FG_INDEX is the index in the prim factor group of an operation that transforms the canonical form to the particular supercell.
  • "transformation_matrix_to_supercell": 3x3 array of integer The integer transformation matrix T such that S = P*T, where P is a 3x3 column vector matrix of the prim lattice vectors and S is a 3x3 column vector matrix of the supercell lattice vectors.
  • "dof": JSON object representation of ConfigDoF See to_json(ConfigDoF const &configdof, jsonParser &json) for details.

Definition at line 85 of file Configuration_json_io.cc.

◆ to_json() [6/56]

template<typename T , typename... Args>
jsonParser& CASM::to_json ( const Array< T > &  value,
jsonParser json,
Args &&...  args 
)

Definition at line 19 of file json_io.hh.

◆ to_json() [7/56]

jsonParser & CASM::to_json ( const BasisFunctionSpecs basis_function_specs,
jsonParser json,
Structure const &  prim,
ParsingDictionary< DoFType::Traits > const *  dof_dict 
)

Definition at line 136 of file BasisFunctionSpecs_json_io.cc.

◆ to_json() [8/56]

jsonParser & CASM::to_json ( const BasisSet bset,
jsonParser json 
)

Definition at line 1395 of file BasisSet.cc.

◆ to_json() [9/56]

jsonParser & CASM::to_json ( const ChemicalReference ref,
jsonParser json 
)

Write chemical reference.

Write ChemicalReference.

Example form:

{
"chemical_reference" : {
"global" : ...,
"supercell": {
"SCELX": ...,
"SCELY": ...
},
"config": {
"SCELX/I": ...,
"SCELY/J": ...
}
}
}

Each individual reference is a vector,

[X, X, X, X]

giving the hyperplane of the reference (each element is the reference value for pure Configurations of a given Molecule).

Definition at line 104 of file ChemicalReference_json_io.cc.

◆ to_json() [10/56]

jsonParser & CASM::to_json ( const ChemicalReferenceState ref_state,
jsonParser json 
)

Write ChemicalReferenceState to: '{"A" : X, "B" : X, ..., "energy_per_species" : X }'.

Definition at line 12 of file ChemicalReference_json_io.cc.

◆ to_json() [11/56]

jsonParser & CASM::to_json ( const ClexDescription desc,
jsonParser json 
)

Definition at line 41 of file ClexDescription.cc.

◆ to_json() [12/56]

jsonParser & CASM::to_json ( const ClusterSpecs cspecs,
jsonParser json 
)

◆ to_json() [13/56]

jsonParser & CASM::to_json ( const Completer::EnumOption enum_opt,
jsonParser json 
)

Convert casm enum CLI input to JSON.

Convert casm enum CLI input to JSON

All are optionally present, if present on command line

{
"desc": <array of string, name of enumeration method to print the
description>, "help": <bool, print/return help>, "method": <string, name
of enumeration method>, "settings": <string, represents path to settings
JSON file>, "input": <string, a JSON string>, "min": <int, min supercell
volume to do enumerations>, "max": <int, max supercell volume to do
enumerations>, "filter": <array of string, filter query/select expression,
save configs if evaluates true>, "all": <bool, use all existing supercells
for enumeration>, "verbosity": <string, to be read by
Log::verbosity_level>, "scelnames": <array of string, list of supercell
names, context dependent usage>, "confignames": <array of string, list of
config names, context dependent usage>, "dry_run": <bool, print/return
method results but do not save results>
}
static std::pair< bool, int > verbosity_level(std::string s)
Read verbosity level from a string.
Definition: Log.cc:231
ConfigIO::GenericConfigFormatter< jsonParser > config()
Definition: ConfigIO.cc:777
GenericScelFormatter< double > volume()
Definition: SupercellIO.cc:258
std::string description(const SymOp &op, const xtal::Lattice &lat, SymInfoOptions opt=SymInfoOptions())
Print SymInfo to string.
GenericDatumFormatter< std::string, DataObject > name()
T min(const T &A, const T &B)
Definition: CASM_math.hh:88
std::string help()
Uses 'multiline_help<T>()' by default.
Definition: Help.hh:22
T max(const T &A, const T &B)
Definition: CASM_math.hh:95

Definition at line 30 of file EnumInterface.cc.

◆ to_json() [14/56]

jsonParser & CASM::to_json ( const Completer::SymOption sym_opt,
jsonParser json 
)

Convert casm sym CLI input to JSON.

Convert casm sym CLI input to JSON

All are optionally present, if present on command line

{
"desc": <array of string, name of enumeration method to print the
description>, "help": <bool, print/return help>,
"print_lattice_point_group": <bool, true to print lattice point group>,
"print_factor_group": <bool, true to print factor group>,
"print_crystal_point_group": <bool, true to print crystal point group>,
"coordinate_mode": <string, coordinate type for printing>,
"symmetrize": <string, path to POSCAR file to symmetrize>,
"tol": <number, enforced tolerance for symmetrization>,
"dof_space_analysis": <bool, true to run dof_space_analysis>,
"settings": <string, represents path to settings JSON file>,
"input": <string, a JSON string>,
"scelnames": <array of string, list of supercell names, context dependent
usage>, "confignames": <array of string, list of config names, context
dependent usage>, "selection": <string, configuration selection
name/path>, "dofs": <array of string, DoF types for dof_space_analysis>,
"calc_wedge": <bool, true to calculate DoF space wedge>,
}
const std::set< std::string > & types()
std::set of all QueryTraits<DataObject>::name
GenericVectorXdScelFormatter lattice()
Definition: SupercellIO.cc:266
void dof_space_analysis(PrimClex &primclex, jsonParser const &json_options, jsonParser const &cli_options_as_json)
Perform DoF space analysis.
void symmetrize(PrimClex &primclex, jsonParser const &json_options, jsonParser const &cli_options_as_json)
Adjust a structure's lattice and basis to increase factor group symmetry.
Definition: symmetrize.cc:292

Definition at line 32 of file json_io.cc.

◆ to_json() [15/56]

jsonParser & CASM::to_json ( const CompositionConverter f,
jsonParser json 
)

Serialize CompositionConverter to JSON.

Definition at line 9 of file CompositionConverter_json_io.cc.

◆ to_json() [16/56]

jsonParser & CASM::to_json ( const ConfigDoF configdof,
jsonParser json 
)

Insert ConfigDoF to JSON

Format:

{
"volume": <int>,
"occ": <array of integer>,
"global_dofs": {
<dof_name>: {
"values": <1d array of numbers, DoF values in standard basis>
},
...
},
"local_dofs": {
<dof_name>: {
"values": <2d array of numbers, DoF values in standard basis>
},
...
}
}

Reminder about standard DoF basis vs prim DoF basis:

  • Each type of DoF refers to an AnisoValTraits object which contains the "standard" DoF basis
  • The prim BasicStructure holds xtal::SiteDoFSet (representing local DoF) and xtal::DoFSet (representing global DoF) which contain an AnisoValTraits object and a separate "prim" DoF basis containing a set of named basis vectors which are denoted relative to the standard basis, allowing the user to specify the DoFSet components, name them, and restrict DoF values to a particular subspace.
  • Examples of standard DoF basis specified by AnisoValTraits:
    • "disp" -> (dx, dy, dz) -> displacement components relative to fixed laboratory frame
    • "strain" -> (e_xx, e_yy, e_zz, sqrt(2)*e_yz, sqrt(2)*e_xz, sqrt(2)*e_xy) -> tensor elements
  • ConfigDoF objects in memory store DoF values as coordinates in the prim DoF basis
  • ConfigDoF JSON representation stores DoF values as coordinates in the standard DoF basis

Note:

  • "occ": The integer value for each site corresponding to which Molecule in the Site::occupant_dof vector is occupying that site.

    Example: supercell volume=3, prim basis size=2,

    "occ": [
        occ[1], // "occ" value on site sublattice 0, unit cell 0
        occ[2], // "occ" value on site sublattice 0, unit cell 1
        occ[3], // "occ" value on site sublattice 0, unit cell 2
        occ[4], // "occ" value on site sublattice 1, unit cell 0
        occ[5], // "occ" value on site sublattice 1, unit cell 1
        occ[6]  // "occ" value on site sublattice 1, unit cell 2
      ]
    
  • "local_dofs": The local DoF values are represented as a matrix, with each row representing a site DoF value and each colum representing a component of the DoF value: number of cols = DoF dimension (i.e. 3 for "disp") number of rows = (Supercell volume as multiple of the prim) * (prim basis size).

    Example: "disp" values, supercell volume=3, prim basis size=2

    "local_dofs": {
      "disp": {
        "values": [
          [dx[1], dy[1], dz[1]], // "disp" values on site: sublattice
          0, unit cell 0 [dx[2], dy[2], dz[2]], // "disp" values on
          site: sublattice 0, unit cell 1 [dx[3], dy[3], dz[3]], //
          "disp" values on site: sublattice 0, unit cell 2 [dx[4],
          dy[4], dz[4]], // "disp" values on site: sublattice 1, unit
          cell 0 [dx[5], dy[5], dz[5]], // "disp" values on site:
          sublattice 1, unit cell 1 [dx[6], dy[6], dz[6]], // "disp"
          values on site: sublattice 1, unit cell 2
        ]
      }
    }
    
  • "global_dofs": The global DoF values are represented as a vector of size equal to the dimension of the DoF (i.e. 6 for "GLstrain").

    Example: "GLstrain" values (any supercell volume and prim basis size)

    "global_dofs": {
      "GLstrain": {
        "values": [Exx, Eyy, Ezz, sqrt(2)Exz, sqrt(2)Eyz, sqrt(2)Exy]
      }
    }
    

Definition at line 123 of file ConfigDoF_json_io.cc.

◆ to_json() [17/56]

void CASM::to_json ( const DoF_impl::MagSpinDoFSpecs occ_specs,
jsonParser json 
)

Specify max polynomial order for magspin site basis functions

Options:

{
"max_poly_order": <int, optional, default=-1>
}

Definition at line 97 of file MagSpinDoFTraits.cc.

◆ to_json() [18/56]

void CASM::to_json ( const DoF_impl::OccupationDoFSpecs occupation_dof_specs,
jsonParser json 
)

Definition at line 715 of file OccupationDoFTraits.cc.

◆ to_json() [19/56]

jsonParser& CASM::to_json ( const FormattedPrintable _obj,
jsonParser json 
)
inline

Definition at line 742 of file DataFormatter.hh.

◆ to_json() [20/56]

jsonParser & CASM::to_json ( const Function func,
jsonParser json 
)

Definition at line 423 of file BasisFunction.cc.

◆ to_json() [21/56]

jsonParser & CASM::to_json ( const HyperPlaneReference ref,
jsonParser json 
)

Definition at line 55 of file ChemicalReference_json_io.cc.

◆ to_json() [22/56]

jsonParser & CASM::to_json ( const IntegralClusterOrbitGenerator orbit_generator,
jsonParser json 
)

Write custom orbit specs to JSON.

Definition at line 18 of file ClusterOrbits_json_io.cc.

◆ to_json() [23/56]

jsonParser & CASM::to_json ( const LocalMaxLengthClusterSpecs cspecs,
jsonParser json 
)

Write LocalMaxLengthClusterSpecs to JSON.

Definition at line 570 of file ClusterSpecs_json_io.cc.

◆ to_json() [24/56]

jsonParser & CASM::to_json ( const MappedProperties prop,
jsonParser json 
)

Definition at line 51 of file MappedProperties.cc.

◆ to_json() [25/56]

jsonParser & CASM::to_json ( const OccupantFunction func,
jsonParser json 
)

Definition at line 321 of file OccupantFunction.cc.

◆ to_json() [26/56]

jsonParser & CASM::to_json ( const OrbitPrinterOptions opt,
jsonParser json 
)

Definition at line 18 of file OrbitPrinter.cc.

◆ to_json() [27/56]

jsonParser & CASM::to_json ( const PeriodicMaxLengthClusterSpecs cspecs,
jsonParser json 
)

Write PeriodicMaxLengthClusterSpecs to JSON.

Definition at line 554 of file ClusterSpecs_json_io.cc.

◆ to_json() [28/56]

jsonParser & CASM::to_json ( const Permutation value,
jsonParser json 
)

Definition at line 18 of file PermutationIO.cc.

◆ to_json() [29/56]

jsonParser & CASM::to_json ( const PermuteIterator clust,
jsonParser json 
)

Definition at line 335 of file PermuteIterator.cc.

◆ to_json() [30/56]

jsonParser & CASM::to_json ( const ScoreMappedProperties score,
jsonParser json 
)

Definition at line 153 of file MappedProperties.cc.

◆ to_json() [31/56]

template<bool IsConst>
jsonParser& CASM::to_json ( const SimpleJSonSiteStructure< IsConst > &  jstruc,
jsonParser json 
)

Definition at line 120 of file jsonStruc.hh.

◆ to_json() [32/56]

void CASM::to_json ( const SymInfo info,
jsonParser json 
)

Adds to existing JSON object.

type of symmetry, given by one of the allowed values of symmetry_type

type of symmetry, given by one of the allowed values of symmetry_type

Definition at line 38 of file SymInfo_json_io.cc.

◆ to_json() [33/56]

jsonParser & CASM::to_json ( const SymInfoOptions opt,
jsonParser json 
)

Definition at line 13 of file SymInfo_json_io.cc.

◆ to_json() [34/56]

jsonParser & CASM::to_json ( const Variable var,
jsonParser json 
)

Definition at line 448 of file Variable.cc.

◆ to_json() [35/56]

jsonParser & CASM::to_json ( const xtal::AtomPosition apos,
jsonParser json,
Eigen::Ref< const Eigen::Matrix3d > const &  cart2frac 
)

Print AtomPosition to json after applying affine transformation cart2frac*cart()+trans.

Definition at line 33 of file BasicStructureIO.cc.

◆ to_json() [36/56]

jsonParser & CASM::to_json ( const xtal::BasicStructure prim,
jsonParser json,
COORD_TYPE  mode,
bool  include_va = false 
)

Definition at line 513 of file BasicStructureIO.cc.

◆ to_json() [37/56]

jsonParser & CASM::to_json ( const xtal::Lattice lat,
jsonParser json 
)

Definition at line 9 of file LatticeIO.cc.

◆ to_json() [38/56]

jsonParser & CASM::to_json ( const xtal::Molecule mol,
jsonParser json,
Eigen::Ref< const Eigen::Matrix3d > const &  c2f_mat 
)

Definition at line 92 of file BasicStructureIO.cc.

◆ to_json() [39/56]

jsonParser & CASM::to_json ( const xtal::ScelEnumProps props,
jsonParser json 
)

Definition at line 9 of file SuperlatticeEnumeratorIO.cc.

◆ to_json() [40/56]

jsonParser & CASM::to_json ( const xtal::Site value,
jsonParser json,
COORD_TYPE  coordtype 
)

Definition at line 156 of file BasicStructureIO.cc.

◆ to_json() [41/56]

jsonParser & CASM::to_json ( const xtal::UnitCellCoord ucc_val,
jsonParser fill_json 
)

Print to json as [b, i, j, k].

Definition at line 7 of file UnitCellCoordIO.cc.

◆ to_json() [42/56]

jsonParser & CASM::to_json ( DoFSpace const &  dofspace,
jsonParser json,
std::optional< std::string > const &  identifier,
std::optional< ConfigEnumInput > const &  input_state,
std::optional< SymRepTools_v2::VectorSpaceSymReport > const &  sym_report 
)

Definition at line 84 of file DoFSpace.cc.

◆ to_json() [43/56]

jsonParser & CASM::to_json ( DoFSpace const &  dofspace,
jsonParser json,
std::optional< std::string > const &  identifier = std::nullopt,
std::optional< ConfigEnumInput > const &  input_state = std::nullopt,
std::optional< VectorSpaceSymReport > const &  sym_report = std::nullopt 
)

Definition at line 56 of file DoFSpace.cc.

◆ to_json() [44/56]

jsonParser & CASM::to_json ( const IntegralCluster clust,
jsonParser json 
)

Write IntegralCluster to JSON object.

Format:

{
"min_length" : number,
"max_length" : number,
"sites" : [
[b, i, j, k],
...
]
}

Definition at line 31 of file IntegralCluster_json_io.cc.

◆ to_json() [45/56]

template<typename T , typename... Args>
jsonParser& CASM::to_json ( std::optional< T > const &  value,
jsonParser json 
)

Definition at line 11 of file optional.hh.

◆ to_json() [46/56]

jsonParser & CASM::to_json ( SymGroupRepID const &  _id,
jsonParser json 
)

Definition at line 14 of file SymGroupRepID.cc.

◆ to_json() [47/56]

jsonParser & CASM::to_json ( SymRepTools::IrrepInfo const &  irrep,
jsonParser json 
)

Definition at line 10 of file SymRepTools.cc.

◆ to_json() [48/56]

jsonParser & CASM::to_json ( SymRepTools::SubWedge const &  wedge,
jsonParser json 
)

Definition at line 46 of file SymRepTools.cc.

◆ to_json() [49/56]

jsonParser & CASM::to_json ( SymRepTools_v2::IrrepInfo const &  irrep,
jsonParser json 
)

Definition at line 158 of file SymRepTools.cc.

◆ to_json() [50/56]

jsonParser & CASM::to_json ( SymRepTools_v2::SubWedge const &  wedge,
jsonParser json 
)

Definition at line 194 of file SymRepTools.cc.

◆ to_json() [51/56]

jsonParser & CASM::to_json ( SymRepTools_v2::VectorSpaceSymReport const &  obj,
jsonParser json 
)

Definition at line 206 of file SymRepTools.cc.

◆ to_json() [52/56]

jsonParser & CASM::to_json ( VectorSpaceSymReport const &  obj,
jsonParser json 
)

Definition at line 58 of file SymRepTools.cc.

◆ to_json() [53/56]

jsonParser & CASM::to_json ( xtal::DoFSet const &  _dof,
jsonParser json 
)

Definition at line 8 of file DoFSetIO.cc.

◆ to_json() [54/56]

jsonParser & CASM::to_json ( xtal::SimpleStructure const &  simple_structure,
jsonParser json,
std::set< std::string > const &  excluded_species,
COORD_TYPE  coordinate_mode 
)

Output SimpleStructure to JSON.

Output SimpleStructure to JSON

Parameters
simple_structurextal::SimpleStructure to output to JSON
jsonA JSON object, into which the xtal::SimpleStructure JSON will output. This function will overwrite existing attributes with the same name, but will not erase any other existing attributes.
excluded_speciesNames of any molecular or atomic species that should not be included in the output
coordinate_modeCOORD_TYPE (FRAC or CART) for output coordinates

Note:

  • This is the expected format for properties.calc.json

Expected output:

{
"coord_mode": ("Cartesian" (default), or "Direct" depending on 'mode')
"atom_type": [ // array of atom type names
<atom type name>,
<atom type name>,
...
],
"mol_type": [ // array of molecule type names
<molecule type name>,
<molecule type name>,
...
],
"lattice": [
[<first lattice vector>],
[<second lattice vector>],
[<third lattice vector>]
],
"global_dofs": { // corresponds to simple_struc.properties
<property name>: {
"value": [<property vector>]
},
...
}
"atom_dofs": { // corresponds to simple_struc.atom_info.properties
<property name>: {
"value": [
[<property vector for site 0>],
[<property vector for site 1>],
...
]
},
...
},
"mol_dofs": { // corresponds to simple_struc.mol_info.properties
<property name>: {
"value": [
[<property vector for site 0>],
[<property vector for site 1>],
...
},
...
},
"atom_coords": [ // atom coordinates, according to "coord_mode"
[<coordinate for site 0>],
[<coordinate for site 1>],
...
],
"mol_coords": [ // molecule coordinates, according to "coord_mode"
[<coordinate for site 0>],
[<coordinate for site 1>],
...
],
...
}

Definition at line 325 of file SimpleStructureIO.cc.

◆ to_json() [55/56]

jsonParser & CASM::to_json ( xtal::SiteDoFSet const &  _dof,
jsonParser json 
)

Definition at line 15 of file DoFSetIO.cc.

◆ to_json() [56/56]

jsonParser & CASM::to_json ( xtal::SpeciesAttribute const &  _attr,
jsonParser json 
)

From SpeciesAttribute to json.

Definition at line 26 of file BasicStructureIO.cc.

◆ to_sequential_string()

std::string CASM::to_sequential_string ( Index  i,
Index  max_i,
char  prepend_char = '0' 
)

Definition at line 248 of file CASM_math.cc.

◆ to_string() [1/6]

template<class Key , class T , class Compare >
std::string CASM::to_string ( const std::map< T, Key, Compare > &  container,
std::string  begin = "{",
std::string  end = "}",
std::string  delim = ", " 
)

Definition at line 56 of file string_io.hh.

◆ to_string() [2/6]

template<typename T1 , typename T2 >
std::string CASM::to_string ( const std::pair< T1, T2 > &  value)

Definition at line 17 of file string_io.hh.

◆ to_string() [3/6]

template<class T , class Compare >
std::string CASM::to_string ( const std::set< T, Compare > &  container,
std::string  begin = "[",
std::string  end = "]",
std::string  delim = ", " 
)

Definition at line 48 of file string_io.hh.

◆ to_string() [4/6]

std::string CASM::to_string ( const std::string &  s,
std::string  begin = "\"",
std::string  end = "\"" 
)

Definition at line 11 of file string_io.hh.

◆ to_string() [5/6]

template<class T >
std::string CASM::to_string ( const std::vector< T > &  container,
std::string  begin = "[",
std::string  end = "]",
std::string  delim = ", " 
)

Definition at line 41 of file string_io.hh.

◆ to_string() [6/6]

std::string CASM::to_string ( const SymInfo info,
SymInfoOptions  opt 
)

Print SymInfo to string.

Print SymInfo.

Of the form:

Mirror Operation with plane Normal = 0.25 0.25 0.0

Definition at line 108 of file SymInfo_stream_io.cc.

◆ transf_mat()

Eigen::Matrix3l CASM::transf_mat ( const Lattice prim_lat,
const Lattice super_lat,
double  tol 
)

Make superlattice transformation matrix [deprecated].

Definition at line 462 of file Supercell.cc.

◆ type_name()

template<typename T >
std::string CASM::type_name ( )

Get type name as string, via type_name<T>()

Definition at line 19 of file TypeInfo.hh.

◆ valid_index()

bool CASM::valid_index ( Index  i)

Definition at line 5 of file definitions.cc.

◆ vector_space_sym_report() [1/2]

VectorSpaceSymReport CASM::vector_space_sym_report ( DoFSpace const &  dof_space,
SupercellSymInfo const &  sym_info,
std::vector< PermuteIterator > const &  group,
bool  calc_wedges 
)

Make VectorSpaceSymReport.

Make VectorSpaceSymReport

Parameters
dof_spaceDoFSpace to make VectorSpaceSymReport for
sym_infoSupercell symmetry info
groupGroup used for vector space symmetry report
calc_wedgesIf true, calculate the irreducible wedges for the vector space. This may take a long time.

Definition at line 560 of file DoFSpace.cc.

◆ vector_space_sym_report() [2/2]

VectorSpaceSymReport CASM::vector_space_sym_report ( SymGroupRep const &  _rep,
SymGroup const &  head_group,
Eigen::Ref< const Eigen::MatrixXd > const &  _subspace,
bool  calc_wedges = false 
)

Construct the VectorSpaceSymReport for.

Parameters
_repmatrix representation of head_group, this defines group action on the underlying vector space
head_groupgroup for which the sym report is to be generated
_subspacematrix such that _subspace.rows()==_rep.dim() and whose columns specify a subspace of underlying vector space
calc_wedgesif true, 'irreducible_wedge' of returned object is initialized, if false, 'irreducible_wedge' is empty

Definition at line 725 of file SymRepTools.cc.

◆ vector_space_sym_report_v2() [1/2]

SymRepTools_v2::VectorSpaceSymReport CASM::vector_space_sym_report_v2 ( DoFSpace const &  dof_space,
SupercellSymInfo const &  sym_info,
std::vector< PermuteIterator > const &  group,
bool  calc_wedges 
)

Make VectorSpaceSymReport.

Make VectorSpaceSymReport

Parameters
dof_spaceDoFSpace to make VectorSpaceSymReport for
sym_infoSupercell symmetry info
groupGroup used for vector space symmetry report
calc_wedgesIf true, calculate the irreducible wedges for the vector space. This may take a long time.

Definition at line 585 of file DoFSpace.cc.

◆ vector_space_sym_report_v2() [2/2]

SymRepTools_v2::VectorSpaceSymReport CASM::vector_space_sym_report_v2 ( SymGroupRep const &  rep,
SymGroup const &  head_group,
Eigen::MatrixXd const &  subspace,
bool  calc_wedges 
)

Construct VectorSpaceSymReport, using CASM::SymGroupRep and CASM::SymGroup.

Construct the VectorSpaceSymReport

Parameters
_repMatrix representation of head_group, this defines group action on the underlying vector space
head_groupgroup for which the sym report is to be generated
_subspacematrix such that _subspace.rows()==_rep.dim() and whose columns specify a subspace of underlying vector space
calc_wedgesif true, 'irreducible_wedge' of returned object is initialized, if false, 'irreducible_wedge' is empty

Definition at line 45 of file VectorSpaceSymReport.cc.

◆ verbosity_help()

std::string CASM::verbosity_help ( )

Definition at line 35 of file help.cc.

◆ version()

const std::string & CASM::version ( )

Definition at line 14 of file autoversion.cc.

◆ viable_supercells()

template<typename OrbitType >
std::vector< Eigen::Matrix3i > CASM::viable_supercells ( std::vector< OrbitType > &  local_orbits,
const std::vector< Eigen::Matrix3i > &  transf_mat_options 
)

Return superlattice transf. matrices for which has_local_neighborhood_overlap is false.

Parameters
local_orbitsVector of IntegralCluster orbits defining the local neighborhood
transf_mat_optionsA vector of supercell transformation matrices

Definition at line 224 of file ClusterOrbits_impl.hh.

◆ view_command()

int CASM::view_command ( const CommandArgs args)

–help option

–help option

Definition at line 46 of file view.cc.

◆ which_unique_combination() [1/4]

Index CASM::which_unique_combination ( const Array< Index > &  input,
const Array< Array< Index > > &  unique 
)

Definition at line 38 of file CASM_Array_math.cc.

◆ which_unique_combination() [2/4]

Index CASM::which_unique_combination ( const Array< Index > &  input,
const Array< Array< Index > > &  unique,
const Array< Array< Index > > &  ind_equiv 
)

Definition at line 9 of file CASM_Array_math.cc.

◆ which_unique_combination() [3/4]

Index CASM::which_unique_combination ( const Array< Index > &  input,
const Array< Index >::X2 &  unique 
)

◆ which_unique_combination() [4/4]

Index CASM::which_unique_combination ( const Array< Index > &  input,
const Array< Index >::X2 &  unique,
const Array< Index >::X2 &  ind_equiv 
)

◆ write_basis_permutation_rep()

void CASM::write_basis_permutation_rep ( SymGroup const &  grp,
jsonParser group_rep_json,
SymGroupRepID  symgrouprep_id 
)

Describes how integral site coordinates transform under application of symmetry.

Writes an array, with one element for each group element, containing:

  • matrix
  • sublattice_permute
  • sublattice_shift

The ith factor group operation transforms a basis site:

(b, r_frac) -> (b', r_frac')

according to:

b' = sublattice_permute[b]
r_frac' = matrix * r_frac + sublattice_shift[b]`

where b is the basis index and r_frac is the integer unit cell coordinate of a site.

Definition at line 118 of file SymGroup_json_io.cc.

◆ write_chemical_reference()

void CASM::write_chemical_reference ( const ChemicalReference chem_ref,
fs::path  filename 
)

Write chemical reference states to JSON file.

See documentation with to_json(ChemicalReference const&, jsonParser &) for JSON format.

Definition at line 37 of file ChemicalReference_file_io.cc.

◆ write_clust() [1/3]

template<typename ClusterOrbitIterator >
jsonParser & CASM::write_clust ( ClusterOrbitIterator  begin,
ClusterOrbitIterator  end,
jsonParser json,
const OrbitPrinterOptions opt = OrbitPrinterOptions() 
)

Write Orbit<SymCompareType> to JSON.

Write Orbit<SymCompareType> to JSON, including 'bspecs'.

Definition at line 381 of file OrbitPrinter_impl.hh.

◆ write_clust() [2/3]

template<typename ClusterOrbitIterator , typename Printer >
jsonParser & CASM::write_clust ( ClusterOrbitIterator  begin,
ClusterOrbitIterator  end,
jsonParser json,
Printer  printer 
)

Write Orbit<SymCompareType> to JSON.

Format:

{
"orbits": [
{
"prototype" : {
"min_length" : number,
"max_length" : number,
"sites" : (JSON array of UnitCellCoord)
}
},
... for each orbit ...
],
"prim" : (JSON object, the contents of prim.json)
}

Definition at line 367 of file OrbitPrinter_impl.hh.

◆ write_clust() [3/3]

template<typename ClusterOrbitIterator , typename Printer >
jsonParser & CASM::write_clust ( ClusterOrbitIterator  begin,
ClusterOrbitIterator  end,
jsonParser json,
Printer  printer,
const jsonParser bspecs 
)

Write Orbit<SymCompareType> to JSON, including 'bspecs'.

Format:

{
"orbits": [
{
"prototype" : {
"min_length" : number,
"max_length" : number,
"sites" : (JSON array of UnitCellCoord)
}
},
... for each orbit ...
],
"bspecs" : (JSON object, the contents of bspecs.json)
"prim" : (JSON object, the contents of prim.json)
}

Definition at line 420 of file OrbitPrinter_impl.hh.

◆ write_composition_axes()

void CASM::write_composition_axes ( fs::path  _filename,
CompositionAxes const &  composition_axes 
)

Write CompositionAxes to file.

Definition at line 23 of file CompositionAxes_file_io.cc.

◆ write_config_json()

void CASM::write_config_json ( Configuration const &  configuration,
DirectoryStructure const &  dir 
)

Write configuration "config.json" file (DoF values in standard basis) to standard location

Definition at line 49 of file clex_io.cc.

◆ write_lat()

void CASM::write_lat ( Supercell const &  supercell,
DirectoryStructure const &  dir 
)

Write supercell "LAT" file (supercell lattice vectors as column vectors) to standard location

Definition at line 22 of file clex_io.cc.

◆ write_matrix_rep()

void CASM::write_matrix_rep ( SymGroupRepHandle const &  grp,
jsonParser json 
)

Definition at line 160 of file SymGroup_json_io.cc.

◆ write_occ_permutation_rep()

void CASM::write_occ_permutation_rep ( SymGroup const &  grp,
jsonParser json,
std::vector< SymGroupRepID occupant_symrep_IDs 
)

Writes a 3d array, where occ_permutation_rep[b][i] is the permutation array for occupant values on sublattice 'b', due to group operation grp[i], according to: occ(l) = occ_permutation_rep[b][i][occ(l)]. Occupation values are transformed on each site in this way before begin permuted among sites.

Definition at line 145 of file SymGroup_json_io.cc.

◆ write_pos()

void CASM::write_pos ( Configuration const &  configuration,
DirectoryStructure const &  dir 
)

Write configuration "POS" file (VASP POSCAR) to standard location.

Definition at line 29 of file clex_io.cc.

◆ write_prim() [1/2]

void CASM::write_prim ( const xtal::BasicStructure prim,
fs::path  filename,
COORD_TYPE  mode,
bool  include_va = false 
)

Write prim.json to file.

Definition at line 429 of file BasicStructureIO.cc.

◆ write_prim() [2/2]

void CASM::write_prim ( const xtal::BasicStructure prim,
jsonParser json,
COORD_TYPE  mode,
bool  include_va = false 
)

Write prim.json as JSON.

Definition at line 442 of file BasicStructureIO.cc.

◆ write_prim_symmetry()

void CASM::write_prim_symmetry ( PrimClex primclex,
jsonParser const &  json_options,
jsonParser const &  cli_options_as_json 
)

Write/print prim symmetry.

Definition at line 147 of file write_prim_symmetry.cc.

◆ write_prim_symmetry_desc()

std::string CASM::write_prim_symmetry_desc ( )

Describe the default casm sym option.

Definition at line 104 of file write_prim_symmetry.cc.

◆ write_prim_symmetry_impl()

void CASM::write_prim_symmetry_impl ( Structure const &  prim,
DirectoryStructure const &  dir,
COORD_TYPE  coordtype,
bool  brief,
Log log,
bool  print_lattice_point_group,
bool  print_factor_group,
bool  print_crystal_point_group 
)

Write/print prim symmetry

Notes:

  • The default casm sym action writes the following symmetry files:
    • Lattice point group: <root>/symmetry/lattice_point_group.json
    • Crystal factor group: <root>/symmetry/factor_group.json
    • Crystal point group: <root>/symmetry/crystal_point_group.json
  • Optionally, it also prints symmetry information to log:
    • Print lattice point group with print_lattice_point_group
    • Print crystal factor group with print_factor_group
    • Print crystal point group with print_crystal_point_group
    • Control coordinate printing mode (FRAC vs CART) with coordtype
  • Use cases:
    • Use this method to print symmetry info to screen
    • Use this method to write symmetry files if they have been deleted
    • Use this method to write symmetry files if the crystallography tolerance in project settings is modified

Definition at line 40 of file write_prim_symmetry.cc.

◆ write_site_basis_funcs()

void CASM::write_site_basis_funcs ( std::shared_ptr< const Structure prim_ptr,
ClexBasis const &  clex_basis,
jsonParser json 
)

Definition at line 465 of file ProtoFuncsPrinter.cc.

◆ write_structure_json()

void CASM::write_structure_json ( Configuration const &  configuration,
DirectoryStructure const &  dir 
)

Write configuration "structure.json" file (structure that results from appling DoF) to standard location

Definition at line 38 of file clex_io.cc.

◆ write_symgroup()

void CASM::write_symgroup ( SymGroup const &  grp,
jsonParser json 
)

Definition at line 47 of file SymGroup_json_io.cc.

◆ write_symop()

void CASM::write_symop ( SymGroup const &  grp,
Index  i,
jsonParser j 
)

Definition at line 18 of file SymGroup_json_io.cc.

Variable Documentation

◆ CART

const COORD_TYPE CASM::CART = COORD_TYPE::CART

Definition at line 9 of file enum.hh.

◆ COORD_DEFAULT

const COORD_TYPE CASM::COORD_DEFAULT = COORD_TYPE::COORD_DEFAULT

Definition at line 11 of file enum.hh.

◆ FRAC

const COORD_TYPE CASM::FRAC = COORD_TYPE::FRAC

Definition at line 8 of file enum.hh.

◆ include_va_opt

const std::string CASM::include_va_opt = "include-va"

Definition at line 37 of file init.cc.

◆ INTEGRAL

const COORD_TYPE CASM::INTEGRAL = COORD_TYPE::INTEGRAL

Definition at line 10 of file enum.hh.

◆ KB

const double CASM::KB = 8.6173423E-05

Definition at line 33 of file definitions.hh.

◆ LOCAL

const PERIODICITY_TYPE CASM::LOCAL = PERIODICITY_TYPE::LOCAL

Definition at line 21 of file enum.hh.

◆ molecule_opt

const std::string CASM::molecule_opt = "as-molecules"

Definition at line 35 of file init.cc.

◆ PERIODIC

const PERIODICITY_TYPE CASM::PERIODIC = PERIODICITY_TYPE::PERIODIC

Definition at line 20 of file enum.hh.

◆ PERIODICITY_DEFAULT

const PERIODICITY_TYPE CASM::PERIODICITY_DEFAULT
Initial value:
=
const PERIODICITY_TYPE PERIODICITY_DEFAULT
Definition: enum.hh:22

Definition at line 22 of file enum.hh.

◆ PLANCK

const double CASM::PLANCK = 4.135667516E-15

Definition at line 36 of file definitions.hh.

◆ PRIM

const CELL_TYPE CASM::PRIM = CELL_TYPE::PRIM

Definition at line 29 of file enum.hh.

◆ relaxed_opt

const std::string CASM::relaxed_opt = "relaxed"

Definition at line 33 of file init.cc.

◆ SCEL

const CELL_TYPE CASM::SCEL = CELL_TYPE::SCEL

Definition at line 30 of file enum.hh.

◆ subproject_opt

const std::string CASM::subproject_opt = "sub"

Definition at line 29 of file init.cc.

◆ TOL

const double CASM::TOL = 0.00001

Definition at line 30 of file definitions.hh.

◆ write_prim_opt

const std::string CASM::write_prim_opt = "write-prim"

Definition at line 31 of file init.cc.