Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
source
base
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
43
Event::Event
()
44
: all_true(false)
45
, flags(names.size(), false)
46
{}
47
48
49
void
50
Event::clear
()
51
{
52
all_true
=
false
;
53
std::fill(
flags
.begin(),
flags
.end(),
false
);
54
}
55
56
57
void
58
Event::all
()
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
Algorithms::Event
Definition:
event.h:49
Algorithms::Event::all_true
bool all_true
Definition:
event.h:127
Algorithms::Events::remesh
const Event remesh
Definition:
event.cc:66
Algorithms::Event::flags
std::vector< bool > flags
Definition:
event.h:132
Algorithms::Events::bad_derivative
const Event bad_derivative
Definition:
event.cc:67
Algorithms
Definition:
newton.h:31
Algorithms::Events::new_timestep_size
const Event new_timestep_size
Definition:
event.cc:69
Algorithms::Event::all
void all()
Definition:
event.cc:58
Algorithms::Event::Event
Event()
Definition:
event.cc:43
Algorithms::Events::initial
const Event initial
Definition:
event.cc:65
Algorithms::Event::clear
void clear()
Definition:
event.cc:50
Algorithms::Event::assign
static Event assign(const std::string &name)
Definition:
event.cc:28
Algorithms::Events::new_time
const Event new_time
Definition:
event.cc:68
Algorithms::Event::names
static std::vector< std::string > names
Definition:
event.h:138
Generated by
1.8.14