[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