Updates will be applied on October 27th between 12pm - 12:45pm EDT (UTC-0400). Gitlab may be slow during the maintenance window.

XdmfTopologyConverter.hpp 1.72 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef XDMFTOPOLOGYCONVERTER_HPP_
#define XDMFTOPOLOGYCONVERTER_HPP_

// Forward Declarations
class XdmfGrid;
class XdmfTopologyType;

// Includes
#include "XdmfObject.hpp"

/*!
 * @brief XdmfTopologyConverter converts an XdmfGrid to different topology types.  XdmfAttributes and XdmfSets attached to the XdmfGrid
 * are adjusted to remain valid for the new topology type.
 *
 * When converting from a lower order topology to a higher order topology type (e.g. Hexahedron to Hexahedron_64) additional points are added to the mesh, no additional elements are added.
 * When converting from a higher order topology to a lower order topology type (e.h. Hexahedron_64 to Hexahedron) elements are tesselated to form the new topology, no additional points are added.
 *
 * Currently supported conversions:
 * 	Hexahedron to Hexahedron_64
 */
class XdmfTopologyConverter : public XdmfObject {

public:

	XdmfNewMacro(XdmfTopologyConverter);
	virtual ~XdmfTopologyConverter();

	/**
	 * Converts an XdmfGrid to a different topology type
	 *
	 * @param gridToConvert the XdmfGrid to convert to a different topology
	 * @param topologyType the XdmfTopologyType to convert to.
	 *
	 * @return the converted XdmfGrid.
	 */
36
	boost::shared_ptr<XdmfGrid> convert(const boost::shared_ptr<XdmfGrid> gridToConvert, const boost::shared_ptr<const XdmfTopologyType> topologyType) const;
37
38
39
40
41
42
43
44
45

protected:

	XdmfTopologyConverter();

private:

	XdmfTopologyConverter(const XdmfTopologyConverter & converter);  // Not implemented.
	void operator=(const XdmfTopologyConverter & converter);  // Not implemented.
46
47
48

	// Specific Topology Converters
	class HexahedronToHexahedron64;
49
	class Hexahedron64ToHexahedron;
50
51
52

	// Point comparator
	class PointComparison;
53
54
55
};

#endif /* XDMFPARTITIONER_HPP_ */