Xyce
6.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
N_TIA_MPDEInterface.h
Go to the documentation of this file.
1
2
//-----------------------------------------------------------------------------
3
// Copyright Notice
4
//
5
// Copyright 2002 Sandia Corporation. Under the terms
6
// of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S.
7
// Government retains certain rights in this software.
8
//
9
// Xyce(TM) Parallel Electrical Simulator
10
// Copyright (C) 2002-2014 Sandia Corporation
11
//
12
// This program is free software: you can redistribute it and/or modify
13
// it under the terms of the GNU General Public License as published by
14
// the Free Software Foundation, either version 3 of the License, or
15
// (at your option) any later version.
16
//
17
// This program is distributed in the hope that it will be useful,
18
// but WITHOUT ANY WARRANTY; without even the implied warranty of
19
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
// GNU General Public License for more details.
21
//
22
// You should have received a copy of the GNU General Public License
23
// along with this program. If not, see <http://www.gnu.org/licenses/>.
24
//-----------------------------------------------------------------------------
25
26
//-----------------------------------------------------------------------------
27
// Filename : $RCSfile: N_TIA_MPDEInterface.h,v $
28
//
29
// Purpose : This file defines the time integration interface for MPDE
30
//
31
// Special Notes :
32
//
33
// Creator : Todd S. Coffey, 9214
34
//
35
// Creation Date : 03/24/04
36
//
37
// Revision Information:
38
// ---------------------
39
//
40
// Revision Number: $Revision: 1.26 $
41
//
42
// Revision Date : $Date: 2014/08/05 21:41:38 $
43
//
44
// Current Owner : $Author: dgbaur $
45
//-----------------------------------------------------------------------------
46
47
#ifndef Xyce_TIME_MPDEINTERFACE_H
48
#define Xyce_TIME_MPDEINTERFACE_H
49
50
// ---------- Standard Includes ----------
51
52
// ---------- Xyce Includes ----------
53
#include <N_UTL_Xyce.h>
54
55
#include <
N_ANP_fwd.h
>
56
#include <
N_TIA_fwd.h
>
57
#include <N_LAS_fwd.h>
58
59
// ---------- Forward Declarations ----------
60
61
62
//-----------------------------------------------------------------------------
63
// Class : N_TIA_MPDEInterface
64
// Purpose : This is the interface for the time integrator that is
65
// : provided to the MPDE loader.
66
// Special Notes :
67
// Creator : Todd S. Coffey, 9214
68
// Creation Date : 03/24/04
69
//-----------------------------------------------------------------------------
70
class
N_TIA_MPDEInterface
71
{
72
public
:
73
74
// Default donstructor
75
N_TIA_MPDEInterface
(
N_TIA_TIAParams
& tp);
76
77
// Destructor
78
~N_TIA_MPDEInterface
();
79
80
// Execution functions:
81
82
// Method to register the TIA parameters object.
83
bool
registerTIAParams
(
const
N_TIA_TIAParams
& tiaParams_tmp);
84
85
// Method to register the TIA Data Store object.
86
bool
registerTIADataStore
(
N_TIA_DataStore
* ds_tmp);
87
88
// Method to register the TIA Control Alogrithm object.
89
bool
registerTIAControl
(
N_ANP_AnalysisManager
* tiaControl_tmp);
90
//
91
// Method to register the TIA StepErrorControl object.
92
bool
registerTIAStepErrorControl
(
N_TIA_StepErrorControl
* tiaSec_tmp);
93
94
// Method to specify transient initial condition
95
bool
setInitialCondition
(N_LAS_Vector * initialConditionPtr);
96
97
// Method to specify transient state initial condition
98
bool
setStateInitialCondition
(N_LAS_Vector *stateInitialConditionPtr);
99
100
// Method to specify transient store initial condition
101
bool
setStoreInitialCondition
(N_LAS_Vector *storeInitialConditionPtr);
102
103
// Method to specify transient Q initial condition
104
bool
setQVectorInitialCondition
(N_LAS_Vector *qVectorInitialConditionPtr);
105
106
// Method to run DCOP
107
bool
runDCOP
();
108
109
// Method to run transient without DCOP
110
bool
runTransient
();
111
112
// Method to run transient with DCOP
113
bool
runTransientWithDCOP
();
114
115
// Methods to take single time steps
116
void
getTimeIntInfo
(
N_TIA_TimeIntInfo
& tiInfo);
117
bool
runStep
(
const
N_TIA_TimeIntInfo
& tiInfo,
N_TIA_TwoLevelError
& tlError);
118
void
stepSuccess
(
Xyce::Analysis::CurrentMode
analysis_type);
119
120
// Method to return output solution (either from DCOP or transient)
121
N_LAS_Vector*
getFinalSolution
();
122
123
// Method to return output state vector (either from DCOP or transient)
124
N_LAS_Vector*
getStateFinalSolution
();
125
126
// Method to return output store vector (either from DCOP or transient)
127
N_LAS_Vector*
getStoreFinalSolution
();
128
129
// Method to return output DAE Q vector
130
N_LAS_Vector*
getQVectorFinalSolution
();
131
132
// Method to return output DAE Q vector history
133
N_LAS_Vector*
getQVectorHistoryFinalSolution
();
134
135
// Method to re-initialize time integrator
136
bool
reInitialize
();
137
138
// Accessor to the N_TIA_TIAParams object.
139
N_TIA_TIAParams
&
getTIAParams
();
140
141
bool
setTIAParams
(
N_TIA_TIAParams
& tiaParams);
142
143
protected
:
144
145
private
:
146
147
// Pointer to DataStore
148
N_TIA_DataStore
*
dsPtr_
;
149
150
// Pointer to TIAParams
151
N_TIA_TIAParams
&
tiaParams_
;
152
153
// Pointer to the Analysis Manager
154
N_ANP_AnalysisManager
*
anaManagerPtr_
;
155
156
// Pointer to the TIA StepErrorControl object
157
N_TIA_StepErrorControl
*
tiaSecPtr_
;
158
159
};
160
161
//-----------------------------------------------------------------------------
162
// Function : N_TIA_MPDEInterface::getTIAParams
163
// Purpose : Accessor to the N_TIA_TIAParams object.
164
// Special Notes :
165
// Scope : public
166
// Creator : Todd Coffey, SNL
167
// Creation Date : 3/25/04
168
//-----------------------------------------------------------------------------
169
inline
N_TIA_TIAParams
&
N_TIA_MPDEInterface::getTIAParams
()
170
{
171
return
tiaParams_
;
172
}
173
174
#endif // Xyce_TIME_MPDEINTERFACE_H
175
src
TimeIntegrationPKG
include
N_TIA_MPDEInterface.h
Generated on Thu Sep 25 2014 15:20:31 for Xyce by
1.8.3.1