<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _build_b(self, force=False):
 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. """

        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()