void Node2NodeContactL :: computeContactTangent(FloatMatrix &answer, CharType type, TimeStep *tStep) { answer.resize(7,7); answer.zero(); FloatArray gap; this->computeGap(gap, tStep); if( gap.at(1) < 0.0 ) { GaussPoint *gp = this->integrationRule->getIntegrationPoint(0); FloatArray C; this->computeCmatrixAt(gp, C, tStep); int sz = C.giveSize(); C.times(this->area); answer.addSubVectorCol(C, 1, sz + 1); answer.addSubVectorRow(C, sz + 1, 1); } //TODO need to add a small number for the solver for ( int i = 1; i <= 7; i++ ) { answer.at(i,i) += 1.0e-8; } }