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 [email protected]
Universitaetsallee 29 [email protected]
D-28359 Bremen Phone +49-421-218-7710
Germany Fax +49-421-218-4236
Index: include/solvers/petsc_linear_solver.h
===================================================================
--- include/solvers/petsc_linear_solver.h (Revision 4114)
+++ include/solvers/petsc_linear_solver.h (Arbeitskopie)
@@ -351,6 +351,9 @@
PetscLinearSolver<T>::_create_complement_is (const NumericVector<T> &vec_in)
{
libmesh_assert(_restrict_solve_to_is!=NULL);
+#if PETSC_VERSION_LESS_THAN(3,0,0)
+ libmesh_not_implemented();
+#else
if(_restrict_solve_to_is_complement==NULL)
{
int ierr = ISComplement(_restrict_solve_to_is,
@@ -359,6 +362,7 @@
&_restrict_solve_to_is_complement);
CHKERRABORT(libMesh::COMM_WORLD,ierr);
}
+#endif
}
------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel