GithubHelp home page GithubHelp logo

henriquemiranda / phononwebsite Goto Github PK

View Code? Open in Web Editor NEW
83.0 83.0 32.0 8.28 MB

Visualise lattice vibrations

Home Page: http://henriquemiranda.github.io/phononwebsite/

License: BSD 3-Clause "New" or "Revised" License

HTML 6.50% CSS 0.80% Python 17.12% JavaScript 74.77% Gnuplot 0.80%

phononwebsite's People

Contributors

aesku avatar gpetretto avatar henriquemiranda avatar uagaro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

phononwebsite's Issues

Phononwebsite stuck for too-large structures

Thank you very much for this amazing website!

There seems to be a size issue for large structures / yamls / many eigenvectors when uploading custom band.yamls, e.g., if the structure contains 500-1000 atoms. If one clicks "browse" and selects a large band.yaml, the phonon website does not respond at all (not even an error message).

Best,
Roman

Advanced visualisation options

Add an advanced menu with different options to fine tune the visualization.

  1. Change the colours of atomic species
  2. Change the colours or sizes of the arrows
  3. Change the radius of atoms or bonds
  4. Arrow segments, tessellation of the spheres, etc...

setup.py cannot find "phononwebsite"

Hi,

I am hoping to check the phonon displacement patterns from a quantum espresso calculation.

I have downloaded setup.py, or tried using "gh repo clone" to download the scripts. However, setup.py returns "error: package directory 'phononweb' does not exist". "gh repo clone henriquemiranda/phononwebsite" returns "GraphQL: Could not resolve to a Repository with the name 'henriquemiranda/phononwebsite'. (repository)".

Am I missing something here and what should I do to download the files?

Many thanks in advance!

Organize database menus

The list of materials from the different databases should appear in the same list.
There should be a button to select the materials and databases.

Export a POSCAR file

Hello!
Thank you for providing such a great website!
Is it possible to export a POSCAR file? I see you mentioned this function before.
Thank you very much!

negative frequency

Hi,
I find phononwebsite really neat and cool!

I am wondering whether it is possible to show modes with imaginary frequencies.
Sometimes it is very helpful to visualize those eigenvectors.
It seems that phononwebsite can only show modes with positive frequencies.

Selection in degenerate modes

Right now, we can only click a point in the phonon band structure plot. This method is not very good when modes are degenerate.
Is it possible to choose a specific k-point index and band index (like the "Repetitions" box)?

Thank you!

Display of Unit Cell

I have been looking for a method for displaying phonon modes from various packages and your contribution has really impressed me. The ability to easily select the mode ad the position in reciprocal space is fantastic.

Would it be difficult to also display a box showing the unit cell? I realise there are lots of issues as this would probably need to be selected as an option on the interface, but it would help enormously in understanding some of the longer range vibrations, relative to a small unit cell.

Race condition on export gif or webm

The export movie sometimes does not work.
The reason is probably related to some race condition when calling the ccapture external library used to capture the videos.

Improvement on the export displacement

The user can click on any point and generate a POSCAR or a .xsf file with the supercell selected in the visualization displaced according to the phonon mode.
In principle, the supercell should be chosen automatically to be commensurate with the selected phonon mode.
The algorithm is described in the literature and already implemented in many open-source codes, one just needs to translate it to javascript and make it usable from the interface.

Bonding selection

Thanks for addressing the unit cell display so quickly. I have been using your website/code to look at some phonon modes at the gamma point for molecular systems and came across things could perhaps be improved. I attach two yaml files to illustrate what I was trying to do.

band.yaml has the gamma point modes for cysteine. In typical VASP fashion the POSCAR file has atoms in it which break up the molecular bonding in the unit cell. There should be just four molecules in the unit cell.

I generated a cif file from the POSCAR I used and read it into mercury which I used to give 4 molecular structures. Saving this as a cif file I was then able to change the band.yaml file to band_mercury.yaml which now has 4 whole molecule in it. As long as the atom numbering stays the same as in the original then the displacements are still correct.

However, the current method you use for identifying bonds does not identify all of the bonds in this system. I modified vibcrystal.js slightly to accommodate a slightly more flexible bonding algorithm.

 // scale_factor added by JK 
        scale_factor = 1.3
        for (i=0;i<combinations.length;i++) {
            a = combinations[i][0];
            b = combinations[i][1];
            ad = a.position;
            bd = b.position;

            //if the separation is smaller than the sum of the bonding radius create a bond
            length = ad.distanceTo(bd)
            if (length < scale_factor*(covalent_radii[a.atom_number]+covalent_radii[b.atom_number]) || length < this.nndist + 0.2 ) {
                this.bonds.push( [ad,bd,length] );
 // scale_factor added by JK 
        scale_factor = 1.3
        for (i=0;i<combinations.length;i++) {
            a = combinations[i][0];
            b = combinations[i][1];
            ad = a.position;
            bd = b.position;

            //if the separation is smaller than the sum of the bonding radius create a bond
            length = ad.distanceTo(bd)
            if (length < scale_factor*(covalent_radii[a.atom_number]+covalent_radii[b.atom_number]) || length < this.nndist + 0.2 ) {
                this.bonds.push( [ad,bd,length] );

The factor of 1.3 might be a bit large, but it had the correct behaviour for the case I was looking at.

I realise that you probably envisioned looking at phonons for materials with smaller unit cells. But It seemed to me that there are two changes that would benefit the package for molecular systems.

  1. A covalent radius scaling factor to capture bonds that aren't being identified using the standard covalent radii.
  2. An algorithm for identifying whole molecules. This would require more effort and I'm not sure of the best algorithm. As you can see I have a work around at the moment, but it is a bit error prone.

I hope you don't mind these comments. My interest stems from some work I am doing on Infrared and THz absorption in molecular systems. Please have a look at https://github.com/JohnKendrick/PDielec

cysteine.zip

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.