Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
event.cc
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2010 - 2018 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE.md at
12 // the top level directory of deal.II.
13 //
14 // ---------------------------------------------------------------------
15 
16 
17 #include <deal.II/base/event.h>
18 
19 DEAL_II_NAMESPACE_OPEN
20 
21 // TODO: Thread safety
22 
23 namespace Algorithms
24 {
25  std::vector<std::string> Event::names;
26 
27  Event
28  Event::assign(const std::string &name)
29  {
30  unsigned int index = names.size();
31  names.emplace_back(name);
32 
33  Event result;
34  // The constructor generated an
35  // object with all flags equal
36  // zero. Now we set the new one.
37  result.flags[index] = true;
38 
39  return result;
40  }
41 
42 
44  : all_true(false)
45  , flags(names.size(), false)
46  {}
47 
48 
49  void
51  {
52  all_true = false;
53  std::fill(flags.begin(), flags.end(), false);
54  }
55 
56 
57  void
59  {
60  all_true = true;
61  }
62 
63  namespace Events
64  {
65  const Event initial = Event::assign("Initial");
66  const Event remesh = Event::assign("Remesh");
67  const Event bad_derivative = Event::assign("Bad Derivative");
68  const Event new_time = Event::assign("New Time");
69  const Event new_timestep_size = Event::assign("New Time Step Size");
70  } // namespace Events
71 } // namespace Algorithms
72 
73 DEAL_II_NAMESPACE_CLOSE
const Event remesh
Definition: event.cc:66
std::vector< bool > flags
Definition: event.h:132
const Event bad_derivative
Definition: event.cc:67
const Event new_timestep_size
Definition: event.cc:69
void all()
Definition: event.cc:58
const Event initial
Definition: event.cc:65
void clear()
Definition: event.cc:50
static Event assign(const std::string &name)
Definition: event.cc:28
const Event new_time
Definition: event.cc:68
static std::vector< std::string > names
Definition: event.h:138