shirtsgroup / lattice_dynamics Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Change all os.system calls to subprocess.call.
When using a pdb file, the properties recorded can get messed up due to rounding error. Things like volume and lattice parameter should be used directly from the spline and not pulled from the pdb file.
Give some examples in the README about how to call the programs to do particular calculations, so that I (or other users) can replicate your results. You can give example results in an example file so that people can check they are using the code correctly to replicate results.
Both test systems should have the parameter files included
sphinx or readthedocs could work well
Eigenvectors should be saved from the gruneisen parameter
There should be more consistent warning when the wave numbers are bad.
Tolerance of wavenumbers shouldn't just be a "more negative" criterion. They should be inclusive of just a general tolerance from zero (ie. catch positive ones as well).
When running Runge-Kutta, the final gradient at T_max does not receive the same output as previous runs and is not separated nicely.
When running Euler there is no separation between gradient calculations, which makes it hard to read.
Right now dG/dC is printed into numerical_checks.out. It would be nice to see dU_dC and dAv_dC there as well to help troubleshoot.
In the input.yaml file, if 'vol_fraction' and 'matrix_fractions' is unspecified, than the program will run a sensitivity analysis to determine the appropriate step size. These step sizes are used in the numerical calculation of the crystals thermal expansion when using the gradient approach.
The 'matrix_fractions' value is automatically updated in the .yaml file once they are determined. That is not the case for 'vol_fraction' and there is no place to save the lambda values. This would increase computational speed when re-running the simulation.
If the structure is not at a minimum the program can:
Should be a set dV that is used across the entire run, which is not the case.
Move program specific functions into one files so that they're easy for people to edit
Right now, there are no flags or errors thrown if NumAnalysis_step is larger than Gradient_MaxTemp. Python returns an error, but the user wouldn't know what to do with this.
If one were to run 1D GaQg than the user would know if the lambda value is minimized, but it would be nice to know that it's at a minimum in 6D. A simple check at Tmax could be run to determine if the final structure is truly at a 6D minimum or just at a 1D minimum.
The saving of properties for phase diagrams or just temperature are in two different places. Bring them together to improve them.
Suggest changing the current 0README.txt to Markdown formatting and renaming it to README.md, so it pops up automatically in the GitHub web page.
During gradient runs, if we set:
Temperature = 0,100
But the numerical step size is 50, the output properties will be 0, 50, 100. Not the specified temperatures.
Computation of the Gruneisen Parameter or other approximations of the phonons should done prior to the division of methods
All properties are saved in the _raw.npy file, so sometimes we won't need the specific Gibbs free energy files or volume files. If output properties are left blank, than an error is raised. The _raw.npy file is still given.
Right now isotropic gradient, anisotropic gradient, and 1D-anisotropic gradient follow three separate paths.
Run_LatticeDynamics.py requires a Properties.py, but that's not uploaded?
The EoS are only set-up to work for the pressure setup. They need to be implemented in the gradient approach.
Input file should be using JSON or YAML
The following files have general names during output:
numerical_checks.out, minimization.out, GRU_wvn.npy, GRU_eigen.npy
These should include the output tag '_' at the beginning so they aren't overwritten or re-used when user are trying to do multiple runs in a single directory.
numerical_outputs.out is not deleted after subsequent runs
Just an example here:
Lattice_dynamics/ThermodynamicProperties.py
Line 268 in e7b8cdc
Assumptions made would prevent co-crystals to be computed w/o some type of error.
If there are temperatures in 'Temperature' higher than 'Gradient_MaxTemp' then the outputed data will include extra 0 values at the of the array, after Tmax.
This make plotting difficult and should be corrected (most likely in the spline section).
The *_Gru_organized_wavenumbers scripts can be condensed together. Also, the name is misleading, this doesn't have to do anything with the Gruneisen parameter specifically (it's just used in the process, but it can be multi-functional).
This one, I think, is legitimately not added :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.