Gyselalib++
iadvectionrp.hpp
1 // SPDX-License-Identifier: MIT
2 
3 #pragma once
4 #include <ddc/ddc.hpp>
5 
6 #include "ddc_aliases.hpp"
7 #include "geometry.hpp"
8 
13 {
14 public:
15  virtual ~IAdvectionRTheta() = default;
16 
30  virtual host_t<DFieldRTheta> operator()(
31  host_t<DFieldRTheta> allfdistribu,
32  host_t<DConstVectorFieldRTheta<X, Y>> advection_field,
33  double const dt) const = 0;
34 
51  virtual host_t<DFieldRTheta> operator()(
52  host_t<DFieldRTheta> allfdistribu,
53  host_t<DConstVectorFieldRTheta<R, Theta>> advection_field,
54  CoordXY const& advection_field_xy_center,
55  double const dt) const = 0;
56 };
Define the base class of 2D advection operators in polar index range.
Definition: iadvectionrp.hpp:13
virtual host_t< DFieldRTheta > operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< R, Theta >> advection_field, CoordXY const &advection_field_xy_center, double const dt) const =0
Advect a function along the advection field given on dt with a given advection field along RTheta.
virtual host_t< DFieldRTheta > operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< X, Y >> advection_field, double const dt) const =0
Advect a function along the advection field given on dt with a given advection field along XY.
A class which holds multiple (scalar) fields in order to represent a vector field.
Definition: vector_field.hpp:64