void FiniteElementSpace::MarkDependency(const SparseMatrix *D, const Array<int> &row_marker, Array<int> &col_marker) { if (D) { col_marker.SetSize(D->Width()); col_marker = 0; for (int i = 0; i < D->Height(); i++) if (row_marker[i] < 0) { const int *col = D->GetRowColumns(i), n = D->RowSize(i); for (int j = 0; j < n; j++) col_marker[col[j]] = -1; } } else { row_marker.Copy(col_marker); } }
RestrictedCoefficient(Coefficient &_c, Array<int> &attr) { c = &_c; attr.Copy(active_attr); }
VectorRestrictedCoefficient(VectorCoefficient &vc, Array<int> &attr) : VectorCoefficient(vc.GetVDim()) { c = &vc; attr.Copy(active_attr); }
MatrixRestrictedCoefficient(MatrixCoefficient &mc, Array<int> &attr) : MatrixCoefficient(mc.GetHeight(), mc.GetWidth()) { c = &mc; attr.Copy(active_attr); }