All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Distance constraints for xTB (normalized parsing, config validation, runtime enforcement, and optional integration test).
- Distance constrains for ORCA (uses xTB as as driver to set the same distance constrains for the postprocess).
- to set the elemental composition it is now possible to use dicts with not only int but also the element symbols (str)
- dict keys for elemental compositions will now always be checked for validity
- Renamed GP3-xTB to g-xTB
- Moved constants and (empirical) parameters to the
datamodule - Default for optimization cycles in the postprocessing step set to program default (convergence)
- Nothing will be printed while multiple molecules are generated in parallel, tqdm-based progress bar instead
- Some debugging statements from generate had to be removed (esp. w.r.t. early stopping)
GXTBConfigclass for the g-xTB method, supporting SCF cycles check- support for TURBOMOLE as QM engine
- updated the parallelization to work over the number of molecules
- possibility to generate symmetrical molecules (choice from rotation, inversion, mirroring)
- number of optimization steps in the postprocessing part can be set to program default by
none - support for a manually defined temporary directory for the QM calculations
- version string is now correctly formatted and printed
- precision (# significant digits) of the coordinate files (
get_coord_strandget_xyz_str) increased from 7 to 14 - catch encoding errors when reading
Turbomole._run_optoutput files - bug in the parallelization, leading to a dead
mindlessgenexecution as a consequence of not allowing the required number of cores - stop_event checked before every external call to avoid unnecessary executions
- vdW radii scaling parameter can now be adjusted via
mindlessgen.tomlor CLI - check_distance function now checks based on the sum of the van der Waals radii and a scaling factor acessible via
mindlessgen.tomlor CLI - better type hints for
Callables - clearer differentiation between the distinct scaling factors for the van der Waals radii
README.mdwith more detailed explanation of the element composition function- Default
max_cyclesfor the generation & refinement set to 200 - Allow fixed molecule compositions in a simpler way
check_confignow ConfigClass-specific- modify atom list adaption to
element_compositionsuch that a random integer in the given range is taken and not the lower/upper bound
- unit conversion for (currenly unused) vdW radii from the original Fortran project
- minor print output issues (no new line breaks, more consistent verbosity differentiation, ...)
- bug in
postprocess_molwhich led to an unassigned return variable in the single-point case - bug leading to
UnicodeDecodeErrorwhen readingxtboutput files - bug with all atom lists being initialized with a length of 102 instead of 103
- inconsistent default values for the
mindlessgen.tomland theConfigManagerclass - legacy pseudo random number generation removed and replaced by
np.random.default_rng()for avoiding interference with other packages
- support for the novel "g-xTB" method (previous working title: GP3-xTB)
- function which contracts the coordinates after the initial generation
- function which is able to printout the xyz coordinates to the terminal similar to the
.xyzlayout - elements 87 to 103 are accessible via the element composition. If
xtbis the engine, the elements will be replaced by their lighter homologues. - support for
python-3.13 - option to set a fixed molecular charge, while ensuring
uhf = 0 element_compositionandforbidden_elementscan now be directly set to adictorlist, respectively, via API access
- Removal of the
dist_thresholdflag and in the-tomlfile. - The number of unpaired electrons (
Molecule.uhf) is now set to 0 ifxtbis used asQMMethodand a lanthanide is within the molecule to match thef-in-coreapproximation. - "Contract Coordinates" functionality set to
trueby default in themindlessgen.tomlfile. basename.UHFandbasename.CHRGare only written to disk if they differ from the default value (0 and 0, respectively).
- Default file name of
.xyzfile contains prefixmlm_ - Comment line of
.xyzfile contains the total charge and number of unpaired electrons - Default ORCA calculation changed from r2SCAN-3c to PBE/def2-SVP
verbosity = 3always prints full QM output- Adapted generation of number of unpaired electrons; thereby, support for Ln's
- Shifted group / element sorting definitions to miscellaneous
xyzfiles are written on the fly, and not post-generation- GFN-xTB level can now be set
mindless.moleculesfile is written continuously during generation
test_iterative_optimizationmore deterministic- wrong atom range check in for the isomerization mode (#21)
forbidden_elementsandelement_compositioninfluences hydrogen and organic element addition- more realistic default
mindlessgen.tomlentries
- Optimization via DFT in the post-processing step
- Detailed input of ORCA settings (functional, basis, grid size, SCF cycles, ...) possible
min_num_atomsandmax_num_atomsconsistency check- Maximum number of optimization cycles are an argument for the
QMMethod.optimizebase function - Debug option for the refinement and post-processing step specifically
- Return type for
single_molecule_generator - Check for consistency of the
min_num_atomsandmax_num_atomsconstraint - Similar to the
<basename>.CHRGfile, also a<basename>.UHFis printed - HOMO-LUMO gap check within the refinement step and corresponding Config option called "refine_hlgap"
GeneralConfigswitch for writingxyzfilesPyPiandTestPyPiupload of releases (new workflow)
- ...
- ...
- ...
- ...
- ...
- ...