Greetings Matter Modeling,

I'm researching carbon capture dynamics in the context of sorbent regeneration.

The UN IPCC Net-Zero goal requires 75 Mt-CO₂/year captured by 2030. According to the IEA, we are capturing roughly 0.01 kt-CO₂/year (0.000133%).


I'm attempting to analyze contributions from various vibrational modes in Calcite under different conditions. The goal of my research is to eliminate pyroprocessing from calcination. This is a major contributor to global climate change, producing 8% of global emissions. The reactions are highly inefficient, resulting in 45% energy losses to the surrounding environment. Through 2060, we are expected to pour enough concrete to rebuild New York City every month.

Calcination is also used in regenerating Direct Air Capture (DAC) sorbents. Currently, Heirloom Carbon is the only active carbon capture facility in the US. Carbon Engineering's technology being built in Texas called Stratos also uses calcination in their regeneration technology. These reactions are 80% thermal energy; 20% electrical. The state-of-the-art relies on burning fossil fuels to achieve high-temperatures, which damage sorbents after multiple cycles. Carbonation relies on microporous structures to facilitate Knudsen diffusion.


I'm currently attempting to calculate force constants for mp-3953: Calcite. The literature I've reviewed indicate B3LYP provides the most accurate results. Calcium Carbonate undergoes a temperature-dependent, polymorphic, phase transition during heating.

A unit cell of Calcite contains 10 atoms. I have a script for a supercell of 1,000 atoms, which is reported to accurately calculate the thermal conductivity by equilibrium MD simulations. MD, GK, and other modeling are planned at a later date.

Some of the literature I've reviewed indicates that multiple basis sets are required for the Carbon, Oxygen, and Calcium atoms.


The code does not converge after several hundreds of cycles using UKS. The system converged using RHF, however this is not considered accurate due to the delocalized electrons and overestimation of vibrational

Energy variations corresponding to displacements considered here (0.001 Å) are on the order of magnitude 10⁻⁶ –10⁻⁷ Hartree, the SCF cycle needs to be very well converged (10⁻¹⁰ Hartree).

# Import necessary PySCF and pymatgen modules
from pyscf import gto, dft, scf
from pyscf.scf import addons
from pymatgen.io.cif import CifParser

# Parse the CIF data
parser = CifParser("/home/phill/Desktop/Scripts/Quantum/CaCO3.cif")
structure = parser.get_structures()[0]

# Define the molecule
mol = gto.Mole()
mol.atom = [[str(site.specie), site.coords.tolist()] for site in structure]
mol.basis = 'cc-pvdz'
# mol.symmetry = True
mol.verbose = 4

# Define the DFT method
method = dft.UKS(mol).newton()  # Use the Newton-Raphson method for Unrestricted Kohn-Sham
method.xc = 'B3LYP'
method.max_cycle = 2000

# Compute the ground state energy
energy = method.kernel()

# Optimize the geometry of the molecule
opt = scf.UKS(mol).newton().run()

# Compute the vibrational frequencies
from pyscf.hessian import UKS as UKS
hessian = UKS.Hessian(opt)
freqs = hessian.kernel()

# Compute the force constants
force_constants = hessian.hess()

# Print the results to the console
print('Ground state energy: {} a.u.'.format(energy))
print('Vibrational frequencies: {} cm^-1'.format(freqs))
print('Force Constants: {} a.u.'.format(force_constants))
  • $\begingroup$ It looks like you're doing a molecular cluster calculation on a system which should be in bulk. $\endgroup$ Dec 13, 2023 at 6:48


You must log in to answer this question.