docstr: A VelocityHandler class
  
  This class offers a way to handle velocities. It contains
  methods to repair the velocities of particles that exceeded the
  defined boundaries. Following strategies are available for the handling:
  
  * Unmodified:
      Returns the unmodified velocites.
  * Adjust
      Returns the velocity that is adjusted to be the distance between the current
      and the previous position.
  * Invert
      Inverts and shrinks the velocity by the factor :code:`-z`.
  * Zero
      Sets the velocity of out-of-bounds particles to zero.
docstr_tok: ["A","VelocityHandler","class","This","class","offers","a","way","to","handle","velocities",".","It","contains","methods","to","repair","the","velocities","of","particles","that","exceeded","the","defined","boundaries",".","Following","strategies","are","available","for","the","handling",":","*","Unmodified",":","Returns","the","unmodified","velocites",".","*","Adjust","Returns","the","velocity","that","is","adjusted","to","be","the","distance","between","the","current","and","the","previous","position",".","*","Invert","Inverts","and","shrinks","the","velocity","by","the","factor",":","code",":","`","-z","`",".","*","Zero","Sets","the","velocity","of","out-of-bounds","particles","to","zero","."]
code: def __init__(self, strategy):
      """A VelocityHandler class
  
      This class offers a way to handle velocities. It contains
      methods to repair the velocities of particles that exceeded the
      defined boundaries. Following strategies are available for the handling:
  
      * Unmodified:
          Returns the unmodified velocites.
      * Adjust
          Returns the velocity that is adjusted to be the distance between the current
          and the previous position.
      * Invert
          Inverts and shrinks the velocity by the factor :code:`-z`.
      * Zero
          Sets the velocity of out-of-bounds particles to zero.
  
      """
      self.strategy = strategy
      self.strategies = self._get_all_strategies()
      self.rep = Reporter(logger=logging.getLogger(__name__))
      self.memory = None
  
imports: import inspect
  import logging
  import numpy
  import math
  from copy import copy
  from ..utils.reporter import Reporter
label_desc: Use image node_id 1 to create a new VelocityHandler object from inherited base classes: HandlerMixin with example: obj = VelocityHandler(strategy)