3#ifndef DUNE_GEOGRID_BACKUPRESTORE_HH
4#define DUNE_GEOGRID_BACKUPRESTORE_HH
8#include <dune/common/exceptions.hh>
23 template<
class Gr
id,
bool hasBackupRestoreFacilities = Capabilities::hasBackupRestoreFacilities< Gr
id > ::v >
27 template<
class Gr
id >
38 This &operator= (
const This & );
43 return static_cast< const Grid &
>( *this );
48 return static_cast< Grid &
>( *this );
59 template<
class HostGr
id,
class CoordFunction,
class Allocator >
66 template <
class Output>
67 static void backup (
const Grid &grid,
const Output &filename_or_stream )
70 HostBackupRestoreFacility::backup( grid.
hostGrid(), filename_or_stream );
74 template <
class Input>
78 return restore_impl(filename_or_stream, std::is_default_constructible<CoordFunction>{});
82 template <
class Input>
83 static Grid *restore_impl (
const Input &filename_or_stream, std::true_type )
86 HostGrid *hostGrid = HostBackupRestoreFacility::restore( filename_or_stream );
87 CoordFunction *coordFunction =
new CoordFunction();
88 return new Grid( hostGrid, coordFunction );
91 template <
class Input>
92 static Grid *restore_impl (
const Input &filename_stream, std::false_type )
94 DUNE_THROW(NotImplemented,
95 "Restoring a GeometryGrid with a CoordFunction that is not default-constructible is not implemented.");
Include standard header files.
Definition: agrid.hh:58
facility for writing and reading grids
Definition: common/backuprestore.hh:41
Grid abstract base class.
Definition: common/grid.hh:372
Definition: geometrygrid/backuprestore.hh:25
Definition: geometrygrid/backuprestore.hh:29
const Grid & asImp() const
Definition: geometrygrid/backuprestore.hh:41
BackupRestoreFacilities()
Definition: geometrygrid/backuprestore.hh:33
Grid & asImp()
Definition: geometrygrid/backuprestore.hh:46
BackupRestoreFacility< HostGrid > HostBackupRestoreFacility
Definition: geometrygrid/backuprestore.hh:63
static void backup(const Grid &grid, const Output &filename_or_stream)
Backup the grid to file or stream.
Definition: geometrygrid/backuprestore.hh:67
static Grid * restore(const Input &filename_or_stream)
Restore the grid from file or stream.
Definition: geometrygrid/backuprestore.hh:75
GeometryGrid< HostGrid, CoordFunction, Allocator > Grid
Definition: geometrygrid/backuprestore.hh:62
grid wrapper replacing the geometries
Definition: geometrygrid/grid.hh:84
const HostGrid & hostGrid() const
obtain constant reference to the host grid
Definition: geometrygrid/grid.hh:541