GithubHelp home page GithubHelp logo

Cut the supercell from GULP about sisl HOT 10 CLOSED

zerothi avatar zerothi commented on June 4, 2024
Cut the supercell from GULP

from sisl.

Comments (10)

zerothi avatar zerothi commented on June 4, 2024

When cutting you should do it in opposite order of the tiling, for instance.

from sisl.

KitchenSong avatar KitchenSong commented on June 4, 2024

I wonder how to make tile work in this case. In current situation, I have not used tile at all. Maybe I am wrong...

from sisl.

zerothi avatar zerothi commented on June 4, 2024

Then yes, you are doing it wrong.

Think that:

g = sisl.geom.graphene()
gxyz = g.tile(4, 0).tile(3, 1).tile(2, 2)
G = gxyz.cut(2, 2).cut(3, 1).cut(4, 0)
assert np.allclose(g.xyz, G.xyz)

I.e. your input geometry in GULP must come from the tiling routine.

from sisl.

zerothi avatar zerothi commented on June 4, 2024

As for the optimization flag. No, that will prevent the cut method to extract supercell connections as the atomic coordinates will not be translational invariant. You should, however, do an optimization before tiling the structure for extracting the dynamical matrix.

from sisl.

KitchenSong avatar KitchenSong commented on June 4, 2024

I am following your suggestions: using tile first. But when doing those tiling operation, how to keep track of the atom species information?

from sisl.

zerothi avatar zerothi commented on June 4, 2024

What do you mean? The sisl geometry keeps track of everything for you?

from sisl.

KitchenSong avatar KitchenSong commented on June 4, 2024

Here is how I try to do it:

I first run a GULP calculation for a small cell.

Then I read the geometry and generate the supercell using
gxyz = geo1.tile(3, 0).tile(3, 1).tile(3, 2) leftpos = gxyz.xyz

What you suggests is that in the variable leftpos, there is no longer more atom species information?

from sisl.

zerothi avatar zerothi commented on June 4, 2024

I don't get what you mean? gxyz contains all species informations.
How would you want the species?

gxyz = geo1.tile(3, 0).tile(3, 1).tile(3, 2)
# gxyz contains species information!
leftpos = gxyz.xyz
species = [atom.symbol for atom in gxyz.atom]

For further details look for the Atoms and Atom class in the sisl documentation.

from sisl.

KitchenSong avatar KitchenSong commented on June 4, 2024

Well, I think you just answered my question. Sorry for the confusion.

from sisl.

zerothi avatar zerothi commented on June 4, 2024

Great!

from sisl.

Related Issues (20)

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.