Characterisation
K-point Optimization
Optimize k-point sampling convergence for electronic structure calculations.
1. Overview
K-point optimization systematically tests different k-point mesh densities to find the optimal balance between computational cost and accuracy for electronic structure calculations. This ensures your DFT calculations are properly converged without unnecessary computational expense.
kpoint.py
from atomict.simulation.kpoint import create_kpoint_exploration
result = create_kpoint_exploration(
project_id="your-project-id",
structure_id="your-structure-id",
structure_type="userupload",
k_point_min=2,
k_point_max=8,
evenly_spaced=True,
action="DRAFT"
)
2. Creating K-point Explorations
2.1 Basic Configuration
kpoint.py
from atomict.simulation.kpoint import create_kpoint_exploration
# Basic k-point exploration with default range (3-6)
result = create_kpoint_exploration(
project_id="your-project-id",
name="K-point Convergence Test",
structure_id="your-structure-id",
structure_type="userupload",
action="DRAFT"
)
exploration_id = result["id"]
2.2 Custom Parameters
Configure specific k-point ranges and spacing:
kpoint.py
# Custom k-point range with evenly spaced points
result = create_kpoint_exploration(
project_id="your-project-id",
name="Custom K-point Range",
structure_id="your-structure-id",
structure_type="userupload",
k_point_min=2,
k_point_max=8,
evenly_spaced=True,
action="LAUNCH",
extra_kwargs={"selected_cluster": "your-cluster-id"}
)
2.3 Structure Source Types
K-point optimization supports multiple structure sources:
| Structure Type | Description |
|---|---|
"userupload" | User-uploaded CIF files |
"mlrelax" | Output from ML relaxation |
"fhiaims" | Output from FHI-aims calculation |
kpoint.py
# Using ML relaxation output
result = create_kpoint_exploration(
project_id="your-project-id",
structure_id="mlrelax-structure-id",
structure_type="mlrelax",
action="DRAFT"
)
3. Convergence Analysis
Create analysis to determine optimal k-point density:
kpoint.py
from atomict.simulation.kpoint import create_kpoint_analysis
# Create convergence analysis
analysis = create_kpoint_analysis(
project_id="your-project-id",
name="K-point Convergence Analysis",
exploration_id=exploration_id,
convergence_threshold=0.001 # Energy convergence criterion (eV)
)
analysis_id = analysis["id"]
3.1 Retrieving Results
kpoint.py
from atomict.simulation.kpoint import get_kpoint_analysis
# Get analysis results
results = get_kpoint_analysis(analysis_id)
print(f"Optimal k-points: {results.get('optimal_kpoints')}")
print(f"Converged: {results.get('converged')}")
4. Managing Explorations
4.1 Retrieving Exploration Details
kpoint.py
from atomict.simulation.kpoint import get_kpoint_exploration
# Get basic exploration information
exploration = get_kpoint_exploration(exploration_id)
print(f"K-point range: {exploration['k_point_min']}-{exploration['k_point_max']}")
# Include simulation details
detailed = get_kpoint_exploration(exploration_id, include_simulations=True)
print(f"Number of simulations: {len(detailed.get('simulations', []))}")
4.2 Updating Properties
kpoint.py
from atomict.simulation.kpoint import update_kpoint_exploration
# Update exploration metadata
updated = update_kpoint_exploration(
exploration_id,
name="Updated K-point Test",
description="Modified convergence parameters"
)
4.3 Cleanup
kpoint.py
from atomict.simulation.kpoint import delete_kpoint_exploration
# Delete exploration and associated simulations
delete_kpoint_exploration(exploration_id)
5. Parameter Reference
create_kpoint_exploration()
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
project_id | str | Yes | - | Target project UUID |
structure_id | str | Yes | - | Structure UUID |
structure_type | str | Yes | - | Structure source type |
name | str | No | - | Exploration name |
k_point_min | int | No | 3 | Minimum k-point density |
k_point_max | int | No | 6 | Maximum k-point density |
evenly_spaced | bool | No | False | Use even spacing |
action | str | Yes | - | "DRAFT" or "LAUNCH" |
extra_kwargs | dict | No | {} | Additional parameters |
create_kpoint_analysis()
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | str | Yes | Project UUID |
name | str | Yes | Analysis name |
exploration_id | str | Yes | Target exploration UUID |
convergence_threshold | float | No | Energy convergence criterion (eV) |