Skip to content

Should all properties be equal?Β #15

@mbercx

Description

@mbercx

Currently, the StructureData is completely defined as a list of properties (as explained here):

  • global:
    • cell
    • periodic boundary conditions (PBC)
  • site:
    • positions
    • symbols
    • masses
    • charge
    • magnetization - Coming soon!
    • Hubbard U parameters - Coming soon!
  • inter-site:
    • Hubbard V parameters - Coming soon!

I understand the appeal of this, and maybe it's the way to go. Part of me is still wondering if all properties should be equal, i.e. if some properties should receive special treatment (cell, pbc, positions, ...). Thinking of @mikibonacci's question here, I'd prefer to still be able to access the cell as structure.cell, not as:

structure.properties.cell

which then outputs a Cell object:

Cell(parent=<StructureData: uuid: 2f9fc6f5-e3a6-4811-89d6-41015b5f50b4 (unstored)>, domain='global', value=[[3.5, 0.0, 0.0], [0.0, 3.5, 0.0], [0.0, 0.0, 3.5]])

If I want to look at the cell, I'd just want to have structure.cell return a list of list or numpy array. I don't want to have to deal with the Cell object and then figure out how to get the cell vectors from this.

That said, other tools like pymatgen and ASE also have their own "cell" variants (Structure -> Lattice; Atoms -> Cell). And I can see how Cell.value lets you get what you desire. So maybe I'm just ranting for no reason here. Will think about it some more as I'm dogfooding.

EDIT: I think I may have managed to derail the conversation from my original point immediately in the same post. I insta-"Mr. Scope creeped" myself. πŸ˜…

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions