From 0073e52235acf924334b294def8471867f8e026e Mon Sep 17 00:00:00 2001 From: Ruth Sabariego <ruth.sabariego@esat.kuleuven.be> Date: Wed, 22 Oct 2008 07:44:26 +0000 Subject: [PATCH] more about pyramids... --- Geo/MElement.h | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/Geo/MElement.h b/Geo/MElement.h index ce3c8a8f41..5181230ae0 100644 --- a/Geo/MElement.h +++ b/Geo/MElement.h @@ -2550,25 +2550,32 @@ class MPyramid : public MElement { virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) { if(w == 1.) { - for(int i = 0; i < 4; i++){ - s[i][0] = 0.25; - s[i][1] = 0.25; - s[i][2] = -0.25; - } + s[0][0] = -0.25 ; + s[0][1] = -0.25 ; + s[0][2] = -0.25 ; + s[1][0] = 0.25 ; + s[1][1] = -0.25 ; + s[1][2] = -0.25 ; + s[2][0] = 0.25 ; + s[2][1] = 0.25 ; + s[2][2] = -0.25 ; + s[3][0] = -0.25 ; + s[3][1] = 0.25 ; + s[3][2] = -0.25 ; } else{ - s[0][0] = 0.25 * (-(1. - v) + v * w / (1. - w)); - s[0][1] = 0.25 * (-(1. - u) + u * w / (1. - w)); - s[0][2] = 0.25 * (-1. + u * v / (1. - w) / (1. - w)); - s[1][0] = 0.25 * ( (1. - v) + v * w / (1. - w)); - s[1][1] = 0.25 * (-(1. + u) + u * w / (1. - w)); - s[1][2] = 0.25 * (-1. + u * v / (1. - w) / (1. - w)); - s[2][0] = 0.25 * ( (1. + v) + v * w / (1. - w)); - s[2][1] = 0.25 * ( (1. + u) + u * w / (1. - w)); - s[2][2] = 0.25 * (-1. + u * v / (1. - w) / (1. - w)); - s[3][0] = 0.25 * (-(1. + v) + v * w / (1. - w)); - s[3][1] = 0.25 * ( (1. - u) + u * w / (1. - w)); - s[3][2] = 0.25 * (-1. + u * v / (1. - w) / (1. - w)); + s[0][0] = 0.25 * ( -(1. - v) + v * w / (1. - w)) ; + s[0][1] = 0.25 * ( -(1. - u) + u * w / (1. - w)) ; + s[0][2] = 0.25 * ( -1. + u * v / (1. - w) + u * v * w / (1. - w) / (1. - w)) ; + s[1][0] = 0.25 * ( (1. - v) - v * w / (1. - w)) ; + s[1][1] = 0.25 * ( -(1. + u) - u * w / (1. - w)) ; + s[1][2] = 0.25 * ( -1. - u * v / (1. - w) - u * v * w / (1. - w) / (1. - w)) ; + s[2][0] = 0.25 * ( (1. + v) + v * w / (1. - w)) ; + s[2][1] = 0.25 * ( (1. + u) + u * w / (1. - w)) ; + s[2][2] = 0.25 * ( -1. + u * v / (1. - w) + u * v * w / (1. - w) / (1. - w)) ; + s[3][0] = 0.25 * ( -(1. + v) - v * w / (1. - w)) ; + s[3][1] = 0.25 * ( (1. - u) - u * w / (1. - w)) ; + s[3][2] = 0.25 * ( -1. - u * v / (1. - w) - u * v * w / (1. - w) / (1. - w)) ; } s[4][0] = 0.; s[4][1] = 0.; -- GitLab