A suite of tools for representing and solving electromagnetic simulation problems.
Find a file
2026-07-29 11:51:50 +00:00
pkgs feat(emsim): implemented field and math enums 2026-07-29 11:51:50 +00:00
.editorconfig style: adjusted formatting of all Rust and TOML files 2026-07-29 11:17:59 +00:00
.gitignore init: cleanly (re)initialized the project 2026-07-16 13:15:55 +00:00
.licensesnip init: cleanly (re)initialized the project 2026-07-16 13:15:55 +00:00
.pre-commit-config.yaml style: adjusted formatting of all Rust and TOML files 2026-07-29 11:17:59 +00:00
.tombi.toml style: adjusted formatting of all Rust and TOML files 2026-07-29 11:17:59 +00:00
Cargo.lock feat(emsim): implemented field and math enums 2026-07-29 11:51:50 +00:00
Cargo.toml style: adjusted formatting of all Rust and TOML files 2026-07-29 11:17:59 +00:00
cog.toml init: cleanly (re)initialized the project 2026-07-16 13:15:55 +00:00
LICENSE init: cleanly (re)initialized the project 2026-07-16 13:15:55 +00:00
README.md deps(miniexpr): added optional dependency on ordered-float 2026-07-16 14:20:04 +00:00
rustfmt.toml style: adjusted formatting of all Rust and TOML files 2026-07-29 11:17:59 +00:00

hopsim

A suite of tools for representing and solving electromagnetic simulation problems.

Policies

Developer Tooling

  • Testing (cargo test): Run the test suite for the entire workspace.

    • Usage: Run cargo test.
  • Micro-Benchmarking (criterion): Microbenchmarking to track performance changes over time.

    • Usage: Run cargo bench (criterion is an internal library).
  • License Headers (licensesnip): Add license headers to all source files.

    • Installation: cargo install licensesnip.
    • Usage: Use licensesnip to add headers. Use licensesnip remove to remove headers.
    • Alternative: Manually add license headers (prek checks this).
  • Pre-Commit Checks (prek): Simple checks run before every commit.

    • Installation: cargo install --locked prek.
    • Usage: Use prek install to install hooks, running prek before every commit in this local git repo (undo w/prek uninstall).
    • Alternative: Manually enforce all rules in .pre-commit-config.yml (CI will run prek)
  • Commit Message Hygiene (cocogitto): Enforce conventional commits, automatic versioning, and changelog management.

    • Installation: cargo install cocogitto
    • Usage: Use cog commit instead of git commit.
    • Alternative: Manually write messages w/conventional commits syntax (prek checks this).
  • CI (not yet implemented): Enforces all of the above

Commit-Message Policy

The following types must be represented in cog.toml and .pre-commit-config.yaml:

  • Standard: fix, feat, refactor, perf, ux, revert.
  • Auxiliary: deps, docs, test, lang.
  • DX: style, build, tool, ci.
  • Workflow: hotfix, dump, wip, experiment, chore.
  • Purpose: init, merge.

The following scopes must be represented in .pre-commit-config.yaml:

  • Interfaces: cli.
  • Support: emsim, miniexpr, minigrid.
  • Solvers: fdtd-cpu, fdtd-cuda, fdtd-naive.
  • Sim Data: simdata-hdf5.