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_NLS_NOX_AugmentLinSys.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_NLS_NOX_AugmentLinSys.h,v $
27
//
28
// Purpose : Strategy pattern for allowing algorithms to augment
29
// the Jacobian and residual.
30
//
31
// Special Notes :
32
//
33
// Creator : Roger Pawlowski, NLS, 9233
34
//
35
// Creation Date : 3/6/2006
36
//
37
// Revision Information:
38
// ---------------------
39
//
40
// Revision Number: $Revision: 1.6 $
41
//
42
// Revision Date : $Date: 2014/02/24 23:49:24 $
43
//
44
// Current Owner : $Author: tvrusso $
45
//-------------------------------------------------------------------------
46
47
#ifndef Xyce_N_NLS_NOX_AugmentLinSys_h
48
#define Xyce_N_NLS_NOX_AugmentLinSys_h
49
50
//-----------------------------------------------------------------------------
51
// Class : N_NLS_NOX::AugmentLinSys
52
// Purpose :
53
// Creator : Roger Pawlowski, SNL, 9233
54
// Creation Date : 3/6/2006
55
//-----------------------------------------------------------------------------
56
57
/*! \brief Pure virtual class to augment a linear system.
58
59
Strategy pattern for allowing algorithms to augment the Jacobian
60
and residual. This class is used to provide an algorithm for
61
augmenting the linear system for various solution techniques.
62
Homotopy, pseudo-transient, and "gmin" stepping are examples. In
63
each case, the Jacobian's diagonal is changed/added to. Some
64
algorithms also augment the residual.
65
66
*/
67
68
// Forward Decalarations
69
class
N_LAS_Vector;
70
class
N_LAS_Matrix;
71
72
namespace
N_NLS_NOX {
73
74
class
AugmentLinSys
{
75
76
public
:
77
78
//! Ctor.
79
AugmentLinSys
(){};
80
81
//! Dtor.
82
~AugmentLinSys
() {};
83
84
//! Set the progress variable (time step size for pseudo transient).
85
virtual
void
setProgressVariable
(
double
value
) = 0;
86
87
//! Augments the Residual.
88
virtual
void
augmentResidual
(
const
N_LAS_Vector * solution,
89
N_LAS_Vector * residual_vector) = 0;
90
91
//! Augments the Jacobian.
92
virtual
void
augmentJacobian
(N_LAS_Matrix * jacobian) = 0;
93
94
};
95
96
}
97
98
#endif
99
src
NonlinearSolverPKG
include
N_NLS_NOX_AugmentLinSys.h
Generated on Mon Mar 24 2014 10:54:40 for Xyce by
1.8.3.1