1. 22 Aug, 2018 8 commits
    • Carsten Gräser's avatar
      7381f53e
    • Carsten Gräser's avatar
      047f538c
    • Carsten Gräser's avatar
      Normalize topologyId of grid capability · fc40bb56
      Carsten Gräser authored
      Otherwise overloading for the StaticGeometryType
      may fail if the same geometry type is encoded
      with 0 and 1 in the first digit.
      fc40bb56
    • Carsten Gräser's avatar
    • Carsten Gräser's avatar
      Add support for GeometryTypeProviders to LagrangeBasis · b68cd2cb
      Carsten Gräser authored
      * For single element type grids the polymorphic interface is by
        default no longer used.
      * For mixed element type grids the polymorphic interface is by
        default used as before.
      * When explicitly switching fixing a single element type
        (in case you have additional knowledge) you can now also
        avoid the costly polymorphic interface.
      b68cd2cb
    • Carsten Gräser's avatar
      Add different GeometryTypeProviders · 60664304
      Carsten Gräser authored
      These allow to map an entity to its geometry type. Depending on the
      selected provider and grid view, this is encoded as GeometryType or
      StaticGeometryType. There are several implementations:
      * MixedGeometryTypeProvider will always act like a mixed element
        grid and simply forward the dyanamic GeometryType. You'd normally
        not want to use this one.
      * AutoGeometryTypeProvider will use a StaticGeometryType if the grid
        satisfies hasSingleGeometryType(). Otherwise GeometryType is used.
        This is the default choise which should work always.
      * SimplexGeometryTypeProvider and CubeGeometryTypeProvider will
        always provide the corresponding StaticGeometryType. This can be used
        to avoid the costly polymorphic interface if your grid supports mixed
        elements, but you know, that there are only simplicies or cubes.
      60664304
    • Carsten Gräser's avatar
      Add LagrangeFiniteElementCache · 6d25947b
      Carsten Gräser authored
      This works like PQkFiniteElementCache in dune-loicalfunctions
      but also allows to obtain raw fe-implemenations without polymorphic
      wrapper if the geometry type is provided statically as StaticGeometryType.
      This allows to seamlessly switch between the polymorphic and non-polymorphic
      version by using GeometryType or StaticGeometryType.
      
      The StaticGeometryType imlementations are stored in a TupleVector.
      6d25947b
    • Carsten Gräser's avatar
      Add StaticGeometryType · 134dafdc
      Carsten Gräser authored
      This encodes all the information of a GeometryType as template
      parameters. Some remarks on the implementation:
      * This may be a solition for using GeometryType's a template paremters
        and is thus a candidate for dune-geometry
      * All methods in Dune::GeometryTypes:: have analogouges in
        Dune::Functions::StaticGeometryTypes:: and additional template
        aliases for parametrized types. Hence you can e.g. use Simplex<dim>.
      * There is LocalHybridGeometryTypeIndex which works like LocalGeometryTypeIndex
        but supports GeometryType and StaticGeometryType.
      * Some topologyIds are different: If you want to overload for specific
        StaticGeometryType's, you must be sure that the same geometry type
        leads to the same type. Hence topologyIds are normalize to have 0
        in the first bit.
      * One may consider using uniqueTopologyId = (topologyId >> 1) as
        template parameter instead to get rid of the nasty non-uniqueness.
      134dafdc
  2. 01 Aug, 2018 3 commits
  3. 29 Jun, 2018 2 commits
  4. 26 Jun, 2018 3 commits
  5. 25 Jun, 2018 4 commits
  6. 22 Jun, 2018 20 commits