Info: Zenodo’s user support line is staffed on regular business days between Dec 23 and Jan 5. Response times may be slightly longer than normal.

Published November 8, 2024 | Version v8.2.0
Software Open

JohnKendrick/PDielec: PDielec Version 8.2.0 Powder and Single Crystal Infrared Calculations]

Description

The Python package PDielec calculates the infrared and terahertz absorption characteristics of crystalline materials by post-processing the output of solid-state quantum mechanical and molecular mechanical calculations of the phonons or dielectric response of the crystalline material. For crystalline samples (thin films or thick slabs) the program use generalized transfer and scattering matrix approaches to calculate the transmission, absorption and reflection. For powdered systems, the package calculates the internal electric field arising from different particle morphologies and calculates the resulting shift in absorption frequency and intensity arising from the coupling between a phonon and the internal field. The theory of the approach for small crystallites is published in the Journal of Computational Chemistry, DOI: 10.1002/jcc.24344 .

Changes in version 8.2.0 A -threads or --threads option has been added to pdgui. Added QT6 support by including the qtpy module Changed the use of scipy.interpolate.trapz to np.trapz Introduced a pyproject.toml file Added version number to the pyproject.toml file and modified the setup.py file accordingly Removed setup.cfg file. setup.py no longer sets the version number. Updated the requirements.txt file using pipreq Updated the conda_installs.txt file Removed the need for the mkl package. But this means the number of processors used for threading is set by the environment variables. It is best to NOT use threading and have the number of processors set to the number of cores. The number of threads used by each core should be 1. To force the BLAS routines to use threads it is best to use environment variables to control the The exporting of these variables is now performed automatically at runtime from App.py, before numpy is loaded pdmake.py has been modified to allow -cpus and -threads to be passed to pdgui during benchmarking Added additional escape characters to pdmake.py - to remove SyntaxWarning errors Added additional escape characters to Mie.py - to remove SyntaxWarning errors Added additional escape characters to CastepOutputReader.py - to remove SyntaxWarning errors Added additional escape characters to CrystalOutputReader.py - to remove SyntaxWarning errors Added a -style default in the creation of the App. Default style is "fusion" Fixed a bug in the save cif file (ViewerTab) Added xml readers to VaspOutputReader and QEOutputReader Added a new example to QE/Urea which tests the xml reader Added a new example to Vasp/Urea which test the xml reader GenericOutputReader: Created a new routine to find the frequencies and normal modes from the mass-weighted hessian QEOutputReader: Added a code to read pwscf.xml and tensors.xml PhonopyOutputReader: PDGui now reads the conversion factor store by Phonopy to scale the Hessian Utilities: Altered the logic in the "find_program_from_routine". The routine now recognises pwscf.xml and vasprun.xml files. If an OUTCAR (Vasp) or a QE .log/.out is specified on the command line the old method of analysing the output is used and the xml files are not read. If vasprun.xml (Vasp) or a .dynG file is given on the command line then the xml will be read if it is there. Changed the GTMCore.py use of clongdouble to cdouble. Added a .nojekyll file into the docs/ directory to stop git hub pages over processing things Changed the name PDielec to pdielec in setup.py to help with Windows install on conda-forge Changed the find_program_from_name() function to return (program,qmprogram). Affected routines are; - Utilities.py, HelperRoutines.py p1reader.py, preader.py, vibanalysis,py, App.py, NoteBook.py, - MainTab.py, p2cif.py. - Also changes in Helper/ and Jupyter/ Example directories. Removed the slicing capability as it is no longer needed Added new code for handling Phonopy DFT programs other than Vasp The materials database is now cached to improve performance The materials database is now kept open, instead of repeated opening and closing Added support for AbInit v10 files, changed the AlAs abinit example to a version 10 example Added support for Crystal 23: modified file extension handling to include .log as a crystal output file. - Added a Crystal23 example in Examples/Crystal/Quartz - Added an AbInit 10.0 example in Examples/Abinit/AlAs - Added an QE 7.3.1 example in Examples/QE/Na2SO42-v7 - Added support for Phonopy-Crystal calculations: example in Examples/Phonopy/Crystal Revamped the README.md files in the Examples directories Modified the jupyter lab notebooks to use os.path.join for all directory access Removed linked directories in Examples/Helper/Jupyter/..

Changes in version 8.1.1 The documentation has been revamped. An API description is now generated from each class and routine. The examples of Jupyter notebooks has been added to. Static routines have been created in the FitterTab to allow their use in notebooks The UnitCell and SuperCell classes have been enhance to use a units specifier Added new routines to the Materials and DielectricFunction classes to allow sigmas, oscillator strengths and frequencies to be changed The write_cif() routine in UnitCell has been modified slightly to allow files to be written Update of setup.py to reflect deprecation of naming of sklearn Development of helper functions to aid future use of notebooks

Changes in version 8.1.0 Modifications to the plotter tab to allow the use of wavelength and frequency units Redesign of the single crystal scenario tab. The new design means that scripts are not backwards compatible. The method of calculation for single crystals can now be 'Transfer matrix' or 'Scattering matrix' The default method is 'Scattering matrix' Other changes to the Single Crystal options:

Thick slab is now an option for an individual layer and has been termed 'Incoherent (non-reflective)' Other incoherent options have been added for a layer, using either intensities or phase matching the pygtm module has been modified so that subclasses are used for coherent and incoherent layers and 'Transfer matrix' and 'Scattering matrix' classes are subclasses of the pygtm 'System' class removed the need to have specific super- and sub-strate entries in the singleCrystalTab superstrate is the top of the material list and substrate is at the bottom. the old 'Thick slab' option is still available if the dielectric layer is the last in the list of materials Updated the progress bar algorithms Fixed a bug in the specification of the support matrix for the powder case Fixed a bug in the reporting of absorptance, s- and p- were reported the wrong way round Fixed a bug in the powder scenario tab, the super- and sub-matrix dielectric functions, were not being set properly for frequency dependent permittivities Fixed a bug in the plotting tab when writing to the spread-sheet a scalar permittivity The option to use slicing has been removed The option to do partial incoherence has been removed from the GUI but left in the code There are compatibility issues with the previous version, so some scripts may not be compatible.

Files

JohnKendrick/PDielec-v8.2.0.zip

Files (175.1 MB)

Name Size Download all
md5:56e696b8ad04d5335e981f9db5f846c8
175.1 MB Preview Download

Additional details

Related works