#include <dune/grid/common/mcmgmapper.hh>
#include <dune/common/version.hh>
#include <opm/grid/CpGrid.hpp>
#include <array>
#include <map>
#include <memory>
#include <string>
#include <tuple>
#include <unordered_map>
#include <utility>
#include <vector>
 
Go to the source code of this file. 
 |  
| namespace   | Dune |  
|   | The namespace Dune is the main namespace for all Dune code. 
  |  
|   |  
| namespace   | Dune::cpgrid |  
|   |  
| namespace   | Opm |  
|   | Holds the implementation of the CpGrid as a pimple. 
  |  
|   |  
| namespace   | Opm::Lgr |  
|   |  
 
 |  
| void  | Opm::Lgr::refineAndProvideMarkedRefinedRelations (const Dune::CpGrid &grid, std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, int &markedElem_count, std::vector< std::vector< std::array< int, 2 > > > &cornerInMarkedElemWithEquivRefinedCorner, std::map< std::array< int, 2 >, int > &markedElemAndEquivRefinedCorn_to_corner, std::vector< std::vector< std::pair< int, std::vector< int > > > > &faceInMarkedElemAndRefinedFaces, std::map< std::array< int, 2 >, std::array< int, 2 > > &elemLgrAndElemLgrCell_to_refinedLevelAdRefinedCell, std::map< std::array< int, 2 >, std::array< int, 2 > > &refinedLevelAndRefinedCell_to_elemLgrAndElemLgrCell, std::vector< int > &refined_cell_count_vec, const std::vector< int > &assignRefinedLevel, std::vector< std::vector< std::tuple< int, std::vector< int > > > > &preAdapt_parent_to_children_cells_vec, std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrCell_to_adaptedCell, std::unordered_map< int, std::array< int, 2 > > &adaptedCell_to_elemLgrAndElemLgrCell, int &cell_count, std::vector< std::vector< int > > &preAdapt_level_to_leaf_cells_vec, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   | ------------— Auxiliary methods to support refinement ------------—  More...
  |  
|   |  
| std::tuple< std::vector< std::vector< std::array< int, 2 > > >, std::vector< std::vector< int > >, std::vector< std::array< int, 2 > >, std::vector< int > >  | Opm::Lgr::defineChildToParentAndIdxInParentCell (const Dune::cpgrid::CpGridData ¤t_data, int preAdaptMaxLevel, const std::map< std::array< int, 2 >, std::array< int, 2 > > &refinedLevelAndRefinedCell_to_elemLgrAndElemLgrCell, const std::vector< int > &refined_cell_count_vec, const std::unordered_map< int, std::array< int, 2 > > &adaptedCell_to_elemLgrAndElemLgrCell, const int &cell_count) |  
|   | Establish child–parent relations for refined cells:  More...
  |  
|   |  
| std::pair< std::vector< std::vector< int > >, std::vector< std::array< int, 2 > > >  | Opm::Lgr::defineLevelToLeafAndLeafToLevelCells (const Dune::cpgrid::CpGridData ¤t_data, int preAdaptMaxLevel, const std::map< std::array< int, 2 >, std::array< int, 2 > > &elemLgrAndElemLgrCell_to_refinedLevelAndRefinedCell, const std::map< std::array< int, 2 >, std::array< int, 2 > > &refinedLevelAndRefinedCell_to_elemLgrAndElemLgrCell, const std::vector< int > &refined_cell_count_vec, const std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrCell_to_adaptedCell, const std::unordered_map< int, std::array< int, 2 > > &adaptedCell_to_elemLgrAndElemLgrCell, const int &cell_count) |  
|   | Define index mappings between refined level grids and the leaf (adapted) grid:  More...
  |  
|   |  
| void  | Opm::Lgr::identifyRefinedCornersPerLevel (const Dune::cpgrid::CpGridData ¤t_data, int preAdaptMaxLevel, std::map< std::array< int, 2 >, std::array< int, 2 > > &elemLgrAndElemLgrCorner_to_refinedLevelAndRefinedCorner, std::map< std::array< int, 2 >, std::array< int, 2 > > &refinedLevelAndRefinedCorner_to_elemLgrAndElemLgrCorner, std::vector< int > &refined_corner_count_vec, std::map< std::array< int, 2 >, std::array< int, 2 > > &vanishedRefinedCorner_to_itsLastAppearance, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const std::vector< int > &assignRefinedLevel, const std::vector< std::vector< std::array< int, 2 > > > &cornerInMarkedElemWithEquivRefinedCorner, const std::vector< std::vector< std::pair< int, std::vector< int > > > > &faceInMarkedElemAndRefinedFaces, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   | Define refined corner relations:  More...
  |  
|   |  
| bool  | Opm::Lgr::isRefinedCornerInInteriorLgr (const std::array< int, 3 > &cells_per_dim, int cornerIdxInLgr) |  
|   | Check if a refined corner lies in the interior of a single-cell refinement.  More...
  |  
|   |  
| std::array< int, 3 >  | Opm::Lgr::getRefinedCornerIJK (const std::array< int, 3 > &cells_per_dim, int cornerIdxInLgr) |  
|   | Compute the {i,j,k} index of a refined corner from its linear index in a single-cell refinement.  More...
  |  
|   |  
| bool  | Opm::Lgr::newRefinedCornerLiesOnEdge (const std::array< int, 3 > &cells_per_dim, int cornerIdxInLgr) |  
|   | Check if a refined corner lies on a parent-cell edge. Specifically, on the boundary of the single-cell refinement, but not coinciding with a pre-adapt corner.  More...
  |  
|   |  
| std::array< int, 2 >  | Opm::Lgr::getParentFacesAssocWithNewRefinedCornLyingOnEdge (const Dune::cpgrid::CpGridData ¤t_data, const std::array< int, 3 > &cells_per_dim, int cornerIdxInLgr, int elemLgr) |  
|   | Get the parent faces that contain the edge on which a new refined corner lies.  More...
  |  
|   |  
| bool  | Opm::Lgr::isRefinedNewBornCornerOnLgrBoundary (const std::array< int, 3 > &cells_per_dim, int cornerIdxInLgr) |  
|   | Check if a refined corner lies on the boundary of the single-cell refinement and is not a pre-adapt (original) corner.  More...
  |  
|   |  
| int  | Opm::Lgr::getParentFaceWhereNewRefinedCornerLiesOn (const Dune::cpgrid::CpGridData ¤t_data, const std::array< int, 3 > &cells_per_dim, int cornerIdxInLgr, int elemLgr) |  
|   |  
| int  | Opm::Lgr::replaceLgr1CornerIdxByLgr2CornerIdx (const std::array< int, 3 > &cells_per_dim_lgr1, int cornerIdxLgr1, const std::array< int, 3 > &cells_per_dim_lgr2) |  
|   | Map a refined corner from one single-cell refinement to a neighboring refinement.  More...
  |  
|   |  
| int  | Opm::Lgr::replaceLgr1CornerIdxByLgr2CornerIdx (const Dune::cpgrid::CpGridData ¤t_data, const std::array< int, 3 > &cells_per_dim_lgr1, int cornerIdxLgr1, int elemLgr1, int parentFaceLastAppearanceIdx, const std::array< int, 3 > &cells_per_dim_lgr2) |  
|   | Map a new refined corner on an edge from one single-cell refinement to a neighboring refinement.  More...
  |  
|   |  
| void  | Opm::Lgr::identifyLeafGridCorners (const Dune::cpgrid::CpGridData ¤t_data, int preAdaptMaxLevel, std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrCorner_to_adaptedCorner, std::unordered_map< int, std::array< int, 2 > > &adaptedCorner_to_elemLgrAndElemLgrCorner, int &corner_count, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const std::vector< int > &assignRefinedLevel, const std::vector< std::vector< std::array< int, 2 > > > &cornerInMarkedElemWithEquivRefinedCorner, std::map< std::array< int, 2 >, std::array< int, 2 > > &vanishedRefinedCorner_to_itsLastAppearance, const std::vector< std::vector< std::pair< int, std::vector< int > > > > &faceInMarkedElemAndRefinedFaces, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   | Identify corners on the leaf (adapted) grid and establish corner mappings.  More...
  |  
|   |  
| void  | Opm::Lgr::markVanishedCorner (const std::array< int, 2 > &vanished, const std::array< int, 2 > &lastAppearance, std::map< std::array< int, 2 >, std::array< int, 2 > > &vanishedRefinedCorner_to_itsLastAppearance) |  
|   |  
| void  | Opm::Lgr::processInteriorCorners (int elemIdx, int shiftedLevel, const std::shared_ptr< Dune::cpgrid::CpGridData > &lgr, int &corner_count, std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrCorner_to_adaptedCorner, std::unordered_map< int, std::array< int, 2 > > &adaptedCorner_to_elemLgrAndElemLgrCorner, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   |  
| void  | Opm::Lgr::processEdgeCorners (int elemIdx, int shiftedLevel, const std::shared_ptr< Dune::cpgrid::CpGridData > &lgr, int &corner_count, std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrCorner_to_adaptedCorner, std::unordered_map< int, std::array< int, 2 > > &adaptedCorner_to_elemLgrAndElemLgrCorner, std::map< std::array< int, 2 >, std::array< int, 2 > > &vanishedRefinedCorner_to_itsLastAppearance, const Dune::cpgrid::CpGridData ¤t_data, int preAdaptMaxLevel, const std::vector< int > &assignRefinedLevel, const std::vector< std::vector< std::pair< int, std::vector< int > > > > &faceInMarkedElemAndRefinedFaces, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   |  
| void  | Opm::Lgr::processBoundaryCorners (int elemIdx, int shiftedLevel, const std::shared_ptr< Dune::cpgrid::CpGridData > &lgr, int &corner_count, std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrCorner_to_adaptedCorner, std::unordered_map< int, std::array< int, 2 > > &adaptedCorner_to_elemLgrAndElemLgrCorner, std::map< std::array< int, 2 >, std::array< int, 2 > > &vanishedRefinedCorner_to_itsLastAppearance, const Dune::cpgrid::CpGridData ¤t_data, int preAdaptMaxLevel, const std::vector< int > &assignRefinedLevel, const std::vector< std::vector< std::pair< int, std::vector< int > > > > &faceInMarkedElemAndRefinedFaces, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   |  
| void  | Opm::Lgr::insertBidirectional (std::map< std::array< int, 2 >, std::array< int, 2 > > &a_to_b, std::map< std::array< int, 2 >, std::array< int, 2 > > &b_to_a, const std::array< int, 2 > &keyA, const std::array< int, 2 > &keyB, int &counter, bool useFullKeyB=false) |  
|   |  
| void  | Opm::Lgr::identifyRefinedFacesPerLevel (const Dune::cpgrid::CpGridData ¤t_data, int preAdaptMaxLevel, std::map< std::array< int, 2 >, std::array< int, 2 > > &elemLgrAndElemLgrFace_to_refinedLevelAndRefinedFace, std::map< std::array< int, 2 >, std::array< int, 2 > > &refinedLevelAndRefinedFace_to_elemLgrAndElemLgrFace, std::vector< int > &refined_face_count_vec, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const std::vector< int > &assignRefinedLevel, const std::vector< std::vector< std::pair< int, std::vector< int > > > > &faceInMarkedElemAndRefinedFaces, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   | Define mappings between single-cell-refinement faces and refined level faces.  More...
  |  
|   |  
| void  | Opm::Lgr::identifyLeafGridFaces (const Dune::cpgrid::CpGridData ¤t_data, int preAdaptMaxLevel, std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrFace_to_adaptedFace, std::unordered_map< int, std::array< int, 2 > > &adaptedFace_to_elemLgrAndElemLgrFace, int &face_count, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const std::vector< int > &assignRefinedLevel, const std::vector< std::vector< std::pair< int, std::vector< int > > > > &faceInMarkedElemAndRefinedFaces, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   | Identify faces on the leaf (adapted) grid and establish face mappings.  More...
  |  
|   |  
| std::array< int, 3 >  | Opm::Lgr::getRefinedFaceIJK (const std::array< int, 3 > &cells_per_dim, int faceIdxInLgr, const std::shared_ptr< Dune::cpgrid::CpGridData > &elemLgr_ptr) |  
|   | Compute the {i,j,k} index of a refined face from its linear index in a single-cell refinement.  More...
  |  
|   |  
| bool  | Opm::Lgr::isRefinedFaceInInteriorLgr (const std::array< int, 3 > &cells_per_dim, int faceIdxInLgr, const std::shared_ptr< Dune::cpgrid::CpGridData > &elemLgr_ptr) |  
|   | Check if a refined face lies in the interior of a single-cell refinement.  More...
  |  
|   |  
| bool  | Opm::Lgr::isRefinedFaceOnLgrBoundary (const std::array< int, 3 > &cells_per_dim, int faceIdxInLgr, const std::shared_ptr< Dune::cpgrid::CpGridData > &elemLgr_ptr) |  
|   | Check if a refined face lies on the boundary of a single-cell refinement.  More...
  |  
|   |  
| int  | Opm::Lgr::getParentFaceWhereNewRefinedFaceLiesOn (const Dune::cpgrid::CpGridData ¤t_data, const std::array< int, 3 > &cells_per_dim, int faceIdxInLgr, const std::shared_ptr< Dune::cpgrid::CpGridData > &elemLgr_ptr, int elemLgr) |  
|   | Get the parent face containing a new refined face.  More...
  |  
|   |  
| void  | Opm::Lgr::populateRefinedCorners (std::vector< Dune::cpgrid::EntityVariableBase< Dune::cpgrid::Geometry< 0, 3 > > > &refined_corners_vec, const std::vector< int > &refined_corner_count_vec, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const int &preAdaptMaxLevel, const std::map< std::array< int, 2 >, std::array< int, 2 > > &refinedLevelAndRefinedCorner_to_elemLgrAndElemLgrCorner) |  
|   | Define the corners (geometry) for each refined level grid.  More...
  |  
|   |  
| void  | Opm::Lgr::populateRefinedFaces (std::vector< Dune::cpgrid::EntityVariableBase< Dune::cpgrid::Geometry< 2, 3 > > > &refined_faces_vec, std::vector< Dune::cpgrid::EntityVariableBase< enum face_tag > > &mutable_refined_face_tags_vec, std::vector< Dune::cpgrid::EntityVariableBase< Dune::FieldVector< double, 3 > > > &mutable_refine_face_normals_vec, std::vector< Opm::SparseTable< int > > &refined_face_to_point_vec, const std::vector< int > &refined_face_count_vec, const std::map< std::array< int, 2 >, std::array< int, 2 > > &refinedLevelAndRefinedFace_to_elemLgrAndElemLgrFace, const std::map< std::array< int, 2 >, std::array< int, 2 > > &elemLgrAndElemLgrCorner_to_refinedLevelAndRefinedCorner, const std::map< std::array< int, 2 >, std::array< int, 2 > > &vanishedRefinedCorner_to_itsLastAppearance, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const int &preAdaptMaxLevel, const std::vector< std::vector< std::array< int, 2 > > > &cornerInMarkedElemWithEquivRefinedCorner, const std::map< std::array< int, 2 >, int > &markedElemAndEquivRefinedCorn_to_corner) |  
|   | Define the faces, face tags, face normarls, and face_to_point_, for each refined level grid.  More...
  |  
|   |  
| void  | Opm::Lgr::populateRefinedCells (const Dune::cpgrid::CpGridData ¤t_data, std::vector< Dune::cpgrid::EntityVariableBase< Dune::cpgrid::Geometry< 3, 3 > > > &refined_cells_vec, std::vector< std::vector< std::array< int, 8 > > > &refined_cell_to_point_vec, std::vector< std::vector< int > > &refined_global_cell_vec, const std::vector< int > &refined_cell_count_vec, std::vector< Dune::cpgrid::OrientedEntityTable< 0, 1 > > &refined_cell_to_face_vec, std::vector< Dune::cpgrid::OrientedEntityTable< 1, 0 > > &refined_face_to_cell_vec, const std::map< std::array< int, 2 >, std::array< int, 2 > > &refinedLevelAndRefinedCell_to_elemLgrAndElemLgrCell, const std::map< std::array< int, 2 >, std::array< int, 2 > > &elemLgrAndElemLgrFace_to_refinedLevelAndRefinedFace, const std::vector< std::vector< std::pair< int, std::vector< int > > > > &faceInMarkedElemAndRefinedFaces, const std::vector< Dune::cpgrid::DefaultGeometryPolicy > &refined_geometries_vec, const std::map< std::array< int, 2 >, std::array< int, 2 > > &elemLgrAndElemLgrCorner_to_refinedLevelAndRefinedCorner, const std::map< std::array< int, 2 >, std::array< int, 2 > > &vanishedRefinedCorner_to_itsLastAppearance, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const std::vector< int > &assignRefinedLevel, const int &preAdaptMaxLevel, const std::map< std::array< int, 2 >, int > &markedElemAndEquivRefinedCorn_to_corner, const std::vector< std::vector< std::array< int, 2 > > > &cornerInMarkedElemWithEquivRefinedCorner, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   | Define the cells, cell_to_point_, global_cell_, cell_to_face_, face_to_cell_, for each refined level grid.  More...
  |  
|   |  
| int  | Opm::Lgr::replaceLgr1FaceIdxByLgr2FaceIdx (const std::array< int, 3 > &cells_per_dim_lgr1, int faceIdxInLgr1, const std::shared_ptr< Dune::cpgrid::CpGridData > &elemLgr1_ptr, const std::array< int, 3 > &cells_per_dim_lgr2) |  
|   | Map a refined boundary face from one single-cell refinement to a neighboring refinement.  More...
  |  
|   |  
| void  | Opm::Lgr::populateLeafGridCorners (const Dune::cpgrid::CpGridData ¤t_data, Dune::cpgrid::EntityVariableBase< Dune::cpgrid::Geometry< 0, 3 > > &adapted_corners, const int &corners_count, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const std::unordered_map< int, std::array< int, 2 > > &adaptedCorner_to_elemLgrAndElemLgrCorner) |  
|   | Define the corners (gemotry) for the leaf grid view (or adapted grid).  More...
  |  
|   |  
| void  | Opm::Lgr::populateLeafGridFaces (const Dune::cpgrid::CpGridData ¤t_data, Dune::cpgrid::EntityVariableBase< Dune::cpgrid::Geometry< 2, 3 > > &adapted_faces, Dune::cpgrid::EntityVariableBase< enum face_tag > &mutable_face_tags, Dune::cpgrid::EntityVariableBase< Dune::FieldVector< double, 3 > > &mutable_face_normals, Opm::SparseTable< int > &adapted_face_to_point, const int &face_count, const std::unordered_map< int, std::array< int, 2 > > &adaptedFace_to_elemLgrAndElemLgrFace, const std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrCorner_to_adaptedCorner, const std::map< std::array< int, 2 >, std::array< int, 2 > > &vanishedRefinedCorner_to_itsLastAppearance, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const std::vector< int > &assignRefinedLevel, const std::map< std::array< int, 2 >, int > &markedElemAndEquivRefinedCorn_to_corner, const std::vector< std::vector< std::array< int, 2 > > > &cornerInMarkedElemWithEquivRefinedCorner, const std::vector< std::array< int, 3 > > &cells_per_dim_vec, const int &preAdaptMaxLevel) |  
|   | Define the faces, face tags, face normarls, and face_to_point_, for the leaf grid view.  More...
  |  
|   |  
| void  | Opm::Lgr::populateLeafGridCells (const Dune::cpgrid::CpGridData ¤t_data, Dune::cpgrid::EntityVariableBase< Dune::cpgrid::Geometry< 3, 3 > > &adapted_cells, std::vector< std::array< int, 8 > > &adapted_cell_to_point, const int &cell_count, Dune::cpgrid::OrientedEntityTable< 0, 1 > &adapted_cell_to_face, Dune::cpgrid::OrientedEntityTable< 1, 0 > &adapted_face_to_cell, const std::unordered_map< int, std::array< int, 2 > > &adaptedCell_to_elemLgrAndElemLgrCell, const std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrFace_to_adaptedFace, const std::vector< std::vector< std::pair< int, std::vector< int > > > > &faceInMarkedElemAndRefinedFaces, const Dune::cpgrid::DefaultGeometryPolicy &adapted_geometries, const std::map< std::array< int, 2 >, int > &elemLgrAndElemLgrCorner_to_adaptedCorner, const std::map< std::array< int, 2 >, std::array< int, 2 > > &vanishedRefinedCorner_to_itsLastAppearance, const std::vector< std::shared_ptr< Dune::cpgrid::CpGridData > > &markedElem_to_itsLgr, const std::vector< int > &assignRefinedLevel, const std::map< std::array< int, 2 >, int > &markedElemAndEquivRefinedCorn_to_corner, const std::vector< std::vector< std::array< int, 2 > > > &cornerInMarkedElemWithEquivRefinedCorner, const std::vector< std::array< int, 3 > > &cells_per_dim_vec, const int &preAdaptMaxLevel) |  
|   | Define the cells, cell_to_point_, cell_to_face_, face_to_cell_, for the leaf grid view (or adapted grid).  More...
  |  
|   |  
| template<class T >  |  
| void  | Opm::Lgr::computeOnLgrParents (const Dune::CpGrid &grid, const std::vector< std::array< int, 3 > > &startIJK_vec, const std::vector< std::array< int, 3 > > &endIJK_vec, T func) |  
|   | Auxilliary function to compute one or more properties on selected block of parent cells.  More...
  |  
|   |  
| void  | Opm::Lgr::detectActiveLgrs (const Dune::CpGrid &grid, const std::vector< std::array< int, 3 > > &startIJK_vec, const std::vector< std::array< int, 3 > > &endIJK_vec, std::vector< int > &lgr_with_at_least_one_active_cell) |  
|   | Detect active local refinement grids (LGRs) on each process.  More...
  |  
|   |  
| void  | Opm::Lgr::predictMinCellAndPointGlobalIdPerProcess (const Dune::CpGrid &grid, const std::vector< int > &assignRefinedLevel, const std::vector< std::array< int, 3 > > &cells_per_dim_vec, const std::vector< int > &lgr_with_at_least_one_active_cell, int &min_globalId_cell_in_proc, int &min_globalId_point_in_proc) |  
|   | Predict minimum cell and point global ids per process.  More...
  |  
|   |  
| void  | Opm::Lgr::assignCellIdsAndCandidatePointIds (const Dune::CpGrid &grid, std::vector< std::vector< int > > &localToGlobal_cells_per_level, std::vector< std::vector< int > > &localToGlobal_points_per_level, int min_globalId_cell_in_proc, int min_globalId_point_in_proc, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   | Assign cell global ids of new born cell from refined level grids. Assign 'candidate' point global ids for points in refined level grids.  More...
  |  
|   |  
| void  | Opm::Lgr::selectWinnerPointIds (const Dune::CpGrid &grid, std::vector< std::vector< int > > &localToGlobal_points_per_level, const std::vector< std::tuple< int, std::vector< int > > > &parent_to_children, const std::vector< std::array< int, 3 > > &cells_per_dim_vec) |  
|   | Select and re-write point global ids.  More...
  |  
|   |  
| void  | Opm::Lgr::getFirstChildGlobalIds (const Dune::CpGrid &grid, std::vector< int > &parentToFirstChildGlobalIds) |  
|   | Retrieves the global ids of the first child for each parent cell in the grid.  More...
  |  
|   |  
| std::array< int, 3 >  | Opm::Lgr::getIJK (int idx_in_parent_cell, const std::array< int, 3 > &cells_per_dim) |  
|   | Extract Cartesian index triplet (i,j,k) given an index between 0 and NXxNYxNZ -1 where NX, NY, and NZ is the total amoung of cells in each direction x-,y-,and z- respectively.  More...
  |  
|   |  
| void  | Opm::Lgr::validStartEndIJKs (const std::vector< std::array< int, 3 > > &startIJK_vec, const std::vector< std::array< int, 3 > > &endIJK_vec) |  
|   | Check startIJK and endIJK of each patch of cells to be refined are valid, i.e. startIJK and endIJK vectors have the same size and, startIJK < endIJK coordenate by coordenate.  More...
  |  
|   |  
| std::array< std::vector< int >, 6 >  | Opm::Lgr::getBoundaryPatchFaces (const std::array< int, 3 > &startIJK, const std::array< int, 3 > &endIJK, const std::array< int, 3 > &grid_dim) |  
|   | Compute patch boundary face indices (Cartesian grid required).  More...
  |  
|   |  
| std::array< int, 3 >  | Opm::Lgr::getPatchDim (const std::array< int, 3 > &startIJK, const std::array< int, 3 > &endIJK) |  
|   | Compute amount of cells in each direction of a patch of cells. (Cartesian grid required).  More...
  |  
|   |  
| bool  | Opm::Lgr::patchesShareFace (const std::vector< std::array< int, 3 > > &startIJK_vec, const std::vector< std::array< int, 3 > > &endIJK_vec, const std::array< int, 3 > &grid_dim) |  
|   | Determine if a finite amount of patches (of cells) share a face.  More...
  |  
|   |  
| int  | Opm::Lgr::sharedFaceTag (const std::vector< std::array< int, 3 > > &startIJK_2Patches, const std::vector< std::array< int, 3 > > &endIJK_2Patches, const std::array< int, 3 > &grid_dim) |  
|   |  
| std::tuple< std::vector< std::array< int, 3 > >, std::vector< std::array< int, 3 > >, std::vector< std::array< int, 3 > >, std::vector< std::string >, std::vector< std::string > >  | Opm::Lgr::excludeFakeSubdivisions (const std::vector< std::array< int, 3 > > &cells_per_dim_vec, const std::vector< std::array< int, 3 > > &startIJK_vec, const std::vector< std::array< int, 3 > > &endIJK_vec, const std::vector< std::string > &lgr_name_vec, const std::vector< std::string > &lgr_parent_grid_name_vec) |  
|   | Filter out LGR entries that do not result in any actual refinement.  More...
  |  
|   |  
| bool  | Opm::Lgr::compatibleSubdivisions (const std::vector< std::array< int, 3 > > &cells_per_dim_vec, const std::vector< std::array< int, 3 > > &startIJK_vec, const std::vector< std::array< int, 3 > > &endIJK_vec, const std::array< int, 3 > &logicalCartesianSize) |  
|   | Check compatibility of number of subdivisions of neighboring LGRs.  More...
  |  
|   |  
| void  | Opm::Lgr::containsEightDifferentCorners (const std::array< int, 8 > &cell_to_point) |  
|   |  
| std::vector< int >  | Opm::Lgr::mapLevelIndicesToCartesianOutputOrder (const Dune::CpGrid &grid, const Opm::LevelCartesianIndexMapper< Dune::CpGrid > &levelCartMapp, int level) |  
|   | Builds a mapping from level element indices to the Cartesian ordering required by output files.  More...
  |  
|   |  
| template<typename Container >  |  
| Container  | Opm::Lgr::reorderForOutput (const Container &simulatorContainer, const std::vector< int > &toOutput) |  
|   | Reorder data from a simulation container into the order assumed by output for refined level grids.  More...
  |  
|   |  
 
 
  
 
    
     |