code: def get_all_distances(
          self,
          fcoords1: Union[Vector3Like, List[Vector3Like]],
          fcoords2: Union[Vector3Like, List[Vector3Like]],
      ) -> np.ndarray:
          
          v, d2 = pbc_shortest_vectors(self, fcoords1, fcoords2, return_d2=True)
          return np.sqrt(d2)
docs: Returns the distances between two lists of coordinates taking into
          account periodic boundary conditions and the lattice. Note that this
          computes an MxN array of distances (i.e. the distance between each
          point in fcoords1 and every coordinate in fcoords2). This is
          different functionality from pbc_diff.
  
          Args:
              fcoords1: First set of fractional coordinates. e.g., [0.5, 0.6,
                  0.7] or [[1.1, 1.2, 4.3], [0.5, 0.6, 0.7]]. It can be a single
                  coord or any array of coords.
              fcoords2: Second set of fractional coordinates.
  
          Returns:
              2d array of cartesian distances. E.g the distance between
              fcoords1[i] and fcoords2[j] is distances[i,j]