Skip to content

Releases: prisms-center/CASMcode

v0.2.1

14 Apr 02:02
Compare
Choose a tag to compare

CASM v0.2.1 includes a number of changes and bug fixes from the Van der Ven group repository. As it involves a number of changes, it would be wise to create a backup of existing project data before operating on them with the new version, but it should be able to work with existing CASM projects without major issue.

Major changes include:

  • Bug fix in the niggli cell standard orientation function. The standard orientation niggli cell could be "forgotten" if it was the first niggli cell found. This means it is possible existing CASM projects might have non-canonical supercells, and even potentially have duplicate supercells, though we don't know of an example of this. A warning is printed if any non-canonical supercells like this are found, and any calculations in those supercells should be re-imported using casm import, and then the the non-canonical supercells can be removed via casm rm. For example:
    casm files --settings 'all' --calc 'status' | grep '$NONCANONICAL_SCELNAME' | grep 'properties.calc.json' > batch 
    casm import --batch batch -d --copy-additional-files --min-energy
    # after checking everything was re-imported successfully, remove -n (--dry-run):
    casm rm --scelnames $NONCANONICAL_SCELNAME -fn
    
  • Optional GNU autotools install
  • SeqQuest wrapper
  • Use any casm query operation to make observations during Monte Carlo calculations
  • casm enum plugins:
    • Write custom Configuration enumerators, place them in .casm/enumerators, and they can be automatically compiled and used from casm enum
    • With this change, the casm enum input options have changed
    • Some documentation exists in the Doxygen docs Container/Enumerators module
    • For some examples, see:
      • tests/unit/App/TestEnum.hh and tests/unit/App/TestEnum.cc
      • include/casm/clex/ConfigEnumAllOccupations.hh and related implementation
      • `include/casm/clex/ScelEnum.hh' and related implementation
  • casm query plugins:
    • Write custom casm query functions, place them in .casm/query/Configuration, and they can then by used via casm select, casm query, and to make observations during casm monte.
    • The easiest way is to write a function that returns a GenericConfigFormatter<ValueType> object. A GenericConfigFormatter is constructed with the function of signature ValueType f(const Configuration& config) which is evaluated when the query is called.
      • See tests/unit/App/TestConfigName.hh and tests/unit/App/TestConfigName.cc for an example
  • casm rm to erase calculated Configuration data or entire Supercells (including assocated Configurations and data)
  • casm import --copy-additional-files option to copy other calculation files into the CASM training_data directory along with imported POSCAR or properties.calc.json files
  • Python tools for plotting CASM data using bokeh. See notes below.

Plotting:
The casm.plotting Python module has been cleaned up and example scripts and input files included demonstrating how to generate plots of project data. Includes a hull plot, scatter plot, "rank" plot, and histogram via the scripts casm.plot.hull, casm.plot.scatter, casm.plot.rankplot, casm.plot.hist. Also a casm.plot.layout script that allows generating multiple at the same time. The plotting uses the Python bokeh library which provides a server that serves the plots to a web page, making them interactive.

  • Before running a casm.plot.X script you must start the bokeh server via bokeh serve on the command line.
  • If you have casm view set up, you can click on a configuration in a plot and launch a visualization of the unrelaxed configuration.
  • Using casm.plot.layout data is linked between plots so as you hover over a data point in one plot the same configuration is highlighted in other plots.
  • "Tooltips", additional data shown about each configuration when your mouse hovers over it, can be customized.
  • Colors, markers, etc. can be customized via the input files.
  • You can easily zoom, pan, select, etc.

Some examples:

Histogram of basis deformation, indicating how many configurations in each bin are selected / unselected:
image

Convex hull:
image

Rank plot, using a custom Python function for "scoring" configurations to rank them.
image

Layout with scatter plots, highlighting configurations linked between plots:
image

v0.2.0

14 Aug 19:33
Compare
Choose a tag to compare

This release of CASM includes:

  • 'casm-learn', a Python program which uses scikit-learn and deap to fit effective cluster interactions (ECI).
  • Semi-Grand canonical Monte Carlo calculations
  • general bug fixes and documentation improvements

v0.1.0

21 Sep 03:03
Compare
Choose a tag to compare

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.
  • High-throughput calculations using: