11 #include <dune/common/classname.hh>
12 #include <dune/common/parallel/collectivecommunication.hh>
13 #include <dune/common/exceptions.hh>
14 #include <dune/common/parallel/mpihelper.hh>
15 #include <dune/common/deprecated.hh>
21 #if HAVE_UG || DOXYGEN
24 #include <dune/common/parallel/mpicollectivecommunication.hh>
46 #include "uggrid/ugincludes.hh"
51 #include "uggrid/ugwrapper.hh"
56 #include "uggrid/ug_undefs.hh"
76 #include "uggrid/ugincludes.hh"
81 #include "uggrid/ugwrapper.hh"
85 #include "uggrid/ug_undefs.hh"
91 #include "uggrid/uggridgeometry.hh"
92 #include "uggrid/uggridlocalgeometry.hh"
93 #include "uggrid/uggridentity.hh"
94 #include "uggrid/uggridentitypointer.hh"
95 #include "uggrid/uggridentityseed.hh"
96 #include "uggrid/uggridintersections.hh"
97 #include "uggrid/uggridintersectioniterators.hh"
98 #include "uggrid/uggridleveliterator.hh"
99 #include "uggrid/uggridleafiterator.hh"
100 #include "uggrid/uggridhieriterator.hh"
101 #include "uggrid/uggridindexsets.hh"
102 #include <dune/grid/uggrid/uggridviews.hh>
104 #include "uggrid/ugmessagebuffer.hh"
105 #include "uggrid/uglbgatherscatter.hh"
112 template <
class DataHandle,
int Gr
idDim,
int codim>
113 DataHandle *Dune::UGMessageBufferBase<DataHandle,GridDim,codim>::duneDataHandle_ = 0;
115 template <
class DataHandle,
int Gr
idDim,
int codim>
116 int Dune::UGMessageBufferBase<DataHandle,GridDim,codim>::level = -1;
123 class CollectiveCommunication<Dune::UGGrid<dim> > :
124 public CollectiveCommunication< Dune::MPIHelper::MPICommunicator >
126 typedef CollectiveCommunication< Dune::MPIHelper::MPICommunicator > ParentType;
128 CollectiveCommunication()
129 : ParentType(MPIHelper::getCommunicator())
142 UGGridLeafIntersection,
143 UGGridLevelIntersection,
144 UGGridLeafIntersectionIterator,
145 UGGridLevelIntersectionIterator,
146 UGGridHierarchicIterator,
148 UGGridLevelIndexSet< const UGGrid<dim> >,
149 UGGridLeafIndexSet< const UGGrid<dim> >,
150 UGGridIdSet< const UGGrid<dim> >,
151 typename UG_NS<dim>::UG_ID_TYPE,
152 UGGridIdSet< const UGGrid<dim> >,
153 typename UG_NS<dim>::UG_ID_TYPE,
154 CollectiveCommunication<Dune::UGGrid<dim> >,
155 UGGridLevelGridViewTraits,
156 UGGridLeafGridViewTraits,
211 friend class UGGridGeometry<0,dim,const
UGGrid<dim> >;
212 friend class UGGridGeometry<dim,dim,const
UGGrid<dim> >;
213 friend class UGGridGeometry<1,2,const
UGGrid<dim> >;
214 friend class UGGridGeometry<2,3,const
UGGrid<dim> >;
216 friend class UGGridEntity <0,dim,const
UGGrid<dim> >;
217 friend class UGGridEntity <dim,dim,const
UGGrid<dim> >;
218 friend class UGGridHierarchicIterator<const
UGGrid<dim> >;
219 friend class UGGridLeafIntersection<const
UGGrid<dim> >;
220 friend class UGGridLevelIntersection<const
UGGrid<dim> >;
221 friend class UGGridLeafIntersectionIterator<const
UGGrid<dim> >;
222 friend class UGGridLevelIntersectionIterator<const
UGGrid<dim> >;
224 friend class UGGridLevelIndexSet<const
UGGrid<dim> >;
225 friend class UGGridLeafIndexSet<const
UGGrid<dim> >;
226 friend class UGGridIdSet<const
UGGrid<dim> >;
227 template <
class Gr
idImp_, PartitionIteratorType PiType_>
229 template <
class Gr
idImp_, PartitionIteratorType PiType_>
235 friend class UGLBGatherScatter;
238 template <
int codim_, PartitionIteratorType PiType_,
class Gr
idImp_>
240 template <
int codim_, PartitionIteratorType PiType_,
class Gr
idImp_>
242 template <
int codim_,
class Gr
idImp_>
246 static_assert(dim==2 || dim==3,
"Use UGGrid only for 2d and 3d!");
275 #if HAVE_NOEXCEPT_SPECIFIER
293 template<
int codim, PartitionIteratorType PiType>
297 template<
int codim, PartitionIteratorType PiType>
309 return UGGridLeafIterator<codim,All_Partition, const UGGrid<dim> >();
313 template<
int codim, PartitionIteratorType PiType>
319 template<
int codim, PartitionIteratorType PiType>
321 return UGGridLeafIterator<codim,PiType, const UGGrid<dim> >();
325 template <
typename Seed>
326 DUNE_DEPRECATED_MSG(
"entityPointer() is deprecated and will be removed after the release of dune-grid 2.4. Use entity() instead to directly obtain an Entity object.")
330 enum {codim = Seed::codimension};
335 template <
typename Seed>
336 typename Traits::template Codim<Seed::codimension>::Entity
339 const int codim = Seed::codimension;
345 int size (
int level,
int codim)
const;
369 return numBoundarySegments_;
388 DUNE_THROW(
GridError,
"levelIndexSet of nonexisting level " << level <<
" requested!");
389 return *levelIndexSets_[level];
395 return leafIndexSet_;
413 bool mark(
int refCount,
const typename Traits::template Codim<0>::Entity & e );
471 bool mark(
const typename Traits::template Codim<0>::Entity & e,
472 typename UG_NS<dim>::RefinementRule rule,
476 int getMark(
const typename Traits::template Codim<0>::Entity& e)
const;
496 return (codim==0) ? 1 : 0;
506 return (codim==0) ? 1 : 0;
516 template<
class DataHandle>
524 UGLBGatherScatter::template gather<dim>(this->
leafGridView(), dataHandle);
536 UGLBGatherScatter::template scatter<dim>(this->
leafGridView(), dataHandle);
580 bool loadBalance(
const std::vector<unsigned int>& targetProcessors,
unsigned int fromLevel);
591 template<
class DataHandle>
592 bool loadBalance (
const std::vector<unsigned int>& targetProcessors,
unsigned int fromLevel, DataHandle& dataHandle)
599 UGLBGatherScatter::template gather<dim>(this->
leafGridView(), dataHandle);
611 UGLBGatherScatter::template scatter<dim>(this->
leafGridView(), dataHandle);
628 template<
class DataHandle>
634 for (
int curCodim = 0; curCodim <= dim; ++curCodim) {
635 if (!dataHandle.contains(dim, curCodim))
639 communicateUG_<LevelGridView, DataHandle, 0>(this->
levelGridView(level), level, dataHandle, iftype, dir);
640 else if (curCodim == dim)
641 communicateUG_<LevelGridView, DataHandle, dim>(this->
levelGridView(level), level, dataHandle, iftype, dir);
642 else if (curCodim == dim - 1)
644 else if (curCodim == 1)
645 communicateUG_<LevelGridView, DataHandle, 1>(this->
levelGridView(level), level, dataHandle, iftype, dir);
647 DUNE_THROW(NotImplemented,
648 className(*
this) <<
"::communicate(): Not "
649 "supported for dim " << dim <<
" and codim " << curCodim);
663 template<
class DataHandle>
669 for (
int curCodim = 0; curCodim <= dim; ++curCodim) {
670 if (!dataHandle.contains(dim, curCodim))
674 communicateUG_<LeafGridView, DataHandle, 0>(this->
leafGridView(), level, dataHandle, iftype, dir);
675 else if (curCodim == dim)
676 communicateUG_<LeafGridView, DataHandle, dim>(this->
leafGridView(), level, dataHandle, iftype, dir);
677 else if (curCodim == dim - 1)
679 else if (curCodim == 1)
680 communicateUG_<LeafGridView, DataHandle, 1>(this->
leafGridView(), level, dataHandle, iftype, dir);
682 DUNE_THROW(NotImplemented,
683 className(*
this) <<
"::communicate(): Not "
684 "supported for dim " << dim <<
" and codim " << curCodim);
697 template <
class Gr
idView,
class DataHandle,
int codim>
698 void communicateUG_(
const GridView& gv,
int level,
699 DataHandle &dataHandle,
703 typename UG_NS<dim>::DDD_IF_DIR ugIfDir;
706 ugIfDir = UG_NS<dim>::IF_FORWARD();
708 ugIfDir = UG_NS<dim>::IF_BACKWARD();
710 typedef UGMessageBuffer<DataHandle,dim,codim> UGMsgBuf;
711 UGMsgBuf::duneDataHandle_ = &dataHandle;
713 UGMsgBuf::level = level;
715 std::vector<typename UG_NS<dim>::DDD_IF> ugIfs;
716 findDDDInterfaces_(ugIfs, iftype, codim);
718 unsigned bufSize = UGMsgBuf::ugBufferSize_(gv);
721 for (
unsigned i=0; i < ugIfs.size(); ++i)
722 UG_NS<dim>::DDD_IFOneway(ugIfs[i],
725 &UGMsgBuf::ugGather_,
726 &UGMsgBuf::ugScatter_);
729 void findDDDInterfaces_(std::vector<
typename UG_NS<dim>::DDD_IF > &dddIfaces,
745 dddIfaces.push_back(UG_NS<dim>::ElementVHIF());
752 dddIfaces.push_back(UG_NS<dim>::ElementSymmVHIF());
755 DUNE_THROW(GridError,
756 "Element communication not supported for "
757 "interfaces of type "
761 else if (codim == dim)
766 dddIfaces.push_back(UG_NS<dim>::BorderNodeSymmIF());
769 dddIfaces.push_back(UG_NS<dim>::BorderNodeSymmIF());
770 dddIfaces.push_back(UG_NS<dim>::NodeIF());
773 dddIfaces.push_back(UG_NS<dim>::NodeAllIF());
776 DUNE_THROW(GridError,
777 "Node communication not supported for "
778 "interfaces of type "
782 else if (codim == dim-1)
787 dddIfaces.push_back(UG_NS<dim>::BorderEdgeSymmIF());
790 dddIfaces.push_back(UG_NS<dim>::BorderEdgeSymmIF());
795 dddIfaces.push_back(UG_NS<dim>::EdgeSymmVHIF());
798 DUNE_THROW(GridError,
799 "Edge communication not supported for "
800 "interfaces of type "
810 dddIfaces.push_back(UG_NS<dim>::BorderVectorSymmIF());
813 DUNE_THROW(GridError,
814 "Face communication not supported for "
815 "interfaces of type "
821 DUNE_THROW(GridError,
822 "Communication for codim "
824 <<
" entities is not yet supported "
825 <<
" by the DUNE UGGrid interface!");
851 std::vector<
typename Traits::template Codim<0>::EntityPointer>& childElements,
852 std::vector<unsigned char>& childElementSides)
const;
858 template<
typename T >
859 DUNE_DEPRECATED_MSG(
"This version of getChildrenOfSubface() uses EntityPointer and is deprecated. It will be removed after the release of Dune 2.4. Please use the new version with entities instead.")
860 typename std::enable_if<
863 typename
UGGrid<dim>::
Traits::template Codim<0>::EntityPointer
869 std::vector<typename
Traits::template Codim<0>::EntityPointer>& childElements,
870 std::vector<
unsigned char>& childElementSides)
const
875 SLList<ListEntryType> list;
881 elementSide = UGGridRenumberer<dim>::facesDUNEtoUG(elementSide, e->type());
887 && e->level() < maxl) {
891 int Sons_of_Side = 0;
893 int SonSides[UG_NS<dim>::MAX_SONS];
895 int rv = Get_Sons_of_ElementSide(theElement,
903 DUNE_THROW(GridError,
"Get_Sons_of_ElementSide returned with error value " << rv);
905 for (
int i=0; i<Sons_of_Side; i++)
906 list.push_back(ListEntryType(SonList[i],SonSides[i]));
914 typename SLList<ListEntryType>::iterator f = list.begin();
915 for (; f!=list.end(); ++f) {
918 int side = f->second;
920 int Sons_of_Side = 0;
922 int SonSides[UG_NS<dim>::MAX_SONS];
924 if (UG_NS<dim>::myLevel(theElement) < maxl) {
926 Get_Sons_of_ElementSide(theElement,
934 for (
int i=0; i<Sons_of_Side; i++)
935 list.push_back(ListEntryType(SonList[i],SonSides[i]));
946 childElements.clear();
947 childElements.reserve( list.size() );
948 childElementSides.resize(list.size());
951 for (f = list.begin(); f!=list.end(); ++f, ++i)
955 typedef typename Traits::template Codim< 0 >::EntityPointer EntityPointer;
956 childElements.push_back( EntityPointer(
UGGridEntityPointer< 0,
const UGGrid< dim > >( f->first,
this ) ) );
958 int side = f->second;
962 childElementSides[i] = UGGridRenumberer<dim>::facesUGtoDUNE(side, childElements[i]->type());
979 std::vector<
typename Traits::template Codim<0>::Entity>& childElements,
980 std::vector<unsigned char>& childElementSides)
const;
1000 refinementType_ = type;
1005 closureType_ = type;
1028 void setPosition(
const typename Traits::template Codim<dim>::EntityPointer& e,
1029 const FieldVector<double, dim>& pos);
1035 template<
typename T >
1036 DUNE_DEPRECATED_MSG(
"This version of setPosition() uses EntityPointer and is deprecated. It will be removed after the release of Dune 2.4. Please use the new version with entities instead.")
1037 typename std::enable_if<
1040 typename
UGGrid<dim>::
Traits::template Codim<dim>::EntityPointer
1044 const FieldVector<
double, dim>& pos)
1048 for (
int i=0; i<dim; i++)
1049 target->myvertex->iv.x[i] = pos[i];
1057 void setPosition(
const typename Traits::template Codim<dim>::Entity& e,
1058 const FieldVector<double, dim>& pos);
1070 void saveState(
const std::string& filename)
const;
1076 void loadState(
const std::string& filename);
1080 typename UG_NS<dim>::MultiGrid* multigrid_;
1083 CollectiveCommunication<UGGrid> ccobj_;
1090 void setIndices(
bool setLevelZero,
1091 std::vector<unsigned int>* nodePermutation);
1098 std::vector<shared_ptr<UGGridLevelIndexSet<const UGGrid<dim> > > > levelIndexSets_;
1100 UGGridLeafIndexSet<const UGGrid<dim> > leafIndexSet_;
1104 UGGridIdSet<const UGGrid<dim> > idSet_;
1119 static int numOfUGGrids;
1126 bool someElementHasBeenMarkedForRefinement_;
1133 bool someElementHasBeenMarkedForCoarsening_;
1139 static unsigned int heapSize_;
1142 std::vector<shared_ptr<BoundarySegment<dim> > > boundarySegments_;
1149 unsigned int numBoundarySegments_;
1153 namespace Capabilities
1173 static const bool v =
true;
1182 static const bool v =
true;
1189 struct DUNE_DEPRECATED_MSG("Capabilities::
isParallel will be removed after dune-grid-2.4.")
isParallel< UGGrid<dim> >
1192 static const bool DUNE_DEPRECATED_MSG(
"Capabilities::isParallel will be removed after dune-grid-2.4.") v =
true;
1194 static const bool DUNE_DEPRECATED_MSG(
"Capabilities::isParallel will be removed after dune-grid-2.4.") v = false;
1204 static const bool v =
true;
1213 static const bool v =
false;
1220 #endif // HAVE_UG || DOXYGEN
1221 #endif // DUNE_UGGRID_HH
const Traits::LevelIndexSet & levelIndexSet(int level) const
Access to the LevelIndexSets.
Definition: uggrid.hh:385
bool loadBalance()
default implementation of load balance does nothing and returns false
Definition: common/grid.hh:1220
int size(int codim) const
number of leaf entities per codim in this process
Definition: uggrid.hh:348
void postAdapt()
Clean up refinement markers.
Index Set Interface base class.
Definition: common/grid.hh:361
The specialization of the generic GridFactory for UGGrid.
Base class for exceptions in Dune grid modules.
Definition: exceptions.hh:16
UGGridFamily< dim >::Traits Traits
Definition: uggrid.hh:261
Specialize with 'true' if implementation guarantees a conforming leaf grid. (default=false) ...
Definition: common/capabilities.hh:107
Different resources needed by all grid implementations.
ClosureType
Decide whether to add a green closure to locally refined grid sections or not.
Definition: uggrid.hh:991
send/receive interior and border entities
Definition: gridenums.hh:85
Types for GridView.
Definition: common/grid.hh:420
void saveState(const std::string &filename) const
Save entire grid hierarchy to disk.
void communicate(DataHandle &dataHandle, InterfaceType iftype, CommunicationDirection dir, int level) const
The communication interface for all codims on a given level.
Definition: uggrid.hh:629
Specialize with 'true' for all codims that a grid implements entities for. (default=false) ...
Definition: common/capabilities.hh:57
const Traits::LocalIdSet & localIdSet() const
Access to the LocalIdSet.
Definition: uggrid.hh:379
int size(int level, GeometryType type) const
number of entities per level and geometry type in this process
Definition: uggrid.hh:354
A traits struct that collects all associated types of one grid model.
Definition: common/grid.hh:1343
void setPosition(const typename Traits::template Codim< dim >::EntityPointer &e, const FieldVector< double, dim > &pos)
Sets a vertex to a new position.
communicate as given in InterfaceType
Definition: gridenums.hh:169
RefinementType
The different forms of grid refinement that UG supports.
Definition: uggrid.hh:983
Wrapper class for pointers to entities.
Definition: common/entitypointer.hh:112
Traits::template Codim< Seed::codimension >::Entity entity(const Seed &seed) const
Create an Entity from an EntitySeed.
Definition: uggrid.hh:337
static const bool v
Definition: common/capabilities.hh:59
UGGridFamily< dim > GridFamily
type of the used GridFamily for this grid
Definition: uggrid.hh:258
Traits::template Codim< codim >::LevelIterator lbegin(int level) const
Iterator to first entity of given codim on level.
send interior and border, receive all entities
Definition: gridenums.hh:86
Partition< All_Partition >::LevelGridView LevelGridView
View types for All_Partition.
Definition: common/grid.hh:428
static const bool v
Definition: common/capabilities.hh:109
friend class UGGridEntityPointer
Definition: uggrid.hh:243
Definition: uggrid.hh:135
int size(GeometryType type) const
number of leaf entities per geometry type in this process
Definition: uggrid.hh:360
friend class UGGridLevelIterator
Definition: uggrid.hh:241
Definition: common/geometry.hh:24
bool adapt()
Triggers the grid refinement process.
Traits::template Codim< codim >::LevelIterator lend(int level) const
one past the end on this level
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
friend class UGGridLeafIterator
Definition: uggrid.hh:239
bool preAdapt()
returns true, if some elements might be coarsend during grid adaption, here always returns true ...
unsigned int ghostSize(int codim) const
Size of the ghost cell layer on the leaf level.
Definition: uggrid.hh:495
IndexType size(GeometryType type) const
Return total number of entities of given geometry type in entity set .
Definition: indexidset.hh:232
send all and receive all entities
Definition: gridenums.hh:89
unsigned int ghostSize(int level, int codim) const
Size of the ghost cell layer on a given level.
Definition: uggrid.hh:505
New level consists only of the refined elements and the closure.
Definition: uggrid.hh:985
const Traits::LeafIndexSet & leafIndexSet() const
Access to the LeafIndexSet.
Definition: uggrid.hh:393
const Traits::GlobalIdSet & globalIdSet() const
Access to the GlobalIdSet.
Definition: uggrid.hh:373
Base class for grid boundary segments of arbitrary geometry.
UGGrid()
Default constructor.
unsigned int overlapSize(int codim) const
Size of the overlap on the leaf level.
Definition: uggrid.hh:490
bool loadBalance(const std::vector< unsigned int > &targetProcessors, unsigned int fromLevel, DataHandle &dataHandle)
Distributes the grid over the processes of a parallel machine, and sends data along with it...
Definition: uggrid.hh:592
bool loadBalance(DataHandle &dataHandle)
Distributes the grid and some data over the available nodes in a distributed machine.
Definition: uggrid.hh:517
UG::DOUBLE ctype
The type used to store coordinates.
Definition: uggrid.hh:264
Traits::template Partition< pitype >::LeafGridView leafGridView() const
View for the leaf grid.
Definition: common/grid.hh:1115
GridTraits< dim, dim, Dune::UGGrid< dim >, UGGridGeometry, UGGridEntity, UGGridEntityPointer, UGGridLevelIterator, UGGridLeafIntersection, UGGridLevelIntersection, UGGridLeafIntersectionIterator, UGGridLevelIntersectionIterator, UGGridHierarchicIterator, UGGridLeafIterator, UGGridLevelIndexSet< const UGGrid< dim > >, UGGridLeafIndexSet< const UGGrid< dim > >, UGGridIdSet< const UGGrid< dim > >, typename UG_NS< dim >::UG_ID_TYPE, UGGridIdSet< const UGGrid< dim > >, typename UG_NS< dim >::UG_ID_TYPE, CollectiveCommunication< Dune::UGGrid< dim > >, UGGridLevelGridViewTraits, UGGridLeafGridViewTraits, UGGridEntitySeed, UGGridLocalGeometry > Traits
Definition: uggrid.hh:159
const CollectiveCommunication< UGGrid > & comm() const
Definition: uggrid.hh:690
No closure, results in nonconforming meshes.
Definition: uggrid.hh:995
GridFamily::Traits::template Codim< cd >::Entity Entity
A type that is a model of a Dune::Entity<cd,dim,...>.
Definition: common/grid.hh:446
Traits::template Codim< codim >::template Partition< PiType >::LeafIterator leafbegin() const
Iterator to first leaf entity of given codim.
Definition: uggrid.hh:314
void communicate(DataHandle &dataHandle, InterfaceType iftype, CommunicationDirection dir) const
The communication interface for all codims on the leaf level.
Definition: uggrid.hh:664
Traits::template Codim< Seed::codimension >::EntityPointer entityPointer(const Seed &seed) const
Create an EntityPointer from an EntitySeed.
Definition: uggrid.hh:328
static std::conditional< std::is_reference< InterfaceType >::value, typename std::add_lvalue_reference< typename ReturnImplementationType< typename std::remove_reference< InterfaceType >::type >::ImplementationType >::type, typename std::remove_const< typename ReturnImplementationType< typename std::remove_reference< InterfaceType >::type >::ImplementationType >::type >::type getRealImplementation(InterfaceType &&i)
return real implementation of interface class
Definition: common/grid.hh:1305
CommunicationDirection
Define a type for communication direction parameter.
Definition: gridenums.hh:168
Provide a generic factory class for unstructured grids.
Definition: common/gridfactory.hh:263
void setRefinementType(RefinementType type)
Sets the type of grid refinement.
Definition: uggrid.hh:999
Front-end for the grid manager of the finite element toolbox UG.
Definition: uggrid.hh:207
void loadState(const std::string &filename)
Read entire grid hierarchy from disk.
void getChildrenOfSubface(const typename Traits::template Codim< 0 >::EntityPointer &e, int elementSide, int maxl, std::vector< typename Traits::template Codim< 0 >::EntityPointer > &childElements, std::vector< unsigned char > &childElementSides) const
Rudimentary substitute for a hierarchic iterator on faces.
size_t numBoundarySegments() const
Return the number of boundary segments.
Definition: uggrid.hh:366
A set of traits classes to store static information about grid implementation.
void globalRefine(int n)
Does uniform refinement.
Traits::template Codim< codim >::template Partition< PiType >::LeafIterator leafend() const
one past the end of the sequence of leaf entities
Definition: uggrid.hh:320
bool mark(int refCount, const typename Traits::template Codim< 0 >::Entity &e)
Mark element for refinement.
static const bool v
Definition: common/capabilities.hh:100
unsigned int overlapSize(int level, int codim) const
Size of the overlap on a given level.
Definition: uggrid.hh:500
Specialize with 'true' if implementation supports parallelism. (default=false)
Definition: common/capabilities.hh:68
ALBERTA EL Element
Definition: misc.hh:51
Specialize with 'true' if implementation guarantees conforming level grids. (default=false) ...
Definition: common/capabilities.hh:98
int size(int level, int codim) const
Number of grid entities per level and codim.
GridFamily::Traits::template Codim< cd >::EntityPointer EntityPointer
A type that is a model of Dune::EntityPointer<cd,dim,...>.
Definition: common/grid.hh:449
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:84
friend class UGGridLeafGridView
Definition: uggrid.hh:228
Grid view abstract base class.
Definition: common/gridview.hh:58
A Traits struct that collects all associated types of one implementation.
Definition: common/grid.hh:437
New level consists of the refined elements and the unrefined ones, too.
Definition: uggrid.hh:987
static void setDefaultHeapSize(unsigned size)
Sets the default heap size.
Definition: uggrid.hh:1014
Partition< All_Partition >::LeafGridView LeafGridView
Definition: common/grid.hh:429
Traits::template Codim< codim >::LeafIterator leafend() const
one past the end of the sequence of leaf entities
Definition: uggrid.hh:308
Traits::template Codim< codim >::LeafIterator leafbegin() const
Iterator to first leaf entity of given codim.
Definition: uggrid.hh:302
GridFamily::Traits::CollectiveCommunication CollectiveCommunication
A type that is a model of Dune::CollectiveCommunication. It provides a portable way for collective co...
Definition: common/grid.hh:545
Standard red/green refinement.
Definition: uggrid.hh:993
void setClosureType(ClosureType type)
Sets the type of grid refinement closure.
Definition: uggrid.hh:1004
Traits::template Partition< pitype >::LevelGridView levelGridView(int level) const
View for a grid level.
Definition: common/grid.hh:1105
int getMark(const typename Traits::template Codim< 0 >::Entity &e) const
Query whether element is marked for refinement.
Id Set Interface.
Definition: common/grid.hh:362
friend class UGGridLevelGridView
Definition: uggrid.hh:230