5#include "ddc_alias_inline_functions.hpp"
6#include "ddc_aliases.hpp"
7#include "ddc_helper.hpp"
8#include "itimestepper.hpp"
9#include "vector_field_common.hpp"
31 class ExecSpace = Kokkos::DefaultExecutionSpace>
46 IdxRange
const m_idx_range;
56 explicit Euler(IdxRange idx_range) : m_idx_range(idx_range) {}
74 ExecSpace
const& exec_space,
85 dy_calculator(k1, get_const_field(y));
89 y_update(y, get_const_field(k1), dt);
See DerivFieldMemImplementation.
Definition derivative_field.hpp:10
See DerivFieldImplementation.
Definition derivative_field.hpp:20
A class which provides an implementation of an explicit Euler method.
Definition euler.hpp:33
typename DerivFieldMem::view_type DerivConstField
The constant type of the derivatives values of the function being evolved.
Definition itimestepper.hpp:59
typename FieldMem::span_type ValField
The type of the values of the function being evolved.
Definition itimestepper.hpp:50
void update(ExecSpace const &exec_space, ValField y, double dt, std::function< void(DerivField, ValConstField)> dy_calculator, std::function< void(ValField, DerivConstField, double)> y_update) const final
Carry out one step of the explicit Euler scheme.
Definition euler.hpp:73
typename FieldMem::view_type ValConstField
The constant type of the values of the function being evolved.
Definition itimestepper.hpp:53
Euler(IdxRange idx_range)
Create a Euler object.
Definition euler.hpp:56
The superclass from which all timestepping methods inherit.
Definition itimestepper.hpp:23
typename FieldMem::discrete_domain_type IdxRange
The type of the index range on which the values of the function are defined.
Definition itimestepper.hpp:46
typename DerivFieldMem::span_type DerivField
The type of the derivatives of the function being evolved.
Definition itimestepper.hpp:56
typename DerivFieldMem::view_type DerivConstField
The constant type of the derivatives values of the function being evolved.
Definition itimestepper.hpp:59
typename FieldMem::span_type ValField
The type of the values of the function being evolved.
Definition itimestepper.hpp:50
void update(ValField y, double dt, std::function< void(DerivField, ValConstField)> dy_calculator) const
Carry out one step of the timestepping scheme.
Definition itimestepper.hpp:78
typename FieldMem::view_type ValConstField
The constant type of the values of the function being evolved.
Definition itimestepper.hpp:53