Changelog¶
Version 0.3.0¶
Enhancements:
A parser for xml output files of Quantum ESPRESSO is added (PR #102).
Added interface to MOFXDB (https://mof.tech.northwestern.edu/) to the
strct.StructureImporterclass (PR #94).The
strct.Structureclass checks now for duplicate positions upon initialization (PR #107).strct.ext_analysis.determine_molecular_fragmentsoffers additional parameters, allowing to exclude sites and restricting the size of the fragments (PR #111).Slight speed-up in distance based methods to calculate the coordination environment by sorting the pair-wise distances first.
Added
utils.element_properties.get_val_electronsfunction to return the number of valence electrons of the element (PR #113).Support CP2K versions 2025.1 (PR #114).
Implemented BSSE parsing to
io.cp2k.read_stdoutfunction (PR #115 and PR #116).Added more units and fundamental constants to
utils.units(PR #122).The
strct.Structure.calculate_angleandstrct.Structure.calculate_dihedral_anglenow supports lists andNoneas input (PR #126).Several new functions have been added to the
strct.ext_manipulationmodule, includingadd_structure_position,translate_structureorrotate_structure, each of the functions in this module now implement a commondist_thresholdparameter to control the inter-atomic distances of the altered structures (PR #105, PR #123, PR #129).The
strct.Structureclass has now the propertynumbersto get the atomic number related to the element (PR #130).
Fixes:
The
internalbackend ofstrct.Structurewas not properly identifying the correct function to parse the file in all cases. Additionally, theio.cif.read_filefunction now uses theio.utils.custom_openfunction, allowing to pass on a string instead of the file path (PR #99).io.cp2k.read_restart_structurefunction now supports parsing files with “” delimiters for string values (PR #100).Improve the interface of
strct.Structureto the aseAtomsclass by transferringattributestoinfoandsite_attributestoarrays(PR #103).Expose
strct.Structure.attributes,strct.Structure.site_attributesandstrct.Structure.extrastostrct.StructureCollection.append,strct.Structure.from_ase_atomsandstrct.Structure.from_pymatgen_structurefunctions (PR #103).Some str values were sometimes wrongly transformed into float numbers in the output parsers and cif parser checks more rigorously whether two atoms are occupying the same site (PR #104).
Fix positions returned from
strct.Structure.calculate_distancefunction (PR #106).io.cif.read_filewas not properly parsing string values in loops with delimiters (”” or ‘’) and without spaces (PR #118).Setting
strct.Structure.site_attributeswas not resetting the dictionary but instead adding the new key/value pairs (PR #125).The
strct.StructureOperations.compare_sites_via_coordination,strct.StructureOperations.find_eq_sites_via_coordination,strct.ext_analysis.decorator.external_analysis_methoddecorator now properly handles unset keyword arguments (PR #128).
Deprecations:
The
strct.Structure.import_methods,strct.Structure.export_methods,strct.Structure.analysis_methods,strct.Structure.manipulation_methods,strct.StructureOperations.analysis_methodsandstrct.StructureOperaions.manipulation_methodsfunctions are now deprecated since Python dropped the support for class properties. The methods are replaced by thelist_*_methodsclass methods, making this Package compatible with Python 3.13 (PR #132).
Breaking Changes:
strct.ext_analysis.determine_molecular_fragmentsnow considers the same site multiple times if it is connected, returns a list ofstrct.Structureobjects and does not shift the position of the first atom to zero (PR #111).strct.ext_analysis.create_graphnow only outputs the graphviz graph if theget_graphviz_graphparameter is set toTrueand networkx is added to the core dependencies (PR #112).All units and constants now rely on an internal implementation which is based on CODATA 2022 instead of 2014 (PR #122).
The
strct.Structure.calculate_distance,strct.Structure.calculate_angleandstrct.Structure.calculate_dihedral_anglenow return all possible combinations from the given indices instead of pairwise tuples (PR #126).The
strct.ext_analysis.determine_molecular_fragments,strct.ext_analysis.create_graphandstrct.ext_manipulation.add_structure_coordfunctions now implement**cn_kwargsas container for the arguments forwarded to thestrct.Structure.calculate_coordinationfunction (PR #128).The default value for the
methodparameter of thestrct.Structure.calculate_coordinationis now set toatomic_radiusas this method seems more reliable and equally fast asminimum_distance(PR #128).The
aim2dat.strct.ext_manipulation.add_structure_randomfunction now uses the numpy random number generator and now offers more keyword arguments to control the used random numbers (PR #134).
Version 0.2.0¶
Enhancements:
All larger parser functions moved from
aiida_workflowstoiosuch that they can used outside of the AiiDA framework (PR #20).io.qe.read_total_density_of_statesparses now the Fermi energy as well (PR #20).plots.base_plotadded new property subplot_align_ylabels to adjust y labels in subplots for backend matplotlib (PR #23).strct.Structureadded new file formats .cssr, .v1 and .cuc to to_file for postprocessing in Zeo++ (PR #26).strct.StructureOperaionsnow supports, in addition to astrct.StructureCollectionobject, a list ofStructureobjects upon initialization (PR #29).fct.smearingfunctions have a new parametersampling_widthto control the distance between x-values (PR #32).strct.Structure.to_dictreturns a dictionary of aStructureobject (PR #34).Structure manipulation methods maintain
kindsinformation andstrct.Structure.substitute_elementshas now the addiationalremove_kindparameter (PR #34).utils.element_properties.get_atomic_radiussupports now the set of radii determined in doi:10.1039/C9RA07327B (PR #35).strct.Structure.calculate_coordinationsupports the calculation of the coordination environment based on the sum of the corresponding atomic radii (PR #35).strct.ext_manipulation.add_structure_coordreplaces thestrct.ext_manipulation.add_functional_groupfunction allowingStructureobjects as input and adding methods to define the orientation and position of the guest structure in more detail (PR #37, PR #65, PR #85).strct.Structurehas now site attributes which store site specific information (PR #39).utils.element_properties.get_atomic_radiussupports now Van der Waals radii determined in doi:10.26434/chemrxiv-2024-m3rtp-v2 (PR #44).An internal cif-parser is added to parse additional information (PR #47).
Support CP2K versions 2022.1-2024.1 (PR #51).
The newly implemented
strct.ext_manipulation.add_structure_randomfunction adds a guest structure at a random position and orientation (PR #53).strct.Structure.from_fileinterfaces functions from theiosub-package via the internal'backend'and adds more parameters to control the'ase'backend (PR #56).The methods to find duplicate structures of
strct.StructureOperationsare sped up by comparing the chemical formulas prior to more expensive checks (PR #61).H2 is added to the pre-defined structures (PR #65).
io.cp2k.read_atom_proj_density_of_statesnow also supports LDOS files (PR #76).strct.StructureOperations.compare_*functions can now be run in parallel (PR #78).Added
custom_hatchto allplotsclasses to allow plotting hatched bars using the matplotlib backend (PR #89).
Fixes:
utils.chem_formula.transform_str_to_dictsupports now recurring elements and nested brackets (PR #13).strct.Structure.calculate_voronoi_tessellationnow sorts the the neighbouring sites (PR #31).io.fhi_aims.read_atom_proj_density_of_statessupports now higher azimuth quantum numbers up to i (PR #33).External structure manipulation methods now share the same interface as their internal counterparts (PR #34).
A few smaller bug fixes in CP2K output parser (PR #36).
Fix interface to spglib to support version 2.5 and above (PR #54).
Small fixes to the Materials Project open-api interface (PR #58).
The optimade interface was not working as soon as one supplier could not be reached (PR #62).
strct.Structure.calculate_distancenow correctly backfolds positions into the unit cell (PR #63).strct.ext_manipulation.add_structure_coordorstrct.ext_manipulation.add_functional_groupwere not in all cases dealing correctly with planar coordination geometry (PR #64).Fixed error in
strct.StructureOperationswhen index slices were used (PR #71).Fixed bug in
plots.PartialChargesPlotoccurring when a data labels was part of another data label (PR #77).
Deprecations:
strct.ext_manipulation.add_functional_groupis replaced bystrct.ext_manipulation.add_structure_coord(PR #37).aim2dat.io.cp2k.read_optimized_structureis replaced byaim2dat.io.cp2k.read_restart_structure(PR #56).
Breaking Changes:
Moved
dict_*functions fromaiida_workflows.utilstoutils.dict_tools(PR #36).Space group and symmetry related keys now conform to the attributes returned by spglib (PR #54). As such, the keys
'sg_number','int_symbol','point_group_symbol','schoenflies_symbol'are replaced by'number','international','pointgroup','schoenflies', respectively.utils.chem_formula.reduce_formulatries now to find a formula only having natural numbers as quantities; this way utils.chem_formula.compare_formulas`` works for all use-cases (PR #60).Structure manipulation methods now in general maintain
kinds,attributesandsite_attributesif not otherwise noted (PR #63).The interface of``strct.StructureOperations`` was changed in order to be more consistent with
strct.Structure(PR #72).strct.Structure.kindsnow always returns a tuple instead ofNone(PR #73).io.critic2.read_stdoutnow returns the value of ‘version’ as string (PR #74).strct.Structure.calculate_distancetreatsr_maxas a cut-off value for the distance (PR #83, PR #90).
Version 0.1.0¶
First published version.