[pyfr] 21/32: Implement routine to check if pyramids have a non-parallelogram base.

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Thu Apr 21 08:21:52 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 2ad3d7dd0db8e4d89b9d728dc27f507f906c6f7d
Author: aerojspark <jin-seok.park at imperial.ac.uk>
Date:   Wed Mar 30 00:25:51 2016 +0100

    Implement routine to check if pyramids have a non-parallelogram base.
---
 pyfr/readers/base.py | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/pyfr/readers/base.py b/pyfr/readers/base.py
index c18ecdc..172ca63 100644
--- a/pyfr/readers/base.py
+++ b/pyfr/readers/base.py
@@ -53,6 +53,23 @@ class NodalMeshAssembler(object):
         self._felespent, self._bfacespents, self._pfacespents = pents
         self._etype_map, self._petype_fnmap, self._nodemaps = maps
 
+    def _check_pyr_parallelogram(self, foeles):
+        nodepts = self._nodepts
+
+        # Find PyFR node map for the quad face
+        fnmap = self._petype_fnmap['pyr']['quad'][0]
+        pfnmap = self._nodemaps.from_pyfr['quad', 4][fnmap]
+
+        # Face nodes
+        fpts = np.array([[nodepts[i] for i in fidx]
+                         for fidx in foeles[:, pfnmap]])
+        fpts = fpts.swapaxes(0, 1)
+
+        # Check parallelogram or not
+        if np.any(np.abs(fpts[0] - fpts[1] - fpts[2] + fpts[3]) > 1e-10):
+            raise ValueError('Pyramids with non-parallelogram bases are '
+                             'currently unsupported')
+
     def _to_first_order(self, elemap):
         foelemap = {}
         for (etype, epent), eles in elemap.items():
@@ -64,6 +81,10 @@ class NodalMeshAssembler(object):
 
             foelemap[petype, epent] = eles[:,:focount]
 
+            # Check if pyramids have a parallelogram base or not
+            if petype == 'pyr':
+                self._check_pyr_parallelogram(foelemap[petype, epent])
+
         return foelemap
 
     def _split_fluid(self, elemap):

-- 
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