Implement RandomWalk1D dynamics for lattice-based
simulations and provide an example that demonstrates
diffusive scaling. Move prelude into lib.rs for simpler
module organization. Use () for lattice momentum since
discrete walks don't have meaningful momenta.
trait 정렬 fix 가 후속의 base 라는 직관적 의존성은 실제로는 약함:
1D random walker 는 simul-core trait 만 사용하므로 simul-euclidean
ForceInteraction 부정합과 독립이다. 반면 trait fix 의 *최종 모양*
(Handle 을 simul-core 로 lift 할지, EuclideanInteraction sub-trait
으로 둘지) 은 두 데이터 포인트 (Euclidean MD + Lattice) 가 있어야
근거 있게 결정됨.
따라서 M0+ 단위 순서를 1↔2 swap + 결정 게이트 신규 §2 추가:
(구) 1. Trait fix → 2. canary → 3-7. forces/wrappers
(신) 1. canary → 2. 추상 재설계 결정 → 3. Trait fix → 4-8.
PROGRESS.md §1 M0+ 표 행 재배치, §6 다음 한 단위 갱신.
learning/M0+.md 섹션 순서 물리 재배치 + 새 §2 결정 게이트 추가.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
OpenMM(C++ MD library) → simul(Rust crate) 학습 이관 장기 로드맵.
agent team 'simul-roadmap' (team-lead + openmm-analyst + test-translator
+ rust-architect + devil-advocate, 13 task) 의 산물.
핵심 산출물:
- ROADMAP.md: 6개월 MLP / 1년 MVP / 2년 Stretch 컷라인, 80+ unit 평가
매트릭스, 명시적 NEVER 리스트, 4중 trait drift 방어선
(simul-lattice canary 가드레일 포함)
- README.md: 단일 진실 원천 인덱스 (ROADMAP > DESIGN > CHEATSHEET …)
- MIGRATION_CHEATSHEET.md: OpenMM ↔ simul 1페이지 빠른 참조
- tests/UPSTREAM_TESTS.md: Tier-3 의도적 미번역 카탈로그 (인지 함정 방지)
- simul-euclidean/tests/_template_openmm.rs: Tier-1 등가성 테스트 템플릿
(#![cfg(any())] 비활성화, FILL IN 가이드 12개)
- .team-output/T1~T13: agent team 분석 산출물 + DESIGN_PATCH
devil-advocate verdict: 재구성 후 진행 — 야심 절반 축소
(simul-lattice 본격 1차 제외 + canary 유지, CubeCL M4 이후 연기,
명시적 NEVER ~20단위, 6/12/24개월 컷라인).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Enhance `compute_forces` method to calculate forces and potential energy for harmonic bonds using CubeCL.
- Introduce tests for various scenarios including equilibrium, stretched bonds, and force gradient verification.
- Ensure compatibility with the CubeCL backend for efficient computation.
- Introduce `nonbonded_kernel` for parallel computation of Lennard-Jones and Coulomb forces, leveraging CubeCL for backend support.
- Update `NonbondedInteraction` to utilize the new kernel, replacing the previous CPU-based implementation.
- Refactor force computation to handle device-resident buffers and streamline energy calculations.
- Enhance documentation to reflect changes in kernel usage and interaction handling.
- Replace `rayon` with `cubecl` for compute operations, enabling support for multiple backends (CPU SIMD, CUDA, wgpu, Vulkan)
- Update `Cargo.toml` and `Cargo.lock` to include `cubecl` dependencies and remove `rayon`
- Refactor dynamics implementations (Brownian, Langevin, Verlet) to utilize CubeCL for force computations
- Introduce runtime selection for compute backends and update interaction traits to operate on device-resident buffers
- Add initial structure for CubeCL compute kernels in the `kernels` module
- Update documentation to reflect new architecture and feature flags for backend selection
- Modify `compute_forces` method in `ForceInteraction` trait to return potential energy instead of a struct
- Update implementations in `NonbondedInteraction`, `HarmonicBondInteraction`, and related tests to reflect this change
- Simplify dynamics implementations by removing unnecessary output struct usage in Brownian, Langevin, and Verlet dynamics
- Replace index-based loops with iterator-based methods in Brownian, Langevin, and Verlet dynamics implementations
- Enhance clarity and maintainability of position and momentum updates
- Minor adjustments to conditional checks in NonbondedInteraction for better readability
- Standardize spacing and formatting in various files for consistency
- Remove unnecessary blank lines and adjust line breaks for better readability
- Ensure consistent use of comments and code structure across the project
- Introduce GitHub Actions CI workflow for automated testing, linting, and formatting
- Configure jobs for building, testing, running Clippy, and checking code formatting
- Utilize caching for cargo registry and build artifacts to improve build times
- Introduce HarmonicBondInteraction for simulating harmonic bonds between particles
- Add methods for bond management and force computation
- Create comprehensive tests for HarmonicBondInteraction against OpenMM reference values
- Include a script to generate reference values for validation
- Update COULOMB_CONSTANT for accuracy based on 2019 SI constants
- Add nalgebra as a development dependency
- Introduce comprehensive tests for NonbondedInteraction against OpenMM NonbondedForce
- Create reference values generation script for validation
- Workspace structure and crate responsibilities
- Core abstractions (StateSpace, Dynamics, Interaction)
- State space and dynamics system design
- Simulation API patterns (Builder + Iterator)
- OpenMM API mapping reference
- Define StateSpace trait with const DIM, Point, Momentum types
- Add zero_point() and zero_momentum() factory methods
- Core abstraction for Euclidean and Lattice spaces