JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 14
  • Score
    100M100P100Q37070F
  • License GPL-3.0

JavaScript/WebAssembly bindings for OCC - a quantum chemistry and crystallography library

Package Exports

  • @peterspackman/occjs
  • @peterspackman/occjs/cli
  • @peterspackman/occjs/cli-data
  • @peterspackman/occjs/cli-wasm
  • @peterspackman/occjs/data
  • @peterspackman/occjs/wasm

Readme

@occ/core

JavaScript Tests npm version

JavaScript/WebAssembly bindings for OCC - a quantum chemistry and crystallography library.

Installation

npm install @occ/core

Quick 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

  1. Prerequisites: Ensure you have Emscripten installed
  2. Build WASM module: npm run build:wasm
  3. Build JavaScript wrapper: npm run build:wrapper
  4. 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 typecheck

Available 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.