Skip to content
Snippets Groups Projects
action.hpp 1.07 KiB
#ifndef ACTION_HPP_
#define ACTION_HPP_

#include "common.hpp"
#include "array.hpp"

template <typename Scalar, typename Shape>
inline Scalar S_2(array::Array<Scalar, Shape> Q)
{
    size_t nx = Q.dim(0);
    size_t ny = Q.dim(1);

    for (size_t i = 0; i < nx; ++i) {
        for (size_t j = 0; j < ny; ++j) {
            auto Q1 = Q.part(i,j).matrix();

            /* Sum over neighbors */
            for (int di = -1; di <= 1; ++di) {
                for (int dj = -1; dj <= 1; ++dj) {
                    if (i == 0 && di < 0)
                        continue;
                    if (i == nx-1 && di > 0)
                        continue;
                    if (j == 0 && dj < 0)
                        continue;
                    if (j == ny-1 && dj > 0)
                        continue;
                    if (di == 0 && dj == 0)
                        continue;

                    size_t i2 = i + di;
                    size_t j2 = j + dj;

                    auto Q2 = Q.part(i2,j2).matrix();
                }
            }
        }
    }

    return Scalar(0);
}



#endif