1 Commits

Author SHA1 Message Date
0fb46be75d Add feature flags and create CLAUDE.md for project guidance 2025-06-26 00:56:59 +09:00
2 changed files with 572 additions and 1 deletions

564
CLAUDE.md Normal file
View File

@@ -0,0 +1,564 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Rust-OpenMM is a Rust port of the OpenMM molecular simulation toolkit. The project follows a test-driven development approach, converting C++ tests to Rust and implementing functionality to make them pass.
## Key Directories
- `openmm/` - Original C++ OpenMM library (reference implementation)
- `rust-openmm/src/` - Rust implementation following the module structure:
- `system.rs` - Core molecular system representation
- `force/` - Force field components (trait-based)
- `integrator/` - Time integration algorithms
- `platform/` - Compute platform abstractions
- `context.rs` - Simulation context binding components
- `state.rs` - Simulation state management
## Development Commands
```bash
# Build the project
cargo build
# Run tests (most are currently ignored)
cargo test
# Run tests including ignored ones
cargo test -- --ignored
# Generate documentation
cargo doc --open
# Check code without building
cargo check
# Format code
cargo fmt
# Run linter
cargo clippy
```
## Development Strategy
1. **Test-Driven Conversion**: Convert C++ tests first, then implement functionality
2. **Progressive Implementation**: Use `unimplemented!()` placeholders for missing functionality
3. **Test Organization**:
- Unit tests: In source files using `#[cfg(test)]` modules
- Integration tests: In `tests/` directory (for cross-module functionality)
## Architecture Principles
- **Trait-Based Design**: Forces and integrators use traits for extensibility
- **Idiomatic Rust**: Prefer Rust patterns over direct C++ translation
- **Modular Structure**: Each force type, integrator, and platform is a separate module
- **Zero-Copy Where Possible**: Use references and borrowing to minimize allocations
## Key Dependencies
- `nalgebra`: Linear algebra operations (vectors, matrices)
- `approx`: Floating-point comparisons in tests
## Feature Flags
- `cpu` (default): CPU compute platform
- `vulkan`: Vulkan compute platform (not yet implemented)
- 'cuda': Nvidia cuda platform
- 'opencl': OpenCL platform
## C++ Reference Locations
When implementing new functionality, refer to:
- Force implementations: `openmm/openmmapi/src/*Force.cpp`
- Test cases: `openmm/tests/Test*.cpp`
- Platform code: `openmm/platforms/*/src/`
## Common Patterns
### Adding a New Force Type
1. Create `src/force/new_force.rs`
2. Define struct implementing `Force` trait
3. Add module declaration to `src/force/mod.rs`
4. Convert corresponding C++ test from `openmm/tests/`
### Implementing Placeholder Methods
Replace `unimplemented!()` with actual implementation, ensuring:
- Proper error handling with `Result` types
- Efficient memory usage
- Thread safety where applicable
## Testing Approach
- Tests should closely mirror C++ test structure for validation
- Use `approx::assert_relative_eq!` for floating-point comparisons
- Mark incomplete tests with `#[ignore]` until implementation is ready
# TODO
## API
### Core Objects
- [ ] System - `openmm/openmmapi/include/openmm/System.h`
- [ ] Context - `openmm/openmmapi/include/openmm/Context.h`
- [ ] Platform - `openmm/openmmapi/include/openmm/Platform.h`
- [ ] State - `openmm/openmmapi/include/openmm/State.h`
### Forces
- [ ] The Force abstract class - `openmm/openmmapi/include/openmm/Force.h`
- Common bonded and non-bonded forces
- [ ] CMAPTorsionForce - `openmm/openmmapi/include/openmm/CMAPTorsionForce.h`
- [ ] DrudeForce - `openmm/plugins/drude/openmmapi/include/openmm/DrudeForce.h`
- [ ] GBSAOBCForce - `openmm/openmmapi/include/openmm/GBSAOBCForce.h`
- [ ] GayBerneForce - `openmm/openmmapi/include/openmm/GayBerneForce.h`
- [ ] HarmonicAngleForce - `openmm/openmmapi/include/openmm/HarmonicAngleForce.h`
- [ ] HarmonicBondForce - `openmm/openmmapi/include/openmm/HarmonicBondForce.h`
- [ ] NonbondedForce - `openmm/openmmapi/include/openmm/NonbondedForce.h`
- [ ] PeriodicTorsionForce - `openmm/openmmapi/include/openmm/PeriodicTorsionForce.h`
- [ ] RBTorsionForce - `openmm/openmmapi/include/openmm/RBTorsionForce.h`
- AMOEBA forces
- [ ] AmoebaGeneralizedKirkwoodForce - `openmm/plugins/amoeba/openmmapi/include/openmm/AmoebaGeneralizedKirkwoodForce.h`
- [ ] AmoebaMultipoleForce - `openmm/plugins/amoeba/openmmapi/include/openmm/AmoebaMultipoleForce.h`
- [ ] AmoebaTorsionTorsionForce - `openmm/plugins/amoeba/openmmapi/include/openmm/AmoebaTorsionTorsionForce.h`
- [ ] AmoebaVdwForce - `openmm/plugins/amoeba/openmmapi/include/openmm/AmoebaVdwForce.h`
- [ ] AmoebaWcaDispersionForce - `openmm/plugins/amoeba/openmmapi/include/openmm/AmoebaWcaDispersionForce.h`
- [ ] HippoNonbondedForce - `openmm/plugins/amoeba/openmmapi/include/openmm/HippoNonbondedForce.h`
- Pseudo-forces
- [ ] AndersenThermostat - `openmm/openmmapi/include/openmm/AndersenThermostat.h`
- [ ] ATMForce - `openmm/openmmapi/include/openmm/ATMForce.h`
- [ ] CMMotionRemover - `openmm/openmmapi/include/openmm/CMMotionRemover.h`
- [ ] MonteCarloAnisotropicBarostat - `openmm/openmmapi/include/openmm/MonteCarloAnisotropicBarostat.h`
- [ ] MonteCarloBarostat - `openmm/openmmapi/include/openmm/MonteCarloBarostat.h`
- [ ] MonteCarloFlexibleBarostat - `openmm/openmmapi/include/openmm/MonteCarloFlexibleBarostat.h`
- [ ] MonteCarloMembraneBarostat - `openmm/openmmapi/include/openmm/MonteCarloMembraneBarostat.h`
- [ ] RMSDForce - `openmm/openmmapi/include/openmm/RMSDForce.h`
- [ ] RPMDMonteCarloBarostat - `openmm/plugins/rpmd/openmmapi/include/openmm/RPMDMonteCarloBarostat.h`
- Customizing Force
- [ ] CustomAngleForce - `openmm/openmmapi/include/openmm/CustomAngleForce.h`
- [ ] CustomBondForce - `openmm/openmmapi/include/openmm/CustomBondForce.h`
- [ ] CustomCVForce - `openmm/openmmapi/include/openmm/CustomCVForce.h`
- [ ] CustomCentroidBondForce - `openmm/openmmapi/include/openmm/CustomCentroidBondForce.h`
- [ ] CustomCompoundBondForce - `openmm/openmmapi/include/openmm/CustomCompoundBondForce.h`
- [ ] CustomExternalForce - `openmm/openmmapi/include/openmm/CustomExternalForce.h`
- [ ] CustomGBForce - `openmm/openmmapi/include/openmm/CustomGBForce.h`
- [ ] CustomHbondForce - `openmm/openmmapi/include/openmm/CustomHbondForce.h`
- [ ] CustomManyParticleForce - `openmm/openmmapi/include/openmm/CustomManyParticleForce.h`
- [ ] CustomNonbondedForce - `openmm/openmmapi/include/openmm/CustomNonbondedForce.h`
- [ ] CustomTorsionForce - `openmm/openmmapi/include/openmm/CustomTorsionForce.h`
### Integrators
- [ ] The integrator abstract object - `openmm/openmmapi/include/openmm/Integrator.h`
- General purpose integrators
- [ ] BrownianIntegrator - `openmm/openmmapi/include/openmm/BrownianIntegrator.h`
- [ ] LangevinIntegrator - `openmm/openmmapi/include/openmm/LangevinIntegrator.h`
- [ ] LangevinMiddleIntegrator - `openmm/openmmapi/include/openmm/LangevinMiddleIntegrator.h`
- [ ] NoseHooverIntegrator - `openmm/openmmapi/include/openmm/NoseHooverIntegrator.h`
- [ ] VariableLangevinIntegrator - `openmm/openmmapi/include/openmm/VariableLangevinIntegrator.h`
- [ ] VariableVerletIntegrator - `openmm/openmmapi/include/openmm/VariableVerletIntegrator.h`
- [ ] VerletIntegrator - `openmm/openmmapi/include/openmm/VerletIntegrator.h`
- Drude integrators
- [ ] DrudeIntegrator - `openmm/plugins/drude/openmmapi/include/openmm/DrudeIntegrator.h`
- [ ] DrudeLangevinIntegrator - `openmm/plugins/drude/openmmapi/include/openmm/DrudeLangevinIntegrator.h`
- [ ] DrudeNoseHooverIntegrator - `openmm/plugins/drude/openmmapi/include/openmm/DrudeNoseHooverIntegrator.h`
- [ ] DrudeSCFIntegrator - `openmm/plugins/drude/openmmapi/include/openmm/DrudeSCFIntegrator.h`
- Ring Polymer Molecular Dynamics integrators
- [ ] RPMDIntegrator - `openmm/plugins/rpmd/openmmapi/include/openmm/RPMDIntegrator.h`
- Customizing Integrator
- [ ] CustomIntegrator - `openmm/openmmapi/include/openmm/CustomIntegrator.h`
- [ ] CompoundIntegrator - `openmm/openmmapi/include/openmm/CompoundIntegrator.h`
### Extra classes
- Tabulated functions
- [ ] TabulatedFunction - `openmm/openmmapi/include/openmm/TabulatedFunction.h`
- [ ] Continuous1DFunction - `openmm/openmmapi/include/openmm/TabulatedFunction.h`
- [ ] Continuous2DFunction - `openmm/openmmapi/include/openmm/TabulatedFunction.h`
- [ ] Continuous3DFunction - `openmm/openmmapi/include/openmm/TabulatedFunction.h`
- [ ] Discrete1DFunction - `openmm/openmmapi/include/openmm/TabulatedFunction.h`
- [ ] Discrete2DFunction - `openmm/openmmapi/include/openmm/TabulatedFunction.h`
- [ ] Discrete3DFunction - `openmm/openmmapi/include/openmm/TabulatedFunction.h`
- Virtual Sites
- [ ] VirtualSite - `openmm/openmmapi/include/openmm/VirtualSite.h`
- [ ] LocalCoordinatesSite - `openmm/openmmapi/include/openmm/VirtualSite.h`
- [ ] OutOfPlaneSite - `openmm/openmmapi/include/openmm/VirtualSite.h`
- [ ] ThreeParticleAverageSite - `openmm/openmmapi/include/openmm/VirtualSite.h`
- [ ] TwoParticleAverageSite - `openmm/openmmapi/include/openmm/VirtualSite.h`
- Serialization
- [ ] SerializationNode - `openmm/serialization/include/openmm/serialization/SerializationNode.h`
- [ ] SerializationProxy - `openmm/serialization/include/openmm/serialization/SerializationProxy.h`
- [ ] XmlSerializer - `openmm/serialization/include/openmm/serialization/XmlSerializer.h`
- Other classes
- [ ] LocalEnergyMinimizer - `openmm/openmmapi/include/openmm/LocalEnergyMinimizer.h`
- [ ] MinimizationReporter - `openmm/openmmapi/include/openmm/MinimizationReporter.h`
- [ ] NoseHooverChain - `openmm/openmmapi/include/openmm/NoseHooverChain.h`
- [ ] OpenMMException - `openmm/openmmapi/include/openmm/OpenMMException.h`
- [ ] Vec3 - `openmm/openmmapi/include/openmm/Vec3.h`
## Integrated Examples
- Cookbook examples (Python-based, reference only)
- [ ] First Simulation
- [ ] Changing Temperature and Pressure
- [ ] Saving Systems to XML Files
- [ ] Merging Molecules in a Topology
- [ ] Adding Hydrogens to Nonstandard Molecules
- [ ] Applying a Fixed External Force
- [ ] Constraining Atom Positions
- [ ] Restraining Atom Positions
- [ ] Restraining Dihedrals
- [ ] Analyzing Energy Contributions
- [ ] Computing Interaction Energies
- [ ] Querying and Modifying Charges and Other Parameters
- Examples
- [ ] HelloArgon - `openmm/examples/HelloArgon.cpp`
- [ ] HelloEthane - `openmm/examples/HelloEthane.cpp`
- [ ] HelloSodiumChloride - `openmm/examples/HelloSodiumChloride.cpp`
- [ ] HelloWaterBox - `openmm/examples/HelloWaterBox.cpp`
- [ ] simulateAmber - `openmm/examples/simulateAmber.py`
- [ ] simulateCharmm - `openmm/examples/simulateCharmm.py`
- [ ] simulateGromacs - `openmm/examples/simulateGromacs.py`
- [ ] simulatePdb - `openmm/examples/simulatePdb.py`
- Test files
- **Core**
- [ ] TestATMForce - `openmm/tests/TestATMForce.h`
- [ ] TestAndersenThermostat - `openmm/tests/TestAndersenThermostat.h`
- [ ] TestBrownianIntegrator - `openmm/tests/TestBrownianIntegrator.h`
- [ ] TestCMAPTorsionForce - `openmm/tests/TestCMAPTorsionForce.h`
- [ ] TestCMMotionRemover - `openmm/tests/TestCMMotionRemover.h`
- [ ] TestCheckpoints - `openmm/tests/TestCheckpoints.h`
- [ ] TestCompoundIntegrator - `openmm/tests/TestCompoundIntegrator.h`
- [ ] TestCustomAngleForce - `openmm/tests/TestCustomAngleForce.h`
- [ ] TestCustomBondForce - `openmm/tests/TestCustomBondForce.h`
- [ ] TestCustomCPPForce - `openmm/tests/TestCustomCPPForce.h`
- [ ] TestCustomCVForce - `openmm/tests/TestCustomCVForce.h`
- [ ] TestCustomCentroidBondForce - `openmm/tests/TestCustomCentroidBondForce.h`
- [ ] TestCustomCompoundBondForce - `openmm/tests/TestCustomCompoundBondForce.h`
- [ ] TestCustomExternalForce - `openmm/tests/TestCustomExternalForce.h`
- [ ] TestCustomGBForce - `openmm/tests/TestCustomGBForce.h`
- [ ] TestCustomHbondForce - `openmm/tests/TestCustomHbondForce.h`
- [ ] TestCustomIntegrator - `openmm/tests/TestCustomIntegrator.h`
- [ ] TestCustomManyParticleForce - `openmm/tests/TestCustomManyParticleForce.h`
- [ ] TestCustomNonbondedForce - `openmm/tests/TestCustomNonbondedForce.h`
- [ ] TestCustomTorsionForce - `openmm/tests/TestCustomTorsionForce.h`
- [ ] TestDispersionPME - `openmm/tests/TestDispersionPME.h`
- [ ] TestEnforcePeriodicBox - `openmm/tests/TestEnforcePeriodicBox.cpp`
- [ ] TestEwald - `openmm/tests/TestEwald.h`
- [ ] TestFindExclusions - `openmm/tests/TestFindExclusions.cpp`
- [ ] TestFindMolecules - `openmm/tests/TestFindMolecules.cpp`
- [ ] TestGBSAOBCForce - `openmm/tests/TestGBSAOBCForce.h`
- [ ] TestGayBerneForce - `openmm/tests/TestGayBerneForce.h`
- [ ] TestHarmonicAngleForce - `openmm/tests/TestHarmonicAngleForce.h`
- [x] TestBonds - closed by #10
- [x] TestPeriodic - closed by #10
- [ ] TestParallelComputation
- [ ] TestHarmonicBondForce - `openmm/tests/TestHarmonicBondForce.h`
- [x] TestBonds - closed by #8
- [x] TestPeriodic - closed by #8
- [ ] TestParallelComputation
- [ ] TestLangevinIntegrator - `openmm/tests/TestLangevinIntegrator.h`
- [ ] TestLangevinMiddleIntegrator - `openmm/tests/TestLangevinMiddleIntegrator.h`
- [ ] TestLocalEnergyMinimizer - `openmm/tests/TestLocalEnergyMinimizer.h`
- [ ] TestMonteCarloAnisotropicBarostat - `openmm/tests/TestMonteCarloAnisotropicBarostat.h`
- [ ] TestMonteCarloBarostat - `openmm/tests/TestMonteCarloBarostat.h`
- [ ] TestMonteCarloFlexibleBarostat - `openmm/tests/TestMonteCarloFlexibleBarostat.h`
- [ ] TestNonbondedForce - `openmm/tests/TestNonbondedForce.h`
- [ ] TestNoseHooverIntegrator - `openmm/tests/TestNoseHooverIntegrator.h`
- [ ] TestParser - `openmm/tests/TestParser.cpp`
- [ ] TestPeriodicTorsionForce - `openmm/tests/TestPeriodicTorsionForce.h`
- [ ] TestRBTorsionForce - `openmm/tests/TestRBTorsionForce.h`
- [ ] TestRMSDForce - `openmm/tests/TestRMSDForce.h`
- [ ] TestSettle - `openmm/tests/TestSettle.h`
- [ ] TestSplineFitter - `openmm/tests/TestSplineFitter.cpp`
- [x] TestSystem - `openmm/tests/TestSystem.cpp`
- closed by #6
- [ ] TestVariableLangevinIntegrator - `openmm/tests/TestVariableLangevinIntegrator.h`
- [ ] TestVariableVerletIntegrator - `openmm/tests/TestVariableVerletIntegrator.h`
- [ ] TestVectorExpression - `openmm/tests/TestVectorExpression.cpp`
- [ ] TestVectorize - `openmm/tests/TestVectorize.cpp`
- [ ] TestVectorizeAvx - `openmm/tests/TestVectorizeAvx.cpp`
- [ ] TestVectorizeAvx2 - `openmm/tests/TestVectorizeAvx2.cpp`
- [ ] TestVectorizeGeneric - `openmm/tests/TestVectorizeGeneric.h`
- [ ] TestVerletIntegrator - `openmm/tests/TestVerletIntegrator.h`
- [ ] TestVirtualSites - `openmm/tests/TestVirtualSites.h`
- **Serialization**
- [ ] TestSerializeAmoebaGeneralizedKirkwoodForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaGeneralizedKirkwoodForce.cpp`
- [ ] TestSerializeAmoebaMultipoleForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaMultipoleForce.cpp`
- [ ] TestSerializeAmoebaTorsionTorsionForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaTorsionTorsionForce.cpp`
- [ ] TestSerializeAmoebaVdwForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaVdwForce.cpp`
- [ ] TestSerializeAmoebaWcaDispersionForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaWcaDispersionForce.cpp`
- [ ] TestSerializeHippoNonbondedForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeHippoNonbondedForce.cpp`
- [ ] TestSerializeDrudeForce - `openmm/plugins/drude/serialization/tests/TestSerializeDrudeForce.cpp`
- [ ] TestSerializeDrudeLangevinIntegrator - `openmm/plugins/drude/serialization/tests/TestSerializeDrudeLangevinIntegrator.cpp`
- [ ] TestSerializeDrudeNoseHooverIntegrator - `openmm/plugins/drude/serialization/tests/TestSerializeDrudeNoseHooverIntegrator.cpp`
- [ ] TestSerializationNode - `openmm/serialization/tests/TestSerializationNode.cpp`
- [ ] TestSerializeATMForce - `openmm/serialization/tests/TestSerializeATMForce.cpp`
- [ ] TestSerializeAndersenThermostat - `openmm/serialization/tests/TestSerializeAndersenThermostat.cpp`
- [ ] TestSerializeCMAPTorsion - `openmm/serialization/tests/TestSerializeCMAPTorsion.cpp`
- [ ] TestSerializeCMMotionRemover - `openmm/serialization/tests/TestSerializeCMMotionRemover.cpp`
- [ ] TestSerializeCustomAngleForce - `openmm/serialization/tests/TestSerializeCustomAngleForce.cpp`
- [ ] TestSerializeCustomBondForce - `openmm/serialization/tests/TestSerializeCustomBondForce.cpp`
- [ ] TestSerializeCustomCVForce - `openmm/serialization/tests/TestSerializeCustomCVForce.cpp`
- [ ] TestSerializeCustomCentroidBondForce - `openmm/serialization/tests/TestSerializeCustomCentroidBondForce.cpp`
- [ ] TestSerializeCustomCompoundBondForce - `openmm/serialization/tests/TestSerializeCustomCompoundBondForce.cpp`
- [ ] TestSerializeCustomExternalForce - `openmm/serialization/tests/TestSerializeCustomExternalForce.cpp`
- [ ] TestSerializeCustomGBForce - `openmm/serialization/tests/TestSerializeCustomGBForce.cpp`
- [ ] TestSerializeCustomHbondForce - `openmm/serialization/tests/TestSerializeCustomHbondForce.cpp`
- [ ] TestSerializeCustomManyParticleForce - `openmm/serialization/tests/TestSerializeCustomManyParticleForce.cpp`
- [ ] TestSerializeCustomNonbondedForce - `openmm/serialization/tests/TestSerializeCustomNonbondedForce.cpp`
- [ ] TestSerializeCustomTorsionForce - `openmm/serialization/tests/TestSerializeCustomTorsionForce.cpp`
- [ ] TestSerializeGBSAOBCForce - `openmm/serialization/tests/TestSerializeGBSAOBCForce.cpp`
- [ ] TestSerializeGayBerneForce - `openmm/serialization/tests/TestSerializeGayBerneForce.cpp`
- [ ] TestSerializeHarmonicAngleForce - `openmm/serialization/tests/TestSerializeHarmonicAngleForce.cpp`
- [ ] TestSerializeHarmonicBondForce - `openmm/serialization/tests/TestSerializeHarmonicBondForce.cpp`
- [ ] TestSerializeIntegrator - `openmm/serialization/tests/TestSerializeIntegrator.cpp`
- [ ] TestSerializeMonteCarloAnisotropicBarostat - `openmm/serialization/tests/TestSerializeMonteCarloAnisotropicBarostat.cpp`
- [ ] TestSerializeMonteCarloBarostat - `openmm/serialization/tests/TestSerializeMonteCarloBarostat.cpp`
- [ ] TestSerializeMonteCarloFlexibleBarostat - `openmm/serialization/tests/TestSerializeMonteCarloFlexibleBarostat.cpp`
- [ ] TestSerializeMonteCarloMembraneBarostat - `openmm/serialization/tests/TestSerializeMonteCarloMembraneBarostat.cpp`
- [ ] TestSerializeNonbondedForce - `openmm/serialization/tests/TestSerializeNonbondedForce.cpp`
- [ ] TestSerializeNoseHooverIntegrator - `openmm/serialization/tests/TestSerializeNoseHooverIntegrator.cpp`
- [ ] TestSerializePeriodicTorsionForce - `openmm/serialization/tests/TestSerializePeriodicTorsionForce.cpp`
- [ ] TestSerializeRBTorsionForce - `openmm/serialization/tests/TestSerializeRBTorsionForce.cpp`
- [ ] TestSerializeRMSDForce - `openmm/serialization/tests/TestSerializeRMSDForce.cpp`
- [ ] TestSerializeState - `openmm/serialization/tests/TestSerializeState.cpp`
- [ ] TestSerializeSystem - `openmm/serialization/tests/TestSerializeSystem.cpp`
- [ ] TestSerializeTabulatedFunctions - `openmm/serialization/tests/TestSerializeTabulatedFunctions.cpp`
- **Platforms**
- [ ] CPU
- [ ] TestCpuCheckpoints - `openmm/platforms/cpu/tests/TestCpuCheckpoints.cpp`
- [ ] TestCpuCompoundIntegrator - `openmm/platforms/cpu/tests/TestCpuCompoundIntegrator.cpp`
- [ ] TestCpuCustomCPPForce - `openmm/platforms/cpu/tests/TestCpuCustomCPPForce.cpp`
- [ ] TestCpuCustomGBForce - `openmm/platforms/cpu/tests/TestCpuCustomGBForce.cpp`
- [ ] TestCpuCustomManyParticleForce - `openmm/platforms/cpu/tests/TestCpuCustomManyParticleForce.cpp`
- [ ] TestCpuCustomNonbondedForce - `openmm/platforms/cpu/tests/TestCpuCustomNonbondedForce.cpp`
- [ ] TestCpuDispersionPME - `openmm/platforms/cpu/tests/TestCpuDispersionPME.cpp`
- [ ] TestCpuEwald - `openmm/platforms/cpu/tests/TestCpuEwald.cpp`
- [ ] TestCpuGBSAOBCForce - `openmm/platforms/cpu/tests/TestCpuGBSAOBCForce.cpp`
- [ ] TestCpuGayBerneForce - `openmm/platforms/cpu/tests/TestCpuGayBerneForce.cpp`
- [ ] TestCpuHarmonicAngleForce - `openmm/platforms/cpu/tests/TestCpuHarmonicAngleForce.cpp`
- [ ] TestCpuLangevinIntegrator - `openmm/platforms/cpu/tests/TestCpuLangevinIntegrator.cpp`
- [ ] TestCpuLangevinMiddleIntegrator - `openmm/platforms/cpu/tests/TestCpuLangevinMiddleIntegrator.cpp`
- [ ] TestCpuNeighborList - `openmm/platforms/cpu/tests/TestCpuNeighborList.cpp`
- [ ] TestCpuNonbondedForce - `openmm/platforms/cpu/tests/TestCpuNonbondedForce.cpp`
- [ ] TestCpuPeriodicTorsionForce - `openmm/platforms/cpu/tests/TestCpuPeriodicTorsionForce.cpp`
- [ ] TestCpuRBTorsionForce - `openmm/platforms/cpu/tests/TestCpuRBTorsionForce.cpp`
- [ ] TestCpuSettle - `openmm/platforms/cpu/tests/TestCpuSettle.cpp`
- [ ] CUDA
- [ ] TestCudaATMForce - `openmm/platforms/cuda/tests/TestCudaATMForce.cpp`
- [ ] TestCudaAndersenThermostat - `openmm/platforms/cuda/tests/TestCudaAndersenThermostat.cpp`
- [ ] TestCudaBrownianIntegrator - `openmm/platforms/cuda/tests/TestCudaBrownianIntegrator.cpp`
- [ ] TestCudaCMAPTorsionForce - `openmm/platforms/cuda/tests/TestCudaCMAPTorsionForce.cpp`
- [ ] TestCudaCMMotionRemover - `openmm/platforms/cuda/tests/TestCudaCMMotionRemover.cpp`
- [ ] TestCudaCheckpoints - `openmm/platforms/cuda/tests/TestCudaCheckpoints.cpp`
- [ ] TestCudaCompoundIntegrator - `openmm/platforms/cuda/tests/TestCudaCompoundIntegrator.cpp`
- [ ] TestCudaCustomAngleForce - `openmm/platforms/cuda/tests/TestCudaCustomAngleForce.cpp`
- [ ] TestCudaCustomBondForce - `openmm/platforms/cuda/tests/TestCudaCustomBondForce.cpp`
- [ ] TestCudaCustomCPPForce - `openmm/platforms/cuda/tests/TestCudaCustomCPPForce.cpp`
- [ ] TestCudaCustomCVForce - `openmm/platforms/cuda/tests/TestCudaCustomCVForce.cpp`
- [ ] TestCudaCustomCentroidBondForce - `openmm/platforms/cuda/tests/TestCudaCustomCentroidBondForce.cpp`
- [ ] TestCudaCustomCompoundBondForce - `openmm/platforms/cuda/tests/TestCudaCustomCompoundBondForce.cpp`
- [ ] TestCudaCustomExternalForce - `openmm/platforms/cuda/tests/TestCudaCustomExternalForce.cpp`
- [ ] TestCudaCustomGBForce - `openmm/platforms/cuda/tests/TestCudaCustomGBForce.cpp`
- [ ] TestCudaCustomHbondForce - `openmm/platforms/cuda/tests/TestCudaCustomHbondForce.cpp`
- [ ] TestCudaCustomIntegrator - `openmm/platforms/cuda/tests/TestCudaCustomIntegrator.cpp`
- [ ] TestCudaCustomManyParticleForce - `openmm/platforms/cuda/tests/TestCudaCustomManyParticleForce.cpp`
- [ ] TestCudaCustomNonbondedForce - `openmm/platforms/cuda/tests/TestCudaCustomNonbondedForce.cpp`
- [ ] TestCudaCustomTorsionForce - `openmm/platforms/cuda/tests/TestCudaCustomTorsionForce.cpp`
- [ ] TestCudaDispersionPME - `openmm/platforms/cuda/tests/TestCudaDispersionPME.cpp`
- [ ] TestCudaEwald - `openmm/platforms/cuda/tests/TestCudaEwald.cpp`
- [ ] TestCudaFFT3D - `openmm/platforms/cuda/tests/TestCudaFFT3D.cpp`
- [ ] TestCudaGBSAOBCForce - `openmm/platforms/cuda/tests/TestCudaGBSAOBCForce.cpp`
- [ ] TestCudaGayBerneForce - `openmm/platforms/cuda/tests/TestCudaGayBerneForce.cpp`
- [ ] TestCudaHarmonicAngleForce - `openmm/platforms/cuda/tests/TestCudaHarmonicAngleForce.cpp`
- [ ] TestCudaHarmonicBondForce - `openmm/platforms/cuda/tests/TestCudaHarmonicBondForce.cpp`
- [ ] TestCudaLangevinIntegrator - `openmm/platforms/cuda/tests/TestCudaLangevinIntegrator.cpp`
- [ ] TestCudaLangevinMiddleIntegrator - `openmm/platforms/cuda/tests/TestCudaLangevinMiddleIntegrator.cpp`
- [ ] TestCudaLocalEnergyMinimizer - `openmm/platforms/cuda/tests/TestCudaLocalEnergyMinimizer.cpp`
- [ ] TestCudaMonteCarloAnisotropicBarostat - `openmm/platforms/cuda/tests/TestCudaMonteCarloAnisotropicBarostat.cpp`
- [ ] TestCudaMonteCarloBarostat - `openmm/platforms/cuda/tests/TestCudaMonteCarloBarostat.cpp`
- [ ] TestCudaMonteCarloFlexibleBarostat - `openmm/platforms/cuda/tests/TestCudaMonteCarloFlexibleBarostat.cpp`
- [ ] TestCudaMultipleForces - `openmm/platforms/cuda/tests/TestCudaMultipleForces.cpp`
- [ ] TestCudaNonbondedForce - `openmm/platforms/cuda/tests/TestCudaNonbondedForce.cpp`
- [ ] TestCudaNoseHooverIntegrator - `openmm/platforms/cuda/tests/TestCudaNoseHooverIntegrator.cpp`
- [ ] TestCudaPeriodicTorsionForce - `openmm/platforms/cuda/tests/TestCudaPeriodicTorsionForce.cpp`
- [ ] TestCudaRBTorsionForce - `openmm/platforms/cuda/tests/TestCudaRBTorsionForce.cpp`
- [ ] TestCudaRMSDForce - `openmm/platforms/cuda/tests/TestCudaRMSDForce.cpp`
- [ ] TestCudaRandom - `openmm/platforms/cuda/tests/TestCudaRandom.cpp`
- [ ] TestCudaSettle - `openmm/platforms/cuda/tests/TestCudaSettle.cpp`
- [ ] TestCudaSort - `openmm/platforms/cuda/tests/TestCudaSort.cpp`
- [ ] TestCudaVariableLangevinIntegrator - `openmm/platforms/cuda/tests/TestCudaVariableLangevinIntegrator.cpp`
- [ ] TestCudaVariableVerletIntegrator - `openmm/platforms/cuda/tests/TestCudaVariableVerletIntegrator.cpp`
- [ ] TestCudaVerletIntegrator - `openmm/platforms/cuda/tests/TestCudaVerletIntegrator.cpp`
- [ ] TestCudaVirtualSites - `openmm/platforms/cuda/tests/TestCudaVirtualSites.cpp`
- [ ] OpenCL
- [ ] TestOpenCLATMForce - `openmm/platforms/opencl/tests/TestOpenCLATMForce.cpp`
- [ ] TestOpenCLAndersenThermostat - `openmm/platforms/opencl/tests/TestOpenCLAndersenThermostat.cpp`
- [ ] TestOpenCLBrownianIntegrator - `openmm/platforms/opencl/tests/TestOpenCLBrownianIntegrator.cpp`
- [ ] TestOpenCLCMAPTorsionForce - `openmm/platforms/opencl/tests/TestOpenCLCMAPTorsionForce.cpp`
- [ ] TestOpenCLCMMotionRemover - `openmm/platforms/opencl/tests/TestOpenCLCMMotionRemover.cpp`
- [ ] TestOpenCLCheckpoints - `openmm/platforms/opencl/tests/TestOpenCLCheckpoints.cpp`
- [ ] TestOpenCLCompoundIntegrator - `openmm/platforms/opencl/tests/TestOpenCLCompoundIntegrator.cpp`
- [ ] TestOpenCLCustomAngleForce - `openmm/platforms/opencl/tests/TestOpenCLCustomAngleForce.cpp`
- [ ] TestOpenCLCustomBondForce - `openmm/platforms/opencl/tests/TestOpenCLCustomBondForce.cpp`
- [ ] TestOpenCLCustomCPPForce - `openmm/platforms/opencl/tests/TestOpenCLCustomCPPForce.cpp`
- [ ] TestOpenCLCustomCVForce - `openmm/platforms/opencl/tests/TestOpenCLCustomCVForce.cpp`
- [ ] TestOpenCLCustomCentroidBondForce - `openmm/platforms/opencl/tests/TestOpenCLCustomCentroidBondForce.cpp`
- [ ] TestOpenCLCustomCompoundBondForce - `openmm/platforms/opencl/tests/TestOpenCLCustomCompoundBondForce.cpp`
- [ ] TestOpenCLCustomExternalForce - `openmm/platforms/opencl/tests/TestOpenCLCustomExternalForce.cpp`
- [ ] TestOpenCLCustomGBForce - `openmm/platforms/opencl/tests/TestOpenCLCustomGBForce.cpp`
- [ ] TestOpenCLCustomHbondForce - `openmm/platforms/opencl/tests/TestOpenCLCustomHbondForce.cpp`
- [ ] TestOpenCLCustomIntegrator - `openmm/platforms/opencl/tests/TestOpenCLCustomIntegrator.cpp`
- [ ] TestOpenCLCustomManyParticleForce - `openmm/platforms/opencl/tests/TestOpenCLCustomManyParticleForce.cpp`
- [ ] TestOpenCLCustomNonbondedForce - `openmm/platforms/opencl/tests/TestOpenCLCustomNonbondedForce.cpp`
- [ ] TestOpenCLCustomTorsionForce - `openmm/platforms/opencl/tests/TestOpenCLCustomTorsionForce.cpp`
- [ ] TestOpenCLDeviceQuery - `openmm/platforms/opencl/tests/TestOpenCLDeviceQuery.cpp`
- [ ] TestOpenCLDispersionPME - `openmm/platforms/opencl/tests/TestOpenCLDispersionPME.cpp`
- [ ] TestOpenCLEwald - `openmm/platforms/opencl/tests/TestOpenCLEwald.cpp`
- [ ] TestOpenCLFFT - `openmm/platforms/opencl/tests/TestOpenCLFFT.cpp`
- [ ] TestOpenCLGBSAOBCForce - `openmm/platforms/opencl/tests/TestOpenCLGBSAOBCForce.cpp`
- [ ] TestOpenCLGayBerneForce - `openmm/platforms/opencl/tests/TestOpenCLGayBerneForce.cpp`
- [ ] TestOpenCLHarmonicAngleForce - `openmm/platforms/opencl/tests/TestOpenCLHarmonicAngleForce.cpp`
- [ ] TestOpenCLHarmonicBondForce - `openmm/platforms/opencl/tests/TestOpenCLHarmonicBondForce.cpp`
- [ ] TestOpenCLLangevinIntegrator - `openmm/platforms/opencl/tests/TestOpenCLLangevinIntegrator.cpp`
- [ ] TestOpenCLLangevinMiddleIntegrator - `openmm/platforms/opencl/tests/TestOpenCLLangevinMiddleIntegrator.cpp`
- [ ] TestOpenCLLocalEnergyMinimizer - `openmm/platforms/opencl/tests/TestOpenCLLocalEnergyMinimizer.cpp`
- [ ] TestOpenCLMonteCarloAnisotropicBarostat - `openmm/platforms/opencl/tests/TestOpenCLMonteCarloAnisotropicBarostat.cpp`
- [ ] TestOpenCLMonteCarloBarostat - `openmm/platforms/opencl/tests/TestOpenCLMonteCarloBarostat.cpp`
- [ ] TestOpenCLMonteCarloFlexibleBarostat - `openmm/platforms/opencl/tests/TestOpenCLMonteCarloFlexibleBarostat.cpp`
- [ ] TestOpenCLMultipleForces - `openmm/platforms/opencl/tests/TestOpenCLMultipleForces.cpp`
- [ ] TestOpenCLNonbondedForce - `openmm/platforms/opencl/tests/TestOpenCLNonbondedForce.cpp`
- [ ] TestOpenCLNoseHooverIntegrator - `openmm/platforms/opencl/tests/TestOpenCLNoseHooverIntegrator.cpp`
- [ ] TestOpenCLPeriodicTorsionForce - `openmm/platforms/opencl/tests/TestOpenCLPeriodicTorsionForce.cpp`
- [ ] TestOpenCLRBTorsionForce - `openmm/platforms/opencl/tests/TestOpenCLRBTorsionForce.cpp`
- [ ] TestOpenCLRMSDForce - `openmm/platforms/opencl/tests/TestOpenCLRMSDForce.cpp`
- [ ] TestOpenCLRandom - `openmm/platforms/opencl/tests/TestOpenCLRandom.cpp`
- [ ] TestOpenCLSettle - `openmm/platforms/opencl/tests/TestOpenCLSettle.cpp`
- [ ] TestOpenCLSort - `openmm/platforms/opencl/tests/TestOpenCLSort.cpp`
- [ ] TestOpenCLVariableLangevinIntegrator - `openmm/platforms/opencl/tests/TestOpenCLVariableLangevinIntegrator.cpp`
- [ ] TestOpenCLVariableVerletIntegrator - `openmm/platforms/opencl/tests/TestOpenCLVariableVerletIntegrator.cpp`
- [ ] TestOpenCLVerletIntegrator - `openmm/platforms/opencl/tests/TestOpenCLVerletIntegrator.cpp`
- [ ] TestOpenCLVirtualSites - `openmm/platforms/opencl/tests/TestOpenCLVirtualSites.cpp`
- [ ] Reference
- [ ] TestReferenceATMForce - `openmm/platforms/reference/tests/TestReferenceATMForce.cpp`
- [ ] TestReferenceAndersenThermostat - `openmm/platforms/reference/tests/TestReferenceAndersenThermostat.cpp`
- [ ] TestReferenceBrownianIntegrator - `openmm/platforms/reference/tests/TestReferenceBrownianIntegrator.cpp`
- [ ] TestReferenceCMAPTorsionForce - `openmm/platforms/reference/tests/TestReferenceCMAPTorsionForce.cpp`
- [ ] TestReferenceCMMotionRemover - `openmm/platforms/reference/tests/TestReferenceCMMotionRemover.cpp`
- [ ] TestReferenceCheckpoints - `openmm/platforms/reference/tests/TestReferenceCheckpoints.cpp`
- [ ] TestReferenceCompoundIntegrator - `openmm/platforms/reference/tests/TestReferenceCompoundIntegrator.cpp`
- [ ] TestReferenceCustomAngleForce - `openmm/platforms/reference/tests/TestReferenceCustomAngleForce.cpp`
- [ ] TestReferenceCustomBondForce - `openmm/platforms/reference/tests/TestReferenceCustomBondForce.cpp`
- [ ] TestReferenceCustomCPPForce - `openmm/platforms/reference/tests/TestReferenceCustomCPPForce.cpp`
- [ ] TestReferenceCustomCVForce - `openmm/platforms/reference/tests/TestReferenceCustomCVForce.cpp`
- [ ] TestReferenceCustomCentroidBondForce - `openmm/platforms/reference/tests/TestReferenceCustomCentroidBondForce.cpp`
- [ ] TestReferenceCustomCompoundBondForce - `openmm/platforms/reference/tests/TestReferenceCustomCompoundBondForce.cpp`
- [ ] TestReferenceCustomExternalForce - `openmm/platforms/reference/tests/TestReferenceCustomExternalForce.cpp`
- [ ] TestReferenceCustomGBForce - `openmm/platforms/reference/tests/TestReferenceCustomGBForce.cpp`
- [ ] TestReferenceCustomHbondForce - `openmm/platforms/reference/tests/TestReferenceCustomHbondForce.cpp`
- [ ] TestReferenceCustomIntegrator - `openmm/platforms/reference/tests/TestReferenceCustomIntegrator.cpp`
- [ ] TestReferenceCustomManyParticleForce - `openmm/platforms/reference/tests/TestReferenceCustomManyParticleForce.cpp`
- [ ] TestReferenceCustomNonbondedForce - `openmm/platforms/reference/tests/TestReferenceCustomNonbondedForce.cpp`
- [ ] TestReferenceCustomTorsionForce - `openmm/platforms/reference/tests/TestReferenceCustomTorsionForce.cpp`
- [ ] TestReferenceDispersionPME - `openmm/platforms/reference/tests/TestReferenceDispersionPME.cpp`
- [ ] TestReferenceEwald - `openmm/platforms/reference/tests/TestReferenceEwald.cpp`
- [ ] TestReferenceGBSAOBCForce - `openmm/platforms/reference/tests/TestReferenceGBSAOBCForce.cpp`
- [ ] TestReferenceGayBerneForce - `openmm/platforms/reference/tests/TestReferenceGayBerneForce.cpp`
- [ ] TestReferenceHarmonicAngleForce - `openmm/platforms/reference/tests/TestReferenceHarmonicAngleForce.cpp`
- [ ] TestReferenceHarmonicBondForce - `openmm/platforms/reference/tests/TestReferenceHarmonicBondForce.cpp`
- [ ] TestReferenceKineticEnergy - `openmm/platforms/reference/tests/TestReferenceKineticEnergy.cpp`
- [ ] TestReferenceLangevinIntegrator - `openmm/platforms/reference/tests/TestReferenceLangevinIntegrator.cpp`
- [ ] TestReferenceLangevinMiddleIntegrator - `openmm/platforms/reference/tests/TestReferenceLangevinMiddleIntegrator.cpp`
- [ ] TestReferenceLocalEnergyMinimizer - `openmm/platforms/reference/tests/TestReferenceLocalEnergyMinimizer.cpp`
- [ ] TestReferenceMonteCarloAnisotropicBarostat - `openmm/platforms/reference/tests/TestReferenceMonteCarloAnisotropicBarostat.cpp`
- [ ] TestReferenceMonteCarloBarostat - `openmm/platforms/reference/tests/TestReferenceMonteCarloBarostat.cpp`
- [ ] TestReferenceMonteCarloFlexibleBarostat - `openmm/platforms/reference/tests/TestReferenceMonteCarloFlexibleBarostat.cpp`
- [ ] TestReferenceMonteCarloMembraneBarostat - `openmm/platforms/reference/tests/TestReferenceMonteCarloMembraneBarostat.cpp`
- [ ] TestReferenceNeighborList - `openmm/platforms/reference/tests/TestReferenceNeighborList.cpp`
- [ ] TestReferenceNonbondedForce - `openmm/platforms/reference/tests/TestReferenceNonbondedForce.cpp`
- [ ] TestReferenceNoseHooverIntegrator - `openmm/platforms/reference/tests/TestReferenceNoseHooverIntegrator.cpp`
- [ ] TestReferencePeriodicTorsionForce - `openmm/platforms/reference/tests/TestReferencePeriodicTorsionForce.cpp`
- [ ] TestReferenceRBTorsionForce - `openmm/platforms/reference/tests/TestReferenceRBTorsionForce.cpp`
- [ ] TestReferenceRMSDForce - `openmm/platforms/reference/tests/TestReferenceRMSDForce.cpp`
- [ ] TestReferenceRandom - `openmm/platforms/reference/tests/TestReferenceRandom.cpp`
- [ ] TestReferenceSettle - `openmm/platforms/reference/tests/TestReferenceSettle.cpp`
- [ ] TestReferenceVariableLangevinIntegrator - `openmm/platforms/reference/tests/TestReferenceVariableLangevinIntegrator.cpp`
- [ ] TestReferenceVariableVerletIntegrator - `openmm/platforms/reference/tests/TestReferenceVariableVerletIntegrator.cpp`
- [ ] TestReferenceVerletIntegrator - `openmm/platforms/reference/tests/TestReferenceVerletIntegrator.cpp`
- [ ] TestReferenceVirtualSites - `openmm/platforms/reference/tests/TestReferenceVirtualSites.cpp`
- **Plugins**
- [ ] CUDA
- [ ] TestCudaAmoebaExtrapolatedPolarization - `openmm/plugins/amoeba/platforms/cuda/tests/TestCudaAmoebaExtrapolatedPolarization.cpp`
- [ ] TestCudaAmoebaGeneralizedKirkwoodForce - `openmm/plugins/amoeba/platforms/cuda/tests/TestCudaAmoebaGeneralizedKirkwoodForce.cpp`
- [ ] TestCudaAmoebaMultipoleForce - `openmm/plugins/amoeba/platforms/cuda/tests/TestCudaAmoebaMultipoleForce.cpp`
- [ ] TestCudaAmoebaTorsionTorsionForce - `openmm/plugins/amoeba/platforms/cuda/tests/TestCudaAmoebaTorsionTorsionForce.cpp`
- [ ] TestCudaAmoebaVdwForce - `openmm/plugins/amoeba/platforms/cuda/tests/TestCudaAmoebaVdwForce.cpp`
- [ ] TestCudaHippoNonbondedForce - `openmm/plugins/amoeba/platforms/cuda/tests/TestCudaHippoNonbondedForce.cpp`
- [ ] TestCudaWcaDispersionForce - `openmm/plugins/amoeba/platforms/cuda/tests/TestCudaWcaDispersionForce.cpp`
- [ ] TestCudaDrudeForce - `openmm/plugins/drude/platforms/cuda/tests/TestCudaDrudeForce.cpp`
- [ ] TestCudaDrudeLangevinIntegrator - `openmm/plugins/drude/platforms/cuda/tests/TestCudaDrudeLangevinIntegrator.cpp`
- [ ] TestCudaDrudeNoseHoover - `openmm/plugins/drude/platforms/cuda/tests/TestCudaDrudeNoseHoover.cpp`
- [ ] TestCudaDrudeSCFIntegrator - `openmm/plugins/drude/platforms/cuda/tests/TestCudaDrudeSCFIntegrator.cpp`
- [ ] TestCudaRpmd - `openmm/plugins/rpmd/platforms/cuda/tests/TestCudaRpmd.cpp`
- [ ] OpenCL
- [ ] TestOpenCLAmoebaExtrapolatedPolarization - `openmm/plugins/amoeba/platforms/opencl/tests/TestOpenCLAmoebaExtrapolatedPolarization.cpp`
- [ ] TestOpenCLAmoebaGeneralizedKirkwoodForce - `openmm/plugins/amoeba/platforms/opencl/tests/TestOpenCLAmoebaGeneralizedKirkwoodForce.cpp`
- [ ] TestOpenCLAmoebaMultipoleForce - `openmm/plugins/amoeba/platforms/opencl/tests/TestOpenCLAmoebaMultipoleForce.cpp`
- [ ] TestOpenCLAmoebaTorsionTorsionForce - `openmm/plugins/amoeba/platforms/opencl/tests/TestOpenCLAmoebaTorsionTorsionForce.cpp`
- [ ] TestOpenCLAmoebaVdwForce - `openmm/plugins/amoeba/platforms/opencl/tests/TestOpenCLAmoebaVdwForce.cpp`
- [ ] TestOpenCLHippoNonbondedForce - `openmm/plugins/amoeba/platforms/opencl/tests/TestOpenCLHippoNonbondedForce.cpp`
- [ ] TestOpenCLWcaDispersionForce - `openmm/plugins/amoeba/platforms/opencl/tests/TestOpenCLWcaDispersionForce.cpp`
- [ ] TestOpenCLDrudeForce - `openmm/plugins/drude/platforms/opencl/tests/TestOpenCLDrudeForce.cpp`
- [ ] TestOpenCLDrudeLangevinIntegrator - `openmm/plugins/drude/platforms/opencl/tests/TestOpenCLDrudeLangevinIntegrator.cpp`
- [ ] TestOpenCLDrudeNoseHoover - `openmm/plugins/drude/platforms/opencl/tests/TestOpenCLDrudeNoseHoover.cpp`
- [ ] TestOpenCLDrudeSCFIntegrator - `openmm/plugins/drude/platforms/opencl/tests/TestOpenCLDrudeSCFIntegrator.cpp`
- [ ] TestOpenCLRpmd - `openmm/plugins/rpmd/platforms/opencl/tests/TestOpenCLRpmd.cpp`
- [ ] Reference
- [ ] TestReferenceAmoebaExtrapolatedPolarization - `openmm/plugins/amoeba/platforms/reference/tests/TestReferenceAmoebaExtrapolatedPolarization.cpp`
- [ ] TestReferenceAmoebaGeneralizedKirkwoodForce - `openmm/plugins/amoeba/platforms/reference/tests/TestReferenceAmoebaGeneralizedKirkwoodForce.cpp`
- [ ] TestReferenceAmoebaMultipoleForce - `openmm/plugins/amoeba/platforms/reference/tests/TestReferenceAmoebaMultipoleForce.cpp`
- [ ] TestReferenceAmoebaTorsionTorsionForce - `openmm/plugins/amoeba/platforms/reference/tests/TestReferenceAmoebaTorsionTorsionForce.cpp`
- [ ] TestReferenceAmoebaVdwForce - `openmm/plugins/amoeba/platforms/reference/tests/TestReferenceAmoebaVdwForce.cpp`
- [ ] TestReferenceHippoNonbondedForce - `openmm/plugins/amoeba/platforms/reference/tests/TestReferenceHippoNonbondedForce.cpp`
- [ ] TestReferenceWcaDispersionForce - `openmm/plugins/amoeba/platforms/reference/tests/TestReferenceWcaDispersionForce.cpp`
- [ ] TestReferenceDrudeForce - `openmm/plugins/drude/platforms/reference/tests/TestReferenceDrudeForce.cpp`
- [ ] TestReferenceDrudeLangevinIntegrator - `openmm/plugins/drude/platforms/reference/tests/TestReferenceDrudeLangevinIntegrator.cpp`
- [ ] TestReferenceDrudeNoseHoover - `openmm/plugins/drude/platforms/reference/tests/TestReferenceDrudeNoseHoover.cpp`
- [ ] TestReferenceDrudeSCFIntegrator - `openmm/plugins/drude/platforms/reference/tests/TestReferenceDrudeSCFIntegrator.cpp`
- [ ] TestReferenceRpmd - `openmm/plugins/rpmd/platforms/reference/tests/TestReferenceRpmd.cpp`
- [ ] Serialization
- [ ] TestSerializeAmoebaGeneralizedKirkwoodForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaGeneralizedKirkwoodForce.cpp`
- [ ] TestSerializeAmoebaMultipoleForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaMultipoleForce.cpp`
- [ ] TestSerializeAmoebaTorsionTorsionForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaTorsionTorsionForce.cpp`
- [ ] TestSerializeAmoebaVdwForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaVdwForce.cpp`
- [ ] TestSerializeAmoebaWcaDispersionForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeAmoebaWcaDispersionForce.cpp`
- [ ] TestSerializeHippoNonbondedForce - `openmm/plugins/amoeba/serialization/tests/TestSerializeHippoNonbondedForce.cpp`
- [ ] TestSerializeDrudeForce - `openmm/plugins/drude/serialization/tests/TestSerializeDrudeForce.cpp`
- [ ] TestSerializeDrudeLangevinIntegrator - `openmm/plugins/drude/serialization/tests/TestSerializeDrudeLangevinIntegrator.cpp`
- [ ] TestSerializeDrudeNoseHooverIntegrator - `openmm/plugins/drude/serialization/tests/TestSerializeDrudeNoseHooverIntegrator.cpp`
- [ ] TestAmoebaExtrapolatedPolarization - `openmm/plugins/amoeba/tests/TestAmoebaExtrapolatedPolarization.h`
- [ ] TestAmoebaGeneralizedKirkwoodForce - `openmm/plugins/amoeba/tests/TestAmoebaGeneralizedKirkwoodForce.h`
- [ ] TestAmoebaMultipoleForce - `openmm/plugins/amoeba/tests/TestAmoebaMultipoleForce.h`
- [ ] TestAmoebaTorsionTorsionForce - `openmm/plugins/amoeba/tests/TestAmoebaTorsionTorsionForce.h`
- [ ] TestAmoebaVdwForce - `openmm/plugins/amoeba/tests/TestAmoebaVdwForce.h`
- [ ] TestHippoNonbondedForce - `openmm/plugins/amoeba/tests/TestHippoNonbondedForce.h`
- [ ] TestWcaDispersionForce - `openmm/plugins/amoeba/tests/TestWcaDispersionForce.h`
- [ ] TestCpuPme - `openmm/plugins/cpupme/tests/TestCpuPme.cpp`
- [ ] TestDrudeForce - `openmm/plugins/drude/tests/TestDrudeForce.h`
- [ ] TestDrudeLangevinIntegrator - `openmm/plugins/drude/tests/TestDrudeLangevinIntegrator.h`
- [ ] TestDrudeNoseHoover - `openmm/plugins/drude/tests/TestDrudeNoseHoover.h`
- [ ] TestDrudeSCFIntegrator - `openmm/plugins/drude/tests/TestDrudeSCFIntegrator.h`
- [ ] TestRpmd - `openmm/plugins/rpmd/tests/TestRpmd.h`

View File

@@ -5,6 +5,13 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = ["cpu"]
cpu = []
vulkan = []
cuda = []
opencl = []
[dependencies]
nalgebra = "0.33.2"
approx = "0.5"
approx = "0.5"