CrystOD#
CrystOD draws crystal-orbital diagrams: it takes a crystal structure and shows how the atomic orbitals combine — with full space-group symmetry labels — into the crystal orbitals at each k point, exactly the way a molecular-orbital diagram explains a molecule. Around this core it provides a complete symmetry toolbox: Symmetry-Adapted Linear Combinations (SALCs), basis functions, phonon irreducible representations, symmetry-adapted vibrations/modulations, magnetic (spin) multipole bases, direct products, isotropy subgroups, and group representation theory.
Four outputs, each linked to its section. Top row: the crystal-orbital diagram
of ScF3 (crystod --diagram -c 221_PPOSCAR_ScF3 --co-left Sc --co-right F3)
and the phonon irreps of SrTiO3 drawn on a phonopy dispersion
(crystod-phonon --irreps -c 221_PPOSCAR_SrTiO3 --dim "4 4 4"); bottom row: the
Brillouin zone of ScF3 (crystod-bz -c 221_PPOSCAR_ScF3) and the MO
diagram of CH4 (crystod-mol --diagram --xyz XYZ_CH4.xyz). Every one
of these inputs is bundled with the package, so each runs right after
pip install CrystOD — see the “Try it” column below.
CrystOD at a glance#
Not sure what an “orbital diagram for a crystal” means? Play with the toy model first, then look at the real outputs below — everything shown is generated by CrystOD itself.
1. The idea — from a molecule to a crystal (interactive toy model):
Open the simulator full-screen
2. A real molecule — the NH3 molecular-orbital diagram
(crystod-mol --diagram --xyz XYZ_NH3.xyz); the only thing you need is XYZ file! Hover the levels for the orbital sketches:
Open the NH3 MO diagram full-screen
3. A real crystal — the same construction for ScF3
(crystod --diagram -c 221_PPOSCAR_ScF3 --co-left Sc --co-right F3, or
crystod --example ScF3_diagram): Sc and F3
sublattice orbitals on the sides, the crystal orbitals with their
irreducible-representation labels in the middle, one page per special k point:
Commands#
The package is organized phonopy-style: one main command plus one sectioned command per research domain.
Command |
Domain |
|---|---|
|
crystal-orbital SALC analysis (main command), |
|
point/space-group representation-theory calculator |
|
Brillouin-zone plots (unit cell and supercell folding), special-k-point tables |
|
phonon analyses (irreps, fatband, LT bands, eigenvectors, modulation, vibration, subgroups of imaginary modes) |
|
symmetry-adapted spin bases (cluster multipoles / SAMM) |
|
MD-trajectory analyses (ADPs, lattice summary) |
|
molecular point groups, molecular SALCs, and MO diagrams (XYZ files) |
|
powder X-ray diffraction patterns (Bragg peak list and broadened pattern) |
|
Materials Project search (formula, chemical system, elements, ID) and POSCAR download |
Every feature carries a shared section number used consistently across this
documentation, testsuite.py, and the example/ directories of the repository:
feature N is tested by python testsuite.py N and demonstrated in example/<N>_*.
What you can ask CrystOD#
Every command prints its answer to the terminal; the ones that draw something
also write a standalone HTML page, a PDF, or a VESTA file. A POSCAR (or an XYZ,
or nothing at all) is the only input, and crystod-search fetches the POSCAR of
any compound of the Materials Project. The “Try it” column holds the bundled
example closest to each question: --example NAME copies the input files into
the working directory, prints the equivalent ordinary command line and runs it
(--example alone lists the names).
Question |
Command |
Try it |
Section |
|---|---|---|---|
Which irreps does this shell span at each k point? |
|
|
|
Which orbitals are allowed to hybridize here? |
|
||
What does the orbital diagram of this crystal look like? |
|
|
|
… and its band structure and DOS? |
|
||
What do these SALCs look like in 3D? |
|
||
What is |
|
||
Which space group does this distortion give? |
|
||
What are the multi-electron terms of (t2g)³? |
|
||
How does the observed structure differ from its parent? |
|
||
What does this Brillouin zone look like? |
|
|
|
Which irrep is each phonon mode? |
|
|
|
Which phases can this unstable phonon reach? |
|
|
|
Which magnetic orders are symmetry-allowed? |
|
||
What are the ADPs of my MD run? |
|
||
What is the MO diagram of this molecule? |
|
|
|
What powder XRD pattern does this structure give? |
|
|
|
Where do I get a POSCAR of this compound? |
|
|
|
Can I call all of this from Python? |
|
||
Can an LLM assistant run these analyses for me? |
|
Getting started
Tutorials
Commands
- crystod (main command)
- crystod-group
- 7. Direct products (
--product) - 8. Representation decomposition (
--decompose) - 9. Ligand-field splitting (
--ligand-field) - 10. Basis functions (
--basis) - 11. Basis-function generation (
--generate-basis) - 12. Coset decomposition (
--coset) - 13. Isotropy subgroups (
--parent) - 14. Multi-electron terms (
--multiplet) - 15. POSCAR <-> CIF (
--poscar2cif/--cif2poscar) - 16. Symmetry-mode analysis (
--supergroup-cif)
- 7. Direct products (
- crystod-bz
- crystod-phonon
- crystod-mag
- crystod-md
- crystod-mol
- crystod-xrd
- crystod-search
Theory
- Theoretical background
- How the orbital diagrams are computed
- How the molecular-orbital diagram is built (extended-Hückel engine)
- Why ghost atoms? The basis-set superposition error (BSSE)
- Two conventions that keep the molecular fragment columns honest
- How the crystal-orbital diagram is built (extended-Hückel engine)
- Ghost atoms, cell neutrality and the deep-level alignment (crystal
--pyscf) - Why
--onsitetakes the fragment columns from the crystal Fock - What the composition percentages mean (Löwdin vs Mulliken)
- Why a valence level can look antibonding (
--valence-only) - What the crystal-orbital regression test asserts
- References for the extended-Hückel construction
- Order parameters and isotropy subgroups
Python API
Integrations
Reference
Citation#
If you use CrystOD in your research, please cite:
H. Koiso, S. Yoshida, T. Nagai, T. Isobe, A. Nakajima, and Y. Mochizuki, “Thermal expansion and phase stability of BF3 (B = Sc, Y, La, Al, Ga, In) from first principles”, Physical Review B 110, 064104 (2024).
Contributors#
Yasuhide Mochizuki — Tokyo University of Science
Hiroki Koiso — Institute of Science Tokyo
License#
MIT License



