CASM  1.1.0
A Clusters Approach to Statistical Mechanics
Configuration

Detailed Description

A Configuration represents the values of all degrees of freedom in a Supercell.

Modules

 Configuration Enumerators
 Enumerates Configuration.
 
 ConfigIsEquivalent
 Methods for comparing Configurations (with the same Supercell)
 

Classes

class  CASM::ConfigDoF
 
class  CASM::ConfigMapper
 
class  CASM::Configuration
 
struct  CASM::ConfigInsertResult
 Holds results of Configuration::insert. More...
 
struct  CASM::RefToCanonicalPrim
 Operations that transform a canonical primitive configuration to any equivalent. More...
 

Typedefs

typedef ConfigCanonicalForm< HasSupercell< Comparisons< Calculable< CRTPBase< Configuration > > > > > CASM::ConfigurationBase
 

Functions

Configuration CASM::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 CASM::make_configuration (const PrimClex &primclex, std::string name)
 Make Configuration from name string. More...
 
Eigen::VectorXd CASM::correlations (const Configuration &config, Clexulator const &clexulator)
 Returns correlations using 'clexulator'. More...
 
Eigen::VectorXd CASM::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 CASM::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 CASM::gradcorrelations (const Configuration &config, Clexulator const &clexulator, DoFKey &key)
 Returns gradient correlations using 'clexulator', with respect to DoF 'dof_type'. More...
 
Eigen::VectorXd CASM::comp (const Configuration &config)
 Returns parametric composition, as calculated using PrimClex::param_comp. More...
 
Eigen::VectorXd CASM::comp_n (const Configuration &config)
 Returns the composition, as number of each species per unit cell. More...
 
double CASM::n_vacancy (const Configuration &config)
 Returns the vacancy composition, as number per unit cell. More...
 
double CASM::n_species (const Configuration &config)
 Returns the total number species per unit cell. More...
 
Eigen::VectorXd CASM::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 CASM::site_frac (const Configuration &config)
 Returns the composition as site fraction, in the order of Structure::get_struc_molecule. More...
 
double CASM::energy (const Configuration &config)
 Returns the energy, normalized per unit cell. More...
 
double CASM::energy_per_species (const Configuration &config)
 Returns the energy, normalized per species. More...
 
double CASM::reference_energy (const Configuration &config)
 Returns the reference energy, normalized per unit cell. More...
 
double CASM::reference_energy_per_species (const Configuration &config)
 Returns the reference energy, normalized per species. More...
 
double CASM::formation_energy (const Configuration &config)
 Returns the formation energy, normalized per unit cell. More...
 
double CASM::formation_energy_per_species (const Configuration &config)
 Returns the formation energy, normalized per species. More...
 
double CASM::clex_formation_energy (const Configuration &config)
 Returns the formation energy, normalized per unit cell. More...
 
double CASM::clex_formation_energy_per_species (const Configuration &config)
 Returns the formation energy, normalized per species. More...
 
double CASM::rms_force (const Configuration &_config)
 Root-mean-square forces of relaxed configurations, determined from DFT (eV/Angstr.) More...
 
double CASM::atomic_deformation (const Configuration &_config)
 Cost function that describes the degree to which basis sites have relaxed. More...
 
double CASM::lattice_deformation (const Configuration &_config)
 Cost function that describes the degree to which lattice has relaxed. More...
 
double CASM::volume_relaxation (const Configuration &_config)
 Change in volume due to relaxation, expressed as the ratio V/V_0. More...
 
double CASM::relaxed_magmom (const Configuration &_config)
 Returns the relaxed magnetic moment, normalized per unit cell. More...
 
double CASM::relaxed_magmom_per_species (const Configuration &_config)
 Returns the relaxed magnetic moment, normalized per species. More...
 
Eigen::MatrixXd CASM::relaxed_forces (const Configuration &_config)
 relaxed forces of configuration, determined from DFT (eV/Angstr.), as a 3xN matrix More...
 
IntegralCluster CASM::config_diff (const Configuration &_config1, const Configuration &_config2)
 Returns an Integral Cluster representing the perturbed sites between the configs. More...
 
Configuration CASM::closest_setting (const Configuration &_config1, const Configuration &_config2)
 
Configuration CASM::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 CASM::is_primitive (const Configuration &_config)
 returns true if _config describes primitive cell of the configuration it describes More...
 
