code: def _build_b(self, force=False):
          r
          if force:
              self._pure_b = None
          if self._pure_b is None:
              b = np.zeros(shape=(self.Np, ), dtype=float)  # Create vector of 0s
              self._pure_b = b
          self.b = self._pure_b.copy()
docs: r"""
          Builds the RHS matrix, without applying any boundary conditions or
          source terms. This method is trivial an basically creates a column
          vector of 0's.
  
          Parameters
          ----------
          force : Boolean (default is ``False``)
              If set to ``True`` then the b matrix is built from new.  If
              ``False`` (the default), a cached version of b is returned.  The
              cached version is *clean* in the sense that no boundary conditions
              or sources terms have been added to it.