Loading...
Searching...
No Matches
Dune Namespace Reference

The namespace Dune is the main namespace for all Dune code. More...

## Namespaces

namespace | cpgrid
| Copyright 2019 Equinor AS.

## Classes

class | CartesianIndexMapper
| Interface class to access the logical Cartesian grid as used in industry standard simulator decks. More...
struct | OrderByFirst
class | SimpleMessageBuffer
class | Point2PointCommunicator
| Point-2-Point communicator for exchange messages between processes. More...
class | SubGridPart
| A class to represent a part of a grid, similar to a GridView. More...
struct | SubGridPartTraits
struct | CpGridTraits
struct | CpGridFamily
class | CpGrid
| [ provides Dune::Grid ] More...
class | CartesianIndexMapper< CpGrid >
struct | DGFGridFactory< CpGrid >
struct | DGFGridInfo< CpGrid >
class | PersistentContainer< CpGrid, Data >
class | CartesianIndexMapper< PolyhedralGrid< dim, dimworld, coord_t > >
class | PolyhedralGrid
| identical grid wrapper More...
struct | DGFGridFactory< PolyhedralGrid< dim, dimworld, coord_t > >
struct | DGFGridInfo< PolyhedralGrid< dim, dimworld > >
class | PolyhedralGridEntityBasic
class | PolyhedralGridEntity
class | PolyhedralGridEntity< 0, dim, Grid >
| construct a null entity More...
class | PolyhedralGridEntityPointer
class | PolyhedralGridEntitySeed
class | PolyhedralGridGeometry
class | PolyhedralGridLocalGeometry
struct | PolyhedralGridBasicGeometry
struct | PolyhedralGridFamily
class | GridFactory< PolyhedralGrid< dim, dimworld, coord_t > >
class | PolyhedralGridView
struct | PolyhedralGridViewTraits
class | PolyhedralGridIdSet
class | PolyhedralGridIndexSet
class | PolyhedralGridIntersection
class | PolyhedralGridIntersectionIterator
class | PolyhedralGridIterator
class | PersistentContainer< PolyhedralGrid< dim, dimworld >, Data >

## Typedefs

typedef std::array< int, 3 > | coord_t
using | NNCMap = std::set<std::pair<int, int>>
using | NNCMaps = std::array<NNCMap, 2>

## Enumerations

enum | EdgeWeightMethod { uniformEdgeWgt =0 , defaultTransEdgeWgt =1 , logTransEdgeWgt =2 }
| enum for choosing Methods for weighting graph-edges correspoding to cell interfaces in Zoltan's or Metis' graph partitioner. More...
enum | PartitionMethod { simple =0 , zoltan =1 , metis =2 , zoltanGoG =3 }
| enum for choosing methods for partitioning a graph. More...
enum | NNCMapsIndex { PinchNNC = 0 , ExplicitNNC = 1 }

## Functions

void | partition (const CpGrid &grid, const std::array< int, 3 > &initial_split, int &num_part, std::vector< int > &cell_part, bool recursive=false, bool ensureConnectivity=true)
| Partition a CpGrid based on (ijk) coordinates, with splitting to ensure that each partition is connected.
void | addOverlapCornerCell (const CpGrid &grid, int owner, const CpGrid::Codim< 0 >::Entity &from, const CpGrid::Codim< 0 >::Entity &neighbor, const std::vector< int > &cell_part, std::vector< std::set< int > > &cell_overlap, int level)
| Adds cells to the overlap that just share a point with an owner cell.
void | addOverlapCornerCell (const CpGrid &grid, int owner, const CpGrid::Codim< 0 >::Entity &from, const CpGrid::Codim< 0 >::Entity &neighbor, const std::vector< int > &cell_part, std::vector< std::tuple< int, int, char > > &exportList, int level)
| Adds cells to the overlap that just share a point with an owner cell.
void | addOverlapLayer (const CpGrid &grid, int index, const CpGrid::Codim< 0 >::Entity &e, const int owner, const std::vector< int > &cell_part, std::vector< std::set< int > > &cell_overlap, int recursion_deps, int level)
void | addOverlapLayer (const CpGrid &grid, const std::vector< int > &cell_part, std::vector< std::set< int > > &cell_overlap, int mypart, int overlapLayers, bool all=false, int level=-1)
| Adds a layer of overlap cells to a partitioning.
void | addOverlapLayer (const CpGrid &grid, int index, const CpGrid::Codim< 0 >::Entity &e, const int owner, const std::vector< int > &cell_part, std::vector< std::tuple< int, int, char > > &exportList, bool addCornerCells, int recursion_deps, int level)
void | addOverlapLayerNoZeroTrans (const CpGrid &grid, int index, const CpGrid::Codim< 0 >::Entity &e, const int owner, const std::vector< int > &cell_part, std::vector< std::tuple< int, int, char > > &exportList, bool addCornerCells, int recursion_deps, const double *trans, int level)
int | addOverlapLayer (const CpGrid &grid, const std::vector< int > &cell_part, std::vector< std::tuple< int, int, char > > &exportList, std::vector< std::tuple< int, int, char, int > > &importList, const Communication< Dune::MPIHelper::MPICommunicator > &cc, bool addCornerCells, const double *trans, int layers=1, int level=-1)
| Adds a layer of overlap cells to a partitioning.
template<typename T>
FieldVector< T, 3 > | cross (const FieldVector< T, 3 > &a, const FieldVector< T, 3 > &b)
template<class Vector>
Vector::field_type | inner (const Vector &a, const Vector &b)
template<typename T, template< typename, int > class Point>
T | determinantOf (const Point< T, 2 > *a)
| Calculates the determinant of a 2 x 2 matrix, represented in memory as an array of two-dimensional points.
template<typename T, template< typename, int > class Point>
T | determinantOf (const Point< T, 3 > *a)
| Calculates the determinant of a 3 x 3 matrix, represented in memory as an array of three-dimensional points.
template<typename T, template< typename, int > class Point, int Dim>
T | simplex_volume (const Point< T, Dim > *a)
| Computes the volume of a simplex consisting of (Dim+1) vertices embedded in Euclidean space of dimension (Dim).
template<typename T, template< typename, int > class Point>
T | area (const Point< T, 2 > *c)
| Computes the area of a 2-dimensional triangle.
template<typename T, template< typename, int > class Point>
T | area (const Point< T, 3 > *c)
| Computes the area of a 3-dimensional triangle.
template<typename T, template< typename, int > class Point>
T | volume (const Point< T, 3 > *c)
| Computes the volume of a 3D simplex (embedded i 3D space).
template<typename T, template< typename, int > class Point>
T | signed_area (const Point< T, 3 > *c, const Point< T, 3 > &normal)
| Computes the signed area of a triangle embedded in 3D space.
template<int dim>
cpgrid::Entity< dim > | createEntity (const CpGrid &grid, int index, bool orientation)
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Interior_Partition >::LevelIterator | CpGrid::lbegin< 0, Dune::Interior_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::InteriorBorder_Partition >::LevelIterator | CpGrid::lbegin< 0, Dune::InteriorBorder_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Overlap_Partition >::LevelIterator | CpGrid::lbegin< 0, Dune::Overlap_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::OverlapFront_Partition >::LevelIterator | CpGrid::lbegin< 0, Dune::OverlapFront_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::All_Partition >::LevelIterator | CpGrid::lbegin< 0, Dune::All_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Ghost_Partition >::LevelIterator | CpGrid::lbegin< 0, Dune::Ghost_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Interior_Partition >::LevelIterator | CpGrid::lbegin< 1, Dune::Interior_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::InteriorBorder_Partition >::LevelIterator | CpGrid::lbegin< 1, Dune::InteriorBorder_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Overlap_Partition >::LevelIterator | CpGrid::lbegin< 1, Dune::Overlap_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::OverlapFront_Partition >::LevelIterator | CpGrid::lbegin< 1, Dune::OverlapFront_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::All_Partition >::LevelIterator | CpGrid::lbegin< 1, Dune::All_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Ghost_Partition >::LevelIterator | CpGrid::lbegin< 1, Dune::Ghost_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Interior_Partition >::LevelIterator | CpGrid::lbegin< 3, Dune::Interior_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::InteriorBorder_Partition >::LevelIterator | CpGrid::lbegin< 3, Dune::InteriorBorder_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Overlap_Partition >::LevelIterator | CpGrid::lbegin< 3, Dune::Overlap_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::OverlapFront_Partition >::LevelIterator | CpGrid::lbegin< 3, Dune::OverlapFront_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::All_Partition >::LevelIterator | CpGrid::lbegin< 3, Dune::All_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Ghost_Partition >::LevelIterator | CpGrid::lbegin< 3, Dune::Ghost_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Interior_Partition >::LevelIterator | CpGrid::lend< 0, Dune::Interior_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::InteriorBorder_Partition >::LevelIterator | CpGrid::lend< 0, Dune::InteriorBorder_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Overlap_Partition >::LevelIterator | CpGrid::lend< 0, Dune::Overlap_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::OverlapFront_Partition >::LevelIterator | CpGrid::lend< 0, Dune::OverlapFront_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::All_Partition >::LevelIterator | CpGrid::lend< 0, Dune::All_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Ghost_Partition >::LevelIterator | CpGrid::lend< 0, Dune::Ghost_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Interior_Partition >::LevelIterator | CpGrid::lend< 1, Dune::Interior_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::InteriorBorder_Partition >::LevelIterator | CpGrid::lend< 1, Dune::InteriorBorder_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Overlap_Partition >::LevelIterator | CpGrid::lend< 1, Dune::Overlap_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::OverlapFront_Partition >::LevelIterator | CpGrid::lend< 1, Dune::OverlapFront_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::All_Partition >::LevelIterator | CpGrid::lend< 1, Dune::All_Partition > (int) const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Ghost_Partition >::LevelIterator | CpGrid::lend< 1, Dune::Ghost_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Interior_Partition >::LevelIterator | CpGrid::lend< 3, Dune::Interior_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::InteriorBorder_Partition >::LevelIterator | CpGrid::lend< 3, Dune::InteriorBorder_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Overlap_Partition >::LevelIterator | CpGrid::lend< 3, Dune::Overlap_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::OverlapFront_Partition >::LevelIterator | CpGrid::lend< 3, Dune::OverlapFront_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::All_Partition >::LevelIterator | CpGrid::lend< 3, Dune::All_Partition > (int) const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Ghost_Partition >::LevelIterator | CpGrid::lend< 3, Dune::Ghost_Partition > (int) const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Interior_Partition >::LeafIterator | CpGrid::leafbegin< 0, Dune::Interior_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::InteriorBorder_Partition >::LeafIterator | CpGrid::leafbegin< 0, Dune::InteriorBorder_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Overlap_Partition >::LeafIterator | CpGrid::leafbegin< 0, Dune::Overlap_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::OverlapFront_Partition >::LeafIterator | CpGrid::leafbegin< 0, Dune::OverlapFront_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::All_Partition >::LeafIterator | CpGrid::leafbegin< 0, Dune::All_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Ghost_Partition >::LeafIterator | CpGrid::leafbegin< 0, Dune::Ghost_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Interior_Partition >::LeafIterator | CpGrid::leafbegin< 1, Dune::Interior_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::InteriorBorder_Partition >::LeafIterator | CpGrid::leafbegin< 1, Dune::InteriorBorder_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Overlap_Partition >::LeafIterator | CpGrid::leafbegin< 1, Dune::Overlap_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::OverlapFront_Partition >::LeafIterator | CpGrid::leafbegin< 1, Dune::OverlapFront_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::All_Partition >::LeafIterator | CpGrid::leafbegin< 1, Dune::All_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Ghost_Partition >::LeafIterator | CpGrid::leafbegin< 1, Dune::Ghost_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Interior_Partition >::LeafIterator | CpGrid::leafbegin< 3, Dune::Interior_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::InteriorBorder_Partition >::LeafIterator | CpGrid::leafbegin< 3, Dune::InteriorBorder_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Overlap_Partition >::LeafIterator | CpGrid::leafbegin< 3, Dune::Overlap_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::OverlapFront_Partition >::LeafIterator | CpGrid::leafbegin< 3, Dune::OverlapFront_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::All_Partition >::LeafIterator | CpGrid::leafbegin< 3, Dune::All_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Ghost_Partition >::LeafIterator | CpGrid::leafbegin< 3, Dune::Ghost_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Interior_Partition >::LeafIterator | CpGrid::leafend< 0, Dune::Interior_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::InteriorBorder_Partition >::LeafIterator | CpGrid::leafend< 0, Dune::InteriorBorder_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Overlap_Partition >::LeafIterator | CpGrid::leafend< 0, Dune::Overlap_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::OverlapFront_Partition >::LeafIterator | CpGrid::leafend< 0, Dune::OverlapFront_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::All_Partition >::LeafIterator | CpGrid::leafend< 0, Dune::All_Partition > () const
template CpGridTraits::template Codim< 0 >::template Partition< Dune::Ghost_Partition >::LeafIterator | CpGrid::leafend< 0, Dune::Ghost_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Interior_Partition >::LeafIterator | CpGrid::leafend< 1, Dune::Interior_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::InteriorBorder_Partition >::LeafIterator | CpGrid::leafend< 1, Dune::InteriorBorder_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Overlap_Partition >::LeafIterator | CpGrid::leafend< 1, Dune::Overlap_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::OverlapFront_Partition >::LeafIterator | CpGrid::leafend< 1, Dune::OverlapFront_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::All_Partition >::LeafIterator | CpGrid::leafend< 1, Dune::All_Partition > () const
template CpGridTraits::template Codim< 1 >::template Partition< Dune::Ghost_Partition >::LeafIterator | CpGrid::leafend< 1, Dune::Ghost_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Interior_Partition >::LeafIterator | CpGrid::leafend< 3, Dune::Interior_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::InteriorBorder_Partition >::LeafIterator | CpGrid::leafend< 3, Dune::InteriorBorder_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Overlap_Partition >::LeafIterator | CpGrid::leafend< 3, Dune::Overlap_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::OverlapFront_Partition >::LeafIterator | CpGrid::leafend< 3, Dune::OverlapFront_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::All_Partition >::LeafIterator | CpGrid::leafend< 3, Dune::All_Partition > () const
template CpGridTraits::template Codim< 3 >::template Partition< Dune::Ghost_Partition >::LeafIterator | CpGrid::leafend< 3, Dune::Ghost_Partition > () const
template cpgrid::Entity< 0 > | createEntity (const CpGrid &grid, int index, bool orientation)
template<typename K, int n>
FieldVector< K, n > | operator- (const FieldVector< K, n > &v)

