@peterspackman/occjs
v0.8.8
Published
JavaScript/WebAssembly bindings for OCC - a quantum chemistry and crystallography library
Downloads
213
Maintainers
Readme
@occ/core
JavaScript/WebAssembly bindings for OCC - a quantum chemistry and crystallography library.
Installation
npm install @occ/coreQuick Start
const { loadOCC, createMolecule, Elements } = require('@occ/core');
// Initialize the WASM module
const Module = await loadOCC();
// Create a water molecule
const water = await createMolecule(
[Elements.O, Elements.H, Elements.H],
[
[0.0, 0.0, 0.0],
[0.757, 0.586, 0.0],
[-0.757, 0.586, 0.0]
]
);
console.log(`Molecule: ${water.name}`);
console.log(`Atoms: ${water.size()}`);
console.log(`Molar mass: ${water.molarMass()} g/mol`);Features
- Molecular Structure Manipulation: Create and manipulate molecular structures
- Quantum Chemistry Calculations: Hartree-Fock, DFT, and post-HF methods
- Crystallography: Space groups, symmetry operations, and crystal structure analysis
- Partial Charges: EEM and EEQ charge models
- Geometry Analysis: Point groups, molecular properties, and transformations
- Isosurface Generation: Electron density and promolecule density visualization
- Custom Logging: Flexible logging system with callbacks and buffering
Development
Building from Source
- Prerequisites: Ensure you have Emscripten installed
- Build WASM module:
npm run build:wasm - Build JavaScript wrapper:
npm run build:wrapper - Run tests:
npm test
Testing
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
# Run linting
npm run lint
# Run type checking
npm run typecheckAvailable Test Suites
- Core functionality: Basic module loading and error handling
- Logging: Log level management and message handling
- Molecular structure: Molecule creation and property access
- Quantum chemistry: Hartree-Fock, DFT calculations, and property analysis
- Crystallography: Space groups, symmetry operations, unit cells
- Isosurfaces: Surface generation and cube file export
- Basis sets: Built-in and custom JSON basis set loading
Documentation
For complete API documentation, examples, and usage guides, see the main OCC repository.
