<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def init_mesh(self, mesh=100.0, shift=None, is_time_reversal=True, is_mesh_symmetry=True, with_eigenvectors=False, with_group_velocities=False, is_gamma_center=False, use_iter_mesh=False):
 """Initialize mesh sampling phonon calculation without starting to run. Phonon calculation starts explicitly with calling Mesh.run() or implicitly with accessing getters of Mesh instance, e.g., Mesh.frequencies. Parameters mesh: array_like or float, optional Mesh numbers along a, b, c axes when array_like object is given. dtype='intc', shape=(3,) When float value is given, uniform mesh is generated following VASP convention by N = max(1, nint(l * |a|^*)) where 'nint' is the function to return the nearest integer. In this case, it is forced to set is_gamma_center=True. Default value is 100.0. shift: array_like, optional Mesh shifts along a*, b*, c* axes with respect to neighboring grid points from the original mesh (Monkhorst-Pack or Gamma center). 0.5 gives half grid shift. Normally 0 or 0.5 is given. Otherwise q-points symmetry search is not performed. Default is None (no additional shift). dtype='double', shape=(3, ) is_time_reversal: bool, optional Time reversal symmetry is considered in symmetry search. By this, inversion symmetry is always included. Default is True. is_mesh_symmetry: bool, optional Wheather symmetry search is done or not. Default is True with_eigenvectors: bool, optional Eigenvectors are stored by setting True. Default False. with_group_velocities : bool, optional Group velocities are calculated by setting True. Default is False. is_gamma_center: bool, default False Uniform mesh grids are generated centring at Gamma point but not the Monkhorst-Pack scheme. When type(mesh) is float, this parameter setting is ignored and it is forced to set is_gamma_center=True. use_iter_mesh: bool Use IterMesh instead of Mesh class not to store phonon properties in its instance to save memory consumption. This is used with ThermalDisplacements and ThermalDisplacementMatrices. Default is False. """


        if self._dynamical_matrix is None:
            msg = "Dynamical matrix has not yet built."
            raise RuntimeError(msg)

        _mesh = np.array(mesh)
        mesh_nums = None
        if _mesh.shape:
            if _mesh.shape == (3,):
                mesh_nums = mesh
                _is_gamma_center = is_gamma_center
        else:
            if self._primitive_symmetry is not None:
                rots = self._primitive_symmetry.get_pointgroup_operations()
                mesh_nums = length2mesh(mesh,
                                        self._primitive.get_cell(),
                                        rotations=rots)
            else:
                mesh_nums = length2mesh(mesh, self._primitive.get_cell())
            _is_gamma_center = True
        if mesh_nums is None:
            msg = "mesh has inappropriate type."
            raise TypeError(msg)

        if with_group_velocities:
            if self._group_velocity is None:
                self._set_group_velocity()
            group_velocity = self._group_velocity
        else:
            group_velocity = None

        if use_iter_mesh:
            self._mesh = IterMesh(
                self._dynamical_matrix,
                mesh,
                shift=shift,
                is_time_reversal=is_time_reversal,
                is_mesh_symmetry=is_mesh_symmetry,
                with_eigenvectors=with_eigenvectors,
                is_gamma_center=is_gamma_center,
                rotations=self._primitive_symmetry.get_pointgroup_operations(),
                factor=self._factor)
        else:
            self._mesh = Mesh(
                self._dynamical_matrix,
                mesh_nums,
                shift=shift,
                is_time_reversal=is_time_reversal,
                is_mesh_symmetry=is_mesh_symmetry,
                with_eigenvectors=with_eigenvectors,
                is_gamma_center=_is_gamma_center,
                group_velocity=group_velocity,
                rotations=self._primitive_symmetry.get_pointgroup_operations(),
                factor=self._factor,
                use_lapack_solver=self._use_lapack_solver)