## Detailed Description

The namespace Dune is the main namespace for all Dune code.

## Enumeration Type Documentation

## EdgeWeightMethod

enum Dune::EdgeWeightMethod

enum for choosing Methods for weighting graph-edges correspoding to cell interfaces in Zoltan's or Metis' graph partitioner.

uniform methods means all edges have weight 1. defaultTrans uses transmissibility as weights. logTrans uses the logarithm of the transmissibility. The uniform and logTrans edge-weighting methods produce partitioning results with lower edge-cut, fewer overlap/ghost cells and less communication overhead than when using defaultTrans. However, the impact on parallel linear solver performance is negative.

Enumerator
uniformEdgeWgt | All edge have a uniform weight of 1.
defaultTransEdgeWgt | Use the transmissibilities as edge weights.
logTransEdgeWgt | Use the log of the transmissibilities as edge weights.

## PartitionMethod

enum Dune::PartitionMethod

enum for choosing methods for partitioning a graph.

Enumerator
simple | Use simple approach based on rectangular partitioning the underlying cartesian grid.
zoltan | Use Zoltan for partitioning.
metis | Use METIS for partitioning.
zoltanGoG | use Zoltan on GraphOfGrid for partitioning

## Function Documentation

## addOverlapLayer() [1/2]

void Dune::addOverlapLayer | ( | const CpGrid & | grid,
|  | const std::vector< int > & | cell_part,
|  | std::vector< std::set< int > > & | cell_overlap,
|  | int | mypart,
|  | int | overlapLayers,
|  | bool | all = false,
|  | int | level = -1 )

