Git Product home page Git Product logo

casmcode's Introduction

CASM: A Clusters Approach to Statistical Mechanics

CASM (https://github.com/prisms-center/CASMcode) is an open source software package designed to perform first-principles statistical mechanical studies of multi-component crystalline solids. CASM interfaces with first-principles electronic structure codes, automates the construction and parameterization of effective Hamiltonians and subsequently builds highly optimized (kinetic) Monte Carlo codes to predict finite-temperature thermodynamic and kinetic properties. CASM uses group theoretic techniques that take full advantage of crystal symmetry in order to rigorously construct effective Hamiltonians for almost arbitrary degrees of freedom in crystalline solids. This includes cluster expansions for configurational disorder in multi-component solids and lattice-dynamical effective Hamiltonians for vibrational degrees of freedom involved in structural phase transitions.

This version of CASM supports:

  • Constructing, fitting, and evaluating cluster expansion effective Hamiltonians with:
    • Occupational degrees of freedom
    • Strain degrees of freedom
    • Displacement degrees of freedom
  • High-throughput calculations using:
  • Monte Carlo calculations using:
    • Semi-grand canonical ensemble
    • Canonical ensemble

Collaboration is welcome and new features can be incorporated by forking the repository on GitHub, creating a new feature, and submitting pull requests. If you are interested in developing features that involve a significant time investment we encourage you to first contact the CASM development team at [email protected].

For a particular major version number, the ccasm program interface, including file input and output formats, will remain stable and backwards compatible. The CASM library libcasm is less stable and may have some breaking changes without changing the major version number.

Getting Started

Developers and Contributors:

CASM is developed by the Van der Ven group, originally at the University of Michigan and currently at the University of California Santa Barbara.

Lead developers: John C. Thomas and Brian Puchala

Developers: John Goiri and Anirudh Natarajan

Other contributors: Min-Hua Chen, Jonathon Bechtel, Max Radin, Elizabeth Decolvenaere, Anna Belak, Liang Tian, Naga Sri Harsha Gunda, Julija Vinckeviciute, Sanjeev Kolli

Acknowledgements

The development of CASM was made possible with support from:

  • The U.S. Department of Energy, Office of Basic Energy Sciences, Division of Materials Sciences and Engineering under Award #DE-SC0008637 that funds the PRedictive Integrated Structural Materials Science (PRISMS) Center at University of Michigan.

  • The National Science Foundation under Awards DMR-1410242, DMR-1105672, DMR-1436154, and OAC-1642433.

Contact:

Contact the developers at [email protected].

The CASM development team will periodically send email notifications regarding new releases, features, and bug fixes to the CASM users notification list. To join the list send an email to [email protected] or visit https://lists.engr.ucsb.edu/mailman/listinfo/casm-users to sign up.

License

GNU Lesser General Public License (LGPL). Please see the file LICENSE for details.

For Developers

See INSTALL.md

casmcode's People

Contributors

anirudhrn avatar bpuchala avatar flwalsh avatar goirijo avatar jcthomas avatar jonaskaufman avatar julijavin avatar max-radin avatar seshasaibehara avatar skk74 avatar sriharsha09 avatar tallakahath avatar xivh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

casmcode's Issues

casm: error while loading shared libraries: libcasm.so: cannot open shared object file: No such file or directory

So I have this issue a bit longer and I had it for the version 0.2.0+b20bd4e.changes and for 0.2.1+e413032.changes. I didn't post it as I had a solution, that worked for me, but might not be the best.

Before installing, I set the $CASM_PREFIX and $CASM_BOOST_PREFIX and the installation works out fine.However, when using casm or similar python commads, I get the error

casm: error while loading shared libraries: libcasm.so: cannot open shared object file: No such file or directory

The files libcasm.so and libccasm.so should be located in CASMcode/lib/. Both files are there in my case.
Some time ago, I figured out that I can solve this issue by slightly editing the casm.py file.

In line 53 of casm.py, it tries to load the libccasm.so. So before loading, I enter the directory, where the libccasm.so is located, load it and go back to the prior directory.

Some how this works and I won't get the error. Also, I'm not sure, while the error says it cannot load libcasm.so and I have to apply the fix for libccasm.so.

I don't know, if something may be wrong with my installation or with setting some variables. I will try to get you as much information as you need from my part.

Monte Carlo simulation fails, if I want to start a run with an existing run.

My first run in the folder was at constant chemical potential and raising temperature from 10K to 1200K. Now, I want to continue this run up to 2000K. So I only changed the end temperature to 2000 in the input file. However, the run stops and I get a core dump. This is my error:

-- Check: For existing calculations --
update: "/home/users/grabomqf/DFT/vasp5.4/ClusterExpansion/Ni-Re/monte_T1200_CP-0.3/results.json"
found existing calculations
will begin with condition 60

-- Set: DoF --
Using: /home/users/grabomqf/DFT/vasp5.4/ClusterExpansion/Ni-Re/monte_T1200_CP-0.3/conditions.59/final_state.json

casm: include/casm/external/Eigen/src/Core/Dot.h:71: typename Eigen::internal::scalar_product_traits<typename Eigen::internal::traits::Scalar, typename Eigen::internal::traits::Scalar>::ReturnType Eigen::MatrixBase::dot(const Eigen::MatrixBase&) const [with OtherDerived = Eigen::Matrix<double, -1, 1>; Derived = Eigen::Matrix<double, -1, 1>; typename Eigen::internal::scalar_product_traits<typename Eigen::internal::traits::Scalar, typename Eigen::internal::traits::Scalar>::ReturnType = double]: Assertion `size() == other.size()' failed.

I am using the version 0.2.0+b20bd4e.changes (master branch in september 16).

Best regards,
Maximilian

CASM demo repo

I just created a new repository, CASMcode_demo, to hold CASM presentations and demonstration materials. It contains slides and a demonstration project from the PRISMS workshop in Aug 2016 for CASMv0.2.0.

Monte Carlo Susc of Correlations

Even if I specify data: measurements: quantity: all_correlations, I do NOT get any susceptibility of correlations. I desperately need these!

My current 'hack fix' is to output the full trajectory and calculate after...

Monte carlo sampling sometimes records "unknown" as value

When running grand canonical Monte Carlo, sampling values sometimes get dropped when the cell is not equilibrated. The resulting csv file contains lines with "unknown" instead of numerical values for sampled properties (things like temperature or chemical potential are recorded properly):

#    is_equilibrated N_equil_samples is_converged N_avg_samples T Beta <potential_energy>
0  0  0  10000  3575.00000000  3.24601565  unknown

The resulting json file results in an empty dictionary {} entry instead of a value:

{
    "<potential_energy>":[
    0.0,
    0.0,
    {
    },
    0.0
}

For every case I've encountered so far, simply rerunning the simulation solves the issue, and the same conditions appear as converged without actually changing any of the settings. I think it makes more sense to have real value recorded than "unknown", even if the run isn't converged. The missing entries make it very difficult when dealing with multiple runs that need to have their data combined.

casm-learn --checkhull issue in projects with non-primitive ground state configurations

An error may occur with the casm-learn --checkhull option if the training data includes non-primitive hull configurations because it is checking hull properties for only primitive configurations, but calculating the hull using primitive and non-primitive configurations.

The casm-learn input file can be used to specify which selection to use for generating the hull in casm-learn --checkhull. For now, the error should not occur if the checkhull selection specified only includes primitive configurations.

Possible ways to address this:

  1. filter the checkhull selection to only include primitive configurations
  2. do not restrict --checkhull output to primitive configurations
  3. warn / prevent (with override option) using non-primitive configurations

KPAR is ignored

The vaspwrapper ignores any KPAR value specified in settings/$CALCTYPE/INCAR. Users can bypass this by setting KPAR in relax.json rather than INCAR.

Wrong normalization for "potential_energy" in Monte Carlo enumeration

The output associated with monte carlo enumeration includes "potential_energy" of the enumerated configurations. This is incorrectly being divided by supercell volume. The same function is used if "potential_energy" is included in your monte carlo enumeration "metric" or "check". Normal monte carlo energy calculations are not affected.

casm update takes about an hour to update a 108 atom supercell

I am trying to set up a data base for a ternary cluster expansion and I set up the Ni-Re-Va configurations by hand and calculated them using vasp. So, I had to import them correctly to my casm project using casm import -i --pos POSCAR. In the beginning the import seemed to take quite a while, so the workaround was to create the ideal structure for the POSCAR (My POSCAR files were pre-relaxed). Then the import was quick and I could created the corresponding properties.calc.json files. However, these have to be updated with casm update which takes also long time as these large supercells (107 atoms with 1 vacancy) have to be mapped. I was able to lower the time for an update of a single configuration to ~55min with casm update --max-vol-change 0.01 --max-va-frac 0.0093 --min-va-frac 0.0092. This is still a long time to update a single configuration, because I have 39 of them. Are there possibilites to fasten up the update, because I already got the supercell and the configuration via casm import.

Thank you very much for the help!

casm update does not read in properties.calc.json file created be vasp.relax.report

I am trying to import calculations with larger supercells (108 atoms with Ni-Re-Va) to my project. I used vasp.relax.report with POSCAR,OUTCAR,OSZICAR and vasprun.xml which created me a properties.calc.json. However, when I am trying to update with 'casm update', I get the error:

Reading calculation data...


Working on /home/users/grabomqf/DFT/vasp5.4/ClusterExpansion/ternary/training_data/SCEL108_6_6_3_3_3_0/0/calctype.default/properties.calc.json

Error: Unable to read properties.calc.json
get_value< string > called on integer Value

A few days ago, I updated my casm version from 0.2.0+b20bd4e.changes (master branch in september 16) to the version 0.2.1+e413032 (master branch from 4/11/2017). I set up a new project for this CE so that the files created from vasp.relax.report should be from the same version as the project is set up.

I am attaching the prim.json and one of the properties.calc.json
properties_prim.gz.zip

Thank you for the help,
Maximilian

Generation of VASP inputs

I am using the CASM code installed in the local machine as you have discussed in the third part of the issue # 62. When I run the command 'casm-calc --setup -c ALL' I am getting only the POSCAR files for all the configurations. May I know whether it will generate the other VASP input files (POTCAR, KPOINTS etc.). If it is created, where can I find it?.

I have copied the VASP POTCAR files and set the SPECIES file to use the POTCAR location

**I am using CASM version: 0.2.1+e413032.changes
g++ 4.8.5 and boost 1.55 (compiler with c++11)

When I run the command 'casm-calc --setup -c ALL' I am getting the result as follows:**
anu@anu-HP-Z640-Workstation:~/Desktop/newcasmtest/training_data/settings/calctype.default$ casm-calc --setup -c ALL
-- Construct: CASM Project --
from: "/home/anu/Desktop/newcasmtest"

-- Load project data --
read: "/home/anu/Desktop/newcasmtest/.casm/composition_axes.json"
read: "/home/anu/Desktop/newcasmtest/training_data/SCEL"
read: "/home/anu/Desktop/newcasmtest/.casm/config_list.json"

Construct a casm.vaspwrapper.Relax instance:
Input directory: /home/anu/Desktop/newcasmtest/training_data/SCEL1_1_1_1_0_0_0/0
Configuration: SCEL1_1_1_1_0_0_0/0
Reading CASM settings
Calculations directory: /home/anu/Desktop/newcasmtest/training_data/SCEL1_1_1_1_0_0_0/0/calctype.default
Reading relax.json settings file
Read settings from: /home/anu/Desktop/newcasmtest/training_data/settings/calctype.default/relax.json
DONE

Setting up VASP input files: /home/anu/Desktop/newcasmtest/training_data/SCEL1_1_1_1_0_0_0/0/calctype.default
Reading KPOINTS: /home/anu/Desktop/newcasmtest/training_data/settings/calctype.default/KPOINTS
Reading KPOINTS reference POSCAR: /home/anu/Desktop/newcasmtest/training_data/settings/calctype.default/POSCAR
Reading SPECIES: /home/anu/Desktop/newcasmtest/training_data/settings/calctype.default/SPECIES
Length of values != length of tags + 4.
values = ['Zr2', 'Zr', '0']
tags = []

When I run the command 'ls -R training_data', I am getting this:
anu@anu-HP-Z640-Workstation:~/Desktop/newcasmtest$ ls -R training_data
training_data:
SCEL SCEL2_1_2_1_0_0_0 SCEL3_1_3_1_2_0_0 SCEL3_3_1_1_0_2_2 SCEL4_1_2_2_1_0_0 SCEL4_1_4_1_2_0_0 SCEL4_2_2_1_0_1_0 settings
SCEL1_1_1_1_0_0_0 SCEL2_1_2_1_1_0_0 SCEL3_3_1_1_0_0_1 SCEL4_1_1_4_0_0_0 SCEL4_1_4_1_0_0_0 SCEL4_2_2_1_0_0_0 SCEL4_2_2_1_0_1_1
SCEL2_1_1_2_0_0_0 SCEL3_1_1_3_0_0_0 SCEL3_3_1_1_0_0_2 SCEL4_1_2_2_0_0_0 SCEL4_1_4_1_1_0_0 SCEL4_2_2_1_0_0_1 SCEL4_4_1_1_0_3_2

training_data/SCEL1_1_1_1_0_0_0:
0 1 2 LAT

training_data/SCEL1_1_1_1_0_0_0/0:
calctype.default POS

training_data/SCEL1_1_1_1_0_0_0/0/calctype.default:

training_data/SCEL1_1_1_1_0_0_0/1:
POS

training_data/SCEL1_1_1_1_0_0_0/2:
POS

training_data/SCEL2_1_1_2_0_0_0:
0 1 2 LAT

training_data/SCEL2_1_1_2_0_0_0/0:
POS

training_data/SCEL2_1_1_2_0_0_0/1:
POS

training_data/SCEL2_1_1_2_0_0_0/2:
POS

training_data/SCEL2_1_2_1_0_0_0:
0 1 2 3 LAT

training_data/SCEL2_1_2_1_0_0_0/0:
POS

training_data/SCEL2_1_2_1_0_0_0/1:
POS

training_data/SCEL2_1_2_1_0_0_0/2:
POS

training_data/SCEL2_1_2_1_0_0_0/3:
POS

training_data/SCEL2_1_2_1_1_0_0:
0 1 2 LAT

training_data/SCEL2_1_2_1_1_0_0/0:
POS

training_data/SCEL2_1_2_1_1_0_0/1:
POS

training_data/SCEL2_1_2_1_1_0_0/2:
POS

training_data/SCEL3_1_1_3_0_0_0:
0 1 2 3 4 5 6 7 8 9 LAT

training_data/SCEL3_1_1_3_0_0_0/0:
POS

training_data/SCEL3_1_1_3_0_0_0/1:
POS

training_data/SCEL3_1_1_3_0_0_0/2:
POS

training_data/SCEL3_1_1_3_0_0_0/3:
POS

training_data/SCEL3_1_1_3_0_0_0/4:
POS

training_data/SCEL3_1_1_3_0_0_0/5:
POS

training_data/SCEL3_1_1_3_0_0_0/6:
POS

training_data/SCEL3_1_1_3_0_0_0/7:
POS

training_data/SCEL3_1_1_3_0_0_0/8:
POS

training_data/SCEL3_1_1_3_0_0_0/9:
POS

training_data/SCEL3_1_3_1_2_0_0:
0 1 10 11 12 13 14 15 2 3 4 5 6 7 8 9 LAT

training_data/SCEL3_1_3_1_2_0_0/0:
POS

training_data/SCEL3_1_3_1_2_0_0/1:
POS

training_data/SCEL3_1_3_1_2_0_0/10:
POS

training_data/SCEL3_1_3_1_2_0_0/11:
POS

training_data/SCEL3_1_3_1_2_0_0/12:
POS

training_data/SCEL3_1_3_1_2_0_0/13:
POS

training_data/SCEL3_1_3_1_2_0_0/14:
POS

training_data/SCEL3_1_3_1_2_0_0/15:
POS

training_data/SCEL3_1_3_1_2_0_0/2:
POS

training_data/SCEL3_1_3_1_2_0_0/3:
POS

training_data/SCEL3_1_3_1_2_0_0/4:
POS

training_data/SCEL3_1_3_1_2_0_0/5:
POS

training_data/SCEL3_1_3_1_2_0_0/6:
POS

training_data/SCEL3_1_3_1_2_0_0/7:
POS

training_data/SCEL3_1_3_1_2_0_0/8:
POS

training_data/SCEL3_1_3_1_2_0_0/9:
POS

training_data/SCEL3_3_1_1_0_0_1:
0 1 2 3 4 5 6 7 8 9 LAT

training_data/SCEL3_3_1_1_0_0_1/0:
POS

training_data/SCEL3_3_1_1_0_0_1/1:
POS

training_data/SCEL3_3_1_1_0_0_1/2:
POS

training_data/SCEL3_3_1_1_0_0_1/3:
POS

training_data/SCEL3_3_1_1_0_0_1/4:
POS

training_data/SCEL3_3_1_1_0_0_1/5:
POS

training_data/SCEL3_3_1_1_0_0_1/6:
POS

training_data/SCEL3_3_1_1_0_0_1/7:
POS

training_data/SCEL3_3_1_1_0_0_1/8:
POS

training_data/SCEL3_3_1_1_0_0_1/9:
POS

training_data/SCEL3_3_1_1_0_0_2:
0 1 2 3 4 5 6 7 8 9 LAT

training_data/SCEL3_3_1_1_0_0_2/0:
POS

training_data/SCEL3_3_1_1_0_0_2/1:
POS

training_data/SCEL3_3_1_1_0_0_2/2:
POS

training_data/SCEL3_3_1_1_0_0_2/3:
POS

training_data/SCEL3_3_1_1_0_0_2/4:
POS

training_data/SCEL3_3_1_1_0_0_2/5:
POS

training_data/SCEL3_3_1_1_0_0_2/6:
POS

training_data/SCEL3_3_1_1_0_0_2/7:
POS

training_data/SCEL3_3_1_1_0_0_2/8:
POS

training_data/SCEL3_3_1_1_0_0_2/9:
POS

training_data/SCEL3_3_1_1_0_2_2:
0 1 2 3 4 5 6 7 8 9 LAT

training_data/SCEL3_3_1_1_0_2_2/0:
POS

training_data/SCEL3_3_1_1_0_2_2/1:
POS

training_data/SCEL3_3_1_1_0_2_2/2:
POS

training_data/SCEL3_3_1_1_0_2_2/3:
POS

training_data/SCEL3_3_1_1_0_2_2/4:
POS

training_data/SCEL3_3_1_1_0_2_2/5:
POS

training_data/SCEL3_3_1_1_0_2_2/6:
POS

training_data/SCEL3_3_1_1_0_2_2/7:
POS

training_data/SCEL3_3_1_1_0_2_2/8:
POS

training_data/SCEL3_3_1_1_0_2_2/9:
POS

training_data/SCEL4_1_1_4_0_0_0:
0 1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 23 3 4 5 6 7 8 9 LAT

training_data/SCEL4_1_1_4_0_0_0/0:
POS

training_data/SCEL4_1_1_4_0_0_0/1:
POS

training_data/SCEL4_1_1_4_0_0_0/10:
POS

training_data/SCEL4_1_1_4_0_0_0/11:
POS

training_data/SCEL4_1_1_4_0_0_0/12:
POS

training_data/SCEL4_1_1_4_0_0_0/13:
POS

training_data/SCEL4_1_1_4_0_0_0/14:
POS

training_data/SCEL4_1_1_4_0_0_0/15:
POS

training_data/SCEL4_1_1_4_0_0_0/16:
POS

training_data/SCEL4_1_1_4_0_0_0/17:
POS

training_data/SCEL4_1_1_4_0_0_0/18:
POS

training_data/SCEL4_1_1_4_0_0_0/19:
POS

training_data/SCEL4_1_1_4_0_0_0/2:
POS

training_data/SCEL4_1_1_4_0_0_0/20:
POS

training_data/SCEL4_1_1_4_0_0_0/21:
POS

training_data/SCEL4_1_1_4_0_0_0/22:
POS

training_data/SCEL4_1_1_4_0_0_0/23:
POS

training_data/SCEL4_1_1_4_0_0_0/3:
POS

training_data/SCEL4_1_1_4_0_0_0/4:
POS

training_data/SCEL4_1_1_4_0_0_0/5:
POS

training_data/SCEL4_1_1_4_0_0_0/6:
POS

training_data/SCEL4_1_1_4_0_0_0/7:
POS

training_data/SCEL4_1_1_4_0_0_0/8:
POS

training_data/SCEL4_1_1_4_0_0_0/9:
POS

training_data/SCEL4_1_2_2_0_0_0:
0 1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 5 6 7 8 9 LAT

training_data/SCEL4_1_2_2_0_0_0/0:
POS

training_data/SCEL4_1_2_2_0_0_0/1:
POS

training_data/SCEL4_1_2_2_0_0_0/10:
POS

training_data/SCEL4_1_2_2_0_0_0/11:
POS

training_data/SCEL4_1_2_2_0_0_0/12:
POS

training_data/SCEL4_1_2_2_0_0_0/13:
POS

training_data/SCEL4_1_2_2_0_0_0/14:
POS

training_data/SCEL4_1_2_2_0_0_0/15:
POS

training_data/SCEL4_1_2_2_0_0_0/16:
POS

training_data/SCEL4_1_2_2_0_0_0/17:
POS

training_data/SCEL4_1_2_2_0_0_0/18:
POS

training_data/SCEL4_1_2_2_0_0_0/19:
POS

training_data/SCEL4_1_2_2_0_0_0/2:
POS

training_data/SCEL4_1_2_2_0_0_0/20:
POS

training_data/SCEL4_1_2_2_0_0_0/3:
POS

training_data/SCEL4_1_2_2_0_0_0/4:
POS

training_data/SCEL4_1_2_2_0_0_0/5:
POS

training_data/SCEL4_1_2_2_0_0_0/6:
POS

training_data/SCEL4_1_2_2_0_0_0/7:
POS

training_data/SCEL4_1_2_2_0_0_0/8:
POS

training_data/SCEL4_1_2_2_0_0_0/9:
POS

training_data/SCEL4_1_2_2_1_0_0:
0 1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 23 3 4 5 6 7 8 9 LAT

training_data/SCEL4_1_2_2_1_0_0/0:
POS

training_data/SCEL4_1_2_2_1_0_0/1:
POS

training_data/SCEL4_1_2_2_1_0_0/10:
POS

training_data/SCEL4_1_2_2_1_0_0/11:
POS

training_data/SCEL4_1_2_2_1_0_0/12:
POS

training_data/SCEL4_1_2_2_1_0_0/13:
POS

training_data/SCEL4_1_2_2_1_0_0/14:
POS

training_data/SCEL4_1_2_2_1_0_0/15:
POS

training_data/SCEL4_1_2_2_1_0_0/16:
POS

training_data/SCEL4_1_2_2_1_0_0/17:
POS

training_data/SCEL4_1_2_2_1_0_0/18:
POS

training_data/SCEL4_1_2_2_1_0_0/19:
POS

training_data/SCEL4_1_2_2_1_0_0/2:
POS

training_data/SCEL4_1_2_2_1_0_0/20:
POS

training_data/SCEL4_1_2_2_1_0_0/21:
POS

training_data/SCEL4_1_2_2_1_0_0/22:
POS

training_data/SCEL4_1_2_2_1_0_0/23:
POS

training_data/SCEL4_1_2_2_1_0_0/3:
POS

training_data/SCEL4_1_2_2_1_0_0/4:
POS

training_data/SCEL4_1_2_2_1_0_0/5:
POS

training_data/SCEL4_1_2_2_1_0_0/6:
POS

training_data/SCEL4_1_2_2_1_0_0/7:
POS

training_data/SCEL4_1_2_2_1_0_0/8:
POS

training_data/SCEL4_1_2_2_1_0_0/9:
POS

training_data/SCEL4_1_4_1_0_0_0:
0 1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 23 24 25 26 3 4 5 6 7 8 9 LAT

training_data/SCEL4_1_4_1_0_0_0/0:
POS

training_data/SCEL4_1_4_1_0_0_0/1:
POS

training_data/SCEL4_1_4_1_0_0_0/10:
POS

training_data/SCEL4_1_4_1_0_0_0/11:
POS

training_data/SCEL4_1_4_1_0_0_0/12:
POS

training_data/SCEL4_1_4_1_0_0_0/13:
POS

training_data/SCEL4_1_4_1_0_0_0/14:
POS

training_data/SCEL4_1_4_1_0_0_0/15:
POS

training_data/SCEL4_1_4_1_0_0_0/16:
POS

training_data/SCEL4_1_4_1_0_0_0/17:
POS

training_data/SCEL4_1_4_1_0_0_0/18:
POS

training_data/SCEL4_1_4_1_0_0_0/19:
POS

training_data/SCEL4_1_4_1_0_0_0/2:
POS

training_data/SCEL4_1_4_1_0_0_0/20:
POS

training_data/SCEL4_1_4_1_0_0_0/21:
POS

training_data/SCEL4_1_4_1_0_0_0/22:
POS

training_data/SCEL4_1_4_1_0_0_0/23:
POS

training_data/SCEL4_1_4_1_0_0_0/24:
POS

training_data/SCEL4_1_4_1_0_0_0/25:
POS

training_data/SCEL4_1_4_1_0_0_0/26:
POS

training_data/SCEL4_1_4_1_0_0_0/3:
POS

training_data/SCEL4_1_4_1_0_0_0/4:
POS

training_data/SCEL4_1_4_1_0_0_0/5:
POS

training_data/SCEL4_1_4_1_0_0_0/6:
POS

training_data/SCEL4_1_4_1_0_0_0/7:
POS

training_data/SCEL4_1_4_1_0_0_0/8:
POS

training_data/SCEL4_1_4_1_0_0_0/9:
POS

training_data/SCEL4_1_4_1_1_0_0:
0 1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 23 24 25 26 27 28 29 3 30 31 32 33 34 35 36 37 38 39 4 40 41 5 6 7 8 9 LAT

training_data/SCEL4_1_4_1_1_0_0/0:
POS

training_data/SCEL4_1_4_1_1_0_0/1:
POS

training_data/SCEL4_1_4_1_1_0_0/10:
POS

training_data/SCEL4_1_4_1_1_0_0/11:
POS

training_data/SCEL4_1_4_1_1_0_0/12:
POS

training_data/SCEL4_1_4_1_1_0_0/13:
POS

training_data/SCEL4_1_4_1_1_0_0/14:
POS

training_data/SCEL4_1_4_1_1_0_0/15:
POS

training_data/SCEL4_1_4_1_1_0_0/16:
POS

training_data/SCEL4_1_4_1_1_0_0/17:
POS

training_data/SCEL4_1_4_1_1_0_0/18:
POS

training_data/SCEL4_1_4_1_1_0_0/19:
POS

training_data/SCEL4_1_4_1_1_0_0/2:
POS

training_data/SCEL4_1_4_1_1_0_0/20:
POS

training_data/SCEL4_1_4_1_1_0_0/21:
POS

training_data/SCEL4_1_4_1_1_0_0/22:
POS

training_data/SCEL4_1_4_1_1_0_0/23:
POS

training_data/SCEL4_1_4_1_1_0_0/24:
POS

training_data/SCEL4_1_4_1_1_0_0/25:
POS

training_data/SCEL4_1_4_1_1_0_0/26:
POS

training_data/SCEL4_1_4_1_1_0_0/27:
POS

training_data/SCEL4_1_4_1_1_0_0/28:
POS

training_data/SCEL4_1_4_1_1_0_0/29:
POS

training_data/SCEL4_1_4_1_1_0_0/3:
POS

training_data/SCEL4_1_4_1_1_0_0/30:
POS

training_data/SCEL4_1_4_1_1_0_0/31:
POS

training_data/SCEL4_1_4_1_1_0_0/32:
POS

training_data/SCEL4_1_4_1_1_0_0/33:
POS

training_data/SCEL4_1_4_1_1_0_0/34:
POS

training_data/SCEL4_1_4_1_1_0_0/35:
POS

training_data/SCEL4_1_4_1_1_0_0/36:
POS

training_data/SCEL4_1_4_1_1_0_0/37:
POS

training_data/SCEL4_1_4_1_1_0_0/38:
POS

training_data/SCEL4_1_4_1_1_0_0/39:
POS

training_data/SCEL4_1_4_1_1_0_0/4:
POS

training_data/SCEL4_1_4_1_1_0_0/40:
POS

training_data/SCEL4_1_4_1_1_0_0/41:
POS

training_data/SCEL4_1_4_1_1_0_0/5:
POS

training_data/SCEL4_1_4_1_1_0_0/6:
POS

training_data/SCEL4_1_4_1_1_0_0/7:
POS

training_data/SCEL4_1_4_1_1_0_0/8:
POS

training_data/SCEL4_1_4_1_1_0_0/9:
POS

training_data/SCEL4_1_4_1_2_0_0:
0 1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 23 3 4 5 6 7 8 9 LAT

training_data/SCEL4_1_4_1_2_0_0/0:
POS

training_data/SCEL4_1_4_1_2_0_0/1:
POS

training_data/SCEL4_1_4_1_2_0_0/10:
POS

training_data/SCEL4_1_4_1_2_0_0/11:
POS

training_data/SCEL4_1_4_1_2_0_0/12:
POS

training_data/SCEL4_1_4_1_2_0_0/13:
POS

training_data/SCEL4_1_4_1_2_0_0/14:
POS

training_data/SCEL4_1_4_1_2_0_0/15:
POS

training_data/SCEL4_1_4_1_2_0_0/16:
POS

training_data/SCEL4_1_4_1_2_0_0/17:
POS

training_data/SCEL4_1_4_1_2_0_0/18:
POS

training_data/SCEL4_1_4_1_2_0_0/19:
POS

training_data/SCEL4_1_4_1_2_0_0/2:
POS

training_data/SCEL4_1_4_1_2_0_0/20:
POS

training_data/SCEL4_1_4_1_2_0_0/21:
POS

training_data/SCEL4_1_4_1_2_0_0/22:
POS

training_data/SCEL4_1_4_1_2_0_0/23:
POS

training_data/SCEL4_1_4_1_2_0_0/3:
POS

training_data/SCEL4_1_4_1_2_0_0/4:
POS

training_data/SCEL4_1_4_1_2_0_0/5:
POS

training_data/SCEL4_1_4_1_2_0_0/6:
POS

training_data/SCEL4_1_4_1_2_0_0/7:
POS

training_data/SCEL4_1_4_1_2_0_0/8:
POS

training_data/SCEL4_1_4_1_2_0_0/9:
POS

training_data/SCEL4_2_2_1_0_0_0:
0 1 10 11 12 13 14 2 3 4 5 6 7 8 9 LAT

training_data/SCEL4_2_2_1_0_0_0/0:
POS

training_data/SCEL4_2_2_1_0_0_0/1:
POS

training_data/SCEL4_2_2_1_0_0_0/10:
POS

training_data/SCEL4_2_2_1_0_0_0/11:
POS

training_data/SCEL4_2_2_1_0_0_0/12:
POS

training_data/SCEL4_2_2_1_0_0_0/13:
POS

training_data/SCEL4_2_2_1_0_0_0/14:
POS

training_data/SCEL4_2_2_1_0_0_0/2:
POS

training_data/SCEL4_2_2_1_0_0_0/3:
POS

training_data/SCEL4_2_2_1_0_0_0/4:
POS

training_data/SCEL4_2_2_1_0_0_0/5:
POS

training_data/SCEL4_2_2_1_0_0_0/6:
POS

training_data/SCEL4_2_2_1_0_0_0/7:
POS

training_data/SCEL4_2_2_1_0_0_0/8:
POS

training_data/SCEL4_2_2_1_0_0_0/9:
POS

training_data/SCEL4_2_2_1_0_0_1:
0 1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 23 24 25 26 3 4 5 6 7 8 9 LAT

training_data/SCEL4_2_2_1_0_0_1/0:
POS

training_data/SCEL4_2_2_1_0_0_1/1:
POS

training_data/SCEL4_2_2_1_0_0_1/10:
POS

training_data/SCEL4_2_2_1_0_0_1/11:
POS

training_data/SCEL4_2_2_1_0_0_1/12:
POS

training_data/SCEL4_2_2_1_0_0_1/13:
POS

training_data/SCEL4_2_2_1_0_0_1/14:
POS

training_data/SCEL4_2_2_1_0_0_1/15:
POS

training_data/SCEL4_2_2_1_0_0_1/16:
POS

training_data/SCEL4_2_2_1_0_0_1/17:
POS

training_data/SCEL4_2_2_1_0_0_1/18:
POS

training_data/SCEL4_2_2_1_0_0_1/19:
POS

training_data/SCEL4_2_2_1_0_0_1/2:
POS

training_data/SCEL4_2_2_1_0_0_1/20:
POS

training_data/SCEL4_2_2_1_0_0_1/21:
POS

training_data/SCEL4_2_2_1_0_0_1/22:
POS

training_data/SCEL4_2_2_1_0_0_1/23:
POS

training_data/SCEL4_2_2_1_0_0_1/24:
POS

training_data/SCEL4_2_2_1_0_0_1/25:
POS

training_data/SCEL4_2_2_1_0_0_1/26:
POS

training_data/SCEL4_2_2_1_0_0_1/3:
POS

training_data/SCEL4_2_2_1_0_0_1/4:
POS

training_data/SCEL4_2_2_1_0_0_1/5:
POS

training_data/SCEL4_2_2_1_0_0_1/6:
POS

training_data/SCEL4_2_2_1_0_0_1/7:
POS

training_data/SCEL4_2_2_1_0_0_1/8:
POS

training_data/SCEL4_2_2_1_0_0_1/9:
POS

training_data/SCEL4_2_2_1_0_1_0:
0 1 10 11 12 13 14 15 16 17 2 3 4 5 6 7 8 9 LAT

training_data/SCEL4_2_2_1_0_1_0/0:
POS

training_data/SCEL4_2_2_1_0_1_0/1:
POS

training_data/SCEL4_2_2_1_0_1_0/10:
POS

training_data/SCEL4_2_2_1_0_1_0/11:
POS

training_data/SCEL4_2_2_1_0_1_0/12:
POS

training_data/SCEL4_2_2_1_0_1_0/13:
POS

training_data/SCEL4_2_2_1_0_1_0/14:
POS

training_data/SCEL4_2_2_1_0_1_0/15:
POS

training_data/SCEL4_2_2_1_0_1_0/16:
POS

training_data/SCEL4_2_2_1_0_1_0/17:
POS

training_data/SCEL4_2_2_1_0_1_0/2:
POS

training_data/SCEL4_2_2_1_0_1_0/3:
POS

training_data/SCEL4_2_2_1_0_1_0/4:
POS

training_data/SCEL4_2_2_1_0_1_0/5:
POS

training_data/SCEL4_2_2_1_0_1_0/6:
POS

training_data/SCEL4_2_2_1_0_1_0/7:
POS

training_data/SCEL4_2_2_1_0_1_0/8:
POS

training_data/SCEL4_2_2_1_0_1_0/9:
POS

training_data/SCEL4_2_2_1_0_1_1:
0 1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 5 6 7 8 9 LAT

training_data/SCEL4_2_2_1_0_1_1/0:
POS

training_data/SCEL4_2_2_1_0_1_1/1:
POS

training_data/SCEL4_2_2_1_0_1_1/10:
POS

training_data/SCEL4_2_2_1_0_1_1/11:
POS

training_data/SCEL4_2_2_1_0_1_1/12:
POS

training_data/SCEL4_2_2_1_0_1_1/13:
POS

training_data/SCEL4_2_2_1_0_1_1/14:
POS

training_data/SCEL4_2_2_1_0_1_1/15:
POS

training_data/SCEL4_2_2_1_0_1_1/16:
POS

training_data/SCEL4_2_2_1_0_1_1/17:
POS

training_data/SCEL4_2_2_1_0_1_1/18:
POS

training_data/SCEL4_2_2_1_0_1_1/19:
POS

training_data/SCEL4_2_2_1_0_1_1/2:
POS

training_data/SCEL4_2_2_1_0_1_1/20:
POS

training_data/SCEL4_2_2_1_0_1_1/3:
POS

training_data/SCEL4_2_2_1_0_1_1/4:
POS

training_data/SCEL4_2_2_1_0_1_1/5:
POS

training_data/SCEL4_2_2_1_0_1_1/6:
POS

training_data/SCEL4_2_2_1_0_1_1/7:
POS

training_data/SCEL4_2_2_1_0_1_1/8:
POS

training_data/SCEL4_2_2_1_0_1_1/9:
POS

training_data/SCEL4_4_1_1_0_3_2:
0 1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 23 3 4 5 6 7 8 9 LAT

training_data/SCEL4_4_1_1_0_3_2/0:
POS

training_data/SCEL4_4_1_1_0_3_2/1:
POS

training_data/SCEL4_4_1_1_0_3_2/10:
POS

training_data/SCEL4_4_1_1_0_3_2/11:
POS

training_data/SCEL4_4_1_1_0_3_2/12:
POS

training_data/SCEL4_4_1_1_0_3_2/13:
POS

training_data/SCEL4_4_1_1_0_3_2/14:
POS

training_data/SCEL4_4_1_1_0_3_2/15:
POS

training_data/SCEL4_4_1_1_0_3_2/16:
POS

training_data/SCEL4_4_1_1_0_3_2/17:
POS

training_data/SCEL4_4_1_1_0_3_2/18:
POS

training_data/SCEL4_4_1_1_0_3_2/19:
POS

training_data/SCEL4_4_1_1_0_3_2/2:
POS

training_data/SCEL4_4_1_1_0_3_2/20:
POS

training_data/SCEL4_4_1_1_0_3_2/21:
POS

training_data/SCEL4_4_1_1_0_3_2/22:
POS

training_data/SCEL4_4_1_1_0_3_2/23:
POS

training_data/SCEL4_4_1_1_0_3_2/3:
POS

training_data/SCEL4_4_1_1_0_3_2/4:
POS

training_data/SCEL4_4_1_1_0_3_2/5:
POS

training_data/SCEL4_4_1_1_0_3_2/6:
POS

training_data/SCEL4_4_1_1_0_3_2/7:
POS

training_data/SCEL4_4_1_1_0_3_2/8:
POS

training_data/SCEL4_4_1_1_0_3_2/9:
POS

training_data/settings:
calctype.default O Zr

training_data/settings/calctype.default:
INCAR KPOINTS POSCAR ref.default relax.json SPECIES

training_data/settings/calctype.default/ref.default:

training_data/settings/O:
POTCAR

training_data/settings/Zr:
POTCAR

typo in documentation for bspecs.json

In casm format --bspecs, I think the composition key used in the Cu/Au and Ga/In examples should have curly braces instead of square brackets. In other words, "composition" : ["Au" : 0.25, "Cu" : 0.75] should be replaced with "composition" : {"Au" : 0.25, "Cu" : 0.75}.

casm enum -c --scelnames does not work

I tried using the --scelnames option to enumerate all the configurations in that supercell. It gives out a error.
cmd: casm enum -c --scelnames 'SCEL3_3_1_1_0_0_1'
"Error in 'casm enum'. If --configs is given, exactly one of either --max or --all must be given"

on_hull and on_clex_hull queries are misleading

The 'on_hull' and 'on_clex_hull' query results are misleading because they return 1 (true) for all qhull vertices, not just ground states. Additionally, qhull only keeps one point as a vertex when there are multiple points with approximately equal coordinates. Particularly with 'on_clex_hull', this means there may be cases where it returns 0 (false) for a configuration that is on the hull, but with the same energy and composition as another configuration. Because of this, most users have been using 'hull_dist' with a tolerance check.

Possible changes:

  1. change on_hull to is_groundstate and have it evaluate lt(abs(hull_dist(...args...)),hull_tol), and have a similar is_clex_groundstate. To reduce the number of arguments needed by hull_dist and on_hull, we could make the dim_tol and bottom_tol arguments project settings.
  2. keep current functionality, but change the documentation
  3. delete the on_hull and on_clex_hull options

Not able to install showing Could not find boost library: boost_system(cached) no

I am trying to install CASMcode and I have checked out the code. I am in the directory and issuing following command :

anu@anu-HP-Z640-Workstation:~/Desktop/CASMcode-master/CASMcode-master$ scons configure

and I get following message :

scons: Reading SConscript files ...
Checking for c++11... yes
Checking for C library z... yes
Checking for C library dl... yes
Checking for C library dl... yes
BOOST_PREFIX: None
(cached) Checking for boost headers... (cached) found /usr/include/boost... (cached) yes
Could not find boost library: boost_system(cached) no

Configuration checks failed.
Please check your boost installation or the CASM_BOOST_PREFIX environment variable

seems like the CASM_BOOST_PREFIX is not set. But to which value I need to set it ?

Any help will be appreciated.

Configurations that aren't groundstates are marked as being on the hull

For a ternary system, I queried my energies for composition, hull distance, and whether the configuration is a groundstate or not. The result is several pairs of configurations that have the same composition marked as being on the hull. I suspect that the hull finding routines are not discarding the "top" of the convex hull, and are instead reporting all of the configurations that are part of the full convex hull. For a given pair of "on_hull" configurations with the same composition, the distance between their formation energies matches the reported distance from the hull for the one with higher energy.

For example:

configname            selected  atom_frac(Cr)  atom_frac(Al)  atom_frac(Ni)  on_hull(MASTER,atom_frac)  hull_dist(MASTER,atom_frac)  formation_energy_per_atom
SCEL3_3_1_1_0_1_2/1   1         0.66666667     0.33333333     0.00000000     1                          0.00000000                   -0.13121885
SCEL6_1_6_1_1_0_0/2   1         0.66666667     0.33333333     0.00000000     1                          0.21266172                   0.08144287 

casm-learn usage for "pop_begin_filename" tag

I assume we can use "pop_begin_filename" tag to give a starting guess for genetic algorithm. Presently it takes only pickle files. How to make a pickle file of a bit string of my initial guess? Also what is the population being written to "fileprefix_population_end.pkl"? If I want a certain hall of fame candidate as starting guess for the genetic algo, what is the way to do that?

QHull incompatibility with newer versions of icc

we are trying to build CASM with icc/icpc and getting the following error.
In file included from include/casm/external/qhull/libqhullcpp/QhullIterator.h(13),
from include/casm/external/qhull/libqhullcpp/QhullPoint.h(13),
from include/casm/external/qhull/libqhullcpp/QhullPoints.h(12),
from include/casm/external/qhull/libqhullcpp/PointCoordinates.h(12),
from include/casm/hull/Hull.hh(4),
from include/casm/clex/ConfigIOHull.hh(5),
from src/casm/clex/ConfigIOHull.cc(2):
include/casm/external/qhull/libqhullcpp/../libqhull_r/qhull_ra.h(106): error: this declaration may not have extern "C" linkage
template
^

In file included from include/casm/external/qhull/libqhullcpp/QhullIterator.h(13),
from include/casm/external/qhull/libqhullcpp/QhullPoint.h(13),
from include/casm/external/qhull/libqhullcpp/QhullPoints.h(12),
from include/casm/external/qhull/libqhullcpp/PointCoordinates.h(12),
from include/casm/hull/Hull.hh(4),
from include/casm/clex/ConfigIOHull.hh(5),
from src/casm/clex/ConfigIOHull.cc(2):
include/casm/external/qhull/libqhullcpp/../libqhull_r/qhull_ra.h(107): error: a class or namespace qualified name is required
inline void qhullUnused(typename T &x) { (void)x; }
^
after checking http://stackoverflow.com/questions/4877705/why-cant-templates-be-within-extern-c-blocks i think the code is indeed illegal.

please find the compiler output below:
I ran
scons --no-cache configure
scons --no-cache

/tmp/vsc20170/CASMcode-0.2.0
Currently Loaded Modulefiles:

  1. hopper/2016b 9) imkl/11.3.3.210-iimpi-2016b 17) Tk/8.6.5-intel-2016b
  2. GCCcore/5.4.0 10) intel/2016b 18) GMP/6.1.1-intel-2016b
  3. binutils/2.26-GCCcore-5.4.0 11) bzip2/1.0.6-intel-2016b 19) libffi/3.2.1-intel-2016b
  4. icc/2016.3.210-GCC-5.4.0-2.26 12) zlib/1.2.8-intel-2016b 20) Python/2.7.12-intel-2016b
  5. ifort/2016.3.210-GCC-5.4.0-2.26 13) ncurses/6.0-intel-2016b 21) Boost/1.63.0-intel-2016b-Python-2.7.12
  6. iccifort/2016.3.210-GCC-5.4.0-2.26 14) libreadline/6.3-intel-2016b 22) SCons/2.5.1-intel-2016b-Python-2.7.12
  7. impi/5.1.3.181-iccifort-2016.3.210-GCC-5.4.0-2.26 15) Tcl/8.6.5-intel-2016b
  8. iimpi/2016b 16) SQLite/3.13.0-intel-2016b
    /apps/antwerpen/ivybridge/sl6/icc/2016.3.210-GCC-5.4.0-2.26/compilers_and_libraries_2016.3.210/linux/bin/intel64/icc
    icc (ICC) 16.0.3 20160415
    Copyright (C) 1985-2016 Intel Corporation. All rights reserved.

vsc20170@ln03 [508] /tmp/vsc20170/CASMcode-0.2.0$ scons --no-cache configure
scons: Reading SConscript files ...
Checking for C library z... yes
Checking for C library dl... yes
Checking for C library dl... yes
BOOST_PREFIX: /apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12
(cached) Checking for boost headers... (cached) found /apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include/boost... (cached) yes
Found boost library: boost_system as: boost_system(cached) yes
Checking for C library boost_system... yes
Found boost library: boost_filesystem as: boost_filesystem(cached) yes
Checking for C library boost_filesystem... yes
Found boost library: boost_program_options as: boost_program_options(cached) yes
Checking for C library boost_program_options... yes
Found boost library: boost_regex as: boost_regex(cached) yes
Checking for C library boost_regex... yes
Found boost library: boost_chrono as: boost_chrono(cached) yes
Checking for C library boost_chrono... yes
Found boost library: boost_timer as: boost_timer(cached) yes
Checking for C library boost_timer... yes
Found boost library: boost_unit_test_framework as: boost_unit_test_framework(cached) yes
Checking for C library boost_unit_test_framework... yes
Checking for Boost version >= 1.54... yes
Checking if BOOST_NO_CXX11_SCOPED_ENUMS setting is correct... yes
Checking for Python module 'numpy'... yes
Checking for Python module 'sklearn'... yes
Checking for Python module 'deap'... yes
Checking for Python module 'pandas'... yes
Checking for Python module 'pbs'... yes
Configuration checks passed.
vsc20170@ln03 [509] /tmp/vsc20170/CASMcode-0.2.0$ scons --no-cache
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
icc -o apps/casm/casm.o -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include apps/casm/casm.cpp
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
icc -o src/casm/external/gzstream/gzstream.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude/casm/external/gzstream src/casm/external/gzstream/gzstream.C
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
icc -o src/casm/version/version.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude src/casm/version/version.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
icc -o src/casm/CASM_global_definitions.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/CASM_global_definitions.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
icc -o src/casm/clex/Reference.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/Reference.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

icc -o src/casm/clex/ParamComposition.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/ParamComposition.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

include/casm/casm_io/DataFormatterTools.hh(927): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(952): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(976): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

icc -o src/casm/clex/Properties.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/Properties.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
icc -o src/casm/clex/DoFManager.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/DoFManager.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

icc -o src/casm/clex/NeighborList.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/NeighborList.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
icc -o src/casm/clex/ConfigIONovelty.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/ConfigIONovelty.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

include/casm/casm_io/DataFormatterTools.hh(927): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(952): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(976): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

icc -o src/casm/clex/ConfigMapping.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/ConfigMapping.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

include/casm/casm_io/DataFormatterTools.hh(927): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(952): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(976): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

icc -o src/casm/clex/ConfigIOStrucScore.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/ConfigIOStrucScore.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

include/casm/casm_io/DataFormatterTools.hh(927): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(952): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(976): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

icc -o src/casm/clex/ConfigIterator.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/ConfigIterator.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

include/casm/casm_io/DataFormatterTools.hh(927): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(952): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(976): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

icc -o src/casm/clex/Configuration.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/Configuration.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

include/casm/casm_io/DataFormatterTools.hh(927): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(952): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(976): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

icc -o src/casm/clex/ChemicalReference.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/ChemicalReference.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

include/casm/casm_io/DataFormatterTools.hh(927): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(952): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(976): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

icc -o src/casm/clex/ConfigIOSelected.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/ConfigIOSelected.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

include/casm/casm_io/DataFormatterTools.hh(927): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(952): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(976): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

icc -o src/casm/clex/ConfigIOHull.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/apps/antwerpen/ivybridge/sl6/Boost/1.63.0-intel-2016b-Python-2.7.12/include src/casm/clex/ConfigIOHull.cc
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-register'
icc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'

include/casm/casm_io/jsonParser.hh(623): warning #597: "CASM::jsonParserIterator::operator CASM::jsonParser::const_iterator() [with IsConst=true]" will not be called for implicit or explicit conversions
operator jsonParser::const_iterator() {
^
detected during instantiation of class "CASM::jsonParserIterator [with IsConst=true]" at line 721

include/casm/casm_io/DataFormatterTools.hh(927): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(952): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

include/casm/casm_io/DataFormatterTools.hh(976): warning #3373: nonstandard use of "auto" to both deduce the type from an initializer and to announce a trailing return type
auto it(_index_rules().cbegin()), end_it(_index_rules().cend());
^

compilation aborted for src/casm/clex/ConfigIOHull.cc (code 2)
scons: *** [src/casm/clex/ConfigIOHull.os] Error 2
scons: building terminated because of errors.

boost_regex undefined reference (using CASMcode-0.2.0, Boost 1.63.0, SCons-2.5.1)

Hello,

We're trying to build CASM-0.2.0 on our system. We have installed Boost-1.63.0 and SCons-2.5.1.

First of all, to make "scons configure" work, we had to set "env = Environment(ENV = os.environ)" to make it work properly (maybe that's due to the fact that we have installed Boost and such in non-standard directories).

When running "scons", we get the following error:

$ g++ -o bin/casm -Wl,--rpath=\$ORIGIN/../lib -z origin apps/casm/casm.o -Llib -L/path-to-Boost/1.63.0-intel-2016b-Python-2.7.12/lib -lboost_system -lboost_filesystem -lboost_program_options -lboost_regex -lboost_chrono -ldl -lz -lcasm
lib/libcasm.so: error: undefined reference to 'boost::re_detail_106300::cpp_regex_traits_implementation<char>::transform_primary(char const*, char const*) const'
lib/libcasm.so: error: undefined reference to 'boost::re_detail_106300::cpp_regex_traits_implementation<char>::transform(char const*, char const*) const'
collect2: error: ld returned 1 exit status

Any idea what might be wrong here? We have the libboost_regex library installed, and we find the following:

$ nm libboost_regex.a  | grep cpp_regex_traits_implementation | grep transform
                 U _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIcE17transform_primaryB5cxx11EPKcS4_
                 U _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIcE9transformB5cxx11EPKcS4_
0000000000000000 W _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIcE17transform_primaryB5cxx11EPKcS4_
0000000000000798 r _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIcE17transform_primaryB5cxx11EPKcS4_$$LSDA
0000000000000000 W _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIcE9transformB5cxx11EPKcS4_
00000000000007e4 r _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIcE9transformB5cxx11EPKcS4_$$LSDA
0000000000000000 W _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIwE17transform_primaryB5cxx11EPKwS4_
00000000000007c4 r _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIwE17transform_primaryB5cxx11EPKwS4_$$LSDA
0000000000000000 W _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIwE9transformB5cxx11EPKwS4_
0000000000000810 r _ZNK5boost16re_detail_10630031cpp_regex_traits_implementationIwE9transformB5cxx11EPKwS4_$$LSDA

Many thanks for your reply.

Regards,

Franky

c++11 configuration check

When checking configuration with scons configure before installation, it does not check if the compiler being used supports c++11. If scons configure fails, it prints config.log. If the compiler does not support c++11 config.log will contain error: unrecognized command line option "-std=c++11".

Many Monte Carlo runs will cripple a filesystem

This is more of a design issue rather than a coding issue.

The current setup of monte carlo involves writing one 'conditions.i' folder, with three .json files inside, for every... well, every condition. For my runs, I'm often doing large temperature spans (>1000 K), small temperature steps (~5K), at many many chemical potentials to capture compositions near a miscibility gap.

While I have the compute power to run, say, >300 runs, doing this will break any compute cluster filesystem (nfs/lustre/etc) I've encountered. This comes from 1. each CASM process creating/touching/manipulating a bunch of (tiny, regardless) files, and 2. creating so many directories/subdirectories that the FS starts to get upset. Operations on a head node even begin to slow down, and the CASM jobs start impacting each other (starting up a new MC run takes approx. forever, as doing disk operations to do things like read monte.json and stuff become O(infinity) in time).

It seems that the files inside conditions.i are used only for certain post-processing invocations of "casm monte", and we could switch to either 1. having one big json (conditions.json, with an entry for each), or better, 2. some sort of large, compressed file/files or database, like a hdf5 or something.

Could this be worth considering in future versions of CASM? Has anyone else had this problem? Should I just slow down on my MC runs?

lib/libcasm.so: undefined reference to `boost::filesystem::detail

I am trying to install CASM code . I could successfully run configuration checks and configure all the binaries. But while giving the scons install command I end up with the following error.
lib/libcasm.so: undefined reference to `boost::filesystem::detail::copy_file(boost::filesystem::path const&, boost::filesystem::path const&, boost::filesystem::copy_option, boost::system::error_code*)'
collect2: error: ld returned 1 exit status
scons: *** [bin/casm] Error 1
scons: building terminated because of errors.
Can you please help me to fix this error

MAGMOM reconciliation leads to wrong results

I need to do my own digging to find out why this change has happened, but, in a nutshell:

  • SPECIES has Mn_u and Mn_d, which share the same alias Mn, but have different MAGMOM +/- 6
  • The INCAR (and INCAR.base) somehow end up with 2*-6 rather than 6 -6
  • Old version of the code didn't do this

Pandas/Numpy conflict causing issues in casm-learn

Was contacted by a user with the following problem, so I'm opening an issue. It seems related to a known pandas/numpy conflict. The user was able to resolve by updating pandas, which also updated numpy. I haven't been able to recreate the issue myself, but at least wanted to document it if anyone else encounters the same.

When I run casm-learn -s fit_1_ga.json the first time it works and writes out all files. I can then plot my predicted and DFT hull from them. When I run it a second time with the previously generated fit_1_ga_halloffame.pkl I get
Loading fit_1_ga.json
# Hall of Fame size: 25

Loading Hall of Fame: fit_1_ga_halloffame.pkl
Traceback (most recent call last):
File "/usr/local/bin/casm-learn", line 119, in
hall.update(existing_hall)
File "/usr/lib/python2.7/dist-packages/deap/tools/support.py", line 523, in update
self.insert(population[0])
File "/usr/lib/python2.7/dist-packages/deap/tools/support.py", line 551, in insert
item = deepcopy(item)
File "/usr/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
File "/usr/lib/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)

... lots more deepcopy errors...

y.append(deepcopy(a, memo))
File "/usr/lib/python2.7/copy.py", line 174, in deepcopy
y = copier(memo)
ValueError: Iteration of zero-sized operands is not enabled
To refit I then have to delete the fit_1_ga_halloffame.pkl and then I can rerun, is that intended? This error occurs even when I run the same fit twice, i.e. not changing anything in the input file for casm-learn.

I suspect we might not be able to do anything about it beyond advising people to update to the latest version of pandas an numpy.

Rounding numbers with operators in casm query

I was trying to use casm query to filter out all the configurations on the ternary axis. Due to floating point error this filter did not work "gt(mult(comp(a),comp(b)),0)" but this worked "gt(mult(comp(a),comp(b)),1e-15)". May be there should be a round operator or rounding to a certain decimal can be made default when comparing values.

'fit_1_ga_halloffame.pkl' is not Generating

When I give the command 'casm-learn -s fit_1_ga.json' I am getting the following error

TypeError: bad operand type for unary -: 'str'

And not generating 'fit_1_ga_halloffame.pkl'

It will be grateful for any help.
Thanks

Installation Issue: "scons: ***Scons version 2.4.1 does not run under Python version 3.5.2"

When after I updated python version to 3.5, casm is no longer running.

whenever I call "casm", I got these following error message.

"dyld: Symbol not found: _ZNK5boost16re_detail_10600031cpp_regex_traits_implementationIcE17transform_primaryEPKcS4
Referenced from: /usr/local/bin/../lib/libcasm.dylib
Expected in: /usr/local/opt/boost/lib/libboost_regex-mt.dylib
in /usr/local/bin/../lib/libcasm.dylib
Trace/BPT trap: 5"

So, I tried to re-install casm code using scons
"scons: *** SCons version 2.4.1 does not run under Python version 3.5.2.
Python 3 is not yet supported."

Do you have any suggestion?

Thank you

Issue generating cluster orbit

All, I am trying to generate basis functions for a relatively large supercell (32 atoms, 8 dofs). I receive the following error with the attached prim.json and bspecs.json input file:

bspecs.txt
prim.txt

-- Generate: Cluster orbits --
CRITICAL ERROR: In SymGroupRep::set_rep(), representation already exists for operation 8.
Exiting...

Note that in the mainclust11 from years back, I had no problem generating basis functions with this same unit cell.

The nearest neighbor pair is ~3.88A, and this error appears when I increase the max_length above that value. max_length values below 3.88A only generates the point clusters (of course).

I've messed around with crystallography_tol, but this did not change anything.

I'm not exactly sure what the error means, and I don't understand it in the context of SymGroupRep.cc, so any help would be appreciated.

CSVs have a whitespace between # and the first field that breaks pandas

Specifically, the header of ANY csv file produced throughout CASM has:

first_field second_field third_field etc

The problem is that this causes pandas.read_csv to do the following:

raw = pd.read_csv("my_file.csv", delim_whitespace=True) # delim_whitespace is necessary as our CSVs lack commas
raw.columns
< Index([u'#', u'first_field', u'second_field', u'third_field', etc ... ])

Meaning all the column indexing gets shifted over by 1. My current solution is to, by hand, remove that initial whitespace. But, why is it even there?

Possible gcc-4.8.0 bug compile error

scons: Building targets ...
Install directory: "include/casm" as "/home/gpilania/include/casm"
~/gcc-4.8.0/bin/g++ -o src/casm/version/version.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -DBOOST_NO_CXX11_SCOPED_ENUMS -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude src/casm/version/version.cc
~/gcc-4.8.0/bin/g++ -o src/casm/app/monte.os -c -DNDEBUG -O3 --std=c++11 -Wno-deprecated-register -Wno-deprecated-declarations -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long -DBOOST_NO_CXX11_SCOPED_ENUMS -Wno-unused-parameter -DNDEBUG -O3 -DGZSTREAM_NAMESPACE=gz -fPIC -Iinclude -I/home/gpilania/include src/casm/app/monte.cc
In file included from include/casm/monte_carlo/MonteDriver.hh:9:0,
from src/casm/app/monte.cc:8:
include/casm/monte_carlo/MonteCarloEnum_impl.hh: In lambda function:
include/casm/monte_carlo/MonteCarloEnum_impl.hh:39:20: error: no match for 'operator[]' (operand types are 'const std::map<std::basic_string, std::pair<bool, double> >' and 'std::string {aka std::basic_string}')
return m_data[config.name()].first;
^
include/casm/monte_carlo/MonteCarloEnum_impl.hh:39:20: note: candidates are:
In file included from /export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/map:61:0,
from /home/gpilania/include/boost/program_options/errors.hpp:15,
from /home/gpilania/include/boost/program_options/options_description.hpp:12,
from /home/gpilania/include/boost/program_options.hpp:15,
from include/casm/external/boost.hh:5,
from include/casm/clex/PrimClex.hh:4,
from src/casm/app/monte.cc:4:
/export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/bits/stl_map.h:456:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = std::basic_string; _Tp = std::pair<bool, double>; _Compare = std::less<std::basic_string >; _Alloc = std::allocator<std::pair<const std::basic_string, std::pair<bool, double> > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = std::pair<bool, double>; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::basic_string]
operator[](const key_type& __k)
^
/export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/bits/stl_map.h:456:7: note: no known conversion for implicit 'this' parameter from 'const std::map<std::basic_string, std::pair<bool, double> >' to 'std::map<std::basic_string, std::pair<bool, double> >'
/export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/bits/stl_map.h:476:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = std::basic_string; _Tp = std::pair<bool, double>; _Compare = std::less<std::basic_string >; _Alloc = std::allocator<std::pair<const std::basic_string, std::pair<bool, double> > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = std::pair<bool, double>; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::basic_string]
operator[](key_type&& __k)
^
/export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/bits/stl_map.h:476:7: note: no known conversion for implicit 'this' parameter from 'const std::map<std::basic_string, std::pair<bool, double> >' to 'std::map<std::basic_string, std::pair<bool, double> >'
In file included from include/casm/monte_carlo/MonteDriver.hh:9:0,
from src/casm/app/monte.cc:8:
include/casm/monte_carlo/MonteCarloEnum_impl.hh: In lambda function:
include/casm/monte_carlo/MonteCarloEnum_impl.hh:51:20: error: no match for 'operator[]' (operand types are 'const std::map<std::basic_string, std::pair<bool, double> >' and 'std::string {aka std::basic_string}')
return m_data[config.name()].second;
^
include/casm/monte_carlo/MonteCarloEnum_impl.hh:51:20: note: candidates are:
In file included from /export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/map:61:0,
from /home/gpilania/include/boost/program_options/errors.hpp:15,
from /home/gpilania/include/boost/program_options/options_description.hpp:12,
from /home/gpilania/include/boost/program_options.hpp:15,
from include/casm/external/boost.hh:5,
from include/casm/clex/PrimClex.hh:4,
from src/casm/app/monte.cc:4:
/export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/bits/stl_map.h:456:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = std::basic_string; _Tp = std::pair<bool, double>; _Compare = std::less<std::basic_string >; _Alloc = std::allocator<std::pair<const std::basic_string, std::pair<bool, double> > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = std::pair<bool, double>; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::basic_string]
operator[](const key_type& __k)
^
/export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/bits/stl_map.h:456:7: note: no known conversion for implicit 'this' parameter from 'const std::map<std::basic_string, std::pair<bool, double> >' to 'std::map<std::basic_string, std::pair<bool, double> >'
/export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/bits/stl_map.h:476:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = std::basic_string; _Tp = std::pair<bool, double>; _Compare = std::less<std::basic_string >; _Alloc = std::allocator<std::pair<const std::basic_string, std::pair<bool, double> > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = std::pair<bool, double>; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::basic_string]
operator[](key_type&& __k)
^
/export/home/gpilania/gcc-4.8.0/include/c++/4.8.0/bits/stl_map.h:476:7: note: no known conversion for implicit 'this' parameter from 'const std::map<std::basic_string, std::pair<bool, double> >' to 'std::map<std::basic_string, std::pair<bool, double> >'
In file included from include/casm/monte_carlo/MonteDriver.hh:9:0,
from src/casm/app/monte.cc:8:
include/casm/monte_carlo/MonteCarloEnum_impl.hh: In instantiation of 'CASM::MonteCarloEnum::MonteCarloEnum(CASM::PrimClex&, const MonteTypeSettings&, CASM::Log&, MonteCarloType&) [with MonteTypeSettings = CASM::GrandCanonicalSettings; MonteCarloType = CASM::GrandCanonical]':
include/casm/monte_carlo/MonteDriver.hh:99:40: required from 'CASM::MonteDriver::MonteDriver(CASM::PrimClex&, const SettingsType&, CASM::Log&, CASM::Log&) [with RunType = CASM::GrandCanonical; CASM::MonteDriver::SettingsType = CASM::GrandCanonicalSettings]'
src/casm/app/monte.cc:327:107: required from here
include/casm/monte_carlo/MonteCarloEnum_impl.hh:44:8: error: no matching function for call to 'CASM::GenericDatumFormatter<bool, CASM::Configuration>::GenericDatumFormatter(const char [7], const char [7], CASM::MonteCarloEnum::MonteCarloEnum(CASM::PrimClex&, const MonteTypeSettings&, CASM::Log&, MonteCarloType&) [with MonteTypeSettings = CASM::GrandCanonicalSettings; MonteCarloType = CASM::GrandCanonical]::__lambda34, CASM::MonteCarloEnum::MonteCarloEnum(CASM::PrimClex&, const MonteTypeSettings&, CASM::Log&, MonteCarloType&) [with MonteTypeSettings = CASM::GrandCanonicalSettings; MonteCarloType = CASM::GrandCanonical]::__lambda35)'
));
^
include/casm/monte_carlo/MonteCarloEnum_impl.hh:44:8: note: candidates are:
In file included from include/casm/casm_io/DataFormatter_impl.hh:3:0,
from include/casm/casm_io/DataFormatter.hh:757,
from include/casm/clex/Reference.hh:11,
from include/casm/clex/ChemicalReference.hh:5,
from include/casm/clex/PrimClex.hh:14,
from src/casm/app/monte.cc:4:
include/casm/casm_io/DataFormatterTools.hh:798:5: note: CASM::GenericDatumFormatter<ValueType, DataObject>::GenericDatumFormatter(const string&, const string&, CASM::GenericDatumFormatter<ValueType, DataObject>::Evaluator, CASM::GenericDatumFormatter<ValueType, DataObject>::Validator) [with ValueType = bool; DataObject = CASM::Configuration; std::string = std::basic_string; CASM::GenericDatumFormatter<ValueType, DataObject>::Evaluator = std::function<bool(const CASM::Configuration&)>; CASM::GenericDatumFormatter<ValueType, DataObject>::Validator = std::function<bool(const CASM::Configuration&)>]
GenericDatumFormatter(const std::string &_init_name,
^
include/casm/casm_io/DataFormatterTools.hh:798:5: note: no known conversion for argument 3 from 'CASM::MonteCarloEnum::MonteCarloEnum(CASM::PrimClex&, const MonteTypeSettings&, CASM::Log&, MonteCarloType&) [with MonteTypeSettings = CASM::GrandCanonicalSettings; MonteCarloType = CASM::GrandCanonical]::__lambda34' to 'CASM::GenericDatumFormatter<bool, CASM::Configuration>::Evaluator {aka std::function<bool(const CASM::Configuration&)>}'
include/casm/casm_io/DataFormatterTools.hh:784:9: note: CASM::GenericDatumFormatter<bool, CASM::Configuration>::GenericDatumFormatter(const CASM::GenericDatumFormatter<bool, CASM::Configuration>&)
class GenericDatumFormatter : public BaseValueFormatter<ValueType, DataObject> {
^
include/casm/casm_io/DataFormatterTools.hh:784:9: note: candidate expects 1 argument, 4 provided
include/casm/casm_io/DataFormatterTools.hh:784:9: note: CASM::GenericDatumFormatter<bool, CASM::Configuration>::GenericDatumFormatter(CASM::GenericDatumFormatter<bool, CASM::Configuration>&&)
include/casm/casm_io/DataFormatterTools.hh:784:9: note: candidate expects 1 argument, 4 provided
include/casm/monte_carlo/MonteCarloEnum_impl.hh:51: confused by earlier errors, bailing out
scons: *** [src/casm/app/monte.os] Error 1
scons: building terminated because of errors.

bokeh version

The latest versions of bokeh and a dependency, tornado, cause the casm plotting scripts to fail. Until an update can be made, use:

pip install bokeh==0.12.3
pip install tornado==4.3

can't filter config enumeration with correlations

casm 0.2.0 crashes when I try to use correlations to filter configuration enumeration, such as

casm enum -c --all --filter 'eq(corr(1),0.5)'

The error message is:

Cannot filter configurations using the expression provided: 
basic_string::_M_construct null not valid
Exiting...

VASP wrapper with MAGMOM in large systems

I believe there is a design flaw in the way the vasp wrapper writes the INCAR for per atom tags such as MAGMOM from the SPECIES file. It writes out the value of MAGMOM for each species in an array format. The problem with doing this is in large supercells the number of atoms gets quite large and the MAGMOM line in INCAR becomes very long. I believe there is some sort of VASP default that only reads a certain amount of characters per tag which seems to be roughly ~250 characters for MAGMOM. A better way to write the MAGMOM tag in the INCAR would be the following:
NUM_SPECIES1 * MAGMOM_SPECIES1 NUMSPECIES2 * MAGMOM_SPECIES2 ....
because this uses much fewer characters and gets the same message across to VASP within its character limit.

This can be fixed by making some changes to read() and update() in incar.py, but requires a sorted poscar. Working on a fix now.

How do we get selected clusters?

Result:
Index: Selected #Selected CV RMS wRMS Estimator FeatureSelection Note

0: 1111001000000000100001000000001000000000... 25 0.049666174 0.045981558 0.045981558 LinearRegression RFE

From my training data, I got about 100 clusters by bspecs.json file with 'casm bset -u'
and checked them with 'casm bset --orbits'

Then, I've fitted them for optimizing CVS and RMS and checked them with 'casm-learn -s fit_1_rfe.json --checkhull or --hall', described as above, and I can find 25 clusters are selected as denoted #Selected

but it's quite difficult for me to visualize selected ones, because I couldn't find their coordinate information like what we can see when we type 'casm bset --orbits or --functions'

Also, when writing eci.json file with 'casm-learn -s fit_1_rfe.json --select 0', it didn't work because of length of Index, printing like below

Traceback (most recent call last):
File "/usr/local/bin/casm-learn", line 101, in
write_eci(proj, indiv.eci, casm.learn.to_json(index, indiv), verbose=args.verbose)
File "/GRAPE/Apps/Python/2.7.12_intel_17.0.0/lib/python2.7/site-packages/casm/project/io.py", line 40, in write_eci
j["cluster_functions"][index]["eci"] = value
IndexError: list index out of range

It will be grateful if anyone could give me some comments on this

Thanks

Install CASM on supercomputer

From a user:

I have installed the CASM code in my local machine. I could successfully proceed till the third step (generating configuration). Since I dont have vasp in my local system (vasp is installed in supercomputer) I am unable to calculate configuration properties. Is there any other way to use CASM code from my local machine to run vasp calculations in super computer?

repeated casm query column names

The two main types of queries that can be made for energy are formation_energy and formation_energy_per_atom. The respective query arguments for their cluster expanded values are clex(formation_energy) and clex(formation_energy, per_species).

When performing queries for the cluster expanded values, both cases get the column name clex(formation_energy), regardless of whether "per_species" was used or not. Though the values print correctly for each case individually, querying for both becomes impossible, since only a single column ends up being printed.

Since renaming columns is involved, I'll also mention that the current query arguments aren't quite intuitive. My initial instinct is to run clex(formation_energy_per_atom. After learning that the "clex" query can take multiple arguments, my second guess would be to run clex(formation_energy, per_atom), since it is consistent with formation_energy_per_atom. Perhaps this could be unified by either sticking with "per_species" or "per_atom" in both cases.

ERROR: The structure in the prim.json file is not the niggli cell

When I give the command casm init I am getting the error

ERROR: The structure in the prim.json file is not the niggli cell in the CASM standard
orientation. Writing the suggested structure to 'prim.niggli.json'.

   If you want to use the current prim.json anyway, re-run with the --force option.

When I give the command casm init --force I am getting the following message

**WARNING: The structure in the prim.json file is not the standard orientation Niggli
cell. Continuing anyway because the --force option is on.

Initializing CASM project 'LiCoO2'
DONE****

How can I make the Niggli cell for my input?

If I proceed with casm init --force, how does it affect the formation energy?

It will be grateful if anyone could give me some comments on this

Thanks

Reading outputs from Monte Carlo(MC) simulations

Hi
Thanks for the previous comment on my question

Here I've got some trouble in analyzing results from MC simulations.

Firstly, I prepared 'input_MC.json' file to start MC and typed 'casm monte -s input_MC.json'.
The process seemed perfect and I've got several folders named 'conditions.<#>' and 'occupation_key.json' and 'results.json'. And each 'conditions.<#>' folders, 'conditions.json', 'initial_state.json', 'final_state.json', 'observations.json.gz' and 'trajectory.json.gz' exist.

Also I've tried '--initial-POSCAR', '--final-POSCAR' and '--traj-POSCAR' for certain condition # and checked the results from these commands.

Problem is that only I could find were POSCARs, which contain information about structure. I expected information about sort of energy, which is predicted from previous Cluster expansion results (selected set of ECIs). For example, at fixed temperature, with varying chemical potential, find equilibrium states of supercell.

It seems that reading 'results.json' file is the key for my problem, but it's difficult for me and even I'm not sure it will be the key.

It will be really grateful for help.
Thanks

Generation of basis functions

I am using CASM code firstly to verify with simple Pt(111)/O system.
I have generated "bspecs.json" as

{
"basis_functions" : {
"site_basis_functions" : "occupation"
},
"orbit_branch_specs" : {
"2" : {"max_length" : 7.5},
"3" : {"max_length" : 6.05},
"4" : {"max_length" : 4.05}
}
}
.
However, with this I've gotten several same clusters as basis shown in the result with this command "casm bset --orbits"
** Branch 0 **
** 0 of 27 Orbits ** Orbit: 0 0 Points: 0 Mult: 1 MinLength: 0.00000 MaxLength: 0.00000
Prototype of 1 Equivalent Clusters in Orbit 0

** Branch 1 **
** 1 of 27 Orbits ** Orbit: 1 0 Points: 1 Mult: 1 MinLength: 0.00000 MaxLength: 0.00000
Prototype of 1 Equivalent Clusters in Orbit 1
0.3383469 0.6616530 0.4929045 Va O

** Branch 2 **
** 2 of 27 Orbits ** Orbit: 2 0 Points: 2 Mult: 1 MinLength: 2.7700000 MaxLength: 2.7700000
Prototype of 1 Equivalent Clusters in Orbit 2
0.3383469 0.6616530 0.4929045 Va O
-0.6616531 -0.3383470 0.4929045 Va O

  ** 3 of 27 Orbits **  Orbit: 2 1  Points: 2  Mult: 2  MinLength: 2.7700000  MaxLength: 2.7700000
        Prototype of 2 Equivalent Clusters in Orbit 3
                             0.3383469    0.6616530    0.4929045 Va O
                             0.3383469   -0.3383470    0.4929045 Va O

  ** 4 of 27 Orbits **  Orbit: 2 2  Points: 2  Mult: 1  MinLength: 4.7977807  MaxLength: 4.7977807
        Prototype of 1 Equivalent Clusters in Orbit 4
                             0.3383469    0.6616530    0.4929045 Va O
                             1.3383469   -0.3383470    0.4929045 Va O

  ** 5 of 27 Orbits **  Orbit: 2 3  Points: 2  Mult: 2  MinLength: 4.7977807  MaxLength: 4.7977807
        Prototype of 2 Equivalent Clusters in Orbit 5
                             0.3383469    0.6616530    0.4929045 Va O
                            -0.6616531   -1.3383470    0.4929045 Va O

  ** 6 of 27 Orbits **  Orbit: 2 4  Points: 2  Mult: 1  MinLength: 5.5400000  MaxLength: 5.5400000
        Prototype of 1 Equivalent Clusters in Orbit 6
                             0.3383469    0.6616530    0.4929045 Va O
                            -1.6616531   -1.3383470    0.4929045 Va O

  ** 7 of 27 Orbits **  Orbit: 2 5  Points: 2  Mult: 2  MinLength: 5.5400000  MaxLength: 5.5400000
        Prototype of 2 Equivalent Clusters in Orbit 7
                             0.3383469    0.6616530    0.4929045 Va O
                             0.3383469   -1.3383470    0.4929045 Va O

  ** 8 of 27 Orbits **  Orbit: 2 6  Points: 2  Mult: 2  MinLength: 7.3287311  MaxLength: 7.3287311
        Prototype of 2 Equivalent Clusters in Orbit 8
                             0.3383469    0.6616530    0.4929045 Va O
                            -1.6616531   -2.3383470    0.4929045 Va O

Here, I recognzied 2 and 3 are the same clusters, and also the 4 and 5. This leads in the process of finding eci me obtain the duplicated basis functions having different ECI. The CVS seems reasonalbe with various run around 15 meV. I suspect the issue is with the generating basis function not ECI. Is there a way for me to obtain basis functions without duplications, or is it my mistake of making "bspecs.json"?

issue with using 'basis_deformation' with casm select

On casm version 0.2.0, if I try to run something like:
casm select --set-off "gt(basis_deformation,0.004)"

I get an error:
terminate called after throwing an instance of 'std::runtime_error'
what(): Const operator[] access, but basis_deformation does not exist
Aborted

I get no error and correct behavior if I do:
casm query -k "gt(basis_deformation,0.004)"

It appears that while casm is able to calculate the basis_deformation (and I believe it is calculating it correctly), the criterion cannot be used for selection.

EDIT: This also appears to be a problem for some other selection criteria like formation_energy and formation_energy_per_atom as well as anything that uses those values (e.g. hull_dist).

PRIM with two sites at the same point has symmetry/equivalency issues

The short: If you try to make a CASM project with two different DOFs on top of each other (A/B and C/D), CASM somehow considers SCELs containing A+C and B+D to be "the same", which feels like a very weird symmetry issue.

The long:

Consider the following prim.json:

{
  "basis" : [
    {
      "coordinate" : [ 0.000000000000, 0.000000000000, 0.000000000000 ],
      "occupant_dof" : [ "A", "B" ]
    },
    {
      "coordinate" : [ 0.500000000000, 0.500000000000, 0.500000000000 ],
      "occupant_dof" : [ "C", "D" ]
    }
  ],
  "coordinate_mode" : "Fractional",
  "description" : "FooBar",
  "lattice_vectors" : [
    [ 0.000000000000, 1.000000000000, 1.000000000000 ],
    [ 1.000000000000, 0.000000000000, 1.000000000000 ],
    [ 1.000000000000, 1.000000000000, 0.000000000000 ]
  ],
  "title" : "ABCD"
}

Here I have two DOFs: A/B on the first site, and C/D on the second site. I can init a project with this, run casm enum --max 1 -s ; casm enum -a -c and get 4 configs in SCEL1:

  • A C
  • A D
  • B C
  • B D

This seems reasonable and perfectly well behaved. Now, instead, I have Good Reasons to want to put two sites literally on top of each other. I have the following prim:

{
  "basis" : [
    {
      "coordinate" : [ 0.000000000000, 0.000000000000, 0.000000000000 ],
      "occupant_dof" : [ "A", "B" ]
    },
    {
      "coordinate" : [ 0.000000000000, 0.000000000000, 0.000000000000 ],
      "occupant_dof" : [ "C", "D" ]
    }
  ],
  "coordinate_mode" : "Fractional",
  "description" : "FooBar",
  "lattice_vectors" : [
    [ 0.000000000000, 1.000000000000, 1.000000000000 ],
    [ 1.000000000000, 0.000000000000, 1.000000000000 ],
    [ 1.000000000000, 1.000000000000, 0.000000000000 ]
  ],
  "title" : "ABCD"
}

Problems begin with casm init. CASM complains that the structure in prim.json is not primitive, and prints me a prim.true.json. However, this prim is identical to prim.json, line-for-line. Copying this new prim.true.json to prim.json and re-running casm init produces the same error.

OK, I run casm init -f now to move on. And CASM chugs along! Now I run casm enum --max 1 -s ; casm enum -a -c and get 3 configs in SCEL1:

  • A C
  • B C
  • B D

Weird, where did A D go? I create the following POS:

SCEL1_1_1_1_0_0_0/3
1.00000000
                       0.00000000       1.00000000       1.00000000
                       1.00000000       0.00000000       1.00000000
                       1.00000000       1.00000000       0.00000000
A D 
1 1 
Direct
               0.0000000    0.0000000    0.0000000 A
               0.0000000    0.0000000    0.0000000 D

And run casm import -p POS. CASM returns:

Beginning import of 1 configuration...

"/home/liz/prim_tests/ABCD_3/POS"
mapped onto pre-existing equivalent structure SCEL1_1_1_1_0_0_0/1

Relaxation stats -> lattice_deformation = 0 basis_deformation = 0

That's not right! SCEL1/1 is B C, not A D! For some reason, CASM thinks these two are the same!

What went wrong here? I know I'm doing something "really weird" putting two DOFs on top of each other, but its still a scary failure mode.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.