bool CASM::is_canonical (const Configuration &_config)
 returns true if no symmetry transformation applied to _config will increase its lexicographic order More...
 
bool CASM::is_diff_trans_endpoint (const Configuration &_config)
 returns true if _config is an endpoint of any existing diff_trans_config More...
 
std::string CASM::diff_trans_endpoint_of (const Configuration &_config)
 returns which diff_trans _config is an endpoint of More...
 
bool CASM::has_energy (const Configuration &_config)
 
bool CASM::has_reference_energy (const Configuration &_config)
 
bool CASM::has_formation_energy (const Configuration &_config)
 
bool CASM::has_rms_force (const Configuration &_config)
 
bool CASM::has_atomic_deformation (const Configuration &_config)
 
bool CASM::has_lattice_deformation (const Configuration &_config)
 
bool CASM::has_volume_relaxation (const Configuration &_config)
 
bool CASM::has_relaxed_magmom (const Configuration &_config)
 
bool CASM::has_relaxed_mag_basis (const Configuration &_config)
 
Eigen::VectorXd CASM::correlations (const ConfigDoF &configdof, const Supercell &scel, Clexulator const &clexulator)
 Returns correlations using 'clexulator'. Supercell needs a correctly populated neighbor list. More...
 
Eigen::VectorXd CASM::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 CASM::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 CASM::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 CASM::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 CASM::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...
 

Typedef Documentation

◆ ConfigurationBase

Function Documentation

◆ atomic_deformation()

double CASM::atomic_deformation ( const Configuration _config)

Cost function that describes the degree to which basis sites have relaxed.

Definition at line 935 of file Configuration.cc.

◆ clex_formation_energy()

double CASM::clex_formation_energy ( const Configuration config)

Returns the formation energy, normalized per unit cell.

Definition at line 910 of file Configuration.cc.

◆ clex_formation_energy_per_species()

double CASM::clex_formation_energy_per_species ( const Configuration config)

Returns the formation energy, normalized per species.

Returns the formation energy, normalized per unit cell.

Definition at line 929 of file Configuration.cc.

◆ closest_setting()

Configuration CASM::closest_setting ( const Configuration _config1,
const Configuration _config2 
)

Returns a rotated/translated version of config 2 that leaves it closest to the occupation of config1

Definition at line 996 of file Configuration.cc.

◆ comp()

Eigen::VectorXd CASM::comp ( const Configuration config)

Returns parametric composition, as calculated using PrimClex::param_comp.

Definition at line 832 of file Configuration.cc.

◆ comp_n() [1/2]

Eigen::VectorXd CASM::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()

Returns comp_n, the number of each molecule per primitive cell, ordered as Structure::xtal::struc_molecule_name()

Definition at line 1301 of file Configuration.cc.

◆ comp_n() [2/2]

Eigen::VectorXd CASM::comp_n ( const Configuration config)

Returns the composition, as number of each species per unit cell.

Definition at line 837 of file Configuration.cc.

◆ config_clip()

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

Definition at line 1024 of file Configuration.cc.

◆ config_diff()

IntegralCluster CASM::config_diff ( const Configuration _config1,
const Configuration _config2 
)

Returns an Integral Cluster representing the perturbed sites between the configs.

Returns an IntegralCluster representing the perturbation between the configs.

Definition at line 978 of file Configuration.cc.

◆ corr_contribution() [1/2]

Eigen::VectorXd CASM::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.

Returns correlation contribution from a single unit cell, not normalized.

Supercell needs a correctly populated neighbor list.

Definition at line 1147 of file Configuration.cc.

◆ corr_contribution() [2/2]

Eigen::VectorXd CASM::corr_contribution ( Index  linear_unitcell_index,
const Configuration config,
Clexulator const &  clexulator 
)

Returns correlation contribution from a single unit cell, not normalized.

Returns correlations using 'clexulator'.

Definition at line 807 of file Configuration.cc.

◆ correlations() [1/2]

Eigen::VectorXd CASM::correlations ( const ConfigDoF configdof,
const Supercell scel,
Clexulator const &  clexulator 
)

Returns correlations using 'clexulator'. Supercell needs a correctly populated neighbor list.

Definition at line 1116 of file Configuration.cc.

◆ correlations() [2/2]

