curldiv.cpp

来自「A C++ class library for scientific compu」· C++ 代码 · 共 39 行

CPP
39
字号
// Div, grad, curl and all that#include <blitz/array.h>#include <blitz/tinyvec.h>BZ_USING_NAMESPACE(blitz)BZ_USING_NAMESPACE(blitz::tensor)BZ_DECLARE_STENCIL8(test,Ax,Ay,Az,curlA,divA,gradAx,gradAy,gradAz)    curlA = curl(Ax,Ay,Az);    divA = div(Ax,Ay,Az);    gradAx = grad3D(Ax);    gradAy = grad3D(Ay);    gradAz = grad3D(Az);BZ_STENCIL_ENDint main(){    Array<float,3> Ax, Ay, Az, divA;    Array<TinyVector<float,3>,3> gradAx, gradAy, gradAz, curlA;    const int N = 40;    allocateArrays(shape(N,N,N), Ax, Ay, Az, divA);    allocateArrays(shape(N,N,N), gradAx, gradAy, gradAz, curlA);    Array<float,1> cx(N), cy(N), cz(N);    float h = 1.0 / (N-1);    cx = h * i;    cy = h * i;    cz = h * i;    Ax = cos(cx(i)) + cos(cy(j)) + cos(cz(k));    Ay = sin(cx(i)) + sin(cy(j)) + sin(cz(k));    Az = exp(cx(i)) + exp(cy(j)) + exp(cz(k));    applyStencil(test(), Ax, Ay, Az, curlA, divA, gradAx, gradAy, gradAz);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?