From 80ede05e5e0673a9eb5572f66b6cf646ff88cc45 Mon Sep 17 00:00:00 2001 From: ageay Date: Fri, 17 Jan 2014 07:03:59 +0000 Subject: [PATCH] Addition of QUAD8 to pass MEDReader tests. --- src/MEDCoupling/MEDCouplingFieldDiscretization.cxx | 14 ++++++++++++-- src/MEDCoupling/MEDCouplingFieldDiscretization.hxx | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx b/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx index b073ced20..159ce3f8f 100644 --- a/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx +++ b/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx @@ -66,12 +66,13 @@ const TypeOfField MEDCouplingFieldDiscretizationKriging::TYPE=ON_NODES_KR; // doc is here http://www.code-aster.org/V2/doc/default/fr/man_r/r3/r3.01.01.pdf const double MEDCouplingFieldDiscretizationGaussNE::FGP_SEG2[2]={1.,1.}; -const double MEDCouplingFieldDiscretizationGaussNE::FGP_SEG3[3]={0.5555555555555556,0.5555555555555556,0.8888888888888888}; +const double MEDCouplingFieldDiscretizationGaussNE::FGP_SEG3[3]={0.5555555555555556,0.8888888888888888,0.5555555555555556}; const double MEDCouplingFieldDiscretizationGaussNE::FGP_SEG4[4]={0.347854845137454,0.347854845137454,0.652145154862546,0.652145154862546}; const double MEDCouplingFieldDiscretizationGaussNE::FGP_TRI3[3]={0.16666666666666666,0.16666666666666666,0.16666666666666666}; const double MEDCouplingFieldDiscretizationGaussNE::FGP_TRI6[6]={0.0549758718227661,0.0549758718227661,0.0549758718227661,0.11169079483905,0.11169079483905,0.11169079483905}; const double MEDCouplingFieldDiscretizationGaussNE::FGP_TRI7[7]={0.062969590272413,0.062969590272413,0.062969590272413,0.066197076394253,0.066197076394253,0.066197076394253,0.1125}; const double MEDCouplingFieldDiscretizationGaussNE::FGP_QUAD4[4]={1.,1.,1.,1.}; +const double MEDCouplingFieldDiscretizationGaussNE::FGP_QUAD8[8]={1.,1.,1.,1.,1.,1.,1.,1.}; const double MEDCouplingFieldDiscretizationGaussNE::FGP_QUAD9[9]={0.30864197530864196,0.30864197530864196,0.30864197530864196,0.30864197530864196,0.49382716049382713,0.49382716049382713,0.49382716049382713,0.49382716049382713,0.7901234567901234}; const double MEDCouplingFieldDiscretizationGaussNE::FGP_TETRA4[4]={0.041666666666666664,0.041666666666666664,0.041666666666666664,0.041666666666666664}; const double MEDCouplingFieldDiscretizationGaussNE::FGP_PENTA6[6]={0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666}; @@ -79,7 +80,7 @@ const double MEDCouplingFieldDiscretizationGaussNE::FGP_HEXA8[8]={1.,1.,1.,1.,1. const double MEDCouplingFieldDiscretizationGaussNE::FGP_HEXA27[27]={0.1714677640603567,0.1714677640603567,0.1714677640603567,0.1714677640603567,0.1714677640603567,0.1714677640603567,0.1714677640603567,0.1714677640603567,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.27434842249657065,0.43895747599451296,0.43895747599451296,0.43895747599451296,0.43895747599451296,0.43895747599451296,0.43895747599451296,0.7023319615912208}; const double MEDCouplingFieldDiscretizationGaussNE::FGP_PYRA5[5]={0.13333333333333333,0.13333333333333333,0.13333333333333333,0.13333333333333333,0.13333333333333333}; const double MEDCouplingFieldDiscretizationGaussNE::REF_SEG2[2]={-1.,1.}; -const double MEDCouplingFieldDiscretizationGaussNE::REF_SEG3[3]={-1.,0.,1.}; +const double MEDCouplingFieldDiscretizationGaussNE::REF_SEG3[3]={-1.,1.,0.}; const double MEDCouplingFieldDiscretizationGaussNE::REF_SEG4[4]={-1.,1.,-0.3333333333333333,0.3333333333333333}; const double MEDCouplingFieldDiscretizationGaussNE::REF_TRI3[6]={0.,0.,1.,0.,0.,1.}; const double MEDCouplingFieldDiscretizationGaussNE::REF_TRI6[12]={0.,0.,1.,0.,0.,1.,0.5,0.,0.5,0.5,0.,0.5}; @@ -103,6 +104,7 @@ const double MEDCouplingFieldDiscretizationGaussNE::LOC_TRI3[6]={0.1666666666666 const double MEDCouplingFieldDiscretizationGaussNE::LOC_TRI6[12]={0.091576213509771,0.091576213509771,0.816847572980458,0.091576213509771,0.091576213509771,0.816847572980458,0.445948490915965,0.10810301816807,0.445948490915965,0.445948490915965,0.10810301816807,0.445948490915965}; const double MEDCouplingFieldDiscretizationGaussNE::LOC_TRI7[14]={0.3333333333333333,0.3333333333333333,0.470142064105115,0.470142064105115,0.05971587178977,0.470142064105115,0.470142064105115,0.05971587178977,0.101286507323456,0.101286507323456,0.797426985353088,0.101286507323456,0.101286507323456,0.797426985353088}; const double MEDCouplingFieldDiscretizationGaussNE::LOC_QUAD4[8]={-0.774596669241483,-0.774596669241483,0.774596669241483,-0.774596669241483,0.774596669241483,0.774596669241483,-0.774596669241483,0.774596669241483}; +const double MEDCouplingFieldDiscretizationGaussNE::LOC_QUAD8[16]={-0.774596669241483,-0.774596669241483,0.774596669241483,-0.774596669241483,0.774596669241483,0.774596669241483,-0.774596669241483,0.774596669241483,0.,-0.774596669241483,0.774596669241483,0.,0.,0.774596669241483,-0.774596669241483,0.}; const double MEDCouplingFieldDiscretizationGaussNE::LOC_QUAD9[18]={-0.774596669241483,-0.774596669241483,0.774596669241483,-0.774596669241483,0.774596669241483,0.774596669241483,-0.774596669241483,0.774596669241483,0.,-0.774596669241483,0.774596669241483,0.,0.,0.774596669241483,-0.774596669241483,0.,0.,0.}; const double MEDCouplingFieldDiscretizationGaussNE::LOC_TETRA4[12]={0.1381966011250105,0.1381966011250105,0.1381966011250105,0.1381966011250105,0.1381966011250105,0.5854101966249685,0.1381966011250105,0.5854101966249685,0.1381966011250105,0.5854101966249685,0.1381966011250105,0.1381966011250105}; const double MEDCouplingFieldDiscretizationGaussNE::LOC_PENTA6[18]={-0.5773502691896258,0.5,0.5,-0.5773502691896258,0.,0.5,-0.5773502691896258,0.5,0.,0.5773502691896258,0.5,0.5,0.5773502691896258,0.,0.5,0.5773502691896258,0.5,0.}; @@ -2289,6 +2291,9 @@ const double *MEDCouplingFieldDiscretizationGaussNE::GetWeightArrayFromGeometric case INTERP_KERNEL::NORM_QUAD4: lgth=(int)sizeof(FGP_QUAD4)/sizeof(double); return FGP_QUAD4; + case INTERP_KERNEL::NORM_QUAD8: + lgth=(int)sizeof(FGP_QUAD8)/sizeof(double); + return FGP_QUAD8; case INTERP_KERNEL::NORM_QUAD9: lgth=(int)sizeof(FGP_QUAD9)/sizeof(double); return FGP_QUAD9; @@ -2414,6 +2419,11 @@ const double *MEDCouplingFieldDiscretizationGaussNE::GetLocsFromGeometricType(IN lgth=(int)sizeof(LOC_QUAD4)/sizeof(double); return LOC_QUAD4; } + case INTERP_KERNEL::NORM_QUAD8: + { + lgth=(int)sizeof(LOC_QUAD8)/sizeof(double); + return LOC_QUAD8; + } case INTERP_KERNEL::NORM_QUAD9: { lgth=(int)sizeof(LOC_QUAD9)/sizeof(double); diff --git a/src/MEDCoupling/MEDCouplingFieldDiscretization.hxx b/src/MEDCoupling/MEDCouplingFieldDiscretization.hxx index 61e31ae8a..374369da2 100644 --- a/src/MEDCoupling/MEDCouplingFieldDiscretization.hxx +++ b/src/MEDCoupling/MEDCouplingFieldDiscretization.hxx @@ -342,7 +342,7 @@ namespace ParaMEDMEM static const double FGP_TRI6[6]; static const double FGP_TRI7[7]; static const double FGP_QUAD4[4]; - //static const double FGP_QUAD8[8]; + static const double FGP_QUAD8[8]; static const double FGP_QUAD9[9]; static const double FGP_TETRA4[4]; //static const double FGP_TETRA10[10]; @@ -377,7 +377,7 @@ namespace ParaMEDMEM static const double LOC_TRI6[12]; static const double LOC_TRI7[14]; static const double LOC_QUAD4[8]; - //static const double LOC_QUAD8[16]; + static const double LOC_QUAD8[16]; static const double LOC_QUAD9[18]; static const double LOC_TETRA4[12]; //static const double LOC_TETRA10[30]; -- 2.39.2