ALPS MPS Codes
Reference documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
time_limit_exception.h
Go to the documentation of this file.
1 /*****************************************************************************
2  *
3  * ALPS MPS DMRG Project
4  *
5  * Copyright (C) 2013 Institute for Theoretical Physics, ETH Zurich
6  * 2013-2013 by Michele Dolfi <dolfim@phys.ethz.ch>
7  *
8  * This software is part of the ALPS Applications, published under the ALPS
9  * Application License; you can use, redistribute it and/or modify it under
10  * the terms of the license, either version 1 or (at your option) any later
11  * version.
12  *
13  * You should have received a copy of the ALPS Application License along with
14  * the ALPS Applications; see the file LICENSE.txt. If not, the license is also
15  * available from http://alps.comp-phys.org/.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19  * FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
20  * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
21  * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
22  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23  * DEALINGS IN THE SOFTWARE.
24  *
25  *****************************************************************************/
26 
27 #ifndef MAQUIS_DMRG__UTILS_TIME_LIMIT_EXCEPTION_H
28 #define MAQUIS_DMRG__UTILS_TIME_LIMIT_EXCEPTION_H
29 
30 #include <string>
31 #include <boost/lexical_cast.hpp>
32 #include <stdexcept>
33 
34 namespace dmrg {
35  class time_limit : public std::runtime_error {
36  public:
37  time_limit() : std::runtime_error("time limit reached") {}
38 
39  time_limit(int sw, int st)
40  : std::runtime_error( std::string("time limit reached. current status is [ ")
41  + std::string("sweep=") + boost::lexical_cast<std::string>(sw) + std::string(", ")
42  + std::string("site=" ) + boost::lexical_cast<std::string>(st) + std::string(" ]."))
43  , sweep_(sw)
44  , site_(st)
45  { }
46 
47  int sweep() const throw()
48  { return sweep_; }
49 
50  int site() const throw()
51  { return site_; }
52 
53  private:
54  int sweep_, site_;
55  };
56 }
57 
58 #endif
time_limit(int sw, int st)