Loading [MathJax]/extensions/tex2jax.js
Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Types.hpp
Go to the documentation of this file.
1 /** 2  * MOAB, a Mesh-Oriented datABase, is a software component for creating, 3  * storing and accessing finite element mesh data. 4  * 5  * Copyright 2004 Sandia Corporation. Under the terms of Contract 6  * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government 7  * retains certain rights in this software. 8  * 9  * This library is free software; you can redistribute it and/or 10  * modify it under the terms of the GNU Lesser General Public 11  * License as published by the Free Software Foundation; either 12  * version 2.1 of the License, or (at your option) any later version. 13  * 14  */ 15  16 #ifndef MOAB_TYPES_HPP 17 #define MOAB_TYPES_HPP 18  19 #ifdef __cplusplus 20 #include "moab/EntityType.hpp" 21 #include "moab/EntityHandle.hpp" 22 #endif 23  24 #include "moab/win32_config.h" 25  26 /**\name Types and names 27  * Types used in the MOAB interface 28  */ 29 /*@{*/ 30  31 #ifdef __cplusplus 32 namespace moab 33 { 34 #endif 35  36 /** MOAB error codes */ 37 enum MOAB_EXPORT ErrorCode 38 { 39  MB_SUCCESS = 0, 40  MB_INDEX_OUT_OF_RANGE = 1, 41  MB_TYPE_OUT_OF_RANGE = 2, 42  MB_MEMORY_ALLOCATION_FAILED = 3, 43  MB_ENTITY_NOT_FOUND = 4, 44  MB_MULTIPLE_ENTITIES_FOUND = 5, 45  MB_TAG_NOT_FOUND = 6, 46  MB_FILE_DOES_NOT_EXIST = 7, 47  MB_FILE_WRITE_ERROR = 8, 48  MB_NOT_IMPLEMENTED = 9, 49  MB_ALREADY_ALLOCATED = 10, 50  MB_VARIABLE_DATA_LENGTH = 11, 51  MB_INVALID_SIZE = 12, 52  MB_UNSUPPORTED_OPERATION = 13, 53  MB_UNHANDLED_OPTION = 14, 54  MB_STRUCTURED_MESH = 15, 55  MB_FAILURE = 16 56 }; 57  58 #ifdef __cplusplus 59 extern const char* const ErrorCodeStr[]; 60 #endif 61  62 /** Misc. integer constants, declared in enum for portability */ 63 enum Constants 64 { 65  MB_VARIABLE_LENGTH = -1 /**< Length value for variable-length tags */ 66 }; 67  68 /** Specify storage type for tags. See MOAB users guide for more information. */ 69 enum MOAB_EXPORT TagType 70 { 71  MB_TAG_BIT = 0, /**< Tag size specified in bits, tag value is 8 bits or less */ 72  MB_TAG_SPARSE = 1 << 0, /**< Storage optimized for tags on a few entities */ 73  MB_TAG_DENSE = 1 << 1, /**< Storage optimized for tags on most entities of a type */ 74  MB_TAG_MESH = 1 << 2, /**< Storage for tags on no entities, only the root set/whole mesh. */ 75  MB_TAG_BYTES = 1 << 3, /**< Size is in number of bytes rather than number of values of \c DataType */ 76  MB_TAG_VARLEN = 1 << 4, /**< Create variable-length tag */ 77  MB_TAG_CREAT = 1 << 5, /**< Create tag if it does not already exist */ 78  MB_TAG_EXCL = 1 << 6, /**< Fail if TAG_CREATE and tag already exists */ 79  MB_TAG_STORE = 1 << 7, /**< Fail if tag exists and has different storage type */ 80  MB_TAG_ANY = 1 << 8, /**< Do not fail if size, type, or default value do not match. */ 81  MB_TAG_NOOPQ = 1 << 9, /**< Do not accept MB_TYPE_OPAQUE as a match for any type. */ 82  MB_TAG_DFTOK = 1 << 10 /**< Do not fail for mismatched default values */ 83  /**< MB_TAG_CNVRT = 1<<11, Convert storage type if it does not match */ 84 }; 85  86 /** Specify data type for tags. */ 87 enum MOAB_EXPORT DataType 88 { 89  MB_TYPE_OPAQUE = 0, /**< byte array */ 90  MB_TYPE_INTEGER = 1, /**< native 'int' type */ 91  MB_TYPE_DOUBLE = 2, /**< native 'double' type */ 92  MB_TYPE_BIT = 3, /**< mandatory type for tags with MB_TAG_BIT storage */ 93  MB_TYPE_HANDLE = 4, /**< EntityHandle */ 94  MB_MAX_DATA_TYPE = MB_TYPE_HANDLE 95 }; 96  97 #ifdef __cplusplus 98 extern const char* const DataTypeStr[]; 99 #endif 100  101 /** Used to reference tags; since they're so different from entities, we 102  * use void** instead of a uint to prevent them from being confused as 103  * entity handles. 104  */ 105 #ifdef __cplusplus 106 class TagInfo; 107 typedef TagInfo* Tag; 108 #else 109 struct TagInfo; 110 typedef struct TagInfo* Tag; 111 #endif 112  113 /** Meshset options: properties for meshset creation. 114  * Values are bit flags that may be combined with a bitwise OR (|) 115  */ 116 enum MOAB_EXPORT EntitySetProperty 117 { 118  MESHSET_TRACK_OWNER = 0x1, /**< create entity to meshset adjacencies */ 119  MESHSET_SET = 0x2, /**< set contents are unique */ 120  MESHSET_ORDERED = 0x4 /**< order of set contents is preserved */ 121 }; 122  123 enum MOAB_EXPORT SenseType 124 { 125  SENSE_INVALID = -2, /**< default, invalid, not defined */ 126  SENSE_REVERSE = -1, /**< reversed */ 127  SENSE_BOTH = 0, /**< both senses valid */ 128  SENSE_FORWARD = 1 /**< forward */ 129 }; 130  131 #ifdef __cplusplus 132 extern const char* const* const SenseTypeStr; 133 #endif 134  135 #ifdef __cplusplus 136 } /* namespace moab */ 137 #endif 138  139 /*@}*/ 140  141 #endif