Adds a layer of overlap cells to a partitioning.

Parameters

  [in] | grid | The grid that is partitioned.
  [in] | cell_part | a vector containing each cells partition number.
  [out] | cell_overlap | a vector of sets that contains for each cell all the partition numbers that it is an overlap cell of.
  [in] | mypart | The partition number of the processor.
  [in] | overlapLayers | Number of overlap layers
  [in] | all | Whether to compute the overlap for all partions or just the one associated by mypart.
  [in] | level | Indicating level grid that is partitioned. Default -1 for leaf grid view.

## addOverlapLayer() [2/2]

int Dune::addOverlapLayer | ( | const CpGrid & | grid,
|  | const std::vector< int > & | cell_part,
|  | std::vector< std::tuple< int, int, char > > & | exportList,
|  | std::vector< std::tuple< int, int, char, int > > & | importList,
|  | const Communication< Dune::MPIHelper::MPICommunicator > & | cc,
|  | bool | addCornerCells,
|  | const double * | trans,
|  | int | layers = 1,
|  | int | level = -1 )

Adds a layer of overlap cells to a partitioning.

Parameters

  [in] | grid | The grid that is partitioned.
  [in] | cell_part | a vector containing each cells partition number.
  [in,out] | exportList | List indices to export, each entry is a tuple of global index, process rank (to export to), attribute on remote.
  [in,out] | importList | List indices to import, each entry is a tuple of global index, process rank (to import from), attribute here, local index here
  [in] | cc | The communication object
  [in] | addCornerCells | Switch for adding corner cells to overlap layer.
  [in] | trans | The transmissibilities on cell faces. When trans[i]==0, no overlap is added.
  [in] | layers | Number of overlap layers
  [in] | level | Indicating level grid that is partitioned. Default -1 for leaf grid view.

