ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
short_range_verlet.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2025-2026 The ESPResSo project
3 *
4 * This file is part of ESPResSo.
5 *
6 * ESPResSo is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * ESPResSo is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#pragma once
21
22// Non-template wrapper around update_cabana_state<VerletCriterion<>>. The
23// AoSoA-commit / Verlet-list-build template giant is instantiated here ONCE
24// (in short_range_verlet.cpp) instead of separately in forces.cpp, energy.cpp
25// and pressure.cpp. Those TUs call this wrapper, so the giant no longer lands
26// in each of their objects.
27
28namespace System {
29class System;
30}
31
32// Builds the Verlet criterion from the system's cutoffs and updates the
33// cabana state. Only the collision-detection cutoff is caller-specific
34// (energy and pressure observables pass the inactive cutoff); everything
35// else is derived from @p system so the call sites cannot drift. When no
36// electrostatics/dipolar/collision cutoff is active, the pure-short-range
37// criterion variant is used, dropping those dead branches from the
38// per-candidate build loop.
Main system class.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
void update_verlet_state(System::System const &system, double collision_detection_cutoff)