Reference documentation for deal.II version 9.5.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\}}\)
Loading...
Searching...
No Matches
discrete_time.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2019 - 2022 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#ifndef dealii_discrete_time_h
17#define dealii_discrete_time_h
18
19#include <deal.II/base/config.h>
20
22
233{
234public:
255 DiscreteTime(const double start_time,
256 const double end_time,
257 const double desired_start_step_size = 0.);
258
262 double
263 get_current_time() const;
264
272 double
273 get_next_time() const;
274
281 double
282 get_previous_time() const;
283
287 double
288 get_start_time() const;
289
297 double
298 get_end_time() const;
299
303 bool
304 is_at_start() const;
305
309 bool
310 is_at_end() const;
311
321 double
322 get_next_step_size() const;
323
329 double
331
336 unsigned int
337 get_step_number() const;
338
350 void
351 set_desired_next_step_size(const double time_step_size);
352
366 void
367 set_next_step_size(const double time_step_size);
368
387 void
388 advance_time();
389
394 void
395 restart();
396
397private:
402
406 double end_time;
407
412
425 double next_time;
426
431
436
441 unsigned int step_number;
442};
443
444
445/*---------------------- Inline functions ------------------------------*/
446
447
448inline double
450{
451 return start_time;
452}
453
454
455
456inline double
458{
459 return end_time;
460}
461
462
463
464inline bool
466{
467 return step_number == 0;
468}
469
470
471
472inline bool
474{
475 return current_time == end_time;
476}
477
478
479
480inline double
482{
483 return next_time - current_time;
484}
485
486
487
488inline double
490{
492}
493
494
495
496inline double
498{
499 return current_time;
500}
501
502
503
504inline double
506{
507 return next_time;
508}
509
510
511
512inline double
514{
515 return previous_time;
516}
517
518
519
520inline unsigned int
522{
523 return step_number;
524}
525
526
528
529#endif
double get_previous_time() const
double get_next_step_size() const
void set_desired_next_step_size(const double time_step_size)
unsigned int get_step_number() const
double previous_time
bool is_at_end() const
double get_current_time() const
bool is_at_start() const
void set_next_step_size(const double time_step_size)
double get_next_time() const
double get_previous_step_size() const
void advance_time()
double current_time
double start_step_size
unsigned int step_number
double get_start_time() const
double get_end_time() const
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:472
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:473