Sisl

From ESL
Jump to navigation Jump to search
{{#if: Nick Papior |

Source authors:
Nick Papior

}}{{#if: LGPL |

License: LGPL

}}{{#if: sisl |

Download: sisl

}}{{#if: Documentation |

Documentation: Documentation

}}{{#if:
  • Geometry creation, interact with output from DFT codes, create tight-binding parameters for transport
  • Scripting
  • Pre-processing
  • Post-processing
  • |

    Links to other ESL entries

    | {{#if: |

    Links to other ESL entries

    | {{#if: |

    Links to other ESL entries

    | {{#if: |

    Links to other ESL entries

    |{{#if:
  • Python 2/3
  • fortran
  • |

    Links to other ESL entries

    | {{#if: |

    Links to other ESL entries

    |}}}}}}}}}}}}{{#if:
  • Geometry creation, interact with output from DFT codes, create tight-binding parameters for transport
  • Scripting
  • Pre-processing
  • Post-processing
  • |

    Functionalities:

    }}{{#if: |

    Algorithms:

      {{{algorithms}}}

    }}{{#if: |

    Generic interfaces:

      {{{generic interfaces}}}

    }}{{#if: |

    APIs:

      {{{apis}}}

    }}{{#if:
  • Python 2/3
  • fortran
  • |

    Data standards:

    • Python 2/3
    • fortran

    }}{{#if: |

    Software:

      {{{software}}}

    }}

    sisl lets you interact with DFT codes (primarily siesta). Furthermore it interfaces a generic tight-binding utility to create Hamiltonians meant for transport calculations in tbtrans (part of the TranSIESTA package) as well as interfacing to more generic emperical potential codes such as GULP.

    It is primarily written in Python and may be used in both Python 2 and Python 3 environments.

    Geometry creation

    Creation of geometries is very easy and a subset of generic lattices are existing:

    import sisl
    graphene10x10 = sisl.geom.graphene().repeat(10, 0).repeat(10, 1)
    graphene10x10.write('graphene10x10.xyz')
    

    which creates an xyz file with a 10x10 basic unit cell of graphene.


    Wavefunction expansions

    Among one of the utilities accompanying the sisl suite is the ability to produce real-space plots of the wavefunctions. Currently this works intrinsically by reading the Hamiltonian and diagonalizing it:

    import sisl
    H = sisl.get_sile('RUN.fdf').read_hamiltonian() # also reads basis set information etc.
    es = H.eigenstate() # calculate the eigenstates at Gamma
    grid = sisl.Grid(0.05, sc=H.geom.sc)
    es.sub(10).psi(grid) # plot the 11th wavefunction on the grid.
    grid.write('wavefunction_11.cube') # write to Cube file