Skip to main content

Dft Data Processing Core

Project description

DDPC - DFT Data Processing Core

codecov PyPI version Python 3.12+ License: MIT

DDPC is a Python library for processing and analyzing density functional theory (DFT) calculation data. It provides a unified interface for reading, writing, and manipulating crystal structures, electronic band structures, and density of states data from various DFT codes including VASP, DS-PAW, and RESCU.

Status: Early stage development. API may change.

API Documentation

Features

  • Universal structure I/O for multiple formats (VASP, DS-PAW, RESCU, CIF, XYZ)
  • Electronic structure data processing (band structure, density of states)
  • Structure manipulation utilities (primitive cell, orthogonal supercell)
  • Full type annotations
  • Command-line interface

Quick Start

Installation

pip install "ddpc[full]"

Basic Usage

Structure I/O

from ddpc import read_structure, write_structure

# Read crystal structure from various formats
atoms = read_structure("input.vasp")  # VASP POSCAR
atoms = read_structure("structure.as")  # DS-PAW format
atoms = read_structure("crystal.cif")   # CIF format

# Write to different formats
write_structure("output.vasp", atoms)
write_structure("structure.xyz", atoms)

Electronic Structure Analysis

Currently only support DS-PAW output hdf5/json format, will support others in the future.

from ddpc import read_band, read_dos

# Read band structure data
df_band, fermi_energy, has_projections = read_band("band.h5", mode=5)
print(f"Fermi energy: {fermi_energy:.3f} eV")

# Read density of states
df_dos, fermi_energy, has_projections = read_dos("dos.json", mode=1)

Structure Utilities

from ddpc import find_primitive, find_orthogonal, scale_positions
from ddpc import read_structure, write_structure

# Find primitive cell
atoms = read_structure("input.vasp")
prim = find_primitive(atoms, symprec=1e-5, angle_tolerance=-1.0)
write_structure("primitive.vasp", prim, format="vasp")

# Create orthogonal supercell
orth = find_orthogonal(atoms, min_length=15.0, max_length=20.0)
write_structure("ortho.vasp", orth, format="vasp")

# Convert to fractional coordinates
scaled = scale_positions(atoms)
write_structure("scaled.vasp", scaled, format="vasp", direct=True)

Command-Line Interface

Structure Commands

# Convert structure formats
ddpc structure convert input.vasp output.cif

# Show structure information
ddpc structure info input.vasp

# Find primitive cell
ddpc structure primitive input.vasp -o primitive.vasp

# Find orthogonal supercell
ddpc structure orthogonal input.vasp -o ortho.vasp

# Convert to fractional coordinates
ddpc structure scale input.vasp -o scaled.vasp

Data Commands

# Read band structure data
ddpc data band read band.h5 -o band_data.csv

# Show band structure info
ddpc data band info band.h5

# Read DOS data
ddpc data dos read dos.json -o dos_data.csv

# Show DOS info
ddpc data dos info dos.json

Supported Formats

Crystal Structures

  • VASP: POSCAR/CONTCAR files
  • DS-PAW: Custom .as format with constraints and magnetism
  • RESCU: Extended .xyz format with magnetic moments
  • Standard formats: CIF, XYZ, and other ASE-supported formats

Electronic Structure Data

  • HDF5 files: Band structure and DOS data from DFT calculations
  • JSON files: Alternative format for smaller datasets
  • Projected data: Orbital-resolved band structures and DOS

Advanced Features

Constraint Handling

DDPC preserves and processes atomic and lattice constraints from specialized DFT codes:

# DS-PAW format with constraints
atoms = read_structure("constrained.as")
print(atoms.info)  # Shows constraint information

Magnetic Systems

Support for both collinear and non-collinear magnetic systems:

# Read magnetic structure
atoms = read_structure("magnetic.xyz")
print(atoms.get_initial_magnetic_moments())

Data Processing Modes

Multiple projection modes for electronic structure analysis:

# Different projection modes for band structure
df, ef, proj = read_band("band.h5", mode=1)  # Element-resolved
df, ef, proj = read_band("band.h5", mode=2)  # Orbital-resolved (s,p,d,f)
df, ef, proj = read_band("band.h5", mode=5)  # Detailed orbital projections

License

MIT License - see LICENSE file for details.

Changelog

v2025.12.09

Recreate this package.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ddpc-2025.12.9.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ddpc-2025.12.9-py3-none-any.whl (36.3 kB view details)

Uploaded Python 3

File details

Details for the file ddpc-2025.12.9.tar.gz.

File metadata

  • Download URL: ddpc-2025.12.9.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ddpc-2025.12.9.tar.gz
Algorithm Hash digest
SHA256 f838b37ce119fefb8a6b09c669e7f1e4659ea92300e6b16f733765f1693c1844
MD5 90f793dbaad648d0be34612babf5edcb
BLAKE2b-256 f6e980fec5e897014ee03032d9fe80abb56796bad7d09aed839a01455072b1af

See more details on using hashes here.

Provenance

The following attestation bundles were made for ddpc-2025.12.9.tar.gz:

Publisher: ci.yml on xbugs221/ddpc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ddpc-2025.12.9-py3-none-any.whl.

File metadata

  • Download URL: ddpc-2025.12.9-py3-none-any.whl
  • Upload date:
  • Size: 36.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ddpc-2025.12.9-py3-none-any.whl
Algorithm Hash digest
SHA256 3057cea3f786cceac8066e1cc5c2c4ad0bdebfa95177f993333c1cad94c7e7ea
MD5 75cc0b0eb0e2a5db9afa53f1fd8a3ba7
BLAKE2b-256 d8fb526ae66ee7a3774fb2def60f083d7538b8b4c7bf34843d06bad696e7e316

See more details on using hashes here.

Provenance

The following attestation bundles were made for ddpc-2025.12.9-py3-none-any.whl:

Publisher: ci.yml on xbugs221/ddpc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page