def METHOD_NAME(self):
    # Produce the forces with all thrusters included
    Lr_offset = [0.0, 0.0, 0.0]
    CT = np.transpose(self.C)
    # Compute D Matrix and Determine Force
    D = np.zeros((3,len(self.rData)))
    for i in range(len(self.rData)):
        D[:,i] = np.cross((self.rData[i,:] - self.COM), self.gData[i,:])
        if(self.thrForceSign < 0):
            Lr_offset -= self.thrForceMag[i]*D[:,i]
    self.Lr_B = self.Lr_B + Lr_offset
    Lr_Bar = np.dot(self.C, self.Lr_B)
    F = self.mapToForce(D, Lr_Bar)
    # Subtract off minimum force (remove null space contribution)
    if self.thrForceSign > 0:
        #F = self.subtractPairwiseNullSpace(F, D)
        F = self.subtractMin(F, self.numThrusters)
    # Identify any negative forces
    t = (F[:]*self.thrForceSign > self.epsilon)
    # Recompute the D Matrix with negative forces removed and compute Force
    if self.thrForceSign < 0 or self.use2ndLoop:
        DNew = np.array([])
        for i in range(0,len(F)):
            if t[i]:
                DNew = np.append(DNew, np.cross((self.rData[i,:] - self.COM), self.gData[i]))
        DNew = np.reshape(DNew, (3, (len(DNew) // 3)), 'F')
        FNew = self.mapToForce(DNew, Lr_Bar)
        if (self.thrForceSign > 0):
            FNew = self.subtractMin(FNew,len(DNew[0])) # Produced negative forces when doing 2nd loop, dropped thruster, and COM offset
        # Remove minumum force
        count = 0
        for i in range(0,len(F)):
            if t[i]:
                F[i] = FNew[count]
                count += 1
            else:
                F[i] = 0.0
    else:
        DNew = D
    angle = self.results_computeAngErr(D, Lr_Bar, F)
    if angle > self.angErrThresh:
        maxFractUse = 0.0
        for i in range(0, self.numThrusters):
            if self.thrForceMag[i] > 0 and abs(F[i])/self.thrForceMag[i] > maxFractUse:
                maxFractUse = abs(F[i])/self.thrForceMag[i]
        if maxFractUse > 1.0:
            F = F/maxFractUse
            angleErr = self.results_computeAngErr(D, Lr_Bar, F)
    return F, DNew