15#ifndef DUNE_AMIRAMESH_WRITER_HH 
   16#define DUNE_AMIRAMESH_WRITER_HH 
   22#include <amiramesh/AmiraMesh.h> 
   31  template<
class Gr
idView>
 
   34    enum {dim = GridView::dimension};
 
   46    void addGrid(
const GridView& gridView, 
bool splitAll=
false);
 
   57    template <
class Gr
idType2>
 
   58    void addLevelGrid(
const GridType2& grid, 
int level, 
bool splitAll=
false);
 
   68    template <
class Gr
idType2>
 
   77    template <
class DataContainer>
 
   78    void addCellData(
const DataContainer& data, 
const GridView& gridView, 
bool GridSplitUp=
false);
 
   86    template <
class DataContainer>
 
   87    void addVertexData(
const DataContainer& data, 
const GridView& gridView, 
bool GridSplitUp=
false);
 
   93    void write(
const std::string& filename, 
bool ascii=
false) 
const;
 
   97    template <
class DataContainer>
 
   99                        const std::array<unsigned int, dim>& n,
 
  100                        const DataContainer& data);
 
  114                                 const std::string& filename);
 
  119    AmiraMesh amiramesh_;
 
  127  template<
class Gr
idType>
 
  139      this->
addGrid(grid.levelGridView(level));
 
  149                          const std::string& filename,
 
  152      amiramesh.
write(filename);
 
  163    template <
class VectorType>
 
  166                                 const std::string& filename,
 
  168                                 bool GridSplitUp=
false) {
 
  170      if (f.size()==grid.size(level,GridType::dimension))
 
  171        amiramesh.
addVertexData(f, grid.levelGridView(level),GridSplitUp);
 
  173        amiramesh.
addCellData(f, grid.levelGridView(level),GridSplitUp);
 
  174      amiramesh.
write(filename);
 
  183  template<
class Gr
idType>
 
  204                          const std::string& filename) {
 
  206      amiramesh.
write(filename);
 
  215    template <
class VectorType>
 
  218                                 const std::string& filename,
 
  219                                 bool GridSplitUp = 
false) {
 
  221      if ((
int) f.size() == grid.size(GridType::dimension))
 
  224        amiramesh.
addCellData(f, grid.leafGridView(),GridSplitUp);
 
  226      amiramesh.
write(filename);
 
  235#include "io/dune/amirameshwriter.cc" 
Provides file writing facilities in the AmiraMesh format.
void addLeafGrid(const GridType2 &grid, bool splitAll=false)
Add leaf grid.
void write(const std::string &filename, bool ascii=false) const
Write AmiraMesh object to disk.
static void writeSurfaceGrid(const GridView &gridView, const std::string &filename)
Write a 2d grid in a 3d world.
void addVertexData(const DataContainer &data, const GridView &gridView, bool GridSplitUp=false)
Add vertex data.
void addGrid(const GridView &gridView, bool splitAll=false)
Add a grid view to the file.
void addLevelGrid(const GridType2 &grid, int level, bool splitAll=false)
Add level grid.
void addUniformData(const GridView &gridView, const std::array< unsigned int, dim > &n, const DataContainer &data)
Write data on a uniform grid into an AmiraMesh file.
void addCellData(const DataContainer &data, const GridView &gridView, bool GridSplitUp=false)
Add cell data.
Provides file writing facilities in the AmiraMesh format for leaf grids.
static void writeBlockVector(const GridType &grid, const VectorType &f, const std::string &filename, bool GridSplitUp=false)
Writes an ISTL block vector in AmiraMesh format.
LeafAmiraMeshWriter()
Default constructor.
static void writeGrid(const GridType &grid, const std::string &filename)
Write a grid in AmiraMesh format.
LeafAmiraMeshWriter(const GridType &grid)
Constructor which initializes the AmiraMesh object with a given leaf grid.
Provides file writing facilities in the AmiraMesh format for level grids.
static void writeBlockVector(const GridType &grid, const VectorType &f, const std::string &filename, int level, bool GridSplitUp=false)
Writes an ISTL block vector in AmiraMesh format.
LevelAmiraMeshWriter(const GridType &grid, int level)
Constructor which initializes the AmiraMesh object with a given level grid.
static void writeGrid(const GridType &grid, const std::string &filename, int level)
Write a grid in AmiraMesh format.
LevelAmiraMeshWriter()
Default constructor.