dune-grid  2.9.0
persistentcontainerinterface.hh
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
2 // SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
3 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
4 // vi: set et ts=4 sw=2 sts=2:
5 #ifndef DUNE_PERSISTENTCONTAINERINTERFACE_HH
6 #define DUNE_PERSISTENTCONTAINERINTERFACE_HH
7 
8 #ifndef HEADERCHECK
9 #error "This header exists for documentation purposes only and should never be included directly."
10 #endif
11 
12 namespace Dune
13 {
14 
53  template< class G, class T >
55  {
57 
58  struct ImplementationDefined;
59 
60  public:
61  typedef G Grid;
62 
63  typedef T Value;
64 
65  typedef ImplementationDefined Size;
66  typedef ImplementationDefined ConstIterator;
67  typedef ImplementationDefined Iterator;
68 
69  // construction
70 
79  PersistentContainerInterface ( Grid &grid, int codim, const Value &value = Value() );
80 
83 
85  const This &operator= ( const This &other );
86 
87  // element access
88 
93  template< class Entity >
94  const Value &operator[] ( const Entity &entity ) const;
95 
100  template< class Entity >
101  Value &operator[] ( const Entity &entity );
102 
108  template< class Entity >
109  const Value &operator() ( const Entity &entity, int subEntity ) const;
110 
116  template< class Entity >
117  Value &operator() ( const Entity &entity, int subEntity );
118 
119  // capacity
120 
126  Size size () const;
127 
141  void resize ( const Value &value = Value() );
142 
156  void shrinkToFit ();
157 
158  // modifiers
159 
165  void fill ( const Value &value );
166 
171  void swap ( This &other );
172 
173  // iterators
174 
187 
193  ConstIterator end () const;
200 
201  // information
202 
204  int codimension () const;
205  };
206 
207 } // namespace Dune
208 
209 #endif // #ifndef DUNE_PERSISTENTCONTAINERINTERFACE_HH
Include standard header files.
Definition: agrid.hh:60
Wrapper class for entities.
Definition: common/entity.hh:66
Persistent storage of data on all entities of a grid.
Definition: persistentcontainerinterface.hh:55
ImplementationDefined Size
Definition: persistentcontainerinterface.hh:65
PersistentContainerInterface(Grid &grid, int codim, const Value &value=Value())
constuctor
T Value
Definition: persistentcontainerinterface.hh:63
Size size() const
number of entries in the container
ImplementationDefined Iterator
Definition: persistentcontainerinterface.hh:67
PersistentContainerInterface(const This &other)
copy constructor
ImplementationDefined ConstIterator
Definition: persistentcontainerinterface.hh:66
ConstIterator end() const
returns an iterator pointing to the last element of the container
ConstIterator begin() const
returns an iterator pointing to the first element of the container
Iterator begin()
returns an iterator pointing to the first element of the container
Iterator end()
returns an iterator pointing to the last element of the container
void shrinkToFit()
remove unnecessary entries from container
int codimension() const
return the codimension, the container attaches data to
G Grid
Definition: persistentcontainerinterface.hh:58
const Value & operator[](const Entity &entity) const
access the data associated with an entity
void swap(This &other)
exchange the content of the container with another one
const Value & operator()(const Entity &entity, int subEntity) const
access the data associated with a subentity
void resize(const Value &value=Value())
reserve memory for all entities in the grid
void fill(const Value &value)
set all accessible entries to a given value
const This & operator=(const This &other)
assignment operator