我必须在斯托克斯求解器中每个时间步执行 3x3x3x3 4D 张量的旋转 +100k 次,其中旋转的 4D 张量是 Crot[i,j,k,l] = Crot[i,j,k,l] + Q[m,i] * Q[n,j] * Q[o,k] * Q[p,l] * C[m,n,o,p],所有索引从 1 到 3。
到目前为止,我已经天真地用 Julia 编写了以下代码:
Q = rand(3,3)
C = rand(3,3,3,3)
Crot = Array{Float64}(undef,3,3,3,3)
function rotation_4d!(Crot::Array{Float64,4},Q::Array{Float64,2},C::Array{Float64,4})
aux = 0.0
for i = 1:3
for j = 1:3
for k = 1:3
for l = 1:3
for m = 1:3
for n = 1:3
for o = 1:3
for p = 1:3
aux += Q[m,i] * Q[n,j] * Q[o,k] …Run Code Online (Sandbox Code Playgroud)