Releases: prisms-center/CASMcode
v0.2.1
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 viacasm 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 fromcasm 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
andtests/unit/App/TestEnum.cc
include/casm/clex/ConfigEnumAllOccupations.hh
and related implementation- `include/casm/clex/ScelEnum.hh' and related implementation
- Write custom Configuration enumerators, place them in
casm query
plugins:- Write custom
casm query
functions, place them in.casm/query/Configuration
, and they can then by used viacasm select
,casm query
, and to make observations duringcasm monte
. - The easiest way is to write a function that returns a
GenericConfigFormatter<ValueType>
object. AGenericConfigFormatter
is constructed with the function of signatureValueType f(const Configuration& config)
which is evaluated when the query is called.- See
tests/unit/App/TestConfigName.hh
andtests/unit/App/TestConfigName.cc
for an example
- See
- Write custom
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 viabokeh 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:
Rank plot, using a custom Python function for "scoring" configurations to rank them.
Layout with scatter plots, highlighting configurations linked between plots:
v0.2.0
v0.1.0
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:
- VASP: https://www.vasp.at