#include <math.h>
#include <algorithm>
#include <sstream>
+#include <cmath>
using namespace INTERP_KERNEL;
return std::vector<double>(HEXA20A_REF,HEXA20A_REF+sizeof(HEXA20A_REF)/sizeof(double));
case INTERP_KERNEL::NORM_HEXA27:
return std::vector<double>(HEXA27A_REF,HEXA27A_REF+sizeof(HEXA27A_REF)/sizeof(double));
+ default:
+ THROW_IK_EXCEPTION("Input type " << ct << "is not managed by GetDefaultReferenceCoordinatesOf")
}
- THROW_IK_EXCEPTION("Input type " << ct << "is not managed by GetDefaultReferenceCoordinatesOf")
}
/*!
funValue[1] = -0.5*(gc[0] + gc[1]);
funValue[2] = 0.5*(1.0 + gc[0]);
SHAPE_FUN_MACRO_END;
+
+ DEV_SHAPE_FUN_MACRO_BEGIN;
+
+ devFunValue[0] = 0.0 ;
+ devFunValue[1] = 0.5 ;
+
+ devFunValue[2] = -0.5;
+ devFunValue[3] = -0.5;
+
+ devFunValue[4] = 0.5;
+ devFunValue[5] = 0.0;
+
+ DEV_SHAPE_FUN_MACRO_END;
}
/*!
funValue[1] = gc[0];
funValue[2] = gc[1];
SHAPE_FUN_MACRO_END;
+
+ DEV_SHAPE_FUN_MACRO_BEGIN;
+
+ devFunValue[0] = -1.0 ;
+ devFunValue[1] = -1.0 ;
+
+ devFunValue[2] = 1.0 ;
+ devFunValue[3] = 0.0 ;
+
+ devFunValue[4] = 0.0 ;
+ devFunValue[5] = 1.0 ;
+
+ DEV_SHAPE_FUN_MACRO_END;
}
/*!
funValue[4] = -1.0*(1.0 + gc[0])*(gc[0] + gc[1]);
funValue[5] = (1.0 + gc[1])*(1.0 + gc[1]);
SHAPE_FUN_MACRO_END;
+
+ DEV_SHAPE_FUN_MACRO_BEGIN;
+
+ devFunValue[0] = 0.0;
+ devFunValue[1] = 0.5*( 2*gc[1] + 1.0 );
+
+ devFunValue[2] = 0.5*( 2*gc[0] + 2.0*gc[1] + 1.0);
+ devFunValue[3] = 0.5*( 2*gc[1] + 2.0*gc[0] + 1.0);
+
+ devFunValue[4] = gc[0] + 0.5;
+ devFunValue[5] = 0.0;
+
+ devFunValue[6] = -1.0*(1.0 + gc[1]);
+ devFunValue[7] = -1.0*(2*gc[1]+gc[0]+1.0);
+
+ devFunValue[8] = -1.0*(2*gc[0]+gc[1]+1.0);
+ devFunValue[9] = -1.0*(1.0 + gc[0]);
+
+ devFunValue[10] = 0.0;
+ devFunValue[11] = (2*gc[1]+2.0);
+
+ DEV_SHAPE_FUN_MACRO_END;
}
/*!
funValue[4] = 4.0*gc[0]*gc[1];
funValue[5] = 4.0*gc[1]*(1.0 - gc[0] - gc[1]);
SHAPE_FUN_MACRO_END;
+
+ DEV_SHAPE_FUN_MACRO_BEGIN;
+
+ devFunValue[0] = 4*gc[0] + 4*gc[1] - 3.0 ;
+ devFunValue[1] = 4*gc[1] + 4*gc[0] - 3.0 ;
+
+ devFunValue[2] = 4*gc[0] - 1.0 ;
+ devFunValue[3] = 0.0 ;
+
+ devFunValue[4] = 0.0 ;
+ devFunValue[5] = 4*gc[1] - 1.0 ;
+
+ devFunValue[6] = -8.0*gc[0] - 4.0 * gc[1] + 4.0 ;
+ devFunValue[7] = -4.0*gc[0] ;
+
+ devFunValue[8] = 4.0*gc[1];
+ devFunValue[9] = 4.0*gc[0];
+
+ devFunValue[10] = -4.0*gc[1] ;
+ devFunValue[11] = -8.0*gc[1] - 4.0*gc[0] + 4.0 ;
+
+ DEV_SHAPE_FUN_MACRO_END;
}
void GaussInfo::tria7aInit()
funValue[0] = 0.25*(1.0 + gc[1])*(1.0 - gc[0]);
funValue[1] = 0.25*(1.0 - gc[1])*(1.0 - gc[0]);
funValue[2] = 0.25*(1.0 - gc[1])*(1.0 + gc[0]);
- funValue[3] = 0.25*(1.0 + gc[0])*(1.0 + gc[1]);
+ funValue[3] = 0.25*(1.0 + gc[1])*(1.0 + gc[0]);
SHAPE_FUN_MACRO_END;
+
+ DEV_SHAPE_FUN_MACRO_BEGIN;
+
+ devFunValue[0] = -0.25*(1.0 + gc[1]);
+ devFunValue[1] = 0.25*(1.0 - gc[0]);
+
+ devFunValue[2] = -0.25*(1.0 - gc[1]);
+ devFunValue[3] = -0.25*(1.0 - gc[0]);
+
+ devFunValue[4] = 0.25*(1.0 - gc[1]);
+ devFunValue[5] = -0.25*(1.0 + gc[0]);
+
+ devFunValue[6] = 0.25*(1.0 + gc[1]);
+ devFunValue[7] = 0.25*(1.0 + gc[0]);
+
+ DEV_SHAPE_FUN_MACRO_END;
}
/*!
funValue[2] = 0.25*(1.0 + gc[0])*(1.0 + gc[1]);
funValue[3] = 0.25*(1.0 - gc[0])*(1.0 + gc[1]);
SHAPE_FUN_MACRO_END;
+
+ DEV_SHAPE_FUN_MACRO_BEGIN;
+
+ devFunValue[0] = -0.25*(1.0 - gc[1]);
+ devFunValue[1] = -0.25*(1.0 - gc[0]);
+
+ devFunValue[2] = 0.25*(1.0 - gc[1]);
+ devFunValue[3] = -0.25*(1.0 + gc[0]);
+
+ devFunValue[4] = 0.25*(1.0 + gc[1]);
+ devFunValue[5] = 0.25*(1.0 + gc[0]);
+
+ devFunValue[6] = -0.25*(1.0 + gc[1]);
+ devFunValue[7] = 0.25*(1.0 - gc[0]);
+
+ DEV_SHAPE_FUN_MACRO_END;
}
void GaussInfo::quad4cInit()
funValue[2] = 0.25*(1.0 + gc[0])*(1.0 + gc[1]);
funValue[3] = 0.25*(1.0 + gc[0])*(1.0 - gc[1]);
SHAPE_FUN_MACRO_END;
+
+ DEV_SHAPE_FUN_MACRO_BEGIN;
+
+ devFunValue[0] = -0.25*(1.0 - gc[1]);
+ devFunValue[1] = -0.25*(1.0 - gc[0]);
+
+ devFunValue[2] = -0.25*(1.0 + gc[1]);
+ devFunValue[3] = 0.25*(1.0 - gc[0]);
+
+ devFunValue[4] = 0.25*(1.0 + gc[0]);
+ devFunValue[5] = 0.25*(1.0 + gc[1]);
+
+ devFunValue[6] = 0.25*(1.0 - gc[1]);
+ devFunValue[7] = -0.25*(1.0 + gc[0]);
+
+ DEV_SHAPE_FUN_MACRO_END;
}
/*!
funValue[6] = 0.5*(1.0 + gc[0])*(1.0 - gc[1])*(1.0 + gc[1]);
funValue[7] = 0.5*(1.0 + gc[1])*(1.0 - gc[0])*(1.0 + gc[0]);
SHAPE_FUN_MACRO_END;
+
+ DEV_SHAPE_FUN_MACRO_BEGIN;
+
+ devFunValue[0] = 0.25*(1.0 + gc[1])*(2*gc[0]-gc[1]);
+ devFunValue[1] = 0.25*(1.0 - gc[0])*(2*gc[1]-gc[0]);
+
+ devFunValue[2] = 0.25*(1.0 - gc[1])*(2*gc[0]+gc[1]);
+ devFunValue[3] = 0.25*(1.0 - gc[0])*(2*gc[1]+gc[0]);
+
+ devFunValue[4] = 0.25*(1.0 - gc[1])*(2*gc[0]-gc[1]);
+ devFunValue[5] = 0.25*(1.0 + gc[0])*(2*gc[1]-gc[0]);
+
+ devFunValue[6] = 0.25*(1.0 + gc[1])*(2*gc[0]+gc[1]);
+ devFunValue[7] = 0.25*(1.0 + gc[0])*(2*gc[1]+gc[0]);
+
+ devFunValue[8] = -0.5*(1.0 - gc[1])*(1.0 + gc[1]);
+ devFunValue[9] = 0.5*(1.0 - gc[0])*(-2*gc[1]);
+
+ devFunValue[10] = 0.5*(1.0 - gc[1])*(-2*gc[0]);
+ devFunValue[11] = -0.5*(1.0 - gc[0])*(1.0 + gc[0]);
+
+ devFunValue[12] = 0.5*(1.0 - gc[1])*(1.0 + gc[1]);
+ devFunValue[13] = 0.5*(1.0 + gc[0])*(-2*gc[1]);
+
+ devFunValue[14] = 0.5*(1.0 + gc[1])*(-2*gc[0]);
+ devFunValue[15] = 0.5*(1.0 - gc[0])*(1.0 + gc[0]);
+
+ DEV_SHAPE_FUN_MACRO_END;
}
/*!
funValue[6] = 0.5*(1.0 - gc[0]*gc[0])*(1.0 + gc[1]);
funValue[7] = 0.5*(1.0 - gc[1]*gc[1])*(1.0 - gc[0]);
SHAPE_FUN_MACRO_END;
+
+ DEV_SHAPE_FUN_MACRO_BEGIN;
+
+ devFunValue[0] = 0.25*(1.0 - gc[1])*(2*gc[0] + gc[1] );
+ devFunValue[1] = 0.25*(1.0 - gc[0])*(2*gc[1] + gc[0] );
+
+ devFunValue[2] = 0.25*(1.0 - gc[1])*(2*gc[0] - gc[1] );
+ devFunValue[3] = 0.25*(1.0 + gc[0])*(2*gc[1] - gc[0] );
+
+ devFunValue[4] = 0.25*(1.0 + gc[1])*(2*gc[0] + gc[1]);
+ devFunValue[5] = 0.25*(1.0 + gc[0])*(2*gc[1] + gc[0]);
+
+ devFunValue[6] = 0.25*( 1.0 + gc[1])*(2*gc[0] - gc[1] );
+ devFunValue[7] = 0.25*(1.0 - gc[0])*(2*gc[1] - gc[0]);
+
+ devFunValue[8] = -(1.0 - gc[1])*gc[0];
+ devFunValue[9] = -0.5*(1.0 - gc[0]*gc[0]);
+
+ devFunValue[10] = 0.5*(1.0 - gc[1]*gc[1]);
+ devFunValue[11] = -(1.0 + gc[0])*gc[1];
+
+ devFunValue[12] = -(1.0 + gc[1])*gc[0];
+ devFunValue[13] = 0.5*(1.0 - gc[0]*gc[0]);
+
+ devFunValue[14] = -0.5*(1.0 - gc[1]*gc[1]);
+ devFunValue[15] = -(1.0 - gc[0])*gc[1];
+
+ DEV_SHAPE_FUN_MACRO_END;
}
void GaussInfo::quad9aInit()