Eigen::VectorXd CASM::correlations ( const Configuration config,
Clexulator const &  clexulator 
)

Returns correlations using 'clexulator'.

Definition at line 801 of file Configuration.cc.

◆ diff_trans_endpoint_of()

std::string CASM::diff_trans_endpoint_of ( const Configuration _config)

returns which diff_trans _config is an endpoint of

◆ energy()

double CASM::energy ( const Configuration config)

Returns the energy, normalized per unit cell.

Definition at line 875 of file Configuration.cc.

◆ energy_per_species()

double CASM::energy_per_species ( const Configuration config)

Returns the energy, normalized per species.

Definition at line 881 of file Configuration.cc.

◆ formation_energy()

double CASM::formation_energy ( const Configuration config)

Returns the formation energy, normalized per unit cell.

Definition at line 898 of file Configuration.cc.

◆ formation_energy_per_species()

double CASM::formation_energy_per_species ( const Configuration config)

Returns the formation energy, normalized per species.

  • Currently, this is really a Molecule fraction

Definition at line 905 of file Configuration.cc.

◆ gradcorrelations() [1/2]

Eigen::MatrixXd CASM::gradcorrelations ( const ConfigDoF configdof,
const Supercell scel,
Clexulator const &  clexulator,
DoFKey key 
)

Returns gradient correlations using 'clexulator', with respect to DoF 'dof_type'.

Definition at line 1197 of file Configuration.cc.

◆ gradcorrelations() [2/2]

Eigen::MatrixXd CASM::gradcorrelations ( const Configuration config,
Clexulator const &  clexulator,
DoFKey key 
)

Returns gradient correlations using 'clexulator', with respect to DoF 'dof_type'.

Definition at line 825 of file Configuration.cc.

◆ has_atomic_deformation()

bool CASM::has_atomic_deformation ( const Configuration _config)

Definition at line 1074 of file Configuration.cc.

◆ has_energy()

bool CASM::has_energy ( const Configuration _config)

Definition at line 1055 of file Configuration.cc.

◆ has_formation_energy()

bool CASM::has_formation_energy ( const Configuration _config)

Definition at line 1064 of file Configuration.cc.

◆ has_lattice_deformation()

bool CASM::has_lattice_deformation ( const Configuration _config)

Definition at line 1078 of file Configuration.cc.

◆ has_reference_energy()

bool CASM::has_reference_energy ( const Configuration _config)

Definition at line 1059 of file Configuration.cc.

◆ has_relaxed_mag_basis()

bool CASM::has_relaxed_mag_basis ( const Configuration _config)

Definition at line 1090 of file Configuration.cc.

◆ has_relaxed_magmom()

bool CASM::has_relaxed_magmom ( const Configuration _config)

Definition at line 1086 of file Configuration.cc.

◆ has_rms_force()

bool CASM::has_rms_force ( const Configuration _config)

Definition at line 1068 of file Configuration.cc.

◆ has_volume_relaxation()

bool CASM::has_volume_relaxation ( const Configuration _config)

Definition at line 1082 of file Configuration.cc.

◆ is_canonical()

bool CASM::is_canonical ( const Configuration _config)

returns true if no symmetry transformation applied to _config will increase its lexicographic order

Definition at line 1051 of file Configuration.cc.

◆ is_diff_trans_endpoint()

bool CASM::is_diff_trans_endpoint ( const Configuration _config)

returns true if _config is an endpoint of any existing diff_trans_config

◆ is_primitive()

bool CASM::is_primitive ( const Configuration _config)

returns true if _config describes primitive cell of the configuration it describes

Definition at line 1045 of file Configuration.cc.

◆ lattice_deformation()

double CASM::lattice_deformation ( const Configuration _config)

Cost function that describes the degree to which lattice has relaxed.

Definition at line 940 of file Configuration.cc.

◆ make_configuration()

Configuration CASM::make_configuration ( const PrimClex primclex,
std::string  name 
)

Make Configuration from name string.

