Back to index

salome-med  6.5.0
Public Member Functions | Public Attributes | Static Public Attributes
MED::TPyra5a Struct Reference

#include <MED_GaussUtils.hxx>

Inheritance diagram for MED::TPyra5a:
Inheritance graph
[legend]
Collaboration diagram for MED::TPyra5a:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TPyra5a ()
virtual void InitFun (const TCCoordSliceArr &theRef, const TCCoordSliceArr &theGauss, TFun &theFun) const

Public Attributes

TInt myNbRef
TDoubleVector myRefCoord

Static Public Attributes

TInt myDim

Detailed Description

Definition at line 340 of file MED_GaussUtils.hxx.


Constructor & Destructor Documentation

Definition at line 1558 of file MED_GaussUtils.cxx.

                  :
    TShapeFun(3,5)
  {
    TInt aNbRef = myRefCoord.size();
    for(TInt aRefId = 0; aRefId < aNbRef; aRefId++){
      TCoordSlice aCoord = GetCoord(aRefId);
      switch(aRefId){
      case  0: aCoord[0] =  1.0;  aCoord[1] =  0.0;  aCoord[2] =  0.0; break;
      case  1: aCoord[0] =  0.0;  aCoord[1] =  1.0;  aCoord[2] =  0.0; break;
      case  2: aCoord[0] = -1.0;  aCoord[1] =  0.0;  aCoord[2] =  0.0; break;
      case  3: aCoord[0] =  0.0;  aCoord[1] = -1.0;  aCoord[2] =  0.0; break;
      case  4: aCoord[0] =  0.0;  aCoord[1] =  0.0;  aCoord[2] =  1.0; break;
      }
    }
  }

Here is the call graph for this function:


Member Function Documentation

void MED::TPyra5a::InitFun ( const TCCoordSliceArr theRef,
const TCCoordSliceArr theGauss,
TFun &  theFun 
) const [virtual]

Definition at line 1575 of file MED_GaussUtils.cxx.

  {
    GetFun(theRef,theGauss,theFun);

    TInt aNbGauss = theGauss.size();
    for(TInt aGaussId = 0; aGaussId < aNbGauss; aGaussId++){
      const TCCoordSlice& aCoord = theGauss[aGaussId];
      TFloatVecSlice aSlice = theFun.GetFunSlice(aGaussId);
      // APO & RNV:
      // Fix for 0019920: EDF 788 VISU: Bad localisation of gauss points for pyramids
      // Seems shape function for ePYRA5 elements is:
      // w0 = 0.25*(-X + Y - 1.0)*(-X - Y - 1.0)*(1.0 - Z);
      // w1 = 0.25*(-X - Y - 1.0)*(+X - Y - 1.0)*(1.0 - Z);
      // w2 = 0.25*(+X + Y - 1.0)*(+X - Y - 1.0)*(1.0 - Z);
      // w3 = 0.25*(+X + Y - 1.0)*(-X + Y - 1.0)*(1.0 - Z);
      // w4 = +Z;
      aSlice[0] = 0.25*(-aCoord[0] + aCoord[1] - 1.0)*(-aCoord[0] - aCoord[1] - 1.0)*(1.0 - aCoord[2]);
      aSlice[1] = 0.25*(-aCoord[0] - aCoord[1] - 1.0)*(+aCoord[0] - aCoord[1] - 1.0)*(1.0 - aCoord[2]);
      aSlice[2] = 0.25*(+aCoord[0] + aCoord[1] - 1.0)*(+aCoord[0] - aCoord[1] - 1.0)*(1.0 - aCoord[2]);
      aSlice[3] = 0.25*(+aCoord[0] + aCoord[1] - 1.0)*(-aCoord[0] + aCoord[1] - 1.0)*(1.0 - aCoord[2]);
      aSlice[4] = aCoord[2];
    }
  }

Member Data Documentation

TInt TShapeFun::myDim [static, inherited]

Definition at line 42 of file MEDMEM_GaussLocalization.cxx.

TInt TShapeFun::myNbRef [inherited]

Definition at line 43 of file MEDMEM_GaussLocalization.cxx.

TDoubleVector TShapeFun::myRefCoord [inherited]

Definition at line 44 of file MEDMEM_GaussLocalization.cxx.


The documentation for this struct was generated from the following files: