brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
custom-forces-integratorsImplement and debug OpenMM custom expression forces, CustomIntegrator algorithms, force groups, runtime parameters, tabulated functions, and serialization-aware custom systems.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when the task involves OpenMM Custom*Force classes, CustomIntegrator, force groups, global/per-element parameter updates, tabulated functions, expression parsing, or smoke-testing a hand-built custom System.
references/custom-force-api.md.CustomIntegrator algorithms, constraints, random variables, force-group-specific f0/energy0 expressions, MTS patterns, or aMD-style boosts, read references/custom-integrator-recipes.md.references/troubleshooting.md.scripts/custom_force_smoke.py; it builds a two-particle CustomBondForce on the Reference platform and asserts finite energy.Custom*Force class that matches the interaction geometry, then write the expression in OpenMM algebra syntax with class-specific variables.System before creating a Context; for CustomNonbondedForce, add one particle parameter record for every system particle.Context.setParameter() for frequently tuned globals; use set*Parameters() plus updateParametersInContext() for changed per-element values; reserve Context.reinitialize() for topology/count/force-definition changes.Reference platform with explicit positions, finite energy/force assertions, and XML serialization round trips when systems must be portable.../force-fields-modeling/ for ForceField XML authoring, template matching, residue modeling, and parameter file selection.../platforms-performance/ for CUDA/OpenCL/HIP/CPU/Reference platform selection, precision, determinism, and performance tuning.../development-extensions/ for implementing new platform kernels, C++ plugins, or new core OpenMM force classes.