E10: Constant Potential Method (CPM)
Module: sci_form::experimental::cpmFeature flag: experimental-cpm
Overview
Extends charge and electronic property calculations by coupling the molecule to a "virtual electrode" at electrochemical potential
Theory
Grand Potential
The grand potential functional couples electronic energy with the electrode potential:
Minimizing with respect to charges
Charge Equilibration at Fixed
The SCF iteration solves:
with damped update (50/50 mixing) and Coulomb interaction:
Electrochemical Energy Surface
Scanning
computed via finite differences over the
API
use sci_form::experimental::cpm::*;
// CPM charges at a given potential
let config = CpmConfig {
mu_ev: -4.44, // SHE reference (eV)
dielectric: 78.5, // water
max_iter: 100,
charge_tol: 1e-6,
};
let result = compute_cpm_charges(&elements, &positions, &config);
// result.charges: Vec<f64>
// result.total_charge: f64
// result.grand_potential: f64
// result.converged: bool
// result.iterations: usize
// Electrochemical surface scan
let surface = compute_cpm_surface(&elements, &positions, mu_min, mu_max, n_points, dielectric);
// surface.mu_values: Vec<f64>
// surface.total_charge: Vec<f64>
// surface.free_energy: Vec<f64>
// surface.capacitance: Vec<f64>Potential Scale
| Reference | |
|---|---|
| SHE (Standard Hydrogen Electrode) | |
| +1 V vs SHE | |
| -1 V vs SHE | |
| Typical scan range |
Applications
- Quantum capacitance of molecular electrodes
- Redox potential estimation:
- Conformer ranking under electrochemical bias
- Charge response analysis for molecular electronics
Tests
cargo test --features experimental-cpm --test regression -- test_cpm8 integration tests covering: charge equilibration convergence, total charge response to potential, monotonic charge-potential relationship, grand potential computation, capacitance positivity, electrochemical surface scanning, solvent dielectric effects, and multi-element systems.