> =====lac==============debug========== constraint_matrix.cc > /home/tyoung/research.code/petsc-3.0.0-p3/include/petsc.hh:22: error: > extra > ';' /home/tyoung/research.code/petsc-3.0.0-p3/include/petsc.hh:28: > error: extra > ';' /home/tyoung/research.code/petsc-3.0.0-p3/include/petsc.hh:44: > error: extra > ';'
This is a bug in the petsc headers. Just remove the semicolons in your installation of pETSc. I think this is already fixed in one of the later 3.0.0 patch levels. > /home/tyoung/research.code/deal.II/lac/include/lac/constraint_matrix.templa >tes.h: In member function 'void > dealii::ConstraintMatrix::distribute_local_to_global(const > dealii::Vector<double>&, const std::vector<unsigned int, > std::allocator<unsigned int> >&, VectorType&, const > dealii::FullMatrix<double>&) const [with VectorType = > dealii::PETScWrappers::Vector]': source/constraint_matrix.cc:2150: > instantiated from > here > /home/tyoung/research.code/deal.II/lac/include/lac/constraint_matrix.templa >tes.h:749: error: no matching function for call to > 'dealii::PETScWrappers::Vector::add(const std::vector<unsigned int, > std::allocator<unsigned int> >&, const > dealii::Vector<double>&)' > /home/tyoung/research.code/deal.II/lac/include/lac/petsc_vector_base.h:385: > note: candidates are: void dealii::PETScWrappers::VectorBase::add(const > std::vector<unsigned int, std::allocator<unsigned int> >&, const > std::vector<std::complex<double>, std::allocator<std::complex<double> > We may want to make that function a template on the type of the second argument, i.e. let that argument be a std::vector<number> instead. Or make it take std::vector<PetscScalar> instead. > Attached is a debug patch which autodetects complex configuration > of petsc for 2.3.* and 3.*.*. (Debug in the sense that nothing really > happens except autodetection). I have no clean ideas how to make this > work correctly for 2.2.1, and in this case (unfortunately) dealii > reports "not found". It would be quite straightforward (and probably > adventageous) to support 3.*.*+ for complex petsc only, like the > SlepcWrappers do. I'm ok with this. Your patch tests for PETSc 2.2.x, not 2.3.x, by the way. Can you re-check? > My previous idea was to use this patch to define the macro > "DEAL_II_USE_PETSC_COMPLEX" (#if DEAL_II_USE_PETSC=true) which can > be used to surround "real only" instantiations for a start, by > #ifndef DEALII_USE_PETSC_COMPLEX > [code] > #endif. Yes, we should go this way. Can you add to your change in aclocal.m4 a place where your AC_DEFINE this variable and send me an updated patch? This way you don't need to do AC_SUBST and add it to common/Make.global_options, but it goes right into base/include/base/config.h if you run autoheader. > I haven't figured out if this will help out here though. I can protect > deal.ii from compiling for petsc complex for != 3.0.0+ for a start... Since your ultimate goal is to make it compile with complex numbers we shouldn't prevent it from compiling at first. Rather, I'd like us see go through all the places where something needs to be changed before we give up. Best W. ------------------------------------------------------------------------- Wolfgang Bangerth email: [email protected] www: http://www.math.tamu.edu/~bangerth/ _______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
