mat-dft-ferroelectric

SkillDev tools

Calculate the spontaneous ferroelectric polarization across a non-polar to polar structure transition using the Berry Phase method.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the mat-dft-ferroelectric skill

What this skill tells your AI

The instructions your AI receives, as published by learningmatter-mit/atomisticskills in .agents/skills/mat-dft-ferroelectric/SKILL.md and read by ahel’s review.

Goal

To calculate the spontaneous polarization ($P_s$) of a ferroelectric material. Because bulk polarization is a multi-valued quantum quantity (only differences in polarization are well-defined), this skill evaluates the continuous evolution of the Berry phase starting from a high-symmetry (centrosymmetric, non-polar) reference state and progressing via linear interpolation to the low-symmetry (polar) state.

Background

Material spontaneous polarization arises when positive and negative charge centers separate, breaking inversion symmetry. By linearly mixing the atomic positions between a cubic (non-polar) and tetragonal (polar) phase, we calculate the Berry phase for electrons across the geometric path. FerroelectricMaker automates the generation of these intermediate supercells, runs VASP with LCALCPOL=True, and stitches the branches together to avoid quantum jump discontinuities.

Instructions

1. Construct the Ferroelectric Workflow

Use the provided script to generate the sequence of calculation jobs evaluating the polarization across interpolated intermediate structures.

# Env: atomate2-agent
python .agents/skills/mat-dft-ferroelectric/scripts/generate_inputs.py --output ferroelectric_flow.json

2. Job Execution

The default script simply serializes the theoretical Directed Acyclic Graph (DAG) for structural reference. Run it locally via jobflow.run_locally(flow) if VASP is available, or dispatch it to Fireworks.

3. Parse Polarization

The final job merges the electronic polarization and ionic dipoles for each intermediate image, tracing the quantum branches. Extract the total polarization (in $\mu\text{C}/\text{cm}^2$) from the terminal task document.

Examples

Run the example demonstrating the DAG generation for Barium Titanate (BaTiO$_3$).

# Env: atomate2-agent
cd .agents/skills/mat-dft-ferroelectric/examples/BaTiO3
python ../../scripts/generate_inputs.py --output batio3_flow.json

Constraints

  • Environments: Scripts require the atomate2-agent environment.
  • Reference State Requirement: The user must provide both a chemically identical polar and non-polar (reference) structure.
  • Continuous Mapping: The atoms in the polar structure must map one-to-one to the non-polar structure without crossing periodic boundaries incorrectly. Large arbitrary translations will break the Berry phase continuity assumption.

References

  • King-Smith, R. D., & Vanderbilt, D. "Theory of polarization of crystalline solids", Phys. Rev. B, 47, 1651 (1993). DOI

Author: Bowen Deng Contact: GitHub

Signals

GitHub stars
164
Forks
24
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
mat-dft-ferroelectric
Source
github.com/learningmatter-mit/atomisticskills