Git Product home page Git Product logo

z2pack's People

Contributors

bfocassio avatar dependabot[bot] avatar greschd avatar nils-wittemeier 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

z2pack's Issues

questions about the surface definition

First, I think there is an mistake in the website (http://z2pack.ethz.ch/doc/2.0/tutorial_surface.html#basic-syntax) about the equation

f(t1,0)=f(t2,1) +G , here, I think t2 should be t1.

Second, when I want to calculate Z2 with vasp, I define the surface with
surface=lambda s, t: [s, t/2, 0]
There is an error

ValueError: The k-points must be aligned in (positive) kx-, ky- or kz-direction for VASP runs.

Otherwise, when I try surface=lambda s, t: [t, s/2, 0] there is no error

I was quite confusing about the surface definition, which is written
surface=lambda t1, t2: [t1, t2, 0]

As the tutorials says, t2 is the direction Wannier charge centers are calculated. So the order of t1, t2 is quite important . So how can I USE the surface definition properly?

use io_helper

use fsc.io_helper (when done) for saving / loading.

Change gap_tol behaviour

gap_tol should be relative to the largest gap, s.t. it doesn't depend as much on the number of WCC

Add a check for the number of WCC

Check if the number of WCC is consistent across different lines in a surface. Add a log entry which states the number of WCC for both surface and line.

Check for closed loop in line calculation

Check whether the k-points form a closed loop when doing the line calculation. The same check is now done in fp.kpoint (only affects fp calculations), and can probably be removed there.

Update all examples

  • em - haldane
  • em - weyl
  • tb
  • fp - Bi ABINIT
  • fp - Bi Espresso
  • fp - Bi VASP
  • fp - generic

Surface test

Add tests for run_surface, and "full feature" tests that test the output of a full calculation.

make sure API is consistent

go through all public functions and make sure the naming / conventions are consistent. Example: what should be done about kpt_fct, kpt_file in fp.System, since the kpoint module is called fp.kpoint.

Change iterator behaviour to not enforce the minimum number of steps?

Should the iterator be a ConvergenceControl enforcing that at least the first number N is calculated, or not?

  • what happens if pos_tol is not given?

Scenario: In a restart, I want to start the iterator at a higher value because the "new" lines are more likely to start higher.

Line test

Expand test_line_run to feature some non-trivial examples

Logging

Create a logging system (using Python's logging module) to track the progress of the computation.

Test plots

Write tests for the different plotting functions. Directly compare the output .pdf's if possible.

QE: add functionality for curved surfaces?

Check what it takes for QE to be compatible with curved surfaces. Is it possible with the current version of Wannier90?

Check Gabriel's modified version for spheres. If a general surface is not possible, could it be possible to calculate just spheres (automatically)?

Test coverage: cover everything before 2.0 release

Core functionality

  • OverlapSystem
  • EigenvalSystem
  • Line run
  • Surface run
  • Line saving
  • Surface saving
  • Line restart (from file, from result)
  • Surface restart (from file, from result)
  • Invariants
  • Plots

Effective models

  • Base em
  • Tight-binding

First-principles

  • Base fp
  • Abinit
  • VASP
  • QE

Test run with given previous result

Test run with a given previous result, both explicit and by a file. Also test the quiet / non-quiet loading, and that they raise the right errors when something goes wrong.

Convergence report

Add a way to access the convergence report from the Result. Maybe make two subclasses SurfaceResult, LineResult that handle the creation of the convergence report differently.

Make build_folder a tempdir

Is it necessary to have the option of having the build folder as a function? The code could be simplified otherwise.

Serializer

Fix serializer or revert to just using Pickle -- this may reduce complexity.

Make old documentation versions available

Old versions of the documentation should be available on the website. Ideally via a python-doc style drop-down menu, but a link which leads to a site listing all versions is also acceptable.

This is required for v.2 because the new version breaks backwards compatibility, meaning that some people may wish to remain with the old version. The latest version of the 1.x documentation should thus always be available.

the z direction in 2D mateirlas

Does the z direction in 2D materials will result in the error:
"No overlap matrices were found. Maybe switch from shell_list to search_shells in wannier90.win or add more k-points to the string."

for the the c direction is about 30 A, which make the system a thin unit cell?

fp: Add tests for the k-point path, adapt to new syntax

Adapt the fp Systems to work with the new syntax of specifying the plane. They should be able to detect whether it is possible with the given backend (VASP, QE etc.) to compute this type of surface, and should convert from the new syntax (surface as a 2-parameter function) into their format.

EigenvectorSystem

Create two types of System OverlapSystem (the "traditional" System) and EigenvectorSystem which takes eigenvectors (periodic part u -- see test_mmn branch) instead.

Correspondingly, LineData should come in two flavors. Probably it's easiest to set up the "AdvancedLineData" as a subclass of the "traditional" LineData (names TBD), such that the overlap is just another computed attribute, and the setattr is changed s.t. now it deletes calculated attrs on change of the eigenvectors, not the overlaps. Alternatively the design could be such that overlaps / eigenvectors are not allowed to be changed.

Functions using AdvancedLineData can go by Duck Typing, throwing a (preferrably nice) Error when the eigenvectors are not present.

Is single update working on re-load?

Investigate what the new "single update" in the line's run.py does when the line existed before, but no convergence controllers are available.

Z2pack for 2D systems using VASP

Hello,

I trying to use Z2pack to get WCC evolution curves for a 2D graphene-like system, calculated with VASP.
To understand how Z2pack work I tried to compute the example Bi_vasp but got some errors with the module z2pack.surface.plot.wcc :

Traceback (most recent call last):
File "run.py", line 50, in
z2pack.surface.plot.wcc(result_0, axis=ax[0])
AttributeError: module 'z2pack.surface' has no attribute 'plot'

Removing the word surface (z2pack.plot.wcc ) the module works but the figure does not look like the one in the folder plot, the open circles do not appear, only the blue diamonds show up.

The same error holds for z2pack.surface.invariant.z2 module.

Some idea why this is happening?

Also, if possible, could you give an example of a run.py file to plot the WCC curves for a 2D systems?

Thank you

Filipe Matusalem

Documentation Update for v.2

Update documentation to the many changes between v.1 and v.2

  • Update all docstrings
    • Line Calculations
    • Surface Calculations
    • Invariants
    • Plotting
    • Helper Modules
      • I/O
      • Shape
    • First - Principles Systems
    • k.p (effective) Models
    • Tight - Binding Models
    • Other Systems / Models
  • Update Tutorials
    • What's new
    • Installation
    • Creating a System
    • Calculating a Surface
    • Calculating Invariants
    • Plotting
  • Update Examples, make sure all examples work
  • Add examples to show off the new features โ†’ new issue
  • Add a tutorial page for "other systems" which describes the interface of OverlapSystem and EigenstateSystem (+ link to the base class documentation)

Change "bands" behaviour in effective Models

Add the possibility to choose which states are taken into consideration, instead of just taking the lower-energy ones. It should be possible to

  1. give just the number of occupied states (as before) EDIT: done
  2. give a list of indices for which states (by energy) should be considered EDIT: done
  3. give a function which evaluates (based on the eigenstates and eigenvalues?) which to consider

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.