Giter Site home page Giter Site logo

jarvist / polaronmobility.jl Goto Github PK

View Code? Open in Web Editor NEW
26.0 10.0 8.0 7.25 MB

Feynman's variational path-integral model for the Fröhlich polaron. Calculates temperature dependent polaron mobilities, and other polaron observables.

License: MIT License

Jupyter Notebook 62.74% Julia 36.84% Shell 0.01% TeX 0.41%
polarons mobility physics solid-state path-integral

polaronmobility.jl's Issues

Multiple phonon branches

You have a load of half interpreted versions of this in various lab books. So you should actually implement it.
The basic idea is to put multiple phonon branches in the 'true' Lagrangian, against which the model v and w Lagrangian is varied. This should give more temperature dependent structure in the e.g. mobility curves, as individual phonon modes go into resonance.

  • figure out a nice way to go from i.r. activity + frequency to dielectric constant contribution
  • units? interface with a VASP script? Intermediate .dat file to keep interface cleanly separate?
  • implement this simply as a set of contributions to the Frohlich Hamiltonian, used in the calculation of a single v and w polaron at finite T.
  • if this is too expensive, consider some variational approximation where you first project the complex spectra onto a representative set of modes
  • stare at the results
  • compare and contrast to the Hellwarth1999 averaging techniques
  • sort out the Hellwarth1999 A scheme (finite temperature). Half implemented in a Jupyter notebook somewhere?
  • see whether you can treat mode lifetime (i.e. from Phonopy3) at the same time, by adding a Gaussian width to the resonance

Massive performance regression at #1b7f414

Massive performance regression introduced with 1b7f414 . The tests almost suddenly hang, as they start running so slowly! The old 2017 era tests that run first seem to run fine though.
I couldn't see immediately where the issue was, as the diff on GitHub looked pretty confusing - lots of formatting updates at the same time as something mechanistic?

image

Example Pluto notebook on Binder for v.2

This little webapp will build a working environment / URL to kick off a Binder run: http://pluto-on-binder.glitch.me/

BUT, currently all the Pluto notebooks won't run as they assume you can find PolaronMobility in '../'.
Now that v2 is registered, I suppose just including PolaronMobility as a dependency within the Pluto notebook should be quite consistent & reproducible.

  • Figure out best way to run PolaronMobility on Binder
  • Put together an exemplary notebook showing off some useful features of the package
  • Cross link from the docs

JOSS Review: Documentation

I think there are a number of steps that can be taken in the documentation to help users get up and running more easily. This is connected to the JOSS review at openjournals/joss-reviews#566

  • First off, the documentation is built as a single, large page, if this could be split into multiple pages, that would help ease navigation
  • Installation instructions: these are in the README, but should also be included in the documentation
  • Example usage: in addition to the plots shown in the readme, it would be helpful to include examples which show both the code usage and the resulting plot

@yxqd may also have some suggestions here.

Fix MyBinder

Error at build currently:

Waiting for build to start...
Picked Git content provider.
Cloning into '/tmp/repo2dockeruxnjeh13'...
HEAD is now at 51aa09a Julia 1.0 style Project.toml via gen_project.jl
Building conda environment for python=3.7Error during build:  0.6.0 is not valid SemVer string

Should be on 1.x ?

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

JOSS review: readme

These are just a few minor suggestions accompanying the review, they don't need to hold up the publication.

  • it is common to put all of the badges at the top of the readme (where you have the build and coverage), I would suggest including the badge for the docs there as well.
  • do you have an example that runs on JuliaBox? https://www.juliabox.com/. I tried getting the package to build there, but the build failed. This might be a helpful way to get people up and running, but again, it is not required for the JOSS submission

Update documentation for v2

Documentation has been touched for years!
Probably this will also be in concert with a code-clean.

  • get Documenter.jl working under CI, so it builds
  • Fix bug where the sidebar has blank titles
  • Update README on /docs subfolder
  • Update docs ^)_(^

Type instability in the Polaron type

This is very messy, and should be refactored. I think it also ends up as type Any which is not great for efficiency.

# Structure to store data of polaron solution + other parameters, for each temperature
struct Polaron
T
# Mobilities
Kμ; Hμ; FHIPμ
# Spring constant and renormalised (phonon-drag) mass
k; M
# Osaka free energy components (A,B,C) and total (F). See Hellwarth et al. 1999 PRB Part IV
A; B; C; F
# Relaxation time from Kadanoff Boltzmann transport equation
Tau
# Raw variational parameters
v; w
# Reduced thermodynamic beta
βred
# Feynman polaron radius (Schultz), in SI units. Then also the small-alpha asymptotic approx
rfsi; rfsmallalpha
# Setup of simulation. These parameters are sent to the function.
# Alpha = Frohlich alpha
α
# Band effective mass
mb
# Effective dielectric frequency
ω
end
Polaron()=Polaron([],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]) # structure initialisation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.