ViennaGrid - The Vienna Grid Library  2.1.0
Namespaces | Data Structures | Functions
viennagrid::io Namespace Reference

A namespace with all the input/output functionality, in particular file readers and writers. More...

Namespaces

namespace  detail
 

Namespace for implementation details. Not intended to be used directly by a library user.


Data Structures

class  bad_file_format_exception
 Provides an exception for the case a parser problem occurs. More...
class  bad_serialization_state_exception
 Provides an exception for the bad serialization state. More...
struct  bnd_helper
class  bnd_reader
 Reader for .bnd files. More...
class  cannot_open_file_exception
 Provides an exception for the case a file cannot be opened. More...
struct  char_to_lower
 Functor for conversion to lowercase (avoids the tolower() function as this can be a bit messy due to locales) More...
struct  DXHelper
 A helper class returning dimension-dependent attribute strings. More...
struct  DXHelper< 1 >
struct  DXHelper< 2 >
struct  DXHelper< 3 >
struct  mesh_serializer
 Mesh wrapper which models the Boost serialization concept. More...
class  mphtxt_writer
 Writer for Comsol .mphtxt files. More...
struct  neper_tess_reader
 Reader for Neper .tess files. More...
struct  netgen_reader
 Reader for Netgen files obtained from the 'Export mesh...' menu item. Tested with Netgen version 4.9.12. More...
class  opendx_writer
 The OpenDX writer object. Does not support segments - always the full mesh is written. More...
struct  PointWriter
 Helper class for writing points to file. Aids as a generic layer for point types that don't have operator<< overloaded in a suitable way. More...
struct  PointWriter< 1 >
struct  PointWriter< 2 >
struct  PointWriter< 3 >
struct  print
struct  strChecker
 Checks for a string being a number. More...
struct  tetgen_poly_reader
 Reader for Tetgen .poly files. More...
struct  triangle_information
struct  ValueTypeInformation< double >
struct  ValueTypeInformation< std::vector< double > >
class  vmesh_writer
 Main VMesh writer class. Writes a mesh or a segment to a file. More...
class  vtk_reader
 A VTK reader class that allows to read meshes from XML-based VTK files as defined in http://www.vtk.org/pdf/file-formats.pdf. More...
class  vtk_writer
 Main VTK writer class. Writes a mesh or a segment to a file. More...
class  xml_tag
 Helper class that parses a XML tag. More...

Functions

template<typename MeshT , typename AccessorT >
opendx_writer< MeshT > & add_scalar_data_on_cells (opendx_writer< MeshT > &writer, AccessorT const accessor, std::string const &quantity_name)
 Registers scalar-valued data on cells at the OpenDX writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_writer< MeshT,
