Releases: lrgresearch/gpaw-tools
A Fix-release for a spglib-related error
Because SPGlib dropped the ASE type Atoms object after version 2.2.0, gpawsolve.py
gave an error. ASE will maintain the get_spacegroup()
function call from now on. With this change, gpawsolve.py
no longer requires the spglib
package.
New Release: Localization, Features, and Enhancements
We are pleased to announce the latest update, which introduces localization, new features, and several improvements.
Key Highlights
- Localization: Support added for English, Turkish, German, French, Russian, Chinese, Korean, and Japanese.
- Warning Messages: Fixed several misleading warning messages.
- Latest ASE/GPAW: This version can work only with the latest ASE > 3.23.0 and GPAW > 24.6.0.
Detailed Release Notes
-
Localization and Interface:
- Simple language localization for DOS and Band graphics.
Localization
keyword is added to all examples.
-
Functional Updates:
- Cell Filter: Replaced ExpCellFilter with ASE’s FrechetCellFilter (requires ASE > 3.23.0 and GPAW > 24.6.0).
- LCAO Calculations: Added
nbands
value. - Magnetic Moments: Added
Magmom_single_atom
keyword. - Graphene Example: Introduced a new example, Graphene-charged.
- Total Charge: Added
Total_charge
variable togpawsolve.py
,gg.py
, and examples. - Elastic Calculations: Trajectory now saved separately.
- Hydrostatic Pressure: Added
Hydrostatic_pressure
keyword. - Hybrid Calculations: Fix implemented; now works for GPAW versions >= 23.10.0.
- Spin-Dependent Charge Densities: Calculate and export to CUBE files for both all-electron and pseudo densities.
- Example Update: Cr₂O₃ example updated for new spin-dependent charge density calculations.
-
Deprecations:
- Argument Removal: Deprecated
-r
(restart) argument removed.
- Argument Removal: Deprecated
-
Future Enhancements:
- Projected Band Structure: Foundation laid for future projected band structure calculations (not yet activated).
-
Documentation and Examples:
- Added more information on executing input files to the example files.
We appreciate your feedback and contributions through issues and pull requests. Thank you for helping us enhance gpaw-tools.
Autumn release of 2023. Small fixes, new PDOS handling
This is the third release of 2023. The most important change is the new PDOS handling. Old PDOS handling only produced PDOS for each atom. Now it creates a separate file that includes the total PDOSs. Unnecessary files like ciftoase.py, and benchmark folder, which we used in the first days, are removed. An important bug fix about Ground_kpts_density
and Ground_gpts_density
, which gives zero DOS, is fixed. The code is now working well with GPAW v.23.9.1.
Release Notes
- Better -v (version info) message.
- Implementing
GPAW.fixed_density()
method corrections for elastic, DOS, and band calculations. - No need for a general benchmark script.
- Correcting log behavior
- Better total and each atom's PDOS handling. They are written in separate files.
- No need to use ciftoase.py anymore
- Fixing
Ground_kpts_density
andGround_gpts_density
usage sourced DOS calculation error.
Summer release of 2023 with many new features and bug-fixes
This is the second release of 2023. Like v23.2.0, this release has some major changes that make it incompatible with the previous versions. If you use your old input files, mostly you will get an error about ground state calculations. Because, instead of using a -r
argument to pass ground state calculations and always-do ground state behavior, this version introduces a new keyword: Ground_calc
. Mostly, just put a line
Ground_calc = True
to your old input and everything will be fine. From this version, gpawsolve.py
is not a simple script anymore. This is the first step to using gpawsolve as a library in the future. Also, another big news is gpawsolve.py
can use GPAW and PHONOPY for basic phonon dispersion calculations! Another interesting feature is the -e
argument. If you are using a computer with using Intel CPU after Sandy Bridge generation, you can easily calculate the energy consumption of your calculation in kWh unit! It is included in gpawsolve.py
as our small contribution to global green computing - ICT sustainability efforts.
There are many other fixes and changes in this version. Please refer to the release notes below.
We kindly ask you to help us with your issues and pull requests.
Thank you for trying and helping to gpaw-tools
to make it better.
Release notes
- Using dtype as default for PW calculations.
- Drawn DOS and Band figures are aligned with respect to Fermi energy level.
- Implementing autoscale in y-direction for DOS graphs.
- Correcting all possible errors due to gpts and kpts density usage.
- Lowering memory consumption in optical calculations.
- Some examples are changed (Tetrahedron method is used in CrO2 calculations, Bulk-Al calculations are now Bulk-GaAs).
- Using world.size for nblocks in optical RPA calc.
- Updated some calculation default values in both
gpawsolve.py
andgg.py
. - Small corrections are done to EXX-related parts, XYYY formatted band result data output, optical RPA calculation, ...etc...
- Using
DielectricFunction
with frequencies. - PW-EXX mode is removed. EXX can be used directly under PW.
- Mostly, no need to use
outdir
variable. However, still can be used. - Phonon calculation feature is added to
gg.py
. - Phonopy version information can be viewed when using -v argument.
- Energy consumption measurement with -e argument. This feature only works with Intel CPUs after Sandy Bridge generation. Results are given in kWh!
- Restart -r, --restart argument is now depreceted. There is nothing to be restarted. Instead of -r argument, the new keyword
Ground_calc
is introduced. - Basic phonon dispersion calculation feature with Phonopy! At least it works for bulk Al. It is not very mature so please keep this in mind. (Thanks to Michael Lamparski for his help and MIT licensed code that he shared.)
- Save figures in higher dpi.
- Fix some bugs, add new variable and rearrange some variable in
gg.py
. - Add Energy_min variable. Energy_min and Energy_max variables are now working on both band and DOS figures.
- Remove unnecessary variables in the input file for the examples/Si-2atoms-optical example.
- Band structure data can be now exported in XYYYY type ASCII file (Thanks to Andrej Kesely).
- Fixed some unused imports and local variables.
- Small fixes at
gg.py
file. - Adding
struct_from_file()
function for future usage. gpawsolve.py
is not only a Python script anymore. The structure of thegpawsolve.py
is rewritten. The calculations are related to a class namedgpawsolve
. Also, there are functions related to all possible calculations in this class as:structurecalc()
,groundcalc()
,elasticcalc()
,doscalc()
,bandcalc()
,densitycalc()
andopticalcalc()
. The structure is still primitive and code is rely mostly on global variables, however it is a start and it will be easy to use when it finished properly.- From this release "-o" argument is deprecated. Code, all examples and related BASH script are fixed.
First release of 2023. Version with major changes
This is the first release of 2023. And this release has major changes that make it incompatible with the previous versions. With time, gpawsolve.py
and asapsolve.py
use many variables in it and in input files. However, it does not have a proper naming convention for these variables. Also, some of the variable names are misleading the user. From this version, gpawsolve.py
will use a special Snake_case (the first letter of each variable is capitalized) variable for the input file variables usage. The special naming of the variable makes it easy to separate these variables from Pythonic variables which are mostly written as snake_case or CamelCase. Please use this version for your new calculations. Old inputs will not work.
Also, the DOS calculation part is changed completely. It is now using RawPDOS calculations to calculate and draw DOS, PDOS, and RawPDOS values.
We kindly ask you to help us with your issues and pull requests. We have only one rule, try to keep it simple for broad-spectrum users.
Thank you for trying and helping to gpaw-tools to make it better.
Release notes
- DOS calculation part is changed completely. All calculations for DOS, PDOS, and RawPDOS are done with RawPDOS.
- New variable is added:
DOS_convergence
. - The variables used in
asapsolve.py
is also changed. From this version,asapsolve.py
will use a special Snake_case (the first letter of each variable is capitalized) variable for the input file variables usage.Variable that are affected are: Manualpbc -> Manual_PBC, pbcmanual -> PBC_constraints, PotentialUsed -> OpenKIM_potential, SolveDoubleElementProblem -> Solve_double_element_problem. - Correction of the creating output file that writes spacegroup and special points to the wrong folder.
- Making the
do_all_examples.sh
script executable. - Wrong usage of GW calculation type in
gg.py
is corrected. - All new variable changes are corrected and new variables are added to
gg.py
. simple_benchmark2021.py
is simplified and renamed assimple_benchmark2023.py
.- With time,
gpawsolve.py
uses many variables in it and in input files. However, it does not have a proper naming convention for these variables. Also, some of the variable names are misleading the user. From this version,gpawsolve.py
will use a special Snake_case (the first letter of each variable is capitalized) variable for the input file variables usage. Variables that are affected: mode -> Mode, fmaxval -> Max_F_tolerance, whichstrain -> Relax_cell, cut_off_energy -> Cut_off_energy, kpts_density -> Ground_kpts_dens, kpts_x -> Ground_kpts_x, kpts_y -> Ground_kpts_y, kpts_z -> Ground_kpts_y, gpts_density -> Ground_gpts_dens, gpts_x -> Ground_gpts_x, gpts_y -> Ground_gpts_y, gpts_z -> Ground_gpts_z, Hubbard -> Setup_params, band_path -> Band_path, band_npoints -> Band_npoints, gridref -> Refine_grid energy_max -> Energy_max, GWtype -> GW_type, GWkpoints -> GW_kpoints_list, GWtruncation -> GW_truncation, GWcut_off_energy -> GW_cut_off_energy, GWbandVB -> GW_valence_band_no, GWbandCB -> GW_conduction_band_no, GWppa -> GW_PPA, GWq0correction -> GW_q0_correction, GWnblock -> GW_nblocks_max, GWbandinterpolation -> GW_interpolate_band, opttype -> Opt_calc_type, optshift -> Opt_shift_en, optBSEvb -> Opt_BSE_valence, optBSEcb -> Opt_BSE_conduction, optBSEminEn -> Opt_BSE_min_en, optBSEmaxEn -> Opt_BSE_max_en, optBSEnumdata -> Opt_BSE_num_of_data, num_of_bands -> Opt_num_of_bands, optFDsmear -> Opt_FD_smearing, opteta -> Opt_eta, optdomega0 -> Opt_domega0, optomega2 -> Opt_omega2, optecut -> Opt_cut_of_energy, optnblocks -> Opt_nblocks, MPIcores -> MPI_cores find3Dmin.py
A script that draws a 3D contour plot of E vs. lattice-params and shows the minimum datapoint using the optimize_latticeparam.py's output, is added.
Summer release with many new features and bug-fixes
This is the fourth release of gpaw-tools in 2022. The most important feature added in this release is the successful implementation of different structure optimization minimizers. Users can choose QuasiNewton, GPMin, LFBGS, or FIRE minimizer for geometry optimization. Also, one big difference is the quick_optimization.py
script. This script can now work just like gpawsolve.py
and its name is now asapsolve.py
. Therefore old script and folder are removed. You can find one example in examples
folder. Also, there are many minor fixes and features added.
We kindly ask you to help us with your issues and pull requests. We have only one rule, try to keep it simple for broad-spectrum users.
Thank you for trying and helping to gpaw-tools to make it better.
Release notes
optimize_latticeparam.py
now can work for both lattice params a and c. Also draws 3D fig of energy-dependent latt_a - latt_c.quickoptimize.py
works likegpawsolve.py
now. Its name is nowasapsolve.py
.- New default optimizer is QuasiNewton (BFGSLineSearch).
- New keyword
Optimizer
. Users can now choose QuasiNewton, GPMin, LFBGS, or FIRE minimizer for geometry optimization. gg.py
includes all-new keywords.- Grid point density or manual grid points for axis (LCAO only).
- Include new keywords for LBFGS geometry optimization
Damping
,Alpha
, andMax_step
. Geo_optim
keyword for better optimization usage with filters (whichstrain).- Examples are simplified. Most of the unnecessary keywords are removed.
- Proper logging for LCAO ground-state calculations
- Fix LCAO spinpol calculation (Thanks to Toma Susi).
- Include new keyword
Mixer_type
. - Fix help description text width problem.
- Execution timing data of all calculations are saved to
FILENAME-6-Result-Log-Timings.txt
file. - Instead of direct execution, all tasks are added to the task-spooler queue in
do_all_examples.sh
script.
Third release of 2022, many new features and fixes
This is the third release of gpaw-tools
in 2022. The most important feature which is added in this release is the successful implementation of HSE06 calculations. Users can continue with the new example called "Si-with-HSE". In this release, we added 4 new keywords: Fix_symmetry
, Ground_convergence
, Band_convergence
and Occupation
. Also, there are many small fixes and features are added.
We are also kindly asking you to help us with your issues and pull requests. We have only one rule, try to keep it simple for broad-spectrum users.
Thank you for trying and helping to gpaw-tools
to make it better.
Release notes
- Successful HSE03, HSE06 calculations for ground state, DOS and band structure.
- New example for HSE06 calculations:
Si-with-HSE
. - Colorize errors, warnings, and information output with ANSI codes.
- Proper error handling for restart mode "file not found" error.
- No need to import ASE object inside optimization scripts. Optimizations are working with CIF files only.
- New keyword
Fix_symmetry
added togpawsolve.py
,gg.py
for preserving the spacegroup symmetry during optimization. - Small changes in the
gg.py
gpawsolve.py
now prints previous and final spacegroup information and usable special points information for band structure calculations.-v
argument now shows version information of gpaw-tools, and used GPAW, and ASE. It gives more choice for possible tarball and zipball packages. Also, it does not give an error in case of no internet connection available.- 3 new keywords
Ground_convergence
,Band_convergence
andOccupation
are added togpawsolve.py
,gg.py
and examples. - Fix
do_all_examples.sh
Bash script. - Optimization scripts do not need ASE object insertion. They can run with using CIF file as an argument.
- RawPDOS, which gives PDOS over orbitals, is added.
- For band calculations, the result file in JSON format is added. This file can be opened with
ase band-structure
command.
Second release of 2022 with BSE calculations, updated optim scripts
This is the second release of gpaw-tools
in 2022. The most important feature which is added in this release is the Bethe Salpeter Equation (BSE) solution. Users can choose RPA or BSE for the optical calculations. Because the parallelization of the optical calculations is different from the electronic calculations, we can not use the optical calculations in gpawsolve.py
with mpirun successfully. If you have large cells and need performance, you must write your script and use GPAW purely. Also, a new optimization script that uses k-point density instead of k-point number is added. Other optimization scripts are updated. Because new keywords are added in this release, we suggest a full update your all machines that have previous versions.
We are also kindly asking you to help us with your issues and pull requests. We have only one rule, try to keep it simple for broad-spectrum users.
Thank you for trying and helping to `gpaw-tools to make it better.
Release notes
- New optimization script
optimize_kptsdensity.py
for k-point density optimization instead of k-point number optimization. optimize_cutoff.py
,optimize_kpoints.py
andoptimize_latticeparam.py
havexc_used
in parameters list.- Naming of some of the output files is fixed.
- Bethe-Salpeter Equation (BSE) solution is added to optical calculations.
- 7 new keywords are added for BSE calculations.
opttype
,optshift
,optBSEvb
,optbsecb
,optBSEminEn
,optBSEmaxEn
,optbsenumdata
Si-2atoms-optical
example is now running for both RPA and BSE. Previously, its calculation has 2 steps, now 3 steps.- CONTRIBUTING and CODE_OF_CONDUCT information is added.
- Fix: Show atom numbers starting from 1, not 0.
First Release of 2022
This is the first release of 2022. The most important feature added in this release is the elastic calculation! (Equation of State and Elastic Tensors) Also, we added a new command to decrease the size of huge gpw files. It is useful when you work on an HPC and want to transfer your files. Also, DOS smearing width and number of points can be changed now.
Thank you for trying and helping to gpaw-tools
to make it better.
Release notes
- New calculation: with
Elastic_calc=True
, Equation of State and elastic tensor values will be calculated. Elastic_calc
is added togg.py
.- A new example about elastic calculations is added.
- Many comments added to
gg.py
for better understanding the code. DOS_npoints
andDOS_width
variables are added for number of points and smearing value, respectively.- Saving PNG versions of band structure and DOS even in -d argument is not used.
shrinkgpw.py
command for extracting wavefunctions from huge gpw files and save with a different name.- New benchmarks were added.
Fourth release with important changes and bugfixes
This is the fourth release of gpaw-tools
. Many new features were added and many bug fixes were done. Because we changed some terms we used and changed some arguments that gpawsolve.py used, this release is not backward compatible. Please update your all machines that have previous versions. We are also kindly asking you to help us with your issues and pull requests. We have only one rule, try to keep it simple for broad-spectrum users.
By the way, we have a new website where you can find better installation and usage notes. We are actively updating the site.
Thank you for trying and helping to `gpaw-tools to make it better.
Release notes
- EXX mode is renamed as PW-EXX.
- Default values of variables are changed.
- Previous -i (input) argument is changed as -g (geometry). It is more logical because it is used for geometry.
- Previous -c (config) argument is changed as -i (input). It is more general, convenient, and understandable.
gg.py
can now work with just enough variables. Previously, it must see all variables.kpts_density
is added.- Units used in a cube file are changed for Bader analysis.
- There is no general config file anymore.
- Small bug fixes.