Releases: prisms-center/CASMcode_clexmonte
Releases · prisms-center/CASMcode_clexmonte
v2.3.0
[2.3.0] - 2025-09-05
Changed
- Changed clexmonte::make_prim_event_list to include an option to convert OccPosition in OccEvent that are defined in terms of molecule positions to OccPosition defined as atom positions. In the "kinetic" MonteCalculator OccEvent must be defined in terms of atom positions to properly collect the number of jumps of each atom. The new option is used when constructing the prim_event_list for the CompleteKineticEventData and AllowedKineticEventData so that OccEvent used in the System definition can be defined with either type of OccPosition (if single atom molecules).
v2.2.0
v2.1.0
v2.0.0
v2.0a6
v2.0a5
[2.0a5] - 2024-02-11
Added
- Added
verboseargument toSystem.from_dictto print messages during parsing. - Added
System.basis_set_name,System.local_basis_set_name,System.prototype_event, andlibcasm.clexmonte.make_system_event_infoto get event info and support LocalConfiguration construction from SelectedEvent info. - Added
SelectedEvent.to_dictandSelectedEvent.__repr__methods. - Added
MonteCalculator.event_infoattribute to store shared event info used for constructing and transforming LocalConfiguration. - Added
MonteCalculator.make_local_configurationto construct a LocalConfiguration from the current calculator state and current SelectedEvent. - Added
EventStateCalculatorandMonteEventData.set_custom_event_state_calculation - Added
"print_event_data_summary"MonteCalculator parameter to select whether to print the event data summary. - Added
libcasm.clexmonte.site_iteratorsto use help use OccLocation more easily. - Added options for handling abnormal events (events with no energy barrier between the initial and final states). This includes the
"abnormal_event_handling"option and sub-options for the MonteCalculator constructorparamsargument, custom abnormal event handling functions for both encountered (calculated events that may not be selected) and selected events, writing and reading local configurations and event data for abnormal events (MonteCalculator.read_abnormal_events). - Added a random number engine to MonteCalculator, to enable control of the random number generator used by the
"enforce.composition"method inmake_canonical_initial_state, and to use as the default forMonteCalculator.run_fixtureif no engine is given explicitly. The MonteCalculator engine is replaced by therun_managerengine whenMonteCalculator.runis called. - Added
libcasm.clexmonte.misc.contextsto include a working directory context manager.
Changed
- Changed MonteCalculator to a Python class that inherits from a C++ class, allowing for more flexibility in the Python interface.
- Moved
libcasm.clexmonte.print_selected_event_functionstoMonteCalculator.print_selected_event_functions. - Changed
PrimEventData.sitestype toSiteVector - Changed
PrimEventData.occ_initandPrimEventData.occ_finaltype toIntVector - Changed
EventStateattributes fromreadonlytoreadwrite. - Changed
"kinetic"MonteCalculator to not print the event data summary by default - Enable surpressing "kinetic" MonteCalculator output by reducing verbosity to "quiet".
Fixed
- Fix for unuseful error messages when
System.from_dictfailed to load a local basis set. - Fixed setting
beginparameter inSamplingFixtureParams.sample_by_Xfunctions.
v2.0a4
[2.0a4] - 2024-12-17
Fixed
- Fixed a bug that gave the wrong change in potential energy during semi-grand canonical Monte Carlo simulations. The bug was introduced in v2.0a3 only and is fixed in v2.0a4.
- Fixed parsing of other files listed in an input file, such as a coefficients file listed in a System input file. Now, errors and warnings for the file being parsed are properly shown.
v2.0a3
[2.0a3] - 2024-12-12
Added
- Added "kinetic" MonteCalculator method for kinetic Monte Carlo simulations.
- Added setters to SamplingFixtureParams for setting sub-object parameters to make it easier to set parameters in a single line.
- Added selected event data sampling for KMC simulations.
- Added CASM::clexmonte::AllowedEventList and related classes so that all possible events do not need to be added to the KMC event selector.
- Added CASM::clexmonte::EventDataSummary and libcasm.clexmonte.MonteEventDataSummary to summarize event data for KMC simulations.
- Optional "neighborlist" or "relative" impact table types.
Changed
- The AllowedEventList method is made the default for the "kinetic" MonteCalculator method. The event data type can be selected using the
paramsargument to the MonteCalculator constructor. - Changed the enforce_composition method to avoid unnecessarily re-calcuating the composition at each step.
v2.0a2
v2.0a1
[2.0a1] - 2024-07-17
This release creates the libcasm-clexmonte cluster expansion based Monte Carlo module. It includes:
- Canonical, semi-grand canonical, and kinetic Monte Carlo calculators
- Support for customizing potentials, including linear, quadratic, and correlation-matching terms
- Metropolis and N-fold way implementations
- Support for customizing sampling and analysis functions
The distribution package libcasm-clexmonte contains a Python package (libcasm.clexmonte) that provides an interface to Monte Carlo simulation methods implemented in C++. The libcasm.clexmonte.MonteCalculator class currently provides access to simulations in the canonical and semi-grand canonical ensemble and will be expanded in the next releases to include additional methods.
This package may be installed via pip install, using scikit-build, CMake, and pybind11. This release also includes usage examples and API documentation, built using Sphinx.