Molecular Orbitals¶
Molecular orbital files contain the coefficients that define how molecular orbitals (MOs) are constructed as linear combinations of atomic orbitals (AOs). These files specify the LCAO (Linear Combination of Atomic Orbitals) coefficients that transform the atomic basis into molecular orbitals used to build the Slater determinant wavefunction.
Overview¶
In quantum Monte Carlo, the trial wavefunction is constructed from molecular orbitals:
where: - \(\phi_i(\mathbf{r})\) is the i-th molecular orbital - \(\chi_j(\mathbf{r})\) are atomic orbitals - \(C_{ji}\) are the LCAO coefficients stored in the orbital file - \(N_{\text{AO}}\) is the total number of atomic orbitals
Key Concepts¶
- LCAO coefficients: Matrix elements defining MO construction from AOs
- Occupation: Which MOs are filled in the reference configuration
- Ordering convention: Atomic orbitals follow TREXIO alphabetical ordering
- Spin-unrestricted: Separate orbital sets for up and down spins (if applicable)
File Format¶
Molecular orbital files (.lcao or .orb extension) are stored in the pool/ directory and are automatically generated by the trex2champ converter.
Basic Structure¶
lcao 226 200 1
-5.234567e-01 4.123456e-02 1.987654e-03 ... (226 coefficients for MO 1)
3.456789e-02 -2.345678e-01 5.678901e-02 ... (226 coefficients for MO 2)
... (remaining 198 rows of coefficients)
end
Format Specification¶
Header line: Dimensions and type
Format: lcao num_ao num_mo motype
lcao= keyword identifying this as an LCAO coefficient filenum_ao= 226: Number of atomic orbitals (basis functions)num_mo= 200: Number of molecular orbitalsmotype= 1
Coefficient matrix: One row per molecular orbital
Each row contains num_ao coefficients:
C(1,1) C(2,1) C(3,1) ... C(num_ao,1)
C(1,2) C(2,2) C(3,2) ... C(num_ao,2)
...
C(1,num_mo) C(2,num_mo) ... C(num_ao,num_mo)
where C(j,i) is the coefficient of the j-th AO in the i-th MO.
Matrix dimensions: [num_mo × num_ao]
- Rows = molecular orbitals
- Columns = atomic orbitals
- For a molecule with N AOs and M occupied/virtual MOs
Final line:
Atomic Orbital Ordering¶
The atomic orbitals follow the TREXIO convention with alphabetical ordering of Cartesian components.
Ordering by Angular Momentum¶
s-orbitals (l=0):
Single component (spherically symmetric).p-orbitals (l=1):
Alphabetical order: px, py, pzd-orbitals (l=2):
Alphabetical order of Cartesian products: d(x²), d(xy), d(xz), d(y²), d(yz), d(z²)f-orbitals (l=3):
Ten Cartesian f-functions in alphabetical order.Multi-shell Example¶
For a basis with multiple shells of the same type:
Four p-type shells:
Each shell contributes three p-orbitals in X, Y, Z order.Two d-type shells:
Each shell contributes six d-orbitals in alphabetical Cartesian order.Full Atom Example¶
Carbon atom with basis: 3s, 2p, 1d shells
AO ordering (15 functions total):
Position breakdown:
- AOs 1-3: s-orbitals (3 shells)
- AOs 4-9: p-orbitals (2 shells × 3 components)
- AOs 10-15: d-orbitals (1 shell × 6 components)
Examples¶
Example 1: Water Molecule (Simple)¶
System: H₂O with minimal basis
- O: 3s, 2p shells → 9 AOs
- H: 2s shells → 2 AOs each
- Total: 9 + 2 + 2 = 13 AOs
- Molecular orbitals: 10 (5 occupied, 5 virtual)
Orbital file (water.lcao):
lcao 13 10 1
-9.876543e-01 1.234567e-01 3.456789e-02 0.000000e+00 0.000000e+00 5.678901e-03 0.000000e+00 0.000000e+00 2.345678e-03 1.987654e-03
2.345678e-02 -8.765432e-01 4.567890e-02 0.000000e+00 0.000000e+00 6.789012e-03 0.000000e+00 0.000000e+00 3.456789e-03 2.876543e-03
3.456789e-03 5.678901e-02 -7.654321e-01 0.000000e+00 0.000000e+00 7.890123e-02 0.000000e+00 0.000000e+00 4.567890e-02 3.765432e-03
0.000000e+00 0.000000e+00 0.000000e+00 -6.543210e-01 4.321098e-02 0.000000e+00 5.432109e-01 3.210987e-02 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 4.321098e-02 -6.543210e-01 0.000000e+00 3.210987e-02 5.432109e-01 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 5.432109e-02 0.000000e+00 -7.654321e-01 6.543210e-02 0.000000e+00 6.789012e-01 0.000000e+00
1.234567e-03 2.345678e-03 3.456789e-03 0.000000e+00 0.000000e+00 8.901234e-02 0.000000e+00 0.000000e+00 5.678901e-02 4.654321e-03
1.234567e-03 2.345678e-03 3.456789e-03 0.000000e+00 0.000000e+00 8.901234e-02 0.000000e+00 0.000000e+00 5.678901e-02 4.654321e-03
2.345678e-03 3.456789e-03 4.567890e-03 0.000000e+00 0.000000e+00 9.012345e-02 0.000000e+00 0.000000e+00 6.789012e-02 5.543210e-03
0.000000e+00 0.000000e+00 1.234567e-02 3.210987e-01 0.000000e+00 0.000000e+00 4.321098e-01 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 1.234567e-02 0.000000e+00 3.210987e-01 0.000000e+00 0.000000e+00 4.321098e-01 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 2.109876e-01 0.000000e+00 0.000000e+00 -3.210987e-01 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 2.109876e-01 0.000000e+00 0.000000e+00 -3.210987e-01 0.000000e+00 0.000000e+00 0.000000e+00
end
Explanation:
- 13 columns (AOs): 9 for O (3s + 6p), 4 for H atoms (2s each)
- 10 rows (MOs): typically 5 doubly-occupied orbitals
- First MO (row 1): core oxygen orbital (large coefficient on O 1s)
- Symmetry reflected in zero coefficients for certain combinations
Example 2: Carbon Dioxide (Linear Molecule)¶
System: CO₂ (linear)
- C: 4s, 3p, 2d shells → 22 AOs
- O: 4s, 3p, 2d shells → 22 AOs each
- Total: 22 + 22 + 22 = 66 AOs
- Molecular orbitals: 50 (22 occupied, 28 virtual)
Orbital file (CO2.lcao):
lcao 66 50 1
-9.123456e-01 2.345678e-01 ... (66 coefficients for MO 1)
1.234567e-02 -8.234567e-01 ... (66 coefficients for MO 2)
... (48 more rows)
end
Loading Molecular Orbitals in CHAMP¶
From TREXIO File¶
The standard approach loads orbitals from the TREXIO file:
%module general
title 'VMC calculation'
pool './pool/'
%endmodule
load trexio $pool/molecule.hdf5
load jastrow jastrow.jas
%module electrons
nup 5
nelec 10
%endmodule
The load trexio command extracts orbital coefficients automatically.
Explicit Orbital Loading¶
For separate orbital files:
Alternative Format (.orb)¶
CHAMP also supports .orb format (identical structure):
The formats are interchangeable.
Generating Orbital Files¶
From TREXIO file¶
CHAMP can directly read the orbitals from the TREXIO file using the load trexio command. This is the recommended approach.
From Quantum Chemistry Codes¶
The trex2champ converter extracts orbitals frßm the TREXIO file:
#!/bin/bash
python trex2champ.py \
--trex molecule.hdf5 \
--basis_prefix "cc-VDZ" \
--geom \
--basis \
--lcao
This creates: - Orbital files for each state - Properly ordered according to TREXIO convention - Consistent with basis set and geometry
Typical workflow:
-
Run quantum chemistry calculation
- Hartree-Fock or DFT for single determinant
- MCSCF/CASSCF for multideterminant
- CCSD for correlated orbitals
-
Export to TREXIO format
- Many codes now support TREXIO
- Handles basis set and orbital transformation
-
Convert to CHAMP format
- Use the
trex2champconverter.
- Use the
Manual Verification¶
Check orbital file validity:
import numpy as np
# Read orbital file
# Read orbital file (rows=MOs, cols=AOs)
data = np.loadtxt('molecule.lcao', skiprows=1, max_rows=-1)
num_mo, num_ao = data.shape
print(f"Number of AOs: {num_ao}")
print(f"Number of MOs: {num_mo}")
print(f"Orbital 1 norm: {np.linalg.norm(data[0, :])}")
Orbital Properties¶
Normalization¶
Molecular orbitals are normalized with respect to the atomic orbital overlap matrix S:
where: - \(\mathbf{C}\) is the coefficient matrix - \(\mathbf{S}\) is the AO overlap matrix - \(\mathbf{I}\) is the identity matrix
Orthogonality¶
MOs are orthogonal in the AO basis metric:
Advanced Topics¶
Natural Orbitals¶
For multideterminant wavefunctions:
- Natural orbitals diagonalize the one-particle density matrix
- Occupation numbers between 0 and 2
- Provide optimal single-particle representation
- Generated by MCSCF or CASSCF calculations
Localized Orbitals¶
Alternative representations:
- Boys localization: Maximize spatial separation
- Pipek-Mezey: Maximize orbital charges on atoms
- Foster-Boys: Minimize overlap between orbitals
Useful for:
- Chemical interpretation
- Reduced correlation effects
- Fragment-based methods
Best Practices¶
File Organization¶
- Store orbital files in current working directory
- Use descriptive names indicating method/basis
Quality Checks¶
- Dimension verification: Ensure num_ao matches basis set
- Orbital count: Verify num_mo ≥ num_electrons/2
- Coefficient ranges: Typical values |C| < 1.0 (not required but common)
- Symmetry: Check expected zero coefficients for symmetric molecules
- Consistency: Verify with quantum chemistry code output
Related Topics¶
- Basis Sets - Atomic orbitals forming the basis
- Basis Pointers - Mapping AOs to radial functions
- TREXIO Files - Source of orbital data
- Slater Determinants - How MOs build the wavefunction
- Wavefunction Optimization - Optimizing orbital parameters
Getting Help¶
- Verify dimensions match basis set exactly
- Check atomic orbital ordering follows TREXIO convention
- Consult Troubleshooting Guide for orbital-related errors
TREXIO Convention
The atomic orbitals in CHAMP orbital files follow the TREXIO alphabetical ordering convention for Cartesian components. This differs from some quantum chemistry codes, but trexio and trex2champ handle all necessary conversions automatically.
Orbital Completeness
Ensure the orbital file contains enough molecular orbitals for your calculation. For correlation methods, include virtual orbitals beyond the occupied set. A good rule of thumb: include at least 2× the number of occupied orbitals.