Updates
Check your installed version¶
When importing simmate and establishing a connection to the database, a warning message will be displayed if your version is not the most recent one. You can also verify this via the command-line:
simmate version
Upgrading to the Latest Version¶
We strongly advise installing simmate in a fresh conda environment instead of updating it within your current environment:
conda create -n my_env -c conda-forge python=3.11 simmate
Ensure that the expected version is installed:
simmate version
Update your database to be compatible with the new installation:
simmate database update
Warning
The command simmate database update is only effective from v0.15.0 onwards. Earlier versions of simmate necessitate a complete database reset when updating versions. So, if your original database version is v0.14.0 or earlier, you must run simmate database reset.
Understanding Version Numbers¶
Our releases follow semantic versioning. This implies that versions (e.g., v1.2.3) correspond to MAJOR.MINOR.PATCH. Each version number increases following these changes:
MAJOR= incompatible API changesMINOR= addition of new functionality (without API changes)PATCH= bug fixes and documentation updates (without API changes)
There is one significant exception to the above rules -- MAJOR=0 releases. Any v0.x.y release is considered developmental, where APIs are subject to change and are not deemed stable.
Upcoming Release¶
Tip
To view ongoing changes that haven't been finalized or merged yet, check our active pull-requests on GitHub
Enhancements
- added frontend framework and docs, based off of a fork of
django-unicorn - added custom API token generation and auth backend
- added
CSVdownload button on theDataweb views - added
api_viewdecorator for basic REST endpoints - added
file_uploadweb component - added export of SDF metadata
- added
foriegn_key_linkutil - added
tagssupport in dynamic components - added html table and entry context hooks
- added
loading_spinnertag for unicorn components - added
plotly_figurefilter tag for rendering plots - added
reportfeatures to database tables and data_explorer views - added
StatusTrackingmodel todatabase.base_data_types - added
is_dueteratedmethods toMolecule - added web scrape of news archive for
apps.bcpc - added
apps.ppdb - added dev apps
chatbotandanalysis_dashboard - added
database.external_connectorsutils - added proof of concept htmx app for frontend forms
- added
toolkit.datastoresandtoolkit.dataframeshelper modules - added molecular and poc apps to the list of df
- allow conditional postgres-rdkit extension with settings flag
- added
startup_methodhook to simmate workers
Refactors
- refactored website's workflow tab to use new API backend
- removed
django-contrib-comments,django-crispy-forms,dj-database-url,django-filter, anddjangorestframeworkdependencies - update
breadcrumbstag to include deprecbreadcrumb_active - workflows results in the web ui now exists within the Data tab. The workflow tab has been limited to submission, docs, and analytics
DynamicApiViewwas split up into separate views for easier debugging and future enhancementswebsite.engineapps and others are condensed intocore_components,data_explorer, andworkflowsapps- refactored
toolkit.featurizersmodule - moved all of
simmate.enginemodule intosimmate.workflows
Fixes
- fix Data tab in website view failing to load due to molecule template
- fix workflow names that have captial letters next to eachother (e.g,
LogDWorkflow-->log-d-workflow) - fix
parse_multiselectutil when nested in acreate_manyform - fix
unicorn.loadingactivity whenUnicorn.call()js is called - fix
to_sdfexport
v0.18.0 (2025.04.20)¶
Enhancements
- added a molecular toolkit, which is a wrapper around
rdkitthat cleans up the python api - updated Data web pages and UI to be more user friendly
- added frontend framework for building dynamic web forms/pages
- enabled data management from web ui -- allowing users to create and update a dataset from the ui
- added chemdraw support and beta apps for molecular datasets (eMolecules, Enamine, Chemspace, etc)
- added Quantum Espresso support
- added rdkit-postgres cartridge support
- large updates to the
BadELFapp to support materials with covalent and metallic character
Refactors
django_unicorndependency was forked and refactored into a custom interal version- REST APIs for data views no longer use
django_rest_framework - add the
simmate.apps.devmodule for early-stage, experimental apps - the
database.third_partiesmodule is now moved into individual apps:materials_project,jarvis,aflow, andoqmd
Fixes
- many misc fixes to the website UI and settings config
v0.17.0 (2024.05.20)¶
Enhancements
- add api authentication via tokens for private Simmate servers
- add tips for docker installations & permissions
- allow custom django apps to be added to
INSTALLED_APPSviaextra_django_apps - allow override of django settings via
django_settings - add several web UI components (e.g. select2 elements for forms)
- add "Table Info" page and utils for dynamically building database docs
badelfapp was reworked and now usespybaderfor its core engine
Refactors
- update docs for creating new Simmate apps with URLs
Fixes
- fix
show_columnsbug when there are relations to basic django models (likeUser) - catch incorrect use of
simmate database resetwhen using the maintenance database - fix typo in setting email env vars
v0.16.0 (2024.01.27)¶
Enhancements
- added
dotdictutility for easy dot-access with nested dictionary objects - all settings can be added via environment variables for cloud-based deployments
- add
@workflowdecorator for easily creating basic workflows - add
_incar_updatestoVaspWorkflows for cleaner inheritance & syntax - add Docker builds for Quantum Espresso to help new users
- add Docker builds for Bader to help new users
- add
simmate configcommand to help inspect and update settings
Refactors
- Fully reimplemented how all settings are loaded
- Revised all documentation and tutorials
Fixes
- fix bug where user-provided
commandparameter is not properly loaded
0.16.1 (2024.01.28)
- fix bugs for Docker-QE runs
- fix typos in Getting Started tutorials
v0.15.0 (2024.01.04)¶
Enhancements
- Allow custom html templates and static files that override those shipped by default
- add
simmate enginecommands likestats-detailandworkitemsthat show details of workitems in the database - updated third-party archives (Materials Project, COD, JARVIS, OQMD)
- eased database updates between simmate versions by using django migrations
- added
bypass_nonesutility to help handle imperfect datasets where not all entries have a column - misc updates to the website interface, especially to the
data explorerpages - add Microsoft allauth support to sign in use external account
- allow "login required" access to server via evironment variables (disabled by default)
- allow "internal only" access to server via evironment variables (disabled by default)
- add
django-simple-historysupport to track user changes on specific models - add
@check_db_conndecorator to help with database connection closures/timeouts - add
simmate engine start-scheduleswhich let's you configure periodic tasks for individual apps (e.g. check a table for updates every 5 minutes). Includes error handling and email alerts. (Note: this a quick alternative to full Prefect system) - add warren_lab app with Warren Lab preferred VASP settings
- add badelf app with class oriented tools for performing BadELF analyses
- add basic quantum espresso support
Refactors
- remove mamba support now that libmamba is default conda solver
- switch CI from mamba back to conda
Fixes
- fix bug where workers incorrectly grab substring tag matches (e.g. a worker submited with the tag
exwould incorrectly grab jobs likeex-01orex-02)
0.15.1 (2024.01.11)
- refactor & fix bugs for
warren_labandbadelfapps
v0.14.0 (2023.07.06)¶
Enhancements
- add
django-unicornto deps to enable dynamic fullstack web UIs - add ChemDoodle js/css to website headers for use elsewhere
- add "Example Scripts" section to doc website with several new scripts
- many updates to the web UI to accomodate molecular datasets and workflows
- add
simmate enginecommands to help with tags and different queues - add docs to help with simmate workers, clusters, and tagging
- add
simmate-vaspcommand for common VASP utilities like testing config, plotting, and prepping inputs - add utilities to chunk larger than memory datafiles (csv, sdf, cifs, etc.)
Refactors
- VASP potcar references to "element mappings" is now standarized to "potcar mappings"
- refactor docs with new "Apps" section
- full refactor of
simmate enginecommands. many have been shortened/renamed - restrategized workflows that use output files from others. The
copy_previous_directoryinput parameter has been removed and replaced with workflow attributes likeuse_previous_directoryandhas_prerequisite, combined with an optionalprevious_directoryparameter.
Fixes
- fix bug where hyphens aren't allowed in the database name
- fix guide for DO database setup
- fix incorrect evolutionary search imports
- hide pymatgen POTCAR warnings
- fix github CI bug for MacOS being unstable
- fix bug for zombie jobs causing evolutionary search to hang
- fix premature triggering of frozen error
v0.13.0 (2023.03.06)¶
Enhancements
- add
relax_bulkandrelax_endpointsparameters to optionally turn off pre-relaxations in NEB - add CLEASE app for cluster expanison calculations (these workflows are highly experimental at the moment - so use with caution)
- update "bad-elf" workflow to accept an empty-atom template structure or a list of empty sites
- add python 3.11 support
simmate database resetnow supports Postgres (requires admin user)- docker images are now published to DockerHub and Github packages
Refactors
calculatorsmodule is now theappsmodule and terminology is changed throughout the repo- many dependencies are reworked to optional dependencies as all
appsare now optional workflow_enginemodule has been renamed toengineto help shorten commands and import lines- rework CI to use mamba instead of conda
- pull out dependencies for some apps that are now optional
- reorganize
Incarclass and move some functionality to generalutilities - NEB module is reorganized to help with building custom sets
Fixes
- fix site ordering in NEB supercell structures
- improve installation speed and guide users to conda alternatives like mamba
- clean up docs and fix several links
- apps are now registered to the web UI
Warning
The refactoring of simmate "apps" led to many breaking changes in the python API.
We strongly recommend clearing your ~/simmate/ directory, especially the
my_env-apps.yaml file because app names have changed.
0.13.1 (2023.03.11)
- recover from
connection already closederrors after long workflow runs - fix bug where
simmate database resetfails when there is no databasepostgresavailable - update django regression of
django.db.backends.postgresql_psycopg2todjango.db.backends.postgresql - fix bug where simmate cannot read vasp results due atypical number (e.g. -0.33328-312)
- fix bug where postgres cannot json serialize bs or dos results (int64 numbers)
- fix incorrect pointing of VASP potcars in matproj presets
- from
from_directorymethod of theRelaxationdatabase class - fix HSE bandstructure and DOS kpoint file writing
0.13.2 (2023.03.20)
- fix pickling error for
workflow.run_cloudcommand simmate.website.third_partiesmodule is now thedata_explorermodule. With this, you can now specify custom database tables to appear in the "Data" section for the web UI
v0.12.0 (2022.10.23)¶
Enhancements
- add structure creators for
ASE,GASP,PyXtal,AIRSS,CALYPSO,USPEX, andXtalOptas well as documentation for creators. - add
simmate versioncommand - changelog and update guide added to documentation website
- add
show-stats,delete-finished, anddelete-allcommands toworkflow-engine - add
Clusterbase class + commands that allow submitting a steady-state cluster via subprocesses or slurm - add
started_at,created_at,total_time, andqueue_timecolumns toCalculationtables - add
exlcude_from_archivesfield to workflows to optionally delete files when compressing outputs to zip archives - various improvements added for evolutionary search workflows, such as parameter optimization, new output files, and website views
- add
Fingerprintdatabase table and integrate it withFingerprintvalidator - support >2 element hull diargrams and complex chemical systems
Refactors
- optimize
get_seriesmethod ofrelaxation.vasp.staged - reorganize
selectorsmodule for evolutionary structure prediction
Fixes
- fix dynamic loading of toolkit structures from third-party databases
- fix race condition with workers and empty queues
- increases default query rate for
state.result()to lessen database load
v0.11.0 (2022.09.10)¶
Enhancements
- REST API fields can now be specified directly with the
api_filtersattribute of anyDatabaseTableclass & fields from mix-ins are automatically added - add
archive_fieldsattribute that sets the "raw data" for the database table & fields from mix-ins are automatically added - accept
TOMLinput files in addition toYAML - convergence plots and extras are now written for many workflow types (such as relaxations)
- when
use_database=True, output files are automatically written and the workup method is directly paired with the database table. - NEB workflow now accepts parameters to tune how distinct pathways are determined, including the max pathway length and cutoffs at 1D percolation.
- add
MatplotlibFigureandPlotlyFigureclasses to help with writing output files and also implementing these figures in the website UI - update website to include workflow calculator types and add API links
- custom projects and database tables are now registered with Simmate and a intro guide has been added
- continued updates for
structure-predictionworkflows - add inspection of methods for default input values and display them in metadata
Refactors
- the
website.core_components.filtersmodule has been absorbed into theDatabaseTableclass/module - yaml input for custom workflows now matches the python input format
- workup methods are largely depreciated and now database entries are returned when a workflow has
use_database=True - several NEB input parameters have been renamed to accurate depict their meaning.
- customized workflow runs now save in the original database table under the "-custom" workflow name
structure_stringcolumn renamed tostructureto simplify api logic- clean up
toolkit.validatorsmodule and establish fingerprint base class calculatorsandworkflowsmodules are now based on simmate apps
Fixes
- fix bug in windows dev env where
simmate run-serverfails to find python path - fix bug in
workflows explorecommand where 'vasp' is the assumed calculator name - fix broken example code in custom workflow docs
- fix broken website links and workflow views
0.11.1 (2022.09.12)
- fix transaction error with workers on a PostGres backend
v0.10.0 (2022.08.29)¶
Enhancements
- add NEB base classes to inherit from for making new subflows
- improve formatting of logging and cli using
typerandrich - cli now supports auto-completion to help with long commands
- add
convergence_limitparameter to evolutionary search that works alongsidelimit_best_survival. This will absorb minor changes in energy with equivalent structures from prolonging the search. - add
ExtremeSymmetrytransformation to attempt symmetry reduction on disordered structure - account for structures in
fixed-compositionhaving fewer nsites than input becuase of symmetry reduction during relaxation. Also, addmin_structures_exactparameter to ensure we have at least N structures with the expected number of sites - add experimental
variable-composition(variable refers to nsites, not stoichiometry) andbinary-compositionevolutionary searches - allow custom workflows to run from yaml
- update MatProj data to new api, and add severl new columns for data (e.g. mag + band gap)
Refactors
- isolate optional dependencies so that our install is smaller
- remove click in favor of higher-level package (typer)
pre_standardize_structureandpre_sanitize_structurefunctionality is now merged in to astandardize_structureparameter that accepts different mode.symmetry_toleranceandangle_toleranceparameters can also modify the symmetry analysis done.- metadata files are now numbered to allow multiple metadata files in the same directory
- refactor & clean up transformation module for readability
- remove
SimmateFutureclass and merge functionality intoWorkItem - switch from pdoc to mkdocs for documentation and remove
get_doc_from_readme. Code and doc organization are now decoupled. - rename run commands based on user preference. the
runis nowrun-quick.run-yamlis nowrun.run-cloudnow assumes a yaml input. - remove
tqdmdependency in favor ofrich.progress - refactor transformations to static methods
Fixes
- fix
module not founderror by adding ASE to dependencies - fix bug with postgres database trying to delete sqlite locally
- fix dask throwing errors with logging
- fix bug where
fixed-compositionsearches fail to detect individuals that have been symmetrically reduced (and therefore have fewer nsites than expected) - fix evolutionary search failures when writing output files while files are opened/locked
- fix NEB workflows failing due to Walltime handler
- fix NEB workflows hints for
workupfailure due to missing start/end image folders
v0.9.0 (2022.08.17)¶
Enhancements
- improve the warning associated with workflow failure because of "command not found" issues
- workers now ignore and reset tasks that fail with "command not found". 2 workers failing with this error will result in the WorkItem being canceled
RandomWySitescan now generate wyckoff combinations lazily (or up front) depending on use case- add
simmate utilitiescommand group witharchive-old-runs - add
start-clustercommand for starting many local workers - add
structure-predictionworkflows - add plotting/output utilities to
EvolutionarySearchandrelaxation.vasp.staged
Refactors
- evolutionary search now delay creations, transformations, and validation until runtime (used to be at time of structure submission)
directory,compress_ouput, andrun_idare now default input parameters for subclasses ofWorkflow. If these are unused, therun_configmust include**kwargs- add
isortfor organizing module imports throughout package
Fixes
- fixed when
sourceis not being registered by several workflows - fix docker image for installing anaconda, blender, and simmate on ubuntu
v0.8.0 (2022.08.11)¶
Enhancements
- NEB workflows now accept parameters for changing supercell size and number of images used
- add HSE workflows for static energy, relaxation, and DOS/BS electronic states
- add NPT and MatProj molecular dynamics workflows
- add SCAN workflows for static energy and relaxation
- test files can be provided within zip files, fixing excessive line counts on git commits
- add simmate worker that can run "out-of-box" and requires no set up
- add logging for useful debugging and monitoring of workflows
- pinned dependencies to maximum versions and manage with dependabot
Refactors
- to simplify the creation of new workflows,
S3Taskis nowS3Workflowand database tables are dynamically determined using the workflow name - workflows of a given type (e.g. relaxation or static-energy) now share database tables in order to simplify overall database architecture
- migrate from
os.pathtopathlib.Paththroughout package - isolate prefect use to separate executors
- updated tutorials for new workflow engine and workers
- remove use of
setup.pyin favor ofpyproject.toml
v0.7.0 (2022.07.19)¶
Enhancements
- add guide for installing VASP v5 to Ubuntu v22.04 (@scott-materials, #183)
- add
simmate database load-remote-archivescommand andload_remote_archivesutility that populates all tables fromdatabase.third_parties - add
load_default_sqlite3_buildutility that downloads a pre-built database with all third-party data present. This is an alternative to callingload_all_remote_archivesif you are using sqlite3 and saves a significant amount of time for users. - standardize workflow naming. Note this breaks from python naming conventions for classes (#150)
- dynamically determine
register_kwargsand rename property toparameters_to_register - add full-run unittests that call workflows and vasp (without emulation)
- add walltime error handler that properly shuts down calculations when a SLURM job is about to expire
- add option to restart workflows from a checkpoint
- automatically build api documentation using github actions
Refactors
- refactor
start-workercommand to use prefect instead of the experimental django executor - remove experimental
workflow_engine.executor - move contents of
configuration.django.databasetodatabase.utilities - upgraded to Prefect v2 ("Orion"). This involved the refactoring the entire
workflow_enginemodule, and therefore the entire workflow library. (#185).
0.7.1 (2022.07.19)
- fix incorrect handling of prefect v2 futures by workflows
0.7.2 (2022.08.03)
- fix missing SVG files for web UI (#196).
0.7.3 (2022.08.04)
- fix incorrect passing of
sourcein NEB all-paths workflow causing it to fail
v0.6.0 (2022.06.25)¶
Enhancements
- add
AflowPrototypesto thedatabase.third_partiesmodule (only includes data distributed through pymatgen) - add new modules to
toolkit.structure_predictionandtoolkit.creation, including ones to provideknown,substitution, andprototypebased structures. - add
created_atandupdated_atcolumns to all database tables - check if there is a newer version of Simmate available and let the user know about the update
- add experimental
badelfworkflow for determining electride character - add
electronic-structureworkflow which carries out both DOS and BS calculations - add
database_objattribute to thetoolkit.Structurebase class that is dynamically set
Refactors
- standardize
database_tableattribute for workflows by mergingcalculation_tableandresult_tableattributes (#102) - removed use of
-s,-c, and-dshortcuts from theworkflowscommands - refactor
relaxation/stagedworkflow to run in single parent directory - refactor evolutionary search algorithm (alpha feature)
- condense where parsing/deserialization of workflow parameters occurs to the refactored the
load_input_and_registertask. Originally, this would occur in multiple places (e.g. in the CLI module before submission, in the workflow run_cloud method, in the LoadInputAndRegister task, etc.) and involved boilerplate code. (#173) - refactor experimental features
register_kwargsandcustomizedworkflows - refactor
LoadInputAndRegisterandSaveOutputTasktoload_input_and_registerandsave_result
Fixes
- fix import for
visualization.structure.blendermodule (@bocklund, #180) - fix bug where
commandordirectoryimproperly passesNonewhen they are not set in thesimmate workflows runcommand - fix bug where
update_all_stabilitiesgrabs incomplete calculations (#177) - fix bug where SCF calculation is not completed before the non-SCF DOS or BS calculation and causes the workflows to fail (#171)
- fix bug for Bader workflow by registering the prebader workflow (#174)
- fix bug where
sourceis not determined with yaml-file submissions (#172)
v0.5.0 (2022.05.30)¶
- update CI to test all OSs and pin pytest<7.1 as temporary fix for #162
- fix spelling typos in
keyword_modifiers(@laurenmm, #165) - users can now apply their own unique keyword modifiers to Incars -- such as how we allow "__per_atom" or "__smart_ismear" tags on Incar settings. This change involved refactoring how
keyword_modifiersare implemented for thevasp.inputs.Incarclass. Rather than static methods attached to the base class, modifiers are now dynamically applied using theadd_keyword_modifierclassmethod. - large update of
calculators.vasp.tasksmodule where many new presets are reimplemented frompymatgen.io.vasp.sets. This includes robust unit testing to confirm that generated inputs match between simmate and pymatgen (see #157 for a list of presets) - catch error with vasp freezing when
Brmixhandler switches to kerker mixing (@becca9835, #159)
v0.4.0 (2022.04.24)¶
- add
description_doc_short+show_parametersto workflows and use these to update the UI - add django-allauth dependency for account management and google/github sign-ins
- archive directory as
simmate_attempt_01.zipwhenever an error handler is triggered - depreciate the workflow parameter
use_prev_directoryin favor ofcopy_previous_directory
v0.3.0 (2022.04.19)¶
- add highly customizable VASP workflow
- add Bader analysis and ELF workflows
- update module readmes to warn of experimental features
- reorganize
toolkitmodule
v0.2.0 (2022.04.15)¶
- start the CHANGELOG!
- refactor API views and add
SimmateAPIViewSetclass - refactor
simmate start-projectcommand and underlying methods - refactor
simmate workflow-engine run-clustercommand and underlying methods - continue outlining
file_convertersmodule
v0.1.4 (2022.04.12)¶
- web interface styling
- minor bug fixes
v0.0.0 (2022.03.28)¶
- initial release
- adding tests and docs