SegmentationT > & 
add_scalar_data_on_cells (vtk_writer< MeshT, SegmentationT > &writer, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers scalar-valued data on cells at the VTK writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_writer< MeshT,
SegmentationT > & 
add_scalar_data_on_cells (vtk_writer< MeshT, SegmentationT > &writer, segment_handle< SegmentationT > const &segment, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers scalar-valued data on cells for a given segment at the VTK writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_reader< MeshT,
SegmentationT > & 
add_scalar_data_on_cells (vtk_reader< MeshT, SegmentationT > &reader, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers scalar-valued data on cells at the VTK reader.
template<typename MeshT , typename AccessorT >
opendx_writer< MeshT > & add_scalar_data_on_vertices (opendx_writer< MeshT > &writer, AccessorT const accessor, std::string const &quantity_name)
 Registers scalar-valued data on vertices at the OpenDX writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_writer< MeshT,
SegmentationT > & 
add_scalar_data_on_vertices (vtk_writer< MeshT, SegmentationT > &writer, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers scalar-valued data on vertices at the VTK writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_writer< MeshT,
SegmentationT > & 
add_scalar_data_on_vertices (vtk_writer< MeshT, SegmentationT > &writer, segment_handle< SegmentationT > const &segment, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers scalar-valued data on vertices for a given segment at the VTK writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_reader< MeshT,
SegmentationT > & 
add_scalar_data_on_vertices (vtk_reader< MeshT, SegmentationT > &reader, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers scalar-valued data on vertices at the VTK reader.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_writer< MeshT,
SegmentationT > & 
add_vector_data_on_cells (vtk_writer< MeshT, SegmentationT > &writer, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers vector-valued data on cells at the VTK writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_writer< MeshT,
SegmentationT > & 
add_vector_data_on_cells (vtk_writer< MeshT, SegmentationT > &writer, segment_handle< SegmentationT > const &segment, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers vector-valued data on cells for a given segment at the VTK writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_reader< MeshT,
SegmentationT > & 
add_vector_data_on_cells (vtk_reader< MeshT, SegmentationT > &reader, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers vector-valued data on cells at the VTK reader.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_writer< MeshT,
SegmentationT > & 
add_vector_data_on_vertices (vtk_writer< MeshT, SegmentationT > &writer, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers vector-valued data on vertices at the VTK writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_writer< MeshT,
SegmentationT > & 
add_vector_data_on_vertices (vtk_writer< MeshT, SegmentationT > &writer, segment_handle< SegmentationT > const &segment, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers vector-valued data on vertices for a given segment at the VTK writer. At most one data set is allowed.
template<typename MeshT , typename SegmentationT , typename AccessorOrFieldT >
vtk_reader< MeshT,
SegmentationT > & 
add_vector_data_on_vertices (vtk_reader< MeshT, SegmentationT > &reader, AccessorOrFieldT const accessor_or_field, std::string const &quantity_name)
 Registers vector-valued data on vertices at the VTK reader.
template<typename FloatingPointType >
FloatingPointType DXfixer (FloatingPointType value)
 Fix for a OpenDX bug: if floating-values occur, no integers (i.e. only zeros after decimal point) are allowed.
template<typename MeshType , typename SegmentationType >
int export_vtk (MeshType const &mesh_obj, SegmentationType const &segmentation, std::string const &filename)
 Convenience function that exports a mesh to file directly. Does not export quantities.
template<typename MeshType >
int export_vtk (MeshType const &mesh_obj, std::string const &filename)
 Convenience function that exports a mesh to file directly. Does not export quantities.
template<typename VTKReaderT >
std::vector< std::pair
< std::size_t, std::string >
> const & 
get_scalar_data_on_cells (VTKReaderT const &reader)
 Returns the names of all scalar-valued data read for cells.
template<typename VTKReaderT >
std::vector< std::pair
< std::size_t, std::string >
> const & 
get_scalar_data_on_vertices (VTKReaderT const &reader)
 Returns the names of all scalar-valued data read for vertices.
template<typename stream_type >
bool get_valid_line (stream_type &stream, std::string &line, char comment_line= '#')
template<typename VTKReaderT >
std::vector< std::pair
< std::size_t, std::string >
> const & 
get_vector_data_on_cells (VTKReaderT const &reader)
 Returns the names of all vector-valued data read for cells.
template<typename VTKReaderT >
std::vector< std::pair
< std::size_t, std::string >
> const & 
get_vector_data_on_vertices (VTKReaderT const &reader)
 Returns the names of all vector-valued data read for vertices.
template<typename MeshType , typename SegmentationType >
int import_vtk (MeshType &mesh_obj, SegmentationType &segmentation, std::string const &filename)
 Convenience function for importing a mesh using a single line of code.
template<typename MeshType >
int import_vtk (MeshType &mesh_obj, std::string const &filename)
 Convenience function for importing a mesh using a single line of code.
template<typename DestinationT , typename SourceT >
detail::lexical_cast_impl
< DestinationT >::result_type 
lexical_cast (SourceT const &src)
template<typename SegmentHandleT , typename AccessorType , typename TriangleHandleT , typename SegmentIDRangeType >
void mark_planar_neighbors (SegmentHandleT const &segment, AccessorType &contact_index_accessor, TriangleHandleT const &triangle_handle, int contact_index, SegmentIDRangeType const &sids)
template<typename SegmentationT , typename AccessorType >
void mark_segment_hull_contacts (SegmentationT const &segmentation, AccessorType &contact_index_accessor)
std::string remove_begin_end_chars (std::string const &str)
template<typename StringType >
StringType string_to_lower (StringType const &s)
 Helper function for converting a string to lowercase.

Detailed Description

A namespace with all the input/output functionality, in particular file readers and writers.


Function Documentation

opendx_writer<MeshT>& viennagrid::io::add_scalar_data_on_cells ( opendx_writer< MeshT > &  writer,
AccessorT const  accessor,
std::string const &  quantity_name 
)

Registers scalar-valued data on cells at the OpenDX writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
AccessorTAn accessor type holding scalar data
Parameters:
writerThe OpenDX writer object for which the data should be registered
accessorThe accessor object holding scalar data on cells
quantity_nameIgnored. Only used for a homogeneous interface with VTK reader/writer.
vtk_writer<MeshT, SegmentationT>& viennagrid::io::add_scalar_data_on_cells ( vtk_writer< MeshT, SegmentationT > &  writer,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers scalar-valued data on cells at the VTK writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
SegmentationTThe segmentation type to be written
AccessorOrFieldTAn accessor/field type holding scalar data
Parameters:
writerThe VTK writer object for which the data should be registered
accessor_or_fieldThe accessor/field object holding scalar data on cells
quantity_nameThe quantity name within the VTK file
vtk_writer<MeshT, SegmentationT>& viennagrid::io::add_scalar_data_on_cells ( vtk_writer< MeshT, SegmentationT > &  writer,
segment_handle< SegmentationT > const &  segment,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers scalar-valued data on cells for a given segment at the VTK writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
SegmentationTThe segmentation type to be written
AccessorOrFieldTAn accessor/field type holding scalar data
Parameters:
writerThe VTK writer object for which the data should be registered
segmentThe segment for which the data is defined
accessor_or_fieldThe accessor/field object holding scalar data on cells
quantity_nameThe quantity name within the VTK file
vtk_reader<MeshT, SegmentationT>& viennagrid::io::add_scalar_data_on_cells ( vtk_reader< MeshT, SegmentationT > &  reader,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers scalar-valued data on cells at the VTK reader.

Template Parameters:
MeshTThe mesh type to be read to
SegmentationTThe segmentation type to be read to
AccessorOrFieldTAn accessor/field holding scalar data
Parameters:
readerThe VTK reader object for which the data should be registered
accessor_or_fieldThe accessor object holding scalar data on cells
quantity_nameThe quantity name within the VTK file
opendx_writer<MeshT>& viennagrid::io::add_scalar_data_on_vertices ( opendx_writer< MeshT > &  writer,
AccessorT const  accessor,
std::string const &  quantity_name 
)

Registers scalar-valued data on vertices at the OpenDX writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
AccessorTAn accessor type holding scalar data
Parameters:
writerThe OpenDX writer object for which the data should be registered
accessorThe accessor object holding scalar data on vertices
quantity_nameIgnored. Only used for a homogeneous interface with VTK reader/writer.
vtk_writer<MeshT, SegmentationT>& viennagrid::io::add_scalar_data_on_vertices ( vtk_writer< MeshT, SegmentationT > &  writer,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers scalar-valued data on vertices at the VTK writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
SegmentationTThe segmentation type to be written
AccessorOrFieldTAn accessor/field type holding scalar data
Parameters:
writerThe VTK writer object for which the data should be registered
accessor_or_fieldThe accessor/field object holding scalar data on vertices
quantity_nameThe quantity name within the VTK file
vtk_writer<MeshT, SegmentationT>& viennagrid::io::add_scalar_data_on_vertices ( vtk_writer< MeshT, SegmentationT > &  writer,
segment_handle< SegmentationT > const &  segment,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers scalar-valued data on vertices for a given segment at the VTK writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
SegmentationTThe segmentation type to be written
AccessorOrFieldTAn accessor/field type holding scalar data
Parameters:
writerThe VTK writer object for which the data should be registered
segmentThe segment for which the data is defined
accessor_or_fieldThe accessor/field object holding scalar data on vertices
quantity_nameThe quantity name within the VTK file
vtk_reader<MeshT, SegmentationT>& viennagrid::io::add_scalar_data_on_vertices ( vtk_reader< MeshT, SegmentationT > &  reader,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers scalar-valued data on vertices at the VTK reader.

Template Parameters:
MeshTThe mesh type to be read to
SegmentationTThe segmentation type to be read to
AccessorOrFieldTAn accessor/field holding scalar data
Parameters:
readerThe VTK reader object for which the data should be registered
accessor_or_fieldThe accessor object holding scalar data on vertices
quantity_nameThe quantity name within the VTK file
vtk_writer<MeshT, SegmentationT>& viennagrid::io::add_vector_data_on_cells ( vtk_writer< MeshT, SegmentationT > &  writer,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers vector-valued data on cells at the VTK writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
SegmentationTThe segmentation type to be written
AccessorOrFieldTAn accessor/field type holding vector data
Parameters:
writerThe VTK writer object for which the data should be registered
accessor_or_fieldThe accessor/field object holding vector data on cells
quantity_nameThe quantity name within the VTK file
vtk_writer<MeshT, SegmentationT>& viennagrid::io::add_vector_data_on_cells ( vtk_writer< MeshT, SegmentationT > &  writer,
segment_handle< SegmentationT > const &  segment,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers vector-valued data on cells for a given segment at the VTK writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
SegmentationTThe segmentation type to be written
AccessorOrFieldTAn accessor/field type holding vector data
Parameters:
writerThe VTK writer object for which the data should be registered
segmentThe segment for which the data is defined
accessor_or_fieldThe accessor/field object holding vector data on cells
quantity_nameThe quantity name within the VTK file
vtk_reader<MeshT, SegmentationT>& viennagrid::io::add_vector_data_on_cells ( vtk_reader< MeshT, SegmentationT > &  reader,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers vector-valued data on cells at the VTK reader.

Template Parameters:
MeshTThe mesh type to be read to
SegmentationTThe segmentation type to be read to
AccessorOrFieldTAn accessor/field holding vector data
Parameters:
readerThe VTK reader object for which the data should be registered
accessor_or_fieldThe accessor object holding vector data on cells
quantity_nameThe quantity name within the VTK file
vtk_writer<MeshT, SegmentationT>& viennagrid::io::add_vector_data_on_vertices ( vtk_writer< MeshT, SegmentationT > &  writer,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers vector-valued data on vertices at the VTK writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
SegmentationTThe segmentation type to be written
AccessorOrFieldTAn accessor/field type holding vector data
Parameters:
writerThe VTK writer object for which the data should be registered
accessor_or_fieldThe accessor/field object holding vector data on vertices
quantity_nameThe quantity name within the VTK file
vtk_writer<MeshT, SegmentationT>& viennagrid::io::add_vector_data_on_vertices ( vtk_writer< MeshT, SegmentationT > &  writer,
segment_handle< SegmentationT > const &  segment,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers vector-valued data on vertices for a given segment at the VTK writer. At most one data set is allowed.

Template Parameters:
MeshTThe mesh type to be written
SegmentationTThe segmentation type to be written
AccessorOrFieldTAn accessor/field type holding vector data
Parameters:
writerThe VTK writer object for which the data should be registered
segmentThe segment for which the data is defined
accessor_or_fieldThe accessor/field object holding vector data on vertices
quantity_nameThe quantity name within the VTK file
vtk_reader<MeshT, SegmentationT>& viennagrid::io::add_vector_data_on_vertices ( vtk_reader< MeshT, SegmentationT > &  reader,
AccessorOrFieldT const  accessor_or_field,
std::string const &  quantity_name 
)

Registers vector-valued data on vertices at the VTK reader.

Template Parameters:
MeshTThe mesh type to be read to
SegmentationTThe segmentation type to be read to
AccessorOrFieldTAn accessor/field holding vector data
Parameters:
readerThe VTK reader object for which the data should be registered
accessor_or_fieldThe accessor object holding vector data on vertices
quantity_nameThe quantity name within the VTK file
FloatingPointType viennagrid::io::DXfixer ( FloatingPointType  value)

Fix for a OpenDX bug: if floating-values occur, no integers (i.e. only zeros after decimal point) are allowed.

As a remedy, we add a value of 1e-5. Better to have a small error in the visualization instead of a crashed OpenDX...

Template Parameters:
FloatingPointTypeDummy template argument to disable external linkage. Almost always float or double.
int viennagrid::io::export_vtk ( MeshType const &  mesh_obj,
SegmentationType const &  segmentation,
std::string const &  filename 
)

Convenience function that exports a mesh to file directly. Does not export quantities.

int viennagrid::io::export_vtk ( MeshType const &  mesh_obj,
std::string const &  filename 
)

Convenience function that exports a mesh to file directly. Does not export quantities.

std::vector<std::pair<std::size_t, std::string> > const& viennagrid::io::get_scalar_data_on_cells ( VTKReaderT const &  reader)

Returns the names of all scalar-valued data read for cells.

std::vector<std::pair<std::size_t, std::string> > const& viennagrid::io::get_scalar_data_on_vertices ( VTKReaderT const &  reader)

Returns the names of all scalar-valued data read for vertices.

bool viennagrid::io::get_valid_line ( stream_type &  stream,
std::string &  line,
char  comment_line = '#' 
)
std::vector<std::pair<std::size_t, std::string> > const& viennagrid::io::get_vector_data_on_cells ( VTKReaderT const &  reader)

Returns the names of all vector-valued data read for cells.

std::vector<std::pair<std::size_t, std::string> > const& viennagrid::io::get_vector_data_on_vertices ( VTKReaderT const &  reader)

Returns the names of all vector-valued data read for vertices.

int viennagrid::io::import_vtk ( MeshType &  mesh_obj,
SegmentationType &  segmentation,
std::string const &  filename 
)

Convenience function for importing a mesh using a single line of code.

int viennagrid::io::import_vtk ( MeshType &  mesh_obj,
std::string const &  filename 
)

Convenience function for importing a mesh using a single line of code.

detail::lexical_cast_impl<DestinationT>::result_type viennagrid::io::lexical_cast ( SourceT const &  src)
void viennagrid::io::mark_planar_neighbors ( SegmentHandleT const &  segment,
AccessorType &  contact_index_accessor,
TriangleHandleT const &  triangle_handle,
int  contact_index,
SegmentIDRangeType const &  sids 
)
void viennagrid::io::mark_segment_hull_contacts ( SegmentationT const &  segmentation,
AccessorType &  contact_index_accessor 
)
std::string viennagrid::io::remove_begin_end_chars ( std::string const &  str) [inline]
StringType viennagrid::io::string_to_lower ( StringType const &  s)

Helper function for converting a string to lowercase.

Template Parameters:
StringMore a dummy template argument to disable external linkage of the function (for 'header-only' reasons)