void BlockVector::Update(double *data, const Array<int> & bOffsets) { NewDataAndSize(data, bOffsets.Last()); blockOffsets = bOffsets.GetData(); if (numBlocks != bOffsets.Size()-1) { delete [] blocks; numBlocks = bOffsets.Size()-1; blocks = new Vector[numBlocks]; } SetBlocks(); }
void LinearForm::Update(FiniteElementSpace *f, Vector &v, int v_offset) { fes = f; NewDataAndSize((double *)v + v_offset, fes->GetVSize()); }