Xyce  6.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
N_TIA_Assembler.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 // Copyright Notice
3 //
4 // Copyright 2002 Sandia Corporation. Under the terms
5 // of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S.
6 // Government retains certain rights in this software.
7 //
8 // Xyce(TM) Parallel Electrical Simulator
9 // Copyright (C) 2002-2014 Sandia Corporation
10 //
11 // This program is free software: you can redistribute it and/or modify
12 // it under the terms of the GNU General Public License as published by
13 // the Free Software Foundation, either version 3 of the License, or
14 // (at your option) any later version.
15 //
16 // This program is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU General Public License for more details.
20 //
21 // You should have received a copy of the GNU General Public License
22 // along with this program. If not, see <http://www.gnu.org/licenses/>.
23 //-----------------------------------------------------------------------------
24 
25 //-----------------------------------------------------------------------------
26 // Filename : $RCSfile: N_TIA_Assembler.h,v $
27 //
28 // Purpose :
29 //
30 // Special Notes :
31 //
32 // Creator : Buddy Watts
33 //
34 // Creation Date : 6/1/07
35 //
36 // Revision Information:
37 // ---------------------
38 //
39 // Revision Number: $Revision: 1.14 $
40 //
41 // Revision Date : $Date: 2014/02/24 23:49:25 $
42 //
43 // Current Owner : $Author: tvrusso $
44 //-----------------------------------------------------------------------------
45 
46 #ifndef Xyce_N_ASSEMBER_H
47 #define Xyce_N_ASSEMBER_H
48 
49 #include <N_UTL_Misc.h>
50 #include <N_UTL_Xyce.h>
51 #include <N_ANP_fwd.h>
52 #include <N_UTL_fwd.h>
53 
54 // ---------- Forward Declarations ----------
55 class N_LOA_Loader;
57 class N_TIA_DataStore;
59 class N_LAS_Vector;
60 
61 class N_PDS_Manager;
62 
63 //-----------------------------------------------------------------------------
64 // Class : N_TIA_Assembler
65 // Purpose : Base class
66 // Special Notes :
67 // Creator : Eric Keiter, SNL
68 // Creation Date : 1/30/07
69 //-----------------------------------------------------------------------------
71 {
72 public:
73 
74  // Constructor.
76  //N_ANP_AnalysisManager & ca,
77  N_LOA_Loader & loader,
79  N_PDS_Manager & pds,
80  bool daeStateDerivFlag
81  ) ;
82 
83  // Destructor
84  virtual ~N_TIA_Assembler();
85 
86  virtual bool loadRHS () = 0;
87  virtual bool loadJacobian () = 0;
88  virtual bool applyJacobian (const N_LAS_Vector& input, N_LAS_Vector& result)
89  { return false; };
90 
91 protected:
92  N_UTL_Timer * residualTimerPtr_;
93  N_UTL_Timer * jacobianTimerPtr_;
94  double residualTime_;
95  double jacobianTime_;
96 
98 
100  N_LOA_Loader & loader_;
102 
103  N_PDS_Manager & pdsMgr;
104 
106 };
107 
108 //-----------------------------------------------------------------------------
109 // Class : N_TIA_DAE_Assembler
110 // Purpose : Derrived class
111 // Special Notes :
112 // Creator : Eric Keiter, SNL
113 // Creation Date : 1/30/07
114 //-----------------------------------------------------------------------------
116 {
117 public:
118 
119  // Default constructor.
121  //N_ANP_AnalysisManager & ca,
122  N_LOA_Loader & loader,
124  N_PDS_Manager & pds,
125  bool daeStateDerivFlag
126  );
127 
128  // Destructor
129  virtual ~N_TIA_DAE_Assembler();
130 
131  // load functions, new-DAE form:
132  virtual bool loadRHS ();
133  virtual bool loadJacobian ();
134  virtual bool applyJacobian (const N_LAS_Vector& input, N_LAS_Vector& result);
135 
137 
138 };
139 
140 
141 #endif