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

Copyright 2019 Equinor AS. More...

Classes

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

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 }
 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)
 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)
 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)
 
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)
 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)
 
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 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)
 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>
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>
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>
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>
area (const Point< T, 2 > *c)
 Computes the area of a 2-dimensional triangle.
 
template<typename T , template< typename, int > class Point>
area (const Point< T, 3 > *c)
 Computes the area of a 3-dimensional triangle.
 
template<typename T , template< typename, int > class Point>
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>
signed_area (const Point< T, 3 > *c, const Point< T, 3 > &normal)
 Computes the signed area of a triangle embedded in 3D space.
 
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 &, int, bool)
 
template<typename K , int n>
FieldVector< K, n > operator- (const FieldVector< K, n > &v)
 
template<int mydim, int cdim>
auto referenceElement (const cpgrid::Geometry< mydim, cdim > &geo) -> decltype(referenceElement< double, mydim >(geo.type()))
 

Detailed Description

Copyright 2019 Equinor AS.

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

This file is part of The Open Porous Media project (OPM).

OPM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

OPM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with OPM. If not, see http://www.gnu.org/licenses/.

Enumeration Type Documentation

◆ 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 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.

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 
)

Adds a layer of overlap cells to a partitioning.

Parameters
[in]gridThe grid that is partitioned.
[in]cell_parta vector containing each cells partition number.
[out]cell_overlapa vector of sets that contains for each cell all the partition numbers that it is an overlap cell of.
[in]mypartThe partition number of the processor.
[in]allWhether to compute the overlap for all partions or just the one associated by mypart.

◆ 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 
)

Adds a layer of overlap cells to a partitioning.

Parameters
[in]gridThe grid that is partitioned.
[in]cell_parta vector containing each cells partition number.
[in,out]exportListList indices to export, each entry is a tuple of global index, process rank (to export to), attribute on remote.
[in,out]importListList indices to import, each entry is a tuple of global index, process rank (to import from), attribute here, local index here
[in]ccThe communication object
[in]addCornerCellsSwitch for adding corner cells to overlap layer.
[in]transThe transmissibilities on cell faces. When trans[i]==0, no overlap is added.
[in]layerNumber of overlap layers

◆ 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]gridthe grid to partition
[in]initial_splitthe number of parts in which to partition the grid, in each cardinal direction. Their product is the expected number of partitions produced.
[out]num_partthe 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_parta vector containing, for each cell, its partition number

◆ 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.