小编AdM*_*AdM的帖子

4D张量旋转的优化

我必须在斯托克斯求解器中每个时间步执行 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)

arrays math julia tensor

4
推荐指数
1
解决办法
129
查看次数

标签 统计

arrays ×1

julia ×1

math ×1

tensor ×1