ryujin
2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
include
ryujin
interface
time_integrator.h
Go to the documentation of this file.
1
//
2
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3
// Copyright (C) 2026 by the ryujin authors
4
//
5
6
#pragma once
7
8
#include <ryujin/base/compile_time_options.h>
9
#include <
ryujin/base/convenience_macros.h
>
10
#include <
ryujin/linear_algebra/state_vector.h
>
11
12
#include <deal.II/base/parameter_acceptor.h>
13
14
#include <limits>
15
#include <string>
16
17
namespace
ryujin
18
{
19
namespace
Interface
20
{
30
template
<
int
dim,
typename
Number =
double
>
31
class
TimeIntegrator
:
public
dealii::ParameterAcceptor
32
{
33
public
:
38
43
virtual
void
prepare
() = 0;
44
46
50
56
virtual
void
prepare_state_vector
(
StateVector<Number>
&state_vector,
57
Number t)
const
= 0;
58
72
virtual
Number
73
step
(
StateVector<Number>
&state_vector,
74
Number t,
75
Number tau,
76
Number tau_max = std::numeric_limits<Number>::max()) = 0;
77
79
83
89
ACCESSOR_READ_ONLY
(time_stepping_scheme_name)
90
91
99
ACCESSOR_READ_ONLY
(efficiency)
100
101
//@}
102
103
protected
:
107
explicit
TimeIntegrator
(
const
std::string &subsection)
108
: ParameterAcceptor(subsection)
109
,
efficiency_
(Number(1.))
110
{
111
}
112
113
std::string
time_stepping_scheme_name_
;
114
Number
efficiency_
;
115
};
116
}
// namespace Interface
117
}
// namespace ryujin
ryujin::Interface::TimeIntegrator
Definition
time_integrator.h:32
ryujin::Interface::TimeIntegrator::TimeIntegrator
TimeIntegrator(const std::string &subsection)
Definition
time_integrator.h:107
ryujin::Interface::TimeIntegrator::prepare_state_vector
virtual void prepare_state_vector(StateVector< Number > &state_vector, Number t) const =0
ryujin::Interface::TimeIntegrator::step
virtual Number step(StateVector< Number > &state_vector, Number t, Number tau, Number tau_max=std::numeric_limits< Number >::max())=0
ryujin::Interface::TimeIntegrator::time_stepping_scheme_name_
std::string time_stepping_scheme_name_
Definition
time_integrator.h:113
ryujin::Interface::TimeIntegrator::prepare
virtual void prepare()=0
ryujin::Interface::TimeIntegrator::efficiency_
Number efficiency_
Definition
time_integrator.h:114
convenience_macros.h
ACCESSOR_READ_ONLY
#define ACCESSOR_READ_ONLY(member)
Definition
convenience_macros.h:168
ryujin
Definition
computing_timer.h:22
state_vector.h
ryujin::StateVector
Definition
state_vector.h:62
Generated by
1.9.8