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>
67 #include <N_TOP_Topology.h>
85 class N_LAS_PrecondFactory;
90 using Teuchos::RefCountPtr;
110 virtual bool setOptions(
const N_UTL_OptionBlock& OB) = 0;
112 virtual bool setHBOptions(
const N_UTL_OptionBlock& OB) = 0;
140 #ifdef Xyce_DEBUG_NONLINEAR
141 virtual int getDebugLevel()
const = 0;
142 virtual bool getScreenOutputFlag ()
const=0;
143 virtual double getDebugMinTime()
const = 0;
144 virtual double getDebugMaxTime()
const = 0;
145 virtual int getDebugMinTimeStep()
const = 0;
146 virtual int getDebugMaxTimeStep()
const = 0;
147 virtual bool getMMFormat ()
const = 0;
179 #ifdef Xyce_DEBUG_NONLINEAR
181 void debugOutput1 (N_LAS_Matrix & jacobian, N_LAS_Vector & rhs);
182 void debugOutput3 (N_LAS_Vector & dxVector, N_LAS_Vector & xVector);
184 void debugOutputDAE();
186 #ifdef Xyce_DEBUG_VOLTLIM
187 void debugOutputJDX_VOLTLIM ();
190 void setDebugFlags ();
193 virtual bool applyJacobian(
const N_LAS_Vector& input, N_LAS_Vector& result);
212 #ifdef Xyce_DEBUG_VOLTLIM
213 N_LAS_Matrix* jacTestMatrixPtr_;
214 N_LAS_Matrix* dFdxTestMatrixPtr_;
215 N_LAS_Matrix* dQdxTestMatrixPtr_;
216 N_LAS_Vector* dxVoltlimVectorPtr_;
217 N_LAS_Vector* jdxVLVectorPtr_;
218 N_LAS_Vector* fdxVLVectorPtr_;
219 N_LAS_Vector* qdxVLVectorPtr_;