Reference documentation for deal.II version 9.4.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
event.cc
Go to the documentation of this file.
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
20
21// TODO: Thread safety
22
23namespace 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
static std::vector< std::string > names
Definition: event.h:138
void clear()
Definition: event.cc:50
std::vector< bool > flags
Definition: event.h:132
static Event assign(const std::string &name)
Definition: event.cc:28
void all()
Definition: event.cc:58
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:442
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:443
const Event initial
Definition: event.cc:65
const Event new_time
Definition: event.cc:68
const Event new_timestep_size
Definition: event.cc:69
const Event remesh
Definition: event.cc:66
const Event bad_derivative
Definition: event.cc:67