[pyfr] 62/88: Minor improvements to start up time.

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Nov 16 12:05:30 UTC 2016


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch master
in repository pyfr.

commit 7f6bc2e98725161404b6b2669956e867a1a2d143
Author: Freddie Witherden <freddie at witherden.org>
Date:   Tue Jul 12 10:11:20 2016 -0700

    Minor improvements to start up time.
---
 pyfr/backends/base/backend.py          | 12 +++++++-----
 pyfr/backends/base/types.py            | 10 +++++-----
 pyfr/solvers/base/elements.py          | 14 ++++++++------
 pyfr/solvers/base/inters.py            |  4 ++--
 pyfr/solvers/baseadvecdiff/elements.py |  2 +-
 5 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/pyfr/backends/base/backend.py b/pyfr/backends/base/backend.py
index e28e9f2..82feacd 100644
--- a/pyfr/backends/base/backend.py
+++ b/pyfr/backends/base/backend.py
@@ -148,13 +148,15 @@ class BaseBackend(object, metaclass=ABCMeta):
     def xchg_matrix_for_view(self, view, tags=set()):
         return self.xchg_matrix((view.nvrow, view.nvcol, view.n), tags=tags)
 
-    def view(self, matmap, rcmap, rstridemap=None, vshape=tuple(), tags=set()):
-        return self.view_cls(self, matmap, rcmap, rstridemap, vshape, tags)
+    def view(self, matmap, rmap, cmap, rstridemap=None, vshape=tuple(),
+             tags=set()):
+        return self.view_cls(self, matmap, rmap, cmap, rstridemap, vshape,
+                             tags)
 
