diff --git a/src/base/stdUtils.nim b/src/base/stdUtils.nim index be37f48e..2e803211 100644 --- a/src/base/stdUtils.nim +++ b/src/base/stdUtils.nim @@ -165,6 +165,11 @@ proc `-`*[T1,T2](x: seq[T1], y: openArray[T2]): auto {.inline,noInit.} = r[i] = x[i] - y[i] r +proc `:=`*[T](r: var openArray[T], x: openArray[T]) {.inline.} = + let n = r.len + for i in 0.. 0: + if ig > -1: #printf0("svdvec %3i %3i %5i %13g %13g %13g %13g\x0A", # i, ib, ig, ev, x, rsq, dvec_get(tg, i0)) echo "svdvec $# $# $# $# $# $# $#" % [$i, $ib, $ig, $ev, $x, $rsq, $tg[i0]] - if ig > 10 or rsq < rsqstop: + if ig >= k-1 or rsq < rsqstop: if ig == 0 and x < dotstop: ib = i break if ig == 0: diff --git a/src/physics/stagD.nim b/src/physics/stagD.nim index 7205a279..b974dccf 100644 --- a/src/physics/stagD.nim +++ b/src/physics/stagD.nim @@ -278,6 +278,39 @@ template stagDM*(sd:StaggeredD; r:Field; g:openArray[Field2]; #threadBarrier() toc("boundaryB") +# modified D: Df + Db +template stagDFBX*(sd:StaggeredD; r:Field; g:openArray[Field2]; + x:Field3; expFlops:int; exp:untyped) = + tic() + for mu in 0..