## area() [1/2]

template<typename T, template< typename, int > class Point>

T Dune::area | ( | const Point< T, 2 > * | c | ) |

inline

Computes the area of a 2-dimensional triangle.

Input is an array of corner points. Same function also exists for 3-dimensional triangles.

## area() [2/2]

template<typename T, template< typename, int > class Point>

T Dune::area | ( | const Point< T, 3 > * | c | ) |

inline

Computes the area of a 3-dimensional triangle.

Input is an array of corner points. Same function also exists for 2-dimensional triangles.

## cross()

template<typename T>

FieldVector< T, 3 > Dune::cross | ( | const FieldVector< T, 3 > & | a,
|  | const FieldVector< T, 3 > & | b )

Todo
  Doc me!

Template Parameters

param

Returns

## determinantOf() [1/2]

template<typename T, template< typename, int > class Point>

T Dune::determinantOf | ( | const Point< T, 2 > * | a | ) |

inline

Calculates the determinant of a 2 x 2 matrix, represented in memory as an array of two-dimensional points.

Same function also exists for 3 x 3 matrices.

## determinantOf() [2/2]

template<typename T, template< typename, int > class Point>

T Dune::determinantOf | ( | const Point< T, 3 > * | a | ) |

inline

Calculates the determinant of a 3 x 3 matrix, represented in memory as an array of three-dimensional points.

Same function also exists for 2 x 2 matrices.

## inner()

template<class Vector>

Vector::field_type Dune::inner | ( | const Vector & | a,
|  | const Vector & | b )

Todo
  Doc me!

Template Parameters

param

Returns

## partition()

void Dune::partition | ( | const CpGrid & | grid,
|  | const std::array< int, 3 > & | initial_split,
|  | int & | num_part,
|  | std::vector< int > & | cell_part,
|  | bool | recursive = false,
|  | bool | ensureConnectivity = true )

Partition a CpGrid based on (ijk) coordinates, with splitting to ensure that each partition is connected.

Parameters

  [in] | grid | the grid to partition
  [in] | initial_split | the number of parts in which to partition the grid, in each cardinal direction. Their product is the expected number of partitions produced.
  [out] | num_part | the resulting number of partitions. This may be lower than expected, because of inactive cells, or higher than expected, because of splits to ensure connectedness.
  [out] | cell_part | a vector containing, for each cell, its partition number
  [in] | recursive | True to use recursion in connectivity check
  [in] | ensureConnectivity | True to ensure that partitions are connected

## signed_area()

template<typename T, template< typename, int > class Point>

T Dune::signed_area | ( | const Point< T, 3 > * | c,
|  | const Point< T, 3 > & | normal )

Computes the signed area of a triangle embedded in 3D space.

Input is an array of corner points and a normal to determine the sign.