From 20a4255b18af25567e980e12eb15177a20650f72 Mon Sep 17 00:00:00 2001 From: Koen Hillewaert <koen.hillewaert@cenaero.be> Date: Wed, 17 Sep 2014 17:56:45 +0000 Subject: [PATCH] bug fix for pyramid refinement - function space not located since by default a static cast to a polynomial basis is used -> specialized for pyramids --- Post/PViewDataGModel.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Post/PViewDataGModel.cpp b/Post/PViewDataGModel.cpp index 5eaace718e..4860ab90b5 100644 --- a/Post/PViewDataGModel.cpp +++ b/Post/PViewDataGModel.cpp @@ -144,12 +144,18 @@ bool PViewDataGModel::finalize(bool computeMinMax, const std::string &interpolat // the mesh is curved MElement *e = _getOneElementOfGivenType(model, it->first); if(e && e->getPolynomialOrder() > 1 && e->getFunctionSpace()){ - const polynomialBasis *fs = (polynomialBasis*) e->getFunctionSpace(); - setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1]), + if (it->first == TYPE_PYR) { // KH 18/9/2014 very nasty fix since pyramids /= polynomial + const pyramidalBasis *fs = (pyramidalBasis*) e->getFunctionSpace(); + setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1]), fs->coefficients, fs->monomials); + } + else { + const polynomialBasis *fs = (polynomialBasis*) e->getFunctionSpace(); + setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1]), + fs->coefficients, fs->monomials); + } } - else - setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1])); + else setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1])); } else if(it->second.size() == 4){ // use provided matrices for field and geometry -- GitLab