Source code for espressomd.galilei

#
# Copyright (C) 2013-2022 The ESPResSo project
#
# This file is part of ESPResSo.
#
# ESPResSo is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ESPResSo is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

from .script_interface import script_interface_register, ScriptInterfaceHelper


[docs]@script_interface_register class GalileiTransform(ScriptInterfaceHelper): """ Collective operations on particles. Methods ------- kill_particle_motion() Stop the motion of all particles. Parameters ---------- rotation : :obj:`bool`, optional Whether or not to stop the angular momentum too. Defaults to false. kill_particle_forces() Set the forces on the particles to zero. Parameters ---------- torque : :obj:`bool`, optional Whether or not to set the torques to zero too. Defaults to false. system_CMS() Calculate the center of mass of the system. Assumes equal unit mass if the ``MASS`` feature is not compiled in. Returns ------- (3,) array_like of :obj:`float` The center of mass position. system_CMS_velocity() Calculate the center of mass velocity of the system. Assumes equal unit mass if the ``MASS`` feature is not compiled in. Returns ------- (3,) array_like of :obj:`float` The of the center of mass velocity vector. galilei_transform() Remove the center of mass velocity of the system. Assumes equal unit mass if the ``MASS`` feature is not compiled in. This is often used when switching from Langevin Dynamics to lattice-Boltzmann. This is due to the random nature of LD that yield a non-zero net system momentum at any given time. """ _so_name = "Galilei::Galilei" _so_creation_policy = "GLOBAL" _so_bind_methods = ( "kill_particle_motion", "kill_particle_forces", "system_CMS", "system_CMS_velocity", "galilei_transform", )