AMDiS  0.3
The Adaptive Multi-Dimensional Simulation Toolbox
ProblemInstat.inc.hpp
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 
6 #include <amdis/AdaptInfo.hpp>
7 
8 namespace AMDiS {
9 
10 template <class Traits>
12 {
13  AMDIS_FUNCNAME("ProblemInstat::transferInitialSolution()");
14 
15  test_exit(adaptInfo.time() == adaptInfo.startTime(),
16  "after initial solution: time != start time");
17  problemStat_->writeFiles(adaptInfo, true);
18 }
19 
20 
21 template <class Traits>
23 {
24  bool force = (adaptInfo.time() >= adaptInfo.endTime());
25  problemStat_->writeFiles(adaptInfo, force);
26 }
27 
28 
29 template <class Traits>
31 {
32  // create vector for old solution
33  if (initFlag.isSet(INIT_UH_OLD))
34  createUhOld();
35 }
36 
37 
38 template <class Traits>
40 {
41  AMDIS_FUNCNAME("ProblemInstat::createUhOld()");
42 
43  if (oldSolution_)
44  warning("oldSolution already created\n");
45  else // create oldSolution
46  oldSolution_.reset(new SolutionVector(*problemStat_->solutionVector()));
47 }
48 
49 
50 template <class Traits>
52 {
53  if (oldSolution_)
54  *oldSolution_ = *problemStat_->solutionVector();
55 }
56 
57 } // end namespace AMDiS
constexpr bool isSet(Flag const &f) const
Checks whether all set bits of f.flags_ are set in flags_ too.
Definition: Flag.hpp:156
The Flag class encapsulates flags which represents simple information. Used e.g. while mesh traversal...
Definition: Flag.hpp:13
void createUhOld()
Used in initialize() to create the oldSolution_.
Definition: ProblemInstat.inc.hpp:39
void closeTimestep(AdaptInfo &adaptInfo) override
Implementation of ProblemTimeInterface::closeTimestep().
Definition: ProblemInstat.inc.hpp:22
double endTime() const
Returns endTime_.
Definition: AdaptInfo.hpp:552
void initTimestep(AdaptInfo &adaptInfo) override
Implementation of ProblemTimeInterface::initTimestep().
Definition: ProblemInstat.inc.hpp:51
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
void transferInitialSolution(AdaptInfo &adaptInfo) override
Implementation of ProblemTimeInterface::transferInitialSolution().
Definition: ProblemInstat.inc.hpp:11
double startTime() const
Returns startTime_.
Definition: AdaptInfo.hpp:546
void initialize(Flag initFlag=INIT_NOTHING)
Initialisation of the problem.
Definition: ProblemInstat.inc.hpp:30
Holds adapt parameters and infos about the problem.
Definition: AdaptInfo.hpp:25
double const & time() const
Gets time_.
Definition: AdaptInfo.hpp:464
void test_exit(bool condition, std::string const &str, Args &&... args)
test for condition and in case of failure print message and exit
Definition: Output.hpp:163