This repository contains the code and published model accompanying ConSolv: Solvent-Conditional Machine Learning Implicit Solvent Potential by Linying Zhang and Julija Zavadlav.
ConSolv is a solvent-conditional machine-learning implicit-solvent potential. It uses an attention-based solvent embedding and was developed using experimental solvation free energies together with ab initio training data.
.
├── dataset/
│ ├── descriptor.csv # solvent descriptors used by the model
│ ├── descriptor.py # descriptor utilities
│ └── solvatum/ # Solv@TUM data interface (Git submodule)
├── examples/SFE/
│ ├── train/ # vacuum and solvent-model training workflows
│ ├── evaluation/ # molecule and solvation free-energy evaluation
│ ├── output/
│ │ ├── vacuum/ # published vacuum parameters
│ │ └── solvent/ # published ConSolv parameters
│ └── postprocess/ # postprocessing and benchmark helpers
└── external/
├── chemtrain/ # molecular-simulation and training utilities
└── chemutils/ # datasets and model implementations
Clone the repository together with the Solv@TUM submodule:
git clone --recurse-submodules <repository-url>
cd <repository-directory>For an existing clone, initialize the submodule with:
git submodule update --init --recursiveUse Python 3.10 or newer and install the local packages and their dependencies in a compatible JAX environment:
conda env create -f environment.yml
conda activate supramolThe evaluation scripts resolve model files relative to the repository, so they do not depend on the shell's working directory:
examples/SFE/output/vacuum/best_params_1.pklcontains the published vacuum model parameters.examples/SFE/output/solvent/final_params.pklandfull_init_params.pklcontain the published solvent-model parameters.
The complete large model outputs, saved evaluation results, and trajectory setup/data files are archived on Zenodo.
Training and evaluation
entry points are under examples/SFE/train and examples/SFE/evaluation.
Inspect an entry point's options before running it, for example:
JAX_PLATFORMS=cpu CUDA_VISIBLE_DEVICES=-1 \
python examples/SFE/evaluation/evaluate_resolv_con_add.py --helpSee examples/SFE/readme.md for the workflow outline.
If you use this code, please cite:
@article{zhang2026consolv,
title = {ConSolv: Solvent-Conditional Machine Learning Implicit Solvent Potential},
author = {Zhang, Linying and Zavadlav, Julija},
journal = {arXiv preprint arXiv:2606.24983},
year = {2026}
}