[petsc-dev] Jed!!!

Barry Smith bsmith at mcs.anl.gov
Sun Apr 27 11:26:08 CDT 2014


  I am totally confused and likely users are to. Please point me to an example that actually uses Matnest the way it is “supposed to be used”. I cannot even find a MatSetValues_Nest() so I do not see how one can even interchange code between AIJ and Nest. The users manual has the word nest several times but no indication of how to use the damn thing.


On Apr 27, 2014, at 10:57 AM, Jed Brown <jed at jedbrown.org> wrote:

> Barry Smith <bsmith at mcs.anl.gov> writes:
>> cmake/Findcutil.cmake:  add_subdirectory("${_moddir}/nested_targets/cutil")
>> FEM/rf_pcs_TH.cpp:              ierr = MatCreateNest(PETSC_COMM_WORLD, dof, NULL, dof, NULL, &eqs_new->vec_subA[0], &eqs_new->A);CHKERRCONTINUE(ierr);
>> FEM/rf_pcs_TH.cpp:              ierr = MatNestGetISs(eqs_new->A, &eqs_new->vec_isg[0], NULL);CHKERRCONTINUE(ierr);
>> FEM/rf_pcs_TH.cpp:              MatNestGetSubMats(mat,NULL,NULL,&mats);
> 
> This is a "developer" function.  They have already shot themselves in
> the foot because they can't build a monolithic matrix (so can't use LU,
> SVD, etc).  Dmitry wrote MatConvert_Nest_AIJ, but I don't recall if it
> was ever finished.  We can finish that, but I really mean it when I tell
> people NOT to use MatNestGetSubMats.  The whole point of MatNest (versus
> Daves' earlier generation) was to avoid writing assembly in that way.
> 
>> FEM/rf_pcs_TH.cpp~:             ierr = MatCreateNest(PETSC_COMM_WORLD, dof, NULL, dof, NULL, &eqs_new->vec_subA[0], &eqs_new->A);CHKERRCONTINUE(ierr);
>> FEM/rf_pcs_TH.cpp~:             ierr = MatNestGetISs(eqs_new->A, &eqs_new->vec_isg[0], NULL);CHKERRCONTINUE(ierr);
>> FEM/rf_pcs_TH.cpp~:             MatNestGetSubMats(*mat,NULL,NULL,&mats);
> 




More information about the petsc-dev mailing list