Software Open Access
Pospiech, Solveig;
Gericke, Robert
<?xml version='1.0' encoding='utf-8'?>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:creator>Pospiech, Solveig</dc:creator>
<dc:creator>Gericke, Robert</dc:creator>
<dc:date>2026-06-25</dc:date>
<dc:description># SplitFit
**Version:** This version of SplitFit was published as used to calculate the values for the publication of
Till Sawallisch, Dennis Grödler, Adrian Näder, Clara L. Silva, Peter Kaden, Michael Patzschke, Lucia Amidani, Kristina O. Kvashnina, Solveig Pospiech, Jan van Leusen, Moritz Schmidt, Thorsten Stumpf and Robert Gericke, Hexa-Coordinate Actinide(IV) Compounds: Benchmark Complexes for Magnetism and Electronic Structure Analysis, 2026.
## Introduction
SplitFit is a Python package for parameter fitting in quantum chemical calculations, specifically designed to optimize fitting of ligand field parameters obtained from CONDON 3. The package uses a combination of Quasi-Monte Carlo (method Sobol) sampling and iterative refinement to find optimal parameter combinations that minimize the difference between calculated and experimental energy levels.
The core workflow involves:
1. Running quantum chemistry calculations via CONDON 3
2. Sampling parameter space using low-discrepancy Sobol sequences
3. Iteratively refining parameter ranges based on best-matching results
## Sampling Methods - Quasi-Monte Carlo (Sobol Sequences)
SplitFit uses **Sobol sequences** as the primary sampling method for exploring the parameter space. Sobol sequences are a type of **low-discrepancy sequence** that provides more uniform coverage of the parameter space compared to pseudo-random sampling.
## Input File Format
The input file (`input.txt`) uses a simple text-based format with sections separated by `--end--` markers. Lines starting with `#` are treated as comments.
### Example `input.txt`
```text
FITINPUT
size_sampling: 8100
fit_loops: 10
fit_ratio: 0.7
fit_threshold: 10
--end--
# here are some comments
BKQ
Bkq, lower_limit, upper_limit
B20, 2480, 2884
B40, 4558, 5507
B44, 3214, 3814
B60, 6806, 8173
B64, -8665, -7851
--end--
ENERGYLEVEL
0.00
676.56
988.76
1138.46
1345.10
1569.05
2413.42
2548.75
2630.14
--end--
```
## Configuration
### Config File (`config.yaml`)
```yaml
paths:
input_data: "data/input.txt" # Path to your input.txt file
condon_files: "data/" # Directory containing Condon files and QMC schemes
```
## Output Files
After running, the following files are generated in the `condon_files` directory:
| File | Description |
|------|-------------|
| `BXX_output_XX_orig.dat` | All results from iteration XX (unsorted) |
| `BXX_output_XX.dat` | Sorted results for iteration XX (top % only) |
| `bkq_summary_XX.csv` | Summary statistics with refined parameter ranges for next iteration |
## Workflow Diagram
```
┌─────────────────────────────────────────────────────────────┐
│ Configuration Load │
│ (config.yaml → paths_from_config) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Input File Parsing │
│ (input.txt → fitinput, BKQ_ranges, energylevels) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Initial Condon Run │
│ (Generate fort.* files) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ QMC Sampling Setup │
│ (Load Sobol sequence, map to filtered parameter ranges) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ ┌─────────────────────────────────────────────────┐ │
│ │ FITTING LOOP (fit_loops) │ │
│ ├─────────────────────────────────────────────────┤ │
│ │ For each sample (size_sampling): │ │
│ │ 1. Get Bxx from QMC │ │
│ │ 2. Update BWYBIN.DAT │ │
│ │ 3. Clear old fort files │ │
│ │ 4. Run Condon │ │
│ │ 5. Extract SQX and energy levels │ │
│ └─────────────────────────────────────────────────┘ │
│ │ │
│ Normalize: sqx_norm + energy_norm │ │
│ │ │
│ Score = fit_ratio × sqx_norm + (1-fit_ratio) × energy_norm │
│ │ │
│ Sort and select top fit_threshold% │ │
│ │ │
│ Write: BXX_output_XX.dat, bkq_summary_XX.csv │ │
│ │ │
│ Refine ranges for next iteration │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Complete │
│ (Use bkq_summary_XX.csv for next run or analysis) │
└─────────────────────────────────────────────────────────────┘
```
## Dependencies
- Python ≥ 3.8
- NumPy
- Pandas
- PyYAML
## License
This software is provided for academic use. Please cite the relevant publications when using this code in your research:
- **SplitFit:** Pospiech & Gericke, 2026
- **Condon:** Speldrich et al. *Journal of Computational Chemistry*, 2017 DOI: [10.1002/jcc.25389](https://doi.org/10.1002/jcc.25389)
## Contact For questions regarding this package, please refer to the original publication:
Till Sawallisch, Dennis Grödler, Adrian Näder, Clara L. Silva, Peter Kaden, Michael Patzschke, Lucia Amidani, Kristina O. Kvashnina, Solveig Pospiech, Jan van Leusen, Moritz Schmidt, Thorsten Stumpf and Robert Gericke, Hexa-Coordinate Actinide(IV) Compounds: Benchmark Complexes for Magnetism and Electronic Structure Analysis, 2026.</dc:description>
<dc:identifier>https://rodare.hzdr.de/record/4736</dc:identifier>
<dc:identifier>10.14278/rodare.4736</dc:identifier>
<dc:identifier>oai:rodare.hzdr.de:4736</dc:identifier>
<dc:language>eng</dc:language>
<dc:relation>url:https://www.hzdr.de/publications/Publ-43560</dc:relation>
<dc:relation>doi:10.14278/rodare.4735</dc:relation>
<dc:relation>url:https://rodare.hzdr.de/communities/energy</dc:relation>
<dc:relation>url:https://rodare.hzdr.de/communities/rodare</dc:relation>
<dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
<dc:rights>https://creativecommons.org/licenses/by/4.0/legalcode</dc:rights>
<dc:subject>python</dc:subject>
<dc:subject>condon</dc:subject>
<dc:subject>quantum chemistry</dc:subject>
<dc:title>SplitFit - a Python package for parameter fitting in quantum chemical calculations</dc:title>
<dc:type>info:eu-repo/semantics/other</dc:type>
<dc:type>software</dc:type>
</oai_dc:dc>
| All versions | This version | |
|---|---|---|
| Views | 121 | 121 |
| Downloads | 1 | 1 |
| Data volume | 104.5 MB | 104.5 MB |
| Unique views | 101 | 101 |
| Unique downloads | 1 | 1 |