Source code for espressomd.lbboundaries

# Copyright (C) 2010-2018 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 __future__ import print_function, absolute_import
from .script_interface import ScriptInterfaceHelper, script_interface_register
import espressomd.code_info


if any(i in espressomd.code_info.features() for i in ["LB_BOUNDARIES", "LB_BOUNDARIES_GPU"]):
[docs] @script_interface_register class LBBoundaries(ScriptInterfaceHelper): """ Creates a set of lattice Boltzmann boundaries. """ _so_name = "LBBoundaries::LBBoundaries" def __getitem__(self, key): return self.call_method("get_elements")[key] def __iter__(self): elements = self.call_method("get_elements") for e in elements: yield e
[docs] def add(self, *args, **kwargs): """ Adds a boundary to the set. Either a valid boundary is an argument, or a valid set of parameters to create a boundary. """ if len(args) == 1: if isinstance(args[0], LBBoundary): lbboundary = args[0] else: raise TypeError( "Either a LBBoundary object or key-value pairs for the parameters of a LBBoundary object need to be passed.") else: lbboundary = LBBoundary(**kwargs) self.call_method("add", object=lbboundary) return lbboundary
[docs] def remove(self, lbboundary): """ Removes a boundary from the set. Parameters ---------- lbboundary : :obj:`LBBoundary` The boundary to be removed from the set. """ self.call_method("remove", object=lbboundary)
[docs] def clear(self): """ Removes all boundaries. """ self.call_method("clear")
[docs] def size(self): return self.call_method("size")
[docs] def empty(self): return self.call_method("empty")
[docs] @script_interface_register class LBBoundary(ScriptInterfaceHelper): """ Creates a LB boundary. """ _so_name = "LBBoundaries::LBBoundary" _so_bind_methods = ("get_force",)