<div dir="ltr"><div>I am advancing a two equation system with TS that has an additional constraint equation.  I build a 3x3 composite matrix a_ts%FJacobean that has my F(U).  I then do:</div><div><br></div><div><div>  call MatDuplicate(a_ts%FJacobean,MAT_DO_NOT_COPY_VALUES,a_ts%FJacobean2,ierr)</div><div>  call TSSetIJacobian(a_ts%ts,a_ts%FJacobean2,a_ts%FJacobean2,FormIJacobian,a_ts,ierr)</div></div><div><br></div><div>I am thinking my FormIJacobian would look like this:</div><div><br></div><div>  ! copy in linear operator</div><div><div>  call MatCopy(a_ts%FJacobean,Jpre,ierr);CHKERRQ(ierr)</div><div>  ! shift 1 & 2 by 'shift'</div><div>  call MatShift(mat00,shift,ierr);CHKERRQ(ierr)  ????</div><div>  call MatShift(mat11,shift,ierr);CHKERRQ(ierr)  ????</div></div><div><br></div><div>Is this a good basic approach?</div><div><br></div><div>I'm not sure how to shift just the first two blocks.  MatGetSubMatrix does not seem usable here.  I want these two diagonal block matrices to shift them.  Can I get an array of matrices out of a composite matrix?</div><div><br></div><div>Thanks,</div><div>Mark</div></div>