Get corresponding :class:`LocationDescriptor` object from a string or a :class:`LocationDescriptor` itself.
        
        Args:
            location: a string or a :class:`LocationDescriptor`.
        
        Returns:
            A corresponding :class:`LocationDescriptor` object. If ``location`` is a :class:`LocationDescriptor`,
            we simply return it.
        
        Raises:
            A ``RuntimeError`` is raised whenever the `location` object is not recognized a string or :class:`self._nbr_of_nodes`.

def _get_location_descriptor(self, location):
        """
        Get corresponding :class:`LocationDescriptor` object from a string or a :class:`LocationDescriptor` itself.
        
        Args:
            location: a string or a :class:`LocationDescriptor`.
        
        Returns:
            A corresponding :class:`LocationDescriptor` object. If ``location`` is a :class:`LocationDescriptor`,
            we simply return it.
        
        Raises:
            A ``RuntimeError`` is raised whenever the `location` object is not recognized a string or :class:`self._nbr_of_nodes`.
        """
        loc_descriptor = None
        if isinstance(location, basestring):
            loc_descriptor = LocationDescriptor(location)
        elif isinstance(location, LocationDescriptor):
            loc_descriptor = location
        else:
            raise RuntimeError("Argument is neither a string nor a self._nbr_of_nodes")

        return loc_descriptor