> =====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

Reply via email to