00001 // $Id: NOX_LineSearch_Utils_Counters.C,v 1.6 2006/08/22 00:01:27 rppawlo Exp $ 00002 // $Source: /space/CVS/Trilinos/packages/nox/src/NOX_LineSearch_Utils_Counters.C,v $ 00003 00004 //@HEADER 00005 // ************************************************************************ 00006 // 00007 // NOX: An Object-Oriented Nonlinear Solver Package 00008 // Copyright (2002) Sandia Corporation 00009 // 00010 // LOCA: Library of Continuation Algorithms Package 00011 // Copyright (2005) Sandia Corporation 00012 // 00013 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive 00014 // license for use of this work by or on behalf of the U.S. Government. 00015 // 00016 // This library is free software; you can redistribute it and/or modify 00017 // it under the terms of the GNU Lesser General Public License as 00018 // published by the Free Software Foundation; either version 2.1 of the 00019 // License, or (at your option) any later version. 00020 // 00021 // This library is distributed in the hope that it will be useful, but 00022 // WITHOUT ANY WARRANTY; without even the implied warranty of 00023 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00024 // Lesser General Public License for more details. 00025 // 00026 // You should have received a copy of the GNU Lesser General Public 00027 // License along with this library; if not, write to the Free Software 00028 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00029 // USA 00030 // 00031 // Questions? Contact Roger Pawlowski (rppawlo@sandia.gov) or 00032 // Eric Phipps (etphipp@sandia.gov), Sandia National Laboratories. 00033 // ************************************************************************ 00034 // CVS Information 00035 // $Source: /space/CVS/Trilinos/packages/nox/src/NOX_LineSearch_Utils_Counters.C,v $ 00036 // $Author: rppawlo $ 00037 // $Date: 2006/08/22 00:01:27 $ 00038 // $Revision: 1.6 $ 00039 // ************************************************************************ 00040 //@HEADER 00041 00042 #include "NOX_LineSearch_Utils_Counters.H" 00043 00044 #include "Teuchos_ParameterList.hpp" 00045 00046 NOX::LineSearch::Utils::Counters::Counters() 00047 { 00048 reset(); 00049 } 00050 00051 NOX::LineSearch::Utils::Counters::~Counters() 00052 { 00053 00054 } 00055 00056 void NOX::LineSearch::Utils::Counters::reset() 00057 { 00058 totalNumLineSearchCalls = 0; 00059 totalNumNonTrivialLineSearches = 0; 00060 totalNumFailedLineSearches = 0; 00061 totalNumIterations = 0; 00062 } 00063 00064 bool NOX::LineSearch::Utils::Counters::setValues(Teuchos::ParameterList& lineSearchParams) 00065 { 00066 Teuchos::ParameterList& outputList = lineSearchParams.sublist("Output"); 00067 outputList.set("Total Number of Line Search Calls", totalNumLineSearchCalls); 00068 outputList.set("Total Number of Non-trivial Line Searches", totalNumNonTrivialLineSearches); 00069 outputList.set("Total Number of Failed Line Searches", totalNumFailedLineSearches); 00070 outputList.set("Total Number of Line Search Inner Iterations", totalNumIterations); 00071 return true; 00072 } 00073 00074 void NOX::LineSearch::Utils::Counters::incrementNumLineSearches(int numLS) 00075 { 00076 totalNumLineSearchCalls += numLS; 00077 } 00078 00079 void NOX::LineSearch::Utils::Counters::incrementNumNonTrivialLineSearches(int numNonTrivialLS) 00080 { 00081 totalNumNonTrivialLineSearches += numNonTrivialLS; 00082 } 00083 00084 void NOX::LineSearch::Utils::Counters::incrementNumFailedLineSearches(int numFailedLS) 00085 { 00086 totalNumFailedLineSearches += numFailedLS; 00087 } 00088 00089 void NOX::LineSearch::Utils::Counters::incrementNumIterations(int numInnerIters) 00090 { 00091 totalNumIterations += numInnerIters; 00092 } 00093 00094 int NOX::LineSearch::Utils::Counters::getNumLineSearches() const 00095 { 00096 return totalNumLineSearchCalls; 00097 } 00098 00099 int NOX::LineSearch::Utils::Counters::getNumNonTrivialLineSearches() const 00100 { 00101 return totalNumNonTrivialLineSearches; 00102 } 00103 00104 int NOX::LineSearch::Utils::Counters::getNumFailedLineSearches() const 00105 { 00106 return totalNumFailedLineSearches; 00107 } 00108 00109 int NOX::LineSearch::Utils::Counters::getNumIterations() const 00110 { 00111 return totalNumIterations; 00112 }