Skip to content
View rcgiri-physics's full-sized avatar
  • Nepal
  • 14:59 (UTC +05:45)

Block or report rcgiri-physics

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
rcgiri-physics/README.md

Ram Chandra Giri

MSc Physics · Physics educator · Preparing for a PhD in Computational Physics & Nonlinear Dynamics · Nepal Website · rcgiri.physics@gmail.com · ORCID 0009-0008-7149-7938

I model non-linear and chaotic systems with my own integrators, and I check every result against a conservation law or an independent reference. Each repository is written up like a lab entry: the system, the method, and the check used to trust it.

Research interests: Hamiltonian and dissipative chaos, symplectic integration, verification of scientific software.

Status · Oct 2026
Physics projects 5 completed (MSc dissertation: driven LCR circuits, Fortran 90, 2023)
Research software physverify v0.4.2 (PyPI, DOI)
Next Computational linear algebra, from Nov 2026
Hardware 8 GB laptop, CPU-only

Main work: physverify

physverify checks that a simulation solves the equations it claims, at the order of accuracy it claims, not just that it runs. PyPI · Docs · doi:10.5281/zenodo.23534512 · GitHub Action

  • Convergence-order, conservation and manufactured-solution checks for ODE and 1D PDE solvers; static scan of Runge-Kutta tables, grid spacings and physical constants. Needs only NumPy.
  • Flagged 35 of 37 seeded bugs, with no false alarms (bugs and checks written by the same person, so this shows it works as designed).
  • Applied to public physics repositories: 74 defects reported to their authors (which method found each).
  • Limits are stated plainly: works best for ODEs, and a PASS means "these checks found nothing", not "proven correct".

Experiments

Project Method Check used to trust it
3-Body Laboratory Symplectic Velocity-Verlet; Sun-Earth-Jupiter over 12 years Relative energy error ~10⁻⁹; ejection threshold δ ≈ 0.5
Lorenz Attractor Adaptive RK4; bifurcation sweep over ρ λ_max > 0 from twin trajectories at δ ~ 10⁻⁸
Double Pendulum Euler-Lagrange in (θ₁, θ₂) Poincaré sections: invariant tori breaking into chaos
Driven LCR Circuit 2023 Fortran 90 dissertation rebuilt in vectorised Python Residual vs SciPy < 10⁻⁷; matches legacy Fortran output
Projectile Simulation Vacuum to linear + quadratic drag; fixed vs adaptive steps Spatial residual maps

physverify in CI on my own projects

Every push to these five repos runs physverify in GitHub Actions. Latest results on main: 40 of 40 checks pass.

Project What CI checks Result
3-Body Velocity-Verlet order; momentum, angular momentum, time reversal; README energy claim Order 2.00; conserved to ~10⁻¹⁵; |ΔE/E₀| = 6.4×10⁻⁹ · 9/9
Lorenz Equations at RK4 order; phase-space contraction −(σ+1+β); Jacobian; Lyapunov sum = trace Order 3.97–4.28; all match · 8/8
Double Pendulum Equations at RK4 order; README energy-drift benchmark Order 3.78–4.73; drift 7.8×10⁻¹² over 30 s · 7/7
Projectile Euler and RK4 vs exact solutions (vacuum, linear drag) and quadratic drag Euler 1.00, RK4 3.97–4.04 · 9/9
LCR Circuit RK4 vs exact solution at R = 10, 40, 100 Ω; README SciPy claim Order 4.00–4.25; 9.9×10⁻⁸ vs exact · 7/7

For Lorenz and the double pendulum, CI checks the equations of motion with physverify's own RK4; their adaptive solvers are not order-checked (the double pendulum's is checked through its energy benchmark).

2026 log

Month Work Status
Jan–Feb Projectile v1.0 → v2.1: Euler, then RK4 validated against SciPy Done
Apr LCR modernisation; chaotic 3-body dynamics Done
May Double pendulum; Lorenz attractor Done
Jun–Sep MCQplex (NEB exam prep), school routine planner, llm-free-cascade, pdf-render-pool, mongo-job-lock Live / released
Oct physverify 0.1 → 0.4.2: verification tool for simulations Released
Nov → Computational linear algebra: eigenvalue problems, Lanczos, normal modes Next

Toward PhD-level work: compiled acceleration (Numba, C++) → PDEs and lattice systems → multi-core parameter sweeps.

Applied work and open source

  • MCQplex: adaptive NEB exam prep for low-end Android and patchy networks, with teacher analytics and practice duels.
  • Routine & Substitution Planner: offline-first school timetable with a tiered teacher-substitution engine.
  • Open curricula (v0.1, not yet piloted in a classroom): git-for-schools (offline-first Git, Grades 8–12) · data-science-nepal (bilingual, Nepali datasets).
  • Utilities: llm-free-cascade (free-tier LLM fallback) · pdf-render-pool (Puppeteer HTML→PDF pool) · mongo-job-lock (run a clustered cron job once).

Pinned Loading

  1. lorenz-attractor-simulation lorenz-attractor-simulation Public

    A numerical laboratory for mapping dissipative chaos, strange attractors, and bifurcations in the Lorenz system.

    Python 1

  2. double-pendulum-simulation double-pendulum-simulation Public

    A high-fidelity numerical laboratory for modeling Double Pendulum dynamics using Lagrangian mechanics. Features vectorized Euler-Lagrange solvers, symplectic integration, and bifurcation analysis t…

    Python

  3. llm-free-cascade llm-free-cascade Public

    Cascade a chat completion across every free-tier LLM API you have a key for

    JavaScript 3

  4. mongo-job-lock mongo-job-lock Public

    A lightweight MongoDB-backed advisory lock so a cron job on every instance of a cluster only runs once

    JavaScript

  5. pdf-render-pool pdf-render-pool Public

    A persistent, concurrency-capped headless-Chromium HTML-to-PDF renderer built on Puppeteer

    JavaScript

  6. physverify physverify Public

    Checks that a physics simulation solves the right equations at the right accuracy

    Python