49 #ifndef Xyce_N_NLS_NonLinearSolver_h
50 #define Xyce_N_NLS_NonLinearSolver_h
54 #include <Teuchos_RefCountPtr.hpp>
55 using Teuchos::RefCountPtr;
61 #include <N_UTL_Misc.h>
62 #include <N_UTL_fwd.h>
68 #include <N_TOP_Topology.h>
81 class N_LAS_PrecondFactory;
86 using Teuchos::RefCountPtr;
108 virtual bool setOptions(
const N_UTL_OptionBlock& OB) = 0;
110 virtual bool setHBOptions(
const N_UTL_OptionBlock& OB) = 0;
139 #ifdef Xyce_DEBUG_NONLINEAR
140 virtual int getDebugLevel()
const = 0;
141 virtual bool getScreenOutputFlag ()
const=0;
142 virtual double getDebugMinTime()
const = 0;
143 virtual double getDebugMaxTime()
const = 0;
144 virtual int getDebugMinTimeStep()
const = 0;
145 virtual int getDebugMaxTimeStep()
const = 0;
146 virtual bool getMMFormat ()
const = 0;
178 #ifdef Xyce_DEBUG_NONLINEAR
180 void debugOutput1 (N_LAS_Matrix & jacobian, N_LAS_Vector & rhs);
181 void debugOutput3 (N_LAS_Vector & dxVector, N_LAS_Vector & xVector);
183 void debugOutputDAE();
185 #ifdef Xyce_DEBUG_VOLTLIM
186 void debugOutputJDX_VOLTLIM ();
189 void setDebugFlags ();
192 virtual bool applyJacobian(
const N_LAS_Vector& input, N_LAS_Vector& result);
211 #ifdef Xyce_DEBUG_VOLTLIM
212 N_LAS_Matrix* jacTestMatrixPtr_;
213 N_LAS_Matrix* dFdxTestMatrixPtr_;
214 N_LAS_Matrix* dQdxTestMatrixPtr_;
215 N_LAS_Vector* dxVoltlimVectorPtr_;
216 N_LAS_Vector* jdxVLVectorPtr_;
217 N_LAS_Vector* fdxVLVectorPtr_;
218 N_LAS_Vector* qdxVLVectorPtr_;
405 retCodes_ = retCodesTmp;