![]() |
Mesh Oriented datABase
(version 5.4.1)
Array-based unstructured mesh datastructure
|
00001 /**
00002 * MOAB, a Mesh-Oriented datABase, is a software component for creating,
00003 * storing and accessing finite element mesh data.
00004 *
00005 * Copyright 2004 Sandia Corporation. Under the terms of Contract
00006 * DE-AC04-94AL85000 with Sandia Coroporation, the U.S. Government
00007 * retains certain rights in this software.
00008 *
00009 * This library is free software; you can redistribute it and/or
00010 * modify it under the terms of the GNU Lesser General Public
00011 * License as published by the Free Software Foundation; either
00012 * version 2.1 of the License, or (at your option) any later version.
00013 *
00014 */
00015
00016 //-------------------------------------------------------------------------
00017 // Filename : ReadRTT.hpp
00018 //
00019 // Purpose : RTT file reader
00020 //
00021 // Creator : Andrew Davis
00022 //
00023 // Date : 02/2014
00024 //
00025 //-------------------------------------------------------------------------
00026
00027 /**
00028 * The RTT file format is used by the Attila deterministic radiation
00029 * transport code. The specific mesh format can be found in Chapter 9
00030 * of the Attila manual. The format is defined by xml like, block/end block
00031 * type syntax. The implementation at the time of writing supports a subset
00032 * of the whole format, and even Attila does not support the entireity of
00033 * its own mesh format.
00034 *
00035 * The mesh contains several features, that as a whole allow the conversion
00036 * from the RTT format, to a DAGMC geometry and a Tet Mesh for tallying.
00037 *
00038 * Sides - Defines the 6 boundary condtions for top, bottom, front, back
00039 * left and right, as well as internal and external.
00040 *---------------------------------------------------------------------
00041 * Faces - Logically equivalent to surfaces in DAGMC, containers for triangles, includes
00042 * the definition of the sense of the faces with respect to the Cells (volumes)
00043 * which bound it.
00044 *
00045 * The face syntax looks like
00046 *
00047 * 1 (+)Pyrex@14
00048 *
00049 * This means Face (surface) 1 is used to define the insde of the Pyrex cell only
00050 *
00051 * 75 (+)Pyrex/(-)Fuel30@25
00052 *
00053 * This means Face (surface) 75 is used by both Cell Pyrex and Cell Fuel 30,
00054 * the + and - signs refer to the sense, i.e. the inside sense defines the Pyrex and
00055 * the outside sense defines the Fuel.
00056 *---------------------------------------------------------------------
00057 * Cells - Entityset like coillections of tetrahedra which define contiguous material properties
00058 *
00059 * cell_flags
00060 * 1 REGIONS
00061 * 1 Pyrex
00062 * end_cell_flags
00063 *
00064 * Defines that there is 1 region called Pyrex
00065 *---------------------------------------------------------------------
00066 * Nodes - Defines the vertices for facets and tets, the syntax of which is shown below
00067 *
00068 * 100 1.8900000000E+03 0.0000000000E+00 5.0000000000E+03 100
00069 *
00070 * Defines that this is node 100, and has the coordinates 1890.0, 0.0 5000.0 cm
00071 **---------------------------------------------------------------------
00072 * Side (element) - Triangles
00073 *
00074 * 1 3 874 132 154 3 6365
00075 *
00076 * Defines that this is side element 1, it has 3 nodes, 874, 132 and 154,
00077 * side ID 3 and surface number 6365
00078 *---------------------------------------------------------------------
00079 * Cells (element) - Tetrahedra
00080 *
00081 * 691 4 599 556 1218 1216 2
00082 *
00083 * Defines that this is tet 691, it has 4 connections to nodes 599, 556,
00084 * 1218, 1216 and belongs to cell number 2.
00085 *
00086 */
00087
00088 #ifndef READRTT_HPP
00089 #define READRTT_HPP
00090
00091 #ifndef IS_BUILDING_MB
00092 #error "ReadRTT.hpp isn't supposed to be included into an application"
00093 #endif
00094
00095 #include
00096 #include
00097 #include
00098 #include