The namespace Dune is the main namespace for all Dune code.
More...
|
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 > > |
|
class | NonBlockingExchangeImplementation |
|
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 |
|
|
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) |
|
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. More...
|
|
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. More...
|
|
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) |
|
template<typename T , template< typename, int > class Point> |
T | determinantOf (const Point< T, 3 > *a) |
|
template<typename T , template< typename, int > class Point, int Dim> |
T | simplex_volume (const Point< T, Dim > *a) |
|
template<typename T , template< typename, int > class Point> |
T | area (const Point< T, 2 > *c) |
|
template<typename T , template< typename, int > class Point> |
T | area (const Point< T, 3 > *c) |
|
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). More...
|
|
template<typename T , template< typename, int > class Point> |
T | signed_area (const Point< T, 3 > *c, const Point< T, 3 > &normal) |
|
template<int dim> |
cpgrid::Entity< dim > | 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())) |
|
The namespace Dune is the main namespace for all Dune code.
Copyright 2019 Equinor AS.
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/.
◆ EdgeWeightMethod
enum for choosing Methods for weighting graph-edges correspoding to cell interfaces in Zoltan's 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.
|
◆ 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] | 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] | all | Whether 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] | 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] | layer | Number of overlap layers |
◆ area() [1/2]
template<typename T , template< typename, int > class Point>
T Dune::area |
( |
const Point< T, 2 > * |
c | ) |
|
|
inline |
◆ 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.
References cross().
◆ createEntity()
◆ cross()
template<typename T >
FieldVector< T, 3 > Dune::cross |
( |
const FieldVector< T, 3 > & |
a, |
|
|
const FieldVector< T, 3 > & |
b |
|
) |
| |
◆ 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.
Referenced by simplex_volume().
◆ 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 |
|
) |
| |
◆ operator-()
template<typename K , int n>
FieldVector< K, n > Dune::operator- |
( |
const FieldVector< K, n > & |
v | ) |
|
◆ 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 |
◆ referenceElement()
template<int mydim, int cdim>
auto Dune::referenceElement |
( |
const cpgrid::Geometry< mydim, cdim > & |
geo | ) |
-> decltype(referenceElement<double,mydim>(geo.type()))
|
◆ 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.
References cross(), and inner().
◆ simplex_volume()
template<typename T , template< typename, int > class Point, int Dim>
T Dune::simplex_volume |
( |
const Point< T, Dim > * |
a | ) |
|
|
inline |
◆ volume()
template<typename T , template< typename, int > class Point>
T Dune::volume |
( |
const Point< T, 3 > * |
c | ) |
|
|
inline |
|