code: def _build_A(self, force=False):
          r
          if force:
              self._pure_A = None
          if self._pure_A is None:
              network = self.project.network
              phase = self.project.phases()[self.settings['phase']]
              g = phase[self.settings['conductance']]
              am = network.create_adjacency_matrix(weights=g, fmt='coo')
              self._pure_A = spgr.laplacian(am)
          self.A = self._pure_A.copy()
docs: r"""
          Builds the coefficient matrix based on conductances between pores.
          The conductance to use is specified in the algorithm's ``settings``
          under ``conductance``.  In subclasses (e.g. ``FickianDiffusion``)
          this is set by default, though it can be overwritten.
  
          Parameters
          ----------
          force : Boolean (default is ``False``)
              If set to ``True`` then the A matrix is built from new.  If
              ``False`` (the default), a cached version of A is returned.  The
              cached version is *clean* in the sense that no boundary conditions
              or sources terms have been added to it.