For configurations in supercells equivalent to the canonical supercell: For canonical configurations:

  • CANON_CONFIG_NAME = $CANON_SCELNAME/$CONFIG_INDEX
  • The CANON_CONFIG is found in the config database by name. For non-canonical configurations:
  • NONCANON_CONFIG_NAME = $CANON_CONFIG_NAME.equiv.$FG_PERM.$TRANS_PERM
  • The CANON_CONFIG is found in the config database, then the FG_PERM-th factor_group permutation is applied, follwed by TRANS_PERM-th translation permutation. For all other configurations:
  • NONEQUIV_SCEL_CONFIG_NAME = $SCEL_NAME/super.$PRIM_FG_OP2.$NONCANON_CONFIG_NAME`
  • SCEL_NAME may be for a canonical equivalent or non canonical equivalent supercell, in which case it is represented by CANON_SCEL_NAME.$PRIM_FG_OP1
  • The NONCANON_CONFIG is constructed, PRIM_FG_OP2 is applied, and then the SCEL is filled

Definition at line 783 of file Configuration.cc.

◆ n_species()

double CASM::n_species ( const Configuration config)

Returns the total number species per unit cell.

Equivalent to

Eigen::VectorXd comp_n(const Configuration &config)
Returns the composition, as number of each species per unit cell.
double n_vacancy(const Configuration &config)
Returns the vacancy composition, as number per unit cell.
ConfigIO::GenericConfigFormatter< jsonParser > config()
Definition: ConfigIO.cc:777

Definition at line 852 of file Configuration.cc.

◆ n_vacancy()

double CASM::n_vacancy ( const Configuration config)

Returns the vacancy composition, as number per unit cell.

Definition at line 842 of file Configuration.cc.

◆ num_each_molecule()

Eigen::VectorXi CASM::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()

Returns num_each_molecule(molecule_type), where 'molecule_type' is ordered as Structure::xtal::struc_molecule_name()

Definition at line 1282 of file Configuration.cc.

◆ point_corr() [1/2]

Eigen::VectorXd CASM::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.

Definition at line 1169 of file Configuration.cc.

◆ point_corr() [2/2]

Eigen::VectorXd CASM::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.

Definition at line 816 of file Configuration.cc.

◆ reference_energy()

double CASM::reference_energy ( const Configuration config)

Returns the reference energy, normalized per unit cell.

Definition at line 886 of file Configuration.cc.

◆ reference_energy_per_species()

double CASM::reference_energy_per_species ( const Configuration config)

Returns the reference energy, normalized per species.

  • Currently, this is per Molecule

Definition at line 893 of file Configuration.cc.

◆ relaxed_forces()

Eigen::MatrixXd CASM::relaxed_forces ( const Configuration _config)

relaxed forces of configuration, determined from DFT (eV/Angstr.), as a 3xN matrix

Definition at line 963 of file Configuration.cc.

◆ relaxed_magmom()

double CASM::relaxed_magmom ( const Configuration _config)

Returns the relaxed magnetic moment, normalized per unit cell.

Definition at line 952 of file Configuration.cc.

◆ relaxed_magmom_per_species()

double CASM::relaxed_magmom_per_species ( const Configuration _config)

Returns the relaxed magnetic moment, normalized per species.

Definition at line 957 of file Configuration.cc.

◆ rms_force()

double CASM::rms_force ( const Configuration _config)

Root-mean-square forces of relaxed configurations, determined from DFT (eV/Angstr.)

Definition at line 969 of file Configuration.cc.

◆ site_frac()

Eigen::VectorXd CASM::site_frac ( const Configuration config)

Returns the composition as site fraction, in the order of Structure::get_struc_molecule.

Returns the composition as site fraction, in the order of Structure::struc_molecule.

Definition at line 870 of file Configuration.cc.

◆ species_frac()

Eigen::VectorXd CASM::species_frac ( const Configuration config)

Returns the composition as species fraction, with [Va] = 0.0, in the order of Structure::get_struc_molecule.

Returns the composition as species fraction, with [Va] = 0.0, in the order of Structure::struc_molecule.

  • Currently, this is really a Molecule fraction

Definition at line 860 of file Configuration.cc.

◆ sub_configuration()

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

Parameters
sub_scel_ptrThe Supercell of the sub-configuration
super_configThe super-configuration
originThe UnitCell indicating the which unit cell in the super-configuration is the origin in sub-configuration
  • Copies DoF from the super-configuration directly into the sub-configuration

Definition at line 600 of file Configuration.cc.

◆ volume_relaxation()

double CASM::volume_relaxation ( const Configuration _config)

Change in volume due to relaxation, expressed as the ratio V/V_0.

Definition at line 945 of file Configuration.cc.