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.