On Tue, Mar 22, 2011 at 7:56 AM, Roy Stogner <[email protected]> wrote:
>
>
> On Tue, 22 Mar 2011, Sebastian Steiger wrote:
>
>> Hello Roy
>>
>> I am currently trying to do some testing of new routines with the PETSc
>> developers. My application uses PETSc+SLEPc+libmesh, and for that matter
>> I need to switch to petsc-dev/slepc-dev/libmesh-dev. I managed to
>> compile PETSc/SLEPc, but now I have a problem with the libmesh file
>>
>> src/numerics/petsc_matrix.C
>>
>> I'm posting the error below:
>>
>> Compiling C++ (in optimized mode) src/numerics/petsc_matrix.C...
>> src/numerics/petsc_matrix.C: In member function 'virtual void
>> libMesh::PetscMatrix<T>::_get_submatrix(libMesh::SparseMatrix<T>&, const
>> std::vector<unsigned int, std::allocator<unsigned int> >&, const
>> std::vector<unsigned int, std::allocator<unsigned int> >&, bool) const':
>> src/numerics/petsc_matrix.C:489: error: there are no arguments to
>> 'ISCreateLibMesh' that depend on a template parameter, so a declaration
>> of 'ISCreateLibMesh' must be available

ISCreateLibMesh is a macro located in petsc_macro.h.  Is it possible that

#if PETSC_VERSION_RELEASE && PETSC_VERSION_LESS_THAN(3,1,1)

is false for your PETSc?  In that case you would not have this macro defined.



>> /ccs/home/steiger/src/app-nemo/NEMO/libs/petsc-barry/include/petscmat.h:
>> In member function 'void
>> libMesh::PetscMatrix<T>::zero_rows(std::vector<int, std::allocator<int>
>>> &, T) [with T = double]':
>> src/numerics/petsc_matrix.C:588:   instantiated from here
>> /ccs/home/steiger/src/app-nemo/NEMO/libs/petsc-barry/include/petscmat.h:557:
>> error: too few arguments to function 'PetscErrorCode
>> MatZeroRows(_p_Mat*, PetscInt, const PetscInt*, PetscScalar, _p_Vec*,
>> _p_Vec*)'
>> src/numerics/petsc_matrix.C:202: error: at this point in file
>> /ccs/home/steiger/src/app-nemo/NEMO/libs/petsc-barry/include/petscmat.h:557:
>> error: too few arguments to function 'PetscErrorCode
>> MatZeroRows(_p_Mat*, PetscInt, const PetscInt*, PetscScalar, _p_Vec*,
>> _p_Vec*)'

I guess the MatZeroRows interface has changed in a recent version of PETSc.

http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-dev/docs/manualpages/Mat/MatZeroRows.html

has six arguments:

MatZeroRows(Mat mat,
PetscInt numRows,
const PetscInt rows[],
PetscScalar diag,
Vec x,
Vec b)

but we are only calling it with 4.  The last two vectors are optional,
so we can maybe pass NULL for both.  Sebastian, would you mind trying
that in your build and letting me know if it works.

-- 
John

------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to