Skip to content

Latest commit

 

History

History
245 lines (179 loc) · 6.66 KB

File metadata and controls

245 lines (179 loc) · 6.66 KB

RECIO-ZeoGen v7.1 (Dual Repulsion Edition) Documentation

Overview

RECIO-ZeoGen v7.1 is an advanced computational tool for generating zeolite structures using dual repulsion force fields and Fourier surface generation techniques. This version implements species-specific repulsion potentials and maintains stoichiometric balance for SiO₂ structures.

Key Features

v7.1 Updates

  • Dual Repulsion Force Field: Differentiates repulsion radii for Si-Si, O-O, and Si-O atom pairs
  • Species-Specific Cutoffs:
    • Si-Si: Strong repulsion when distance < 2.8 Å (normal ~3.1 Å)
    • O-O: Strong repulsion when distance < 2.2 Å (normal ~2.6 Å)
    • Non-bonded Si-O: Repulsion when distance < 1.5 Å
  • Stoichiometric Balance: Enforces edge balance to ensure proper SiO₂ ratio

Architecture

The software consists of three main components:

1. ZeoliteDualRepulsionCalculator

A custom ASE calculator implementing species-specific force fields for zeolite optimization.

2. ZeolitePragmatistV7

The main generator class implementing Fourier surface generation and graph-based structure assembly.

3. Main Execution Script

Handles batch generation and output of zeolite structures.

Dependencies

import numpy as np
import random
from scipy.spatial import cKDTree
from collections import defaultdict
from ase import Atoms
from ase.calculators.calculator import Calculator, all_changes
from ase.optimize import FIRE
from ase.io import write

API Reference

ZeoliteDualRepulsionCalculator

Constructor

ZeoliteDualRepulsionCalculator(bonds_list, r0=1.61, k_bond=15.0, k_rep=15.0)

Parameters:

  • bonds_list: List of bonded atom pairs
  • r0: Target Si-O bond length (default: 1.61 Å)
  • k_bond: Bond force constant (default: 15.0)
  • k_rep: Repulsion force constant (default: 15.0)

Methods:

  • calculate(atoms, properties, system_changes): Calculates energy and forces

ZeolitePragmatistV7

Constructor

ZeolitePragmatistV7()

Key Methods:

generate(run_id)

Main method for generating zeolite structures.

Parameters:

  • run_id: Identifier for the generation run

Returns:

  • atoms: ASE Atoms object of the generated structure
  • msg: Status message with chemical formula and coordination information
_tpms(r, cell_dims, coeffs, t, ani)

Universal Fourier surface generator.

Parameters:

  • r: Position array
  • cell_dims: Cell dimensions [a, b, c]
  • coeffs: Weight coefficients for 6 basis functions [w_P, w_D, w_G, w_IWP, w_Neo, w_2X]
  • t: Threshold parameter
  • ani: Anisotropy parameters [sx, sy, sz]

Returns:

  • Surface value at given position
_sample_weights(rng, mode='mixed')

Intelligent weight sampler for basis function combinations.

Parameters:

  • rng: Random number generator
  • mode: Sampling mode ('pure', 'mixed', 'hybrid')

Returns:

  • Weight array for basis functions

Fourier Surface Basis Functions

The generator supports 6 mathematical basis functions:

  1. Primitive (P): cos(X) + cos(Y) + cos(Z)
  2. Diamond (D): cos(X)cos(Y)cos(Z) - sin(X)sin(Y)sin(Z)
  3. Gyroid (G): sin(X)cos(Y) + sin(Y)cos(Z) + sin(Z)cos(X)
  4. I-WP: 2(cos(X)cos(Y) + cos(Y)cos(Z) + cos(Z)cos(X)) - (cos(2X) + cos(2Y) + cos(2Z))
  5. Neovius (C(P)): 3(cos(X) + cos(Y) + cos(Z)) + 4(cos(X)cos(Y)cos(Z))
  6. Pure 2X (P2): cos(2X) + cos(2Y) + cos(2Z)

Force Field Implementation

Bonding Interactions

  • Harmonic Potential: E = 0.5 * k_bond * (r - r0)²
  • Applied to Si-O bonded pairs only

Repulsion Interactions

  • Soft Sphere Potential: E = k_rep * (rc/r)⁴
  • Species-specific cutoff distances:
    • Si-Si: 2.8 Å
    • O-O: 2.2 Å
    • Non-bonded Si-O: 1.5 Å

Force Capping

  • Maximum force magnitude: 20.0 eV/Å
  • Prevents numerical instabilities during optimization

Generation Algorithm

1. Parameter Sampling

  • Cell dimensions: 10-16 Å (10% chance of 20-35 Å)
  • Fourier weights: Hybrid sampling (30% pure, 70% mixed)
  • Density: 15-100 atoms/ų
  • Threshold and anisotropy parameters

2. Position Sampling

  • Monte Carlo sampling on Fourier surface
  • Minimum Si-Si distance constraint: 2.2 Å
  • Acceptance probability: exp(-(val-t)²/0.5)

3. Graph Construction

  • Initial connectivity: 3 edges per Si atom
  • Dynamic edge balancing to achieve E = 2N
  • Target average coordination: 4

4. Structure Assembly

  • O atoms placed at edge midpoints
  • Stoichiometric SiO₂ ratio maintained
  • Periodic boundary conditions applied

5. Geometry Optimization

  • FIRE optimizer with dual repulsion calculator
  • Maximum force convergence: 0.5 eV/Å
  • Maximum steps: 120

6. Quality Assessment

  • Average Si coordination number calculation
  • Structure status: "OK" or "DISTORTED"
  • Chemical formula reporting

Usage Examples

Basic Generation

from zeogen_new2 import ZeolitePragmatistV7

generator = ZeolitePragmatistV7()
atoms, message = generator.generate(0)

if atoms:
    print(f"Generated: {message}")
    atoms.write("zeolite.cif")

Batch Generation

generator = ZeolitePragmatistV7()
success_count = 0

for i in range(20):
    atoms, msg = generator.generate(i)
    if atoms:
        success_count += 1
        atoms.write(f"zeo_{success_count}.cif")
        print(f"[{i+1}] Generated structure {success_count}")

Output Format

Generated structures are saved in CIF format with the naming convention: zeo_v7_1_{N}.cif

Where N is the sequential success count.

Performance Considerations

  • Memory: Uses cKDTree for efficient neighbor searching
  • Computation: Optimized trigonometric calculations with pre-computation
  • Scalability: Suitable for systems up to ~1000 atoms

Troubleshooting

Common Issues

  1. "Sampling sparse" Error

    • Increase density parameter range
    • Adjust threshold parameter
  2. "DISTORTED" Status

    • Low average coordination indicates optimization failure
    • May need to adjust force field parameters
  3. Optimization Convergence Issues

    • Reduce force constants
    • Increase optimization steps
    • Check initial geometry quality

File Structure

zeogen_new2.py
├── ZeoliteDualRepulsionCalculator (lines 24-129)
├── ZeolitePragmatistV7 (lines 134-410)
└── Main execution (lines 415-429)

Version History

  • v7.1: Dual repulsion force field implementation
  • v7.0: Pragmatic edge balancing strategy
  • Earlier versions: Basic Fourier surface generation

References

This implementation builds upon established methods in:

  • Triply periodic minimal surfaces (TPMS)
  • Zeolite structure generation
  • Force field development for silicate materials

License

Please refer to the project's license file for usage terms and conditions.