code: def FD(self):
      if self.Verbose:
        print("Finite Difference Solution Technique")
      try:
        self.qs
      except:
        self.qs = self.q0.copy()
        del self.q0
      self.x = np.arange(self.dx/2., self.dx * self.qs.shape[0], self.dx)
      if self.dimension == 2:
        self.y = np.arange(self.dy/2., self.dy * self.qs.shape[1], self.dy)
      try:
        self.Solver
      except:
        if self.filename:
          self.Solver = self.configGet("string", "numerical", "Solver")
        else:
          sys.exit("No solver defined!")
      if self.filename:
        self.iterative_ConvergenceTolerance = self.configGet("float", "numerical", "ConvergenceTolerance")    
        try:
          self.Te = self.configGet("float", "input", "ElasticThickness", optional=False)
          if self.Te is None:
            Tepath = self.configGet("string", "input", "ElasticThickness", optional=False)
            self.Te = Tepath
          else:
            Tepath = None
        except:
          Tepath = self.configGet("string", "input", "ElasticThickness", optional=False)
          self.Te = Tepath
        if self.Te is None:
          if self.coeff_matrix is not None:
            pass
          else:
            sys.exit("No input elastic thickness or coefficient matrix supplied.")
      if type(self.Te) == str: 
        Tepath = self.Te
      else:
        Tepath = None
      if Tepath:
        self.Te = self.loadFile(self.Te, close_on_fail = False)
        if self.Te is None:
          print("Requested Te file is provided but cannot be located.")
          print("No scalar elastic thickness is provided in configuration file")
          print("(Typo in path to input Te grid?)")
          if self.coeff_matrix is not None:
            print("But a coefficient matrix has been found.")
            print("Calculations will be carried forward using it.")
          else:
            print("Exiting.")
            sys.exit()
        if self.Te.any():
          self.TeArraySizeCheck()