3 #ifndef DUNE_GRID_YASPGRID_STRUCTUREDYASPGRIDFACTORY_HH 4 #define DUNE_GRID_YASPGRID_STRUCTUREDYASPGRIDFACTORY_HH 25 template<
class ctype,
int dim>
29 static const int dimworld = GridType::dimensionworld;
42 static std::shared_ptr<GridType>
44 const FieldVector<ctype,dimworld>& upperRight,
45 const std::array<unsigned int,dim>& elements)
48 for(
int d = 0; d < dimworld; ++d)
49 if(
abs(lowerLeft[d]) >
abs(upperRight[d])*1e-10)
50 DUNE_THROW(
GridError, className<StructuredGridFactory>()
51 <<
"::createCubeGrid(): You have to use Yaspgrid<dim" 52 ", EquidistantOffsetCoordinates<ctype,dim> > as your" 53 "grid type for non-trivial origin." );
56 std::array<int, dim> elem;
57 std::copy(elements.begin(), elements.end(), elem.begin());
59 return std::shared_ptr<GridType>
60 (
new GridType(upperRight, elem,
61 std::bitset<dim>(), 0));
69 static std::shared_ptr<GridType>
71 const FieldVector<ctype,dimworld>& upperRight,
72 const std::array<unsigned int,dim>& elements)
74 DUNE_THROW(
GridError, className<StructuredGridFactory>()
75 <<
"::createSimplexGrid(): Simplices are not supported " 88 template<
class ctype,
int dim>
91 static const int dimworld = GridType::dimensionworld;
100 static std::shared_ptr<GridType>
102 const FieldVector<ctype,dimworld>& upperRight,
103 const std::array<unsigned int,dim>& elements)
106 std::array<int, dim> elem;
107 std::copy(elements.begin(), elements.end(), elem.begin());
109 return std::shared_ptr<GridType>
110 (
new GridType(lowerLeft, upperRight, elem,
111 std::bitset<dim>(), 0));
119 static std::shared_ptr<GridType>
121 const FieldVector<ctype,dimworld>& upperRight,
122 const std::array<unsigned int,dim>& elements)
124 DUNE_THROW(
GridError, className<StructuredGridFactory>()
125 <<
"::createSimplexGrid(): Simplices are not supported " static std::shared_ptr< GridType > createCubeGrid(const FieldVector< ctype, dimworld > &lowerLeft, const FieldVector< ctype, dimworld > &upperRight, const std::array< unsigned int, dim > &elements)
Create a structured cube grid.
Definition: structuredyaspgridfactory.hh:43
Base class for exceptions in Dune grid modules.
Definition: exceptions.hh:16
static std::shared_ptr< GridType > createSimplexGrid(const FieldVector< ctype, dimworld > &lowerLeft, const FieldVector< ctype, dimworld > &upperRight, const std::array< unsigned int, dim > &elements)
Create a structured simplex grid.
Definition: structuredyaspgridfactory.hh:120
void abs(const DofVectorPointer< int > &dofVector)
Definition: dofvector.hh:326
static std::shared_ptr< GridType > createSimplexGrid(const FieldVector< ctype, dimworld > &lowerLeft, const FieldVector< ctype, dimworld > &upperRight, const std::array< unsigned int, dim > &elements)
Create a structured simplex grid.
Definition: structuredyaspgridfactory.hh:70
A class to construct structured cube and simplex grids using the grid factory.
[ provides Dune::Grid ]
Definition: yaspgrid.hh:56
Container for equidistant coordinates in a YaspGrid.
Definition: coordinates.hh:26
Construct structured cube and simplex grids in unstructured grid managers.
Definition: structuredgridfactory.hh:29
Include standard header files.
Definition: agrid.hh:59
static std::shared_ptr< GridType > createCubeGrid(const FieldVector< ctype, dimworld > &lowerLeft, const FieldVector< ctype, dimworld > &upperRight, const std::array< unsigned int, dim > &elements)
Create a structured cube grid.
Definition: structuredyaspgridfactory.hh:101
Container for equidistant coordinates in a YaspGrid with non-trivial origin.
Definition: coordinates.hh:124