From: Derek G. <fri...@gm...> - 2010-11-22 21:33:55
|
Getting a compile error after updating libMesh: Compiling C++ (in optimized mode) src/solvers/petsc_linear_solver.C... libmesh/include/solvers/petsc_linear_solver.h: In member function ‘void libMesh::PetscLinearSolver<T>::_create_complement_is(const libMesh::NumericVector<T>&) [with T = double]’: src/solvers/petsc_linear_solver.C:1579: instantiated from here libmesh/include/solvers/petsc_linear_solver.h:360: error: ‘ISComplement’ was not declared in this scope make: *** [src/solvers/petsc_linear_solver.i386-apple-darwin10.5.0.opt.o] Error 1 It appears that the function ISComplement() does not exist in petsc 2.3.3. I'm not familiar enough with what this code is supposed to be doing to be able to say if it's possible to achieve with 2.3.3 or if it should just be ifdef'd out. I assume it has something to do with solving on partial domains? For now I've just commented that line out... and it works... but we should fix this pretty quickly. Derek |
From: Jed B. <je...@59...> - 2010-11-23 00:08:16
|
On Mon, Nov 22, 2010 at 22:33, Derek Gaston <fri...@gm...> wrote: > It appears that the function ISComplement() does not exist in petsc 2.3.3. > I'm not familiar enough with what this code is supposed to be doing to be > able to say if it's possible to achieve with 2.3.3 or if it should just be > ifdef'd out. I assume it has something to do with solving on partial > domains? The implementation is about 20 lines of code, depending on how important having this feature work with 2.3.3 is, you can choose whether to bundle it or not. I will question your sanity if you say yes. :-) Jed |
From: Tim K. <tim...@ce...> - 2010-11-23 07:49:46
Attachments:
patch
|
On Mon, 22 Nov 2010, Derek Gaston wrote: > Getting a compile error after updating libMesh: > > Compiling C++ (in optimized mode) src/solvers/petsc_linear_solver.C... > libmesh/include/solvers/petsc_linear_solver.h: In member function ‘void libMesh::PetscLinearSolver<T>::_create_complement_is(const libMesh::NumericVector<T>&) [with T = double]’: > src/solvers/petsc_linear_solver.C:1579: instantiated from here > libmesh/include/solvers/petsc_linear_solver.h:360: error: ‘ISComplement’ was not declared in this scope > make: *** [src/solvers/petsc_linear_solver.i386-apple-darwin10.5.0.opt.o] Error 1 > > > It appears that the function ISComplement() does not exist in petsc > 2.3.3. I'm not familiar enough with what this code is supposed to > be doing to be able to say if it's possible to achieve with 2.3.3 or > if it should just be ifdef'd out. I assume it has something to do > with solving on partial domains? Yes, so it is my fault. I suggest the attached patch, which calls libmesh_not_implemented() if this part of code is reached and the PETSc version is below 3.0.0. Can you try that out? Jed, could you please comment on the exact PETSc version number in which ISComplement() has been invented? Best Regards, Tim -- Dr. Tim Kroeger CeVis -- Center of Complex Systems and Visualization University of Bremen tim...@ce... Universitaetsallee 29 tim...@me... D-28359 Bremen Phone +49-421-218-7710 Germany Fax +49-421-218-4236 |
From: Jed B. <je...@59...> - 2010-11-23 07:57:41
|
It appeared in 3.0.0. Jed On Nov 23, 2010 8:49 AM, "Tim Kroeger" <tim...@ce...> wrote: On Mon, 22 Nov 2010, Derek Gaston wrote: > Getting a compile error after updating libMesh: > > Comp... Yes, so it is my fault. I suggest the attached patch, which calls libmesh_not_implemented() if this part of code is reached and the PETSc version is below 3.0.0. Can you try that out? Jed, could you please comment on the exact PETSc version number in which ISComplement() has been invented? Best Regards, Tim -- Dr. Tim Kroeger CeVis -- Center of Complex Systems and Visualization University of Bremen tim...@ce... Universitaetsallee 29 tim...@me... D-28359 Bremen Phone +49-421-218-7710 Germany Fax +49-421-218-4236 |
From: Tim K. <tim...@ce...> - 2010-11-23 08:00:07
|
On Tue, 23 Nov 2010, Jed Brown wrote: > It appeared in 3.0.0. Great, so my guess was right. (-: Thank you very much! Tim -- Dr. Tim Kroeger CeVis -- Center of Complex Systems and Visualization University of Bremen tim...@ce... Universitaetsallee 29 tim...@me... D-28359 Bremen Phone +49-421-218-7710 Germany Fax +49-421-218-4236 |
From: Derek G. <fri...@gm...> - 2010-11-23 13:33:31
|
Thanks Tim. I'll give it a try this morning. Derek Sent from my iPad On Nov 23, 2010, at 12:59 AM, Tim Kroeger <tim...@ce...> wrote: > On Tue, 23 Nov 2010, Jed Brown wrote: > >> It appeared in 3.0.0. > > Great, so my guess was right. (-: > > Thank you very much! > > Tim > > -- > Dr. Tim Kroeger > CeVis -- Center of Complex Systems and Visualization > University of Bremen tim...@ce... > Universitaetsallee 29 tim...@me... > D-28359 Bremen Phone +49-421-218-7710 > Germany Fax +49-421-218-4236 |
From: Tim K. <tim...@ce...> - 2010-11-24 07:34:14
|
On Tue, 23 Nov 2010, Tim Kroeger wrote: > Yes, so it is my fault. I suggest the attached patch, which calls > libmesh_not_implemented() if this part of code is reached and the PETSc > version is below 3.0.0. Can you try that out? Jed, could you please comment > on the exact PETSc version number in which ISComplement() has been invented? I checked it in now. First, the patch is so trivial that there can't be many bugs in it. Second, a libMesh that doesn't compile with PETSc < 3.0.0 seems less nice to me than one in which the subset stuff might possibly be buggy. Best Regards, Tim -- Dr. Tim Kroeger CeVis -- Center of Complex Systems and Visualization University of Bremen tim...@ce... Universitaetsallee 29 tim...@me... D-28359 Bremen Phone +49-421-218-7710 Germany Fax +49-421-218-4236 |
From: Derek G. <fri...@gm...> - 2010-11-24 17:00:32
|
Sorry I haven't tried your patch yet... We had a blizzard here yesterday, so I didn't make it into work! I'll give libmesh a compile here in a bit and report back if I have any problems. Derek Sent from my iPad On Nov 24, 2010, at 12:34 AM, Tim Kroeger <tim...@ce...> wrote: > On Tue, 23 Nov 2010, Tim Kroeger wrote: > >> Yes, so it is my fault. I suggest the attached patch, which calls libmesh_not_implemented() if this part of code is reached and the PETSc version is below 3.0.0. Can you try that out? Jed, could you please comment on the exact PETSc version number in which ISComplement() has been invented? > > I checked it in now. First, the patch is so trivial that there can't be many bugs in it. Second, a libMesh that doesn't compile with PETSc < 3.0.0 seems less nice to me than one in which the subset stuff might possibly be buggy. > > Best Regards, > > Tim > > -- > Dr. Tim Kroeger > CeVis -- Center of Complex Systems and Visualization > University of Bremen tim...@ce... > Universitaetsallee 29 tim...@me... > D-28359 Bremen Phone +49-421-218-7710 > Germany Fax +49-421-218-4236 |