ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
sd_interface.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2010-2022 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/** @file
23 * See @cite durlofsky87a for the Stokesian dynamics method used here.
24 * See @cite banchio03a and @cite brady88a for the thermalization method.
25 */
26
27#include "config/config.hpp"
28
29#ifdef STOKESIAN_DYNAMICS
30
31#include "ParticleRange.hpp"
32#include "PropagationMode.hpp"
34#include "thermostat.hpp"
35
36#include <unordered_map>
37
39 int modes;
46
47 bool operator()(int prop) const { return (prop & modes); }
48};
49
52
54 double viscosity;
55 std::unordered_map<int, double> radii;
56 int flags;
58 std::unordered_map<int, double> radii, int flags);
59};
60
61enum class sd_flags : int {
62 NONE = 0,
63 SELF_MOBILITY = 1 << 0,
64 PAIR_MOBILITY = 1 << 1,
65 LUBRICATION = 1 << 2,
66 FTS = 1 << 3
67};
68
70
71/** Takes the forces and torques on all particles and computes their
72 * velocities. Acts globally on particles on all nodes; i.e. particle data
73 * is gathered from all nodes and their velocities and angular velocities are
74 * set according to the Stokesian Dynamics method.
75 */
77 StokesianThermostat const &stokesian,
78 double time_step, double kT);
79
80#endif // STOKESIAN_DYNAMICS
This file contains the defaults for ESPResSo.
void propagate_vel_pos_sd(ParticleRangeStokesian const &particles, StokesianThermostat const &stokesian, double time_step, double kT)
Takes the forces and torques on all particles and computes their velocities.
sd_flags
void register_integrator(StokesianDynamicsParameters const &obj)
bool operator()(int prop) const
PropagationPredicateStokesian(int default_propagation)
std::unordered_map< int, double > radii
Thermostat for Stokesian dynamics.