<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css"><!--P {margin-top:0;margin-bottom:0;}--></style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi.<br>
<br>
I would like to merge the petsc branch in dune-fem back to master sometime soon (if I
<br>
can figure out how to do that...).<br>
<br>
I've run the school codes with that branch (both the updated version in the petsc branch of<br>
the school-code-generator and with the original to check downward compatibility).<br>
Headercheck and make check work (well almost but at least better than in the master<br>
brranch I think - what's not working is dune/fem/test/lagrangeinterpolation_quadratic<br>
and I have not really figured out why - something with the adaptiveindexset I gues...<br>
<br>
Tobias has added the branch to the nightly builds today. So hopefully we're set.<br>
-------------------------------------------------------------------<br>
Changes:<br>
--------------<br>
1) we now have a directory dune/fem/operator/linear with<br>
         istloperator.hh  petscoperator.hh  spoperator.hh<br>
    These contain the classes<br>
         class ISTLLinearOperator (former ISTLMatrixOperator in operator/matrix/istlmatrix.hh)<br>
         class PetscLinearOperator (former PetscLinearOperator in operator/common)<br>
         class SparseRowLinearOperator <br>
             (former SparseRowMatrixOperator in operator/matrix/spmatrix.hh)<br>
    So one needs to include the new headers and move from XXXMatrixOperator to   
<br>
    XXXLinearOperator. <br>
2) These classes do not require MatrixTraits anymore, i.e., one does not need to include<br>
     dgmatrixtraits.hh or lagrangematrixtraits.hh anymore<br>
3) The stencil is passed to the linear operator in the reserve method. The interface method<br>
     has thus changed from <br>
        reserve(bool verbose=false) <br>
     to<br>
        template <class Stencil> void reserve(const Stencil &stencil, bool verbose = false )<br>
     The interface for a stencil and some standard implementations (DG and Lagrange and a<br>
     simple version only providing an estimate for the number of non-zeros) is provided<br>
     in dune/fem/operator/stencil.hh. <br>
     For example for a poisson operator using Lagrange DFS:<br>
        linop.reserve( Dune::Fem::DiagonalStencil<DFST,DFSP>() );<br>
     should work.<br>
4) To setup a special type of stencil use the Dune::Fem::Stencil class and its<br>
       fill ( const DomainEntityType &dEntity, const RangeEntityType &rEntity )<br>
     method for each pair of entities for which the localMatrix method will be called in<br>
     the assembly.<br>
5)  petsc now seems to work reasonably well in parallel and with dg and lagrange.<br>
    There is definitely still room for improvement in getting the most out of petsc.<br>
6)  What I haven't done yet is update petsc.m4 to include all flags for different petsc<br>
     configuration (mumps, superlu-dist,ml and what not). <br>
     I do not know how to figure out the correct include paths and libs<br>
     from the Petsc installation there seems to be no nice .pc file available - <br>
     if somebody knows how to do this....<br>
<br>
I think thats it. <br>
Please test if you have time and if you don't tell me to postpone the merge <br>
or don't complain when I merge in a week or two.<br>
<br>
Best<br>
Andreas<br>
<br>
<br>
<br>
<br>
</div>
</body>
</html>