FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fei_fwd.hpp
1 /*
2 // @HEADER
3 // ************************************************************************
4 // FEI: Finite Element Interface to Linear Solvers
5 // Copyright (2005) Sandia Corporation.
6 //
7 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the
8 // U.S. Government retains certain rights in this software.
9 //
10 // Redistribution and use in source and binary forms, with or without
11 // modification, are permitted provided that the following conditions are
12 // met:
13 //
14 // 1. Redistributions of source code must retain the above copyright
15 // notice, this list of conditions and the following disclaimer.
16 //
17 // 2. Redistributions in binary form must reproduce the above copyright
18 // notice, this list of conditions and the following disclaimer in the
19 // documentation and/or other materials provided with the distribution.
20 //
21 // 3. Neither the name of the Corporation nor the names of the
22 // contributors may be used to endorse or promote products derived from
23 // this software without specific prior written permission.
24 //
25 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 //
37 // Questions? Contact Alan Williams (william@sandia.gov)
38 //
39 // ************************************************************************
40 // @HEADER
41 */
42 
43 #ifndef _fei_fwd_hpp_
44 #define _fei_fwd_hpp_
45 
46 
47 #include <fei_macros.hpp>
48 #include <fei_defs.h>
49 
50 //
51 //Forward declarations for fei classes.
52 //
53 
54 //
55 //First, the "old" classes that aren't in a namespace.
56 //
57 
58 class BlockDescriptor;
59 class ConnectivityTable;
60 class Data;
61 class EqnBuffer;
62 class EqnCommMgr;
63 class FEI_Implementation;
64 class Filter;
65 class FiniteElementData;
66 class LibraryWrapper;
67 class LinearSystemCore;
68 class NodeCommMgr;
69 class NodeDatabase;
70 class NodeDescriptor;
71 class ProcEqns;
72 class SNL_FEI_Structure;
73 class SlaveVariable;
74 
75 //
76 //Now the symbols in the fei namespace.
77 //
78 
79 namespace fei {
81  enum OutputLevel {
82  //We want to make sure that BRIEF_LOGS < FULL_LOGS < ALL, so that
83  //debug-output code can use statements like
84  // 'if (output_level_ >= BRIEF_LOGS)'.
85  //So be aware that re-arranging these values can change the behavior
86  //of debug-output code... Don't do it!
87  NONE = 0,
88  STATS = 1,
89  MATRIX_FILES = 2,
90  BRIEF_LOGS = 3,
91  FULL_LOGS = 4,
92  ALL = 5
93  };
94 
95  class Factory;
96  class FillableMat;
97  class Graph;
98  class CSRMat;
99  class CSVec;
100  class LogFile;
101  class Logger;
102  class LogManager;
103  class Reducer;
104  class VectorSpace;
105  class MatrixGraph;
106  class Param;
107  class ParameterSet;
108  template<typename T> class SharedIDs;
109  class SparseRowGraph;
110  class Vector;
111  class Matrix;
112  class LinearSystem;
113  template<typename T> class ctg_set;
114  template<typename T> class Matrix_Impl;
115  template<typename T> class Vector_Impl;
116 }//namespace fei
117 
118 //
119 //Finally the symbols that are still in the soon-to-be-eliminated
120 //snl_fei namespace.
121 //
122 namespace snl_fei {
123  template<class RecordType> class Constraint;
124  class RecordCollection;
125 
126  class BlockDescriptor;
127  class PointBlockMap;
128 
129  class Broker;
130  class Factory;
131 }
132 
133 #undef FEI_OSTREAM
134 
135 #ifdef FEI_HAVE_IOSFWD
136 #include <iosfwd>
137 #define FEI_OSTREAM std::ostream
138 #else
139 #include <iostream.hpp>
140 #define FEI_OSTREAM ostream
141 #endif
142 
143 #include <exception>
144 #include <vector>
145 
146 #endif
147 
OutputLevel
Definition: fei_fwd.hpp:81