FEI Version of the Day
fei_fwd.hpp
00001 #ifndef _fei_fwd_hpp_
00002 #define _fei_fwd_hpp_
00003 
00004 /*--------------------------------------------------------------------*/
00005 /*    Copyright 2006 Sandia Corporation.                              */
00006 /*    Under the terms of Contract DE-AC04-94AL85000, there is a       */
00007 /*    non-exclusive license for use of this work by or on behalf      */
00008 /*    of the U.S. Government.  Export of this program may require     */
00009 /*    a license from the United States Government.                    */
00010 /*--------------------------------------------------------------------*/
00011 
00012 #include <fei_macros.hpp>
00013 #include <fei_defs.h>
00014 
00015 //
00016 //Forward declarations for fei classes.
00017 //
00018 
00019 //
00020 //First, the "old" classes that aren't in a namespace.
00021 //
00022 
00023 class BlockDescriptor;
00024 class ConnectivityTable;
00025 class Data;
00026 class EqnBuffer;
00027 class EqnCommMgr;
00028 class FEI_Implementation;
00029 class Filter;
00030 class FiniteElementData;
00031 class LibraryWrapper;
00032 class LinearSystemCore;
00033 class NodeCommMgr;
00034 class NodeDatabase;
00035 class NodeDescriptor;
00036 class ProcEqns;
00037 class SNL_FEI_Structure;
00038 class SlaveVariable;
00039 
00040 //
00041 //Now the symbols in the fei namespace.
00042 //
00043 
00044 namespace fei {
00046   enum OutputLevel {
00047     //We want to make sure that BRIEF_LOGS < FULL_LOGS < ALL, so that
00048     //debug-output code can use statements like
00049     //  'if (output_level_ >= BRIEF_LOGS)'.
00050     //So be aware that re-arranging these values can change the behavior
00051     //of debug-output code... Don't do it!
00052     NONE = 0,
00053     STATS = 1,
00054     MATRIX_FILES = 2,
00055     BRIEF_LOGS = 3,
00056     FULL_LOGS = 4,
00057     ALL = 5
00058   };
00059 
00060   class Factory;
00061   class FillableMat;
00062   class Graph;
00063   class CSRMat;
00064   class CSVec;
00065   class LogFile;
00066   class Logger;
00067   class LogManager;
00068   class Reducer;
00069   class VectorSpace;
00070   class MatrixGraph;
00071   class Param;
00072   class ParameterSet;
00073   template<typename T> class SharedIDs;
00074   class SparseRowGraph;
00075   class Vector;
00076   class Matrix;
00077   class LinearSystem;
00078   template<typename T> class ctg_set;
00079   template<typename T> class Matrix_Impl;
00080   template<typename T> class Vector_Impl;
00081 }//namespace fei
00082 
00083 //
00084 //Finally the symbols that are still in the soon-to-be-eliminated
00085 //snl_fei namespace.
00086 //
00087 namespace snl_fei {
00088   template<class RecordType> class Constraint;
00089   class RecordCollection;
00090 
00091   class BlockDescriptor;
00092   class PointBlockMap;
00093 
00094   class Broker;
00095   class Factory;
00096 }
00097 
00098 #undef FEI_OSTREAM
00099 
00100 #ifdef FEI_HAVE_IOSFWD
00101 #include <iosfwd>
00102 #define FEI_OSTREAM std::ostream
00103 #else
00104 #include <iostream.hpp>
00105 #define FEI_OSTREAM ostream
00106 #endif
00107 
00108 #include <exception>
00109 #include <vector>
00110 
00111 #endif
00112 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends