• Marcus Mohr's avatar
    Implements VectorToScalar and ScalarToVector operators · 4376e0f8
    Marcus Mohr authored
    As we now have P[12]VectorFunction objects available we should IMHO make
    more use of those to reduce code complexity in the solvers. This commit
    adds the following four new templated operators:
    
    - P1VectorToP1ScalarOperator  (-> divergence = div)
    - P1ScalarToP1VectorOperator  (-> gradient = divT)
    - P2VectorToP1ScalarOperator  (-> divergence = div)
    - P1ScalarToP2VectorOperator  (-> gradient = divT)
    
    As an example in P2VectorToP1ScalarOperator.hpp we typedef three
    divergence operators
    
    - P2ToP1ConstantDivOperator
    - P2ToP1VariableDivOperator
    - P2ToP1ElementwiseBlendingDivOperator
    
    The divergence operators get tested in a new DivergenceOperatorTest.
    
    P2ToP1ConstantDivOperator is used to replace some lines of code in
    the computations in StokesPCGSolverOld.
    
    For those operators that have no 3D implementation available, e.g.
    there is no P2ToP1BlendingDivzOperator, we also add the two dummy
    operators
    
    - P2ToP1DummyOperator
    - P1ToP2DummyOperator
    
    The P2P1TaylorHoodStokesOperator and P1StokesOperator receive
    corresponding div and divT members. This currently is in addition
    to the div_x etc. members.
    4376e0f8