1
// Div, grad, curl and all that
3
#include <blitz/array.h>
4
#include <blitz/tinyvec.h>
6
BZ_USING_NAMESPACE(blitz)
7
BZ_USING_NAMESPACE(blitz::tensor)
9
BZ_DECLARE_STENCIL8(test,Ax,Ay,Az,curlA,divA,gradAx,gradAy,gradAz)
10
curlA = curl(Ax,Ay,Az);
19
Array<float,3> Ax, Ay, Az, divA;
20
Array<TinyVector<float,3>,3> gradAx, gradAy, gradAz, curlA;
22
allocateArrays(shape(N,N,N), Ax, Ay, Az, divA);
23
allocateArrays(shape(N,N,N), gradAx, gradAy, gradAz, curlA);
25
Array<float,1> cx(N), cy(N), cz(N);
26
float h = 1.0 / (N-1);
32
Ax = cos(cx(i)) + cos(cy(j)) + cos(cz(k));
33
Ay = sin(cx(i)) + sin(cy(j)) + sin(cz(k));
34
Az = exp(cx(i)) + exp(cy(j)) + exp(cz(k));
36
applyStencil(test(), Ax, Ay, Az, curlA, divA, gradAx, gradAy, gradAz);