Dune Core Modules (unstable)

Dune::StructuredGridFactory< AlbertaGrid< dim, dimworld > > Class Template Reference

specialization of the generic StructuredGridFactory for AlbertaGrid More...

#include <dune/grid/albertagrid/structuredgridfactory.hh>

Static Public Member Functions

static void createSimplexGrid (GridFactory< GridType > &factory, const FieldVector< ctype, dimworld > &lowerLeft, const FieldVector< ctype, dimworld > &upperRight, const std::array< unsigned int, dim > &elements)
 Create a structured simplex grid for AlbertaGrid. More...
 
static std::unique_ptr< GridTypecreateSimplexGrid (const FieldVector< ctype, dimworld > &lowerLeft, const FieldVector< ctype, dimworld > &upperRight, const std::array< unsigned int, dim > &elements)
 Create a structured simplex grid for AlbertaGrid. More...
 

Detailed Description

template<int dim, int dimworld>
class Dune::StructuredGridFactory< AlbertaGrid< dim, dimworld > >

specialization of the generic StructuredGridFactory for AlbertaGrid

The simplex grid generated by the default StructuredGridFactory is not compatible with the Alberta vertex numbering. This might lead to infinite recursions when refining such grid. This specialization of the StructuredGridFactory solves this issue by

  1. generating a structured cube grid
  2. subdividing each cube into 2 (2d) or 6 (3d) simplices following a compatible numbering scheme for AlbertaGrid.

Member Function Documentation

◆ createSimplexGrid() [1/2]

template<int dim, int dimworld>
static std::unique_ptr<GridType> Dune::StructuredGridFactory< AlbertaGrid< dim, dimworld > >::createSimplexGrid ( const FieldVector< ctype, dimworld > &  lowerLeft,
const FieldVector< ctype, dimworld > &  upperRight,
const std::array< unsigned int, dim > &  elements 
)
inlinestatic

Create a structured simplex grid for AlbertaGrid.

This works in dimensions 1-3. Each cube is split into into dim! simplices by constructing macro triangulation, see insertElement for the local simplex numbering.

Parameters
lowerLeftLower left corner of the grid
upperRightUpper right corner of the grid
elementsNumber of elements in each coordinate direction

References Dune::GridFactory< GridType >::createGrid(), and Dune::StructuredGridFactory< GridType >::createSimplexGrid().

◆ createSimplexGrid() [2/2]

template<int dim, int dimworld>
static void Dune::StructuredGridFactory< AlbertaGrid< dim, dimworld > >::createSimplexGrid ( GridFactory< GridType > &  factory,
const FieldVector< ctype, dimworld > &  lowerLeft,
const FieldVector< ctype, dimworld > &  upperRight,
const std::array< unsigned int, dim > &  elements 
)
inlinestatic

Create a structured simplex grid for AlbertaGrid.

This works in dimensions 1-3. Each cube is split into into dim! simplices by constructing macro triangulation, see insertElement for the local simplex numbering.

Parameters
factoryGrid factory used for creating the grid
lowerLeftLower left corner of the grid
upperRightUpper right corner of the grid
elementsNumber of elements in each coordinate direction

References Dune::GridFactoryInterface< GridType >::comm(), Dune::Communication< Communicator >::rank(), and Dune::GeometryTypes::simplex().


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Mar 27, 23:31, 2024)