[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