-    def xchg_view(self, matmap, rcmap, rstridemap=None, vshape=tuple(),
+    def xchg_view(self, matmap, rmap, cmap, rstridemap=None, vshape=tuple(),
                   tags=set()):
-        return self.xchg_view_cls(self, matmap, rcmap, rstridemap, vshape,
-                                  tags)
+        return self.xchg_view_cls(self, matmap, rmap, cmap, rstridemap,
+                                  vshape, tags)
 
     def kernel(self, name, *args, **kwargs):
         for prov in self._providers:
diff --git a/pyfr/backends/base/types.py b/pyfr/backends/base/types.py
index e34fe19..c5613a9 100644
--- a/pyfr/backends/base/types.py
+++ b/pyfr/backends/base/types.py
@@ -209,7 +209,7 @@ class MatrixBank(Sequence):
 
 
 class View(object):
-    def __init__(self, backend, matmap, rcmap, rstridemap, vshape, tags):
+    def __init__(self, backend, matmap, rmap, cmap, rstridemap, vshape, tags):
         self.n = len(matmap)
         self.nvrow = vshape[-2] if len(vshape) == 2 else 1
         self.nvcol = vshape[-1] if len(vshape) >= 1 else 1
@@ -248,8 +248,8 @@ class View(object):
             offset[ix], leaddim[ix] = m.offset // m.itemsize, m.leaddim
 
         # Row/column displacements
-        rowdisp = rcmap[:, 0]*leaddim
-        coldisp = (rcmap[:, 1] // k)*(self.nvcol*k) + rcmap[:, 1] % k
+        rowdisp = rmap*leaddim
+        coldisp = (cmap // k)*(self.nvcol*k) + cmap % k
 
         mapping = (offset + rowdisp + coldisp)[None,:]
         self.mapping = backend.base_matrix_cls(
@@ -265,9 +265,9 @@ class View(object):
 
 
 class XchgView(object):
-    def __init__(self, backend, matmap, rcmap, rstridemap, vshape, tags):
+    def __init__(self, backend, matmap, rmap, cmap, rstridemap, vshape, tags):
         # Create a normal view
-        self.view = backend.view(matmap, rcmap, rstridemap, vshape, tags)
+        self.view = backend.view(matmap, rmap, cmap, rstridemap, vshape, tags)
 
         # Dimensions
         self.n = n = self.view.n
diff --git a/pyfr/solvers/base/elements.py b/pyfr/solvers/base/elements.py
index 4b453f2..650c0a8 100644
--- a/pyfr/solvers/base/elements.py
+++ b/pyfr/solvers/base/elements.py
@@ -103,9 +103,9 @@ class BaseElements(object, metaclass=ABCMeta):
 
     @lazyprop
     def _srtd_face_fpts(self):
-        plocfpts = self.plocfpts.transpose(1, 2, 0).tolist()
+        plocfpts = self.plocfpts.transpose(1, 2, 0)
 
-        return [[fuzzysort(pts, ffpts) for pts in plocfpts]
+        return [[np.array(fuzzysort(pts.tolist(), ffpts)) for pts in plocfpts]
                 for ffpts in self.basis.facefpts]
 
     @abstractproperty
@@ -346,17 +346,19 @@ class BaseElements(object, metaclass=ABCMeta):
     def get_scal_fpts_for_inter(self, eidx, fidx):
         nfp = self.nfacefpts[fidx]
 
-        rcmap = [(fpidx, eidx) for fpidx in self._srtd_face_fpts[fidx][eidx]]
+        rmap = self._srtd_face_fpts[fidx][eidx]
+        cmap = (eidx,)*nfp
 
-        return (self._scal_fpts.mid,)*nfp, rcmap
+        return (self._scal_fpts.mid,)*nfp, rmap, cmap
 
     def get_vect_fpts_for_inter(self, eidx, fidx):
         nfp = self.nfacefpts[fidx]
 
-        rcmap = [(fpidx, eidx) for fpidx in self._srtd_face_fpts[fidx][eidx]]
+        rmap = self._srtd_face_fpts[fidx][eidx]
+        cmap = (eidx,)*nfp
         rstri = (self.nfpts,)*nfp
 
-        return (self._vect_fpts.mid,)*nfp, rcmap, rstri
+        return (self._vect_fpts.mid,)*nfp, rmap, cmap, rstri
 
     def get_ploc_for_inter(self, eidx, fidx):
         fpts_idx = self._srtd_face_fpts[fidx][eidx]
diff --git a/pyfr/solvers/base/inters.py b/pyfr/solvers/base/inters.py
index 7b77d2c..6f10d9d 100644
--- a/pyfr/solvers/base/inters.py
+++ b/pyfr/solvers/base/inters.py
@@ -13,10 +13,10 @@ def _get_inter_objs(interside, getter, elemap):
 
 def get_opt_view_perm(interside, mat, elemap):
     vm = _get_inter_objs(interside, mat, elemap)
-    matmap, rcmap = [np.concatenate([m[i] for m in vm]) for i in range(2)]
+    mmap, rmap, cmap = [np.concatenate([m[i] for m in vm]) for i in range(3)]
 
     # Sort
-    return np.lexsort((matmap, rcmap[:,1], rcmap[:,0]))
+    return np.lexsort((cmap, rmap, mmap))
 
 
 class BaseInters(object):
diff --git a/pyfr/solvers/baseadvecdiff/elements.py b/pyfr/solvers/baseadvecdiff/elements.py
index 0e5e66b..a77fc3e 100644
--- a/pyfr/solvers/baseadvecdiff/elements.py
+++ b/pyfr/solvers/baseadvecdiff/elements.py
@@ -113,4 +113,4 @@ class BaseAdvectionDiffusionElements(BaseAdvectionElements):
 
     def get_artvisc_fpts_for_inter(self, eidx, fidx):
         nfp = self.nfacefpts[fidx]
-        return (self.artvisc.mid,)*nfp, ((0, eidx),)*nfp
+        return (self.artvisc.mid,)*nfp, (0,)*nfp, (eidx,)*nfp

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/pyfr.git



More information about the debian-science-commits mailing list