Xyce  6.1
N_TIA_TimeIntInfo.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-2015 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_TimeIntInfo.h,v $
27 // Purpose :
28 // Special Notes :
29 // Creator : Eric Keiter
30 // Creation Date : 1/29/07
31 // Revision Information:
32 // ---------------------
33 //
34 // Revision Number: $Revision: 1.22.2.1 $
35 //
36 // Revision Date : $Date: 2015/04/02 18:20:18 $
37 //
38 // Current Owner : $Author: tvrusso $
39 //-----------------------------------------------------------------------------
40 
41 #ifndef Xyce_N_TIA_TimeIntInfo_h
42 #define Xyce_N_TIA_TimeIntInfo_h
43 
44 // ---------- Standard Declarations ----------
45 #include <iosfwd>
46 
47 // ---------- Forward Declarations ----------
48 
49 
50 namespace Xyce {
51 namespace TimeIntg {
52 
53 //-----------------------------------------------------------------------------
54 // Class : TimeIntInfo
55 //
56 // Purpose : This class contains time integration info that needs to
57 // be passed from the time integration package to other
58 // parts of Xyce.
59 //
60 // Special Notes :
61 // Creator : Eric Keiter, SNL
62 // Creation Date : 1/29/07
63 //-----------------------------------------------------------------------------
65 {
67  : currentOrder(1),
68  numberOfSteps(0),
69  usedOrder(1),
70  nscsco(0),
71  pdt(0.0),
72  nextTimeStep(0.0),
73  currTimeStep(0.0),
74  currentTime(0.0),
75  nextTime(0.0),
76  finalTime(0.0),
77  startingTimeStep(0.0),
78  bpTol(0.0),
79  dcopFlag(false),
80  acopFlag(false),
81  inputOPFlag(false),
82  tranopFlag(false),
83  transientFlag(false),
84  dcsweepFlag(false),
85  timeStepNumber(0),
86  initTranFlag(false),
87  beginIntegrationFlag(false),
88  doubleDCOPStep(0),
89  doubleDCOPEnabled(false),
90  timeIntMode(0),
92  {}
93 
95  {}
96 
97  int currentOrder; ///< Time integrator order
98  int numberOfSteps; ///< Time integrator step
99  int usedOrder; ///< Time integrator used order
100  int nscsco; ///< Time integrator ?nscsco?
101  double pdt; ///< Time integrator partial time deriviative
102 
103  double nextTimeStep; ///< Step error control next time step
104  double currTimeStep; ///< Step error control current time step
105  double currentTime; ///< Step error control current time
106  double nextTime; ///< Step error control next time
107  double finalTime; ///< Step error control final time
108  double startingTimeStep; ///< Step error control starting time step
109  double bpTol; ///< Step error control breakpoint tolerance
110 
111  bool dcopFlag; ///< Analysis DCOP flag
112  bool acopFlag; ///< Analysis ACOP flag
113  bool inputOPFlag; ///< Analysis InputOP flag
114  bool tranopFlag; ///< Analysis TransientOP flag
115  bool transientFlag; ///< Analysis
116  bool dcsweepFlag; ///< Analysis
117  bool sweepSourceResetFlag; ///< Analysis
118  int timeStepNumber; ///< Analysis
119  bool initTranFlag; ///< Analysis
120  bool beginIntegrationFlag; ///< Analysis
121  int doubleDCOPStep; ///< Analysis
122  bool doubleDCOPEnabled; ///< Analysis
123  int timeIntMode; ///< Analysis
124 };
125 
126 //-----------------------------------------------------------------------------
127 // Function : operator<<
128 // Purpose : "<<" operator for two-level info class.
129 // Special Notes :
130 // Scope : public
131 // Creator : Eric R. Keiter, SNL, Parallel Computational Sciences
132 // Creation Date : 1/29/07
133 //-----------------------------------------------------------------------------
134 std::ostream & operator<<(std::ostream & os, const TimeIntInfo & tiInfo);
135 
136 } // namespace TimeIntg
137 } // namespace Xyce
138 
139 #endif // Xyce_N_TIA_TimeIntInfo_h
140 
bool dcopFlag
Analysis DCOP flag.
double finalTime
Step error control final time.
bool tranopFlag
Analysis TransientOP flag.
int numberOfSteps
Time integrator step.
Pure virtual class to augment a linear system.
bool inputOPFlag
Analysis InputOP flag.
double nextTimeStep
Step error control next time step.
double nextTime
Step error control next time.
double bpTol
Step error control breakpoint tolerance.
std::ostream & operator<<(std::ostream &os, const StepErrorControl &sec)
int usedOrder
Time integrator used order.
double currentTime
Step error control current time.
int nscsco
Time integrator ?nscsco?
bool acopFlag
Analysis ACOP flag.
double pdt
Time integrator partial time deriviative.
double startingTimeStep
Step error control starting time step.
double currTimeStep
Step error control current time step.
int currentOrder
Time integrator order.