1 #ifndef VTESTBED_CORE_WAVY_SURFACE_GENERATOR_HH 2 #define VTESTBED_CORE_WAVY_SURFACE_GENERATOR_HH 6 #include <vtestbed/base/blitz.hh> 7 #include <vtestbed/core/grid.hh> 8 #include <vtestbed/core/types.hh> 25 template <
class T,
int N>
26 class Wavy_surface_generator {
29 using grid_type = Grid<T,N>;
30 using array_type = Array<T,N>;
34 Wavy_surface_generator() =
default;
35 virtual ~Wavy_surface_generator() =
default;
36 Wavy_surface_generator(
const Wavy_surface_generator&) =
default;
37 Wavy_surface_generator& operator=(
const Wavy_surface_generator&) =
default;
40 generate(
const grid_type& grid) {
41 array_type result(grid.shape());
42 this->generate(grid, result);
47 generate(
const grid_type& grid, array_type& result) = 0;
50 operator()(
const grid_type& grid) {
51 return this->generate(grid);
55 operator()(
const grid_type& grid, array_type& result) {
56 this->generate(grid, result);
70 #endif // vim:filetype=cpp