24#ifndef DUMUX_IO_GRID_MANAGER_SP_HH
25#define DUMUX_IO_GRID_MANAGER_SP_HH
29#include <dune/grid/spgrid.hh>
30#include <dune/grid/spgrid/dgfparser.hh>
33#ifndef DUMUX_IO_GRID_MANAGER_BASE_HH
48template<
class ct,
int dim,
template<
int >
class Ref,
class Comm>
53 using Grid = Dune::SPGrid<ct, dim, Ref, Comm>;
54 using ParentType = GridManagerBase<Grid>;
59 void init(
const std::string& paramGroup =
"")
63 DUNE_THROW(Dune::NotImplemented,
"dune-spgrid does currently not support zero overlap!");
69 ParentType::maybeRefineGrid(paramGroup);
70 ParentType::loadBalance();
76 using GlobalPosition = Dune::FieldVector<ct, dim>;
80 using IntArray = std::array<int, dim>;
81 IntArray cells; cells.fill(1);
85 IntArray spOverlap; spOverlap.fill(overlap);
87 using Domain =
typename Grid::Domain;
88 std::vector< typename Domain::Cube > cubes;
89 cubes.push_back(
typename Domain::Cube( lowerLeft, upperRight ) );
90 Domain domain( cubes,
typename Domain::Topology(
static_cast<unsigned int>(periodic.to_ulong()) ) );
91 ParentType::gridPtr() = std::make_shared<Grid>( domain, cells, spOverlap );
92 ParentType::maybeRefineGrid(paramGroup);
93 ParentType::loadBalance();
97 const auto prefix = paramGroup ==
"" ? paramGroup : paramGroup +
".";
98 DUNE_THROW(ParameterException,
"Please supply a grid file in " << prefix <<
"Grid.File or " << prefix <<
"Grid.UpperRight/Cells.");
Provides a grid manager for all supported grid managers with input file interfaces....
T getParamFromGroup(Args &&... args)
A free function to get a parameter from the parameter tree singleton with a model group.
Definition parameters.hh:438
bool hasParamInGroup(const std::string ¶mGroup, const std::string ¶m)
Check whether a key exists in the parameter tree with a model group prefix.
Definition parameters.hh:454
make the local view function available whenever we use the grid geometry
Definition adapt.hh:29
The grid manager (this is the class used by the user) for all supported grid managers that constructs...
Definition gridmanager_base.hh:312
The grid manager base interface (public) and methods common to most grid manager specializations (pro...
Definition gridmanager_base.hh:65
Grid Grid
Definition gridmanager_base.hh:67
void init(const std::string &modelParamGroup="")
Definition gridmanager_base.hh:73