Skip to content
Snippets Groups Projects
  • graeser's avatar
    860bcc80
    Add istlVectorBackend() · 860bcc80
    graeser authored
    This creates a VectorBackend suitable for using nested ISTL
    vectors as coefficient vector in dune-functions. The returned
    type is an implementation detail for now. However we may want
    to make this public also.
    
    This is very close to the old HierarchicVectorWrapper but does
    not require to pass the coefficient type for termination of
    the recursive index resolution. Instead indices are resolved
    as log as the resulting type is not a scalar, i.e., as long
    as it provides operator[]. To handle the nasty case of scalars
    encoded as Dune::FieldVector<k,1> this adds [0] as long as needed
    once the digits of the multi-index are exhausted.
    
    This helps to avoid the nasty atomagic feature of
    HierarchicVectorWrapper that only worked partially anyway.
    Onthe other hand, it prohibits using non-scalar coefficients
    to implement implicitly vector-valued functions. However, this
    should better be implemented using a power-basis anyway.
    Users relying on this feature (e.g. for dune-fufem) can still
    use the old HierarchicVectorWrapper for a transistion period.
    860bcc80
    History
    Add istlVectorBackend()
    graeser authored
    This creates a VectorBackend suitable for using nested ISTL
    vectors as coefficient vector in dune-functions. The returned
    type is an implementation detail for now. However we may want
    to make this public also.
    
    This is very close to the old HierarchicVectorWrapper but does
    not require to pass the coefficient type for termination of
    the recursive index resolution. Instead indices are resolved
    as log as the resulting type is not a scalar, i.e., as long
    as it provides operator[]. To handle the nasty case of scalars
    encoded as Dune::FieldVector<k,1> this adds [0] as long as needed
    once the digits of the multi-index are exhausted.
    
    This helps to avoid the nasty atomagic feature of
    HierarchicVectorWrapper that only worked partially anyway.
    Onthe other hand, it prohibits using non-scalar coefficients
    to implement implicitly vector-valued functions. However, this
    should better be implemented using a power-basis anyway.
    Users relying on this feature (e.g. for dune-fufem) can still
    use the old HierarchicVectorWrapper for a transistion period.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.