00001 00005 class NonLinEqSolver_prm : public HandleId 00006 00007 { 00008 protected: 00009 00010 StringList subclasses; 00011 static Handle(NonLinEqSolver_prm) master; 00012 virtual NonLinEqSolver_prm* clone () { return new NonLinEqSolver_prm(); } 00013 00014 NonLinEqSolver_prm (); 00015 00016 public: 00017 00018 static NonLinEqSolver_prm* construct (); 00019 virtual ~NonLinEqSolver_prm () {} 00020 00021 String method; 00022 int max_iterations; 00023 real max_eps; 00024 real update_Jacobi; 00025 int stopping_criterion; 00026 Norm_type eps_norm_tp; 00027 real relaxation_prm; 00028 int max_eps_increases; 00029 int intermediate_results; 00030 int adjustments; 00031 SetOfNo(real) lambda; 00032 00033 00034 00035 00036 00037 void print (Os os) const; 00038 00039 static void defineStatic (MenuSystem& menu, int level = MAIN); 00040 void define (MenuSystem& menu, int level = MAIN) 00041 { defineStatic (menu, level); } 00042 void scan (MenuSystem& menu); 00043 00044 virtual NonLinEqMethod getMethod () const; 00045 virtual NonLinEqSolver* create () const; 00046 const StringList& hier () const { return subclasses; } 00047 static const StringList& hierStatic () { return master->hier(); } 00048 static void registerPrmSubclass (NonLinEqSolver_prm& sc) 00049 { master.rebind (sc); } 00050 static void unregisterPrmSubclass () 00051 { master.rebind (new NonLinEqSolver_prm()); } 00052 00053 COPY_CONSTRUCTOR(NonLinEqSolver_prm); 00054 ASSIGNMENT_OPERATOR(NonLinEqSolver_prm); 00055 }; 00056 00057