Skip to content
  • Toby Isaac's avatar
    PetscFE: add PETSCFEVECTOR · 2dce792e
    Toby Isaac authored
    Reductions in the cost of computing, storing, and applying
    a Tabulation can be achieved for a finite element space
    that is a vector of "scalar" finite elements (the "scalar"
    element itself could be vector-valued).
    
    Reductions in the cost of storing and applying
    a Tabulation can't be realized until the PetscTabulation structure
    itself is changed, but at the very least reduction in the cost of
    computing a tabulation is possible with a new PetscFEType,
    PETSCFEVECTOR.
    
    To complete the interface, we also add PETSCDUALSPACESUM,
    a dual space whose dual basis is the sum of other dual bases,
    that parallels PETSCSPACESUM (the space and dual space of
    a PETSCFEVECTOR are a PETSCSPACESUM and PETSCDUALSPACESUM,
    respectively).
    
    To allow the user to specify whether the
    basis vector and value components of the PETSCFEVECTOR
    of blockwise or interleaved, we also have to make sure
    PETSCSPACESUM and PETSCDUALSPACESUM can have blockwise
    or interleaved behavior.  We add both capabilities.
    
    PETSCFEVECTOR is now used by detecting compatible
    vector-valued dual and primal spaces in PetscFECreateFromSpaces().
    2dce792e