1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
// GetDP - Copyright (C) 1997-2018 P. Dular and C. Geuzaine, University of Liege
//
// See the LICENSE.txt file for license information. Please report all
// issues on https://gitlab.onelab.info/getdp/getdp/issues
#include "ProData.h"
#include "Message.h"
/* ------------------------------------------------------------------------ */
/* B F _ E d g e _ 2 */
/* ------------------------------------------------------------------------ */
/* ------- */
/* Edges */
/* ------- */
#define WrongNumEntity Message::Error("Wrong Edge number in 'BF_Edge_2E'")
void BF_Edge_2E(struct Element * Element, int NumEntity,
double u, double v, double w, double s[])
{
switch (Element->Type) {
case LINE :
switch(NumEntity) {
case 1 : s[0] = u ; s[1] = 0. ; s[2] = 0. ; break ;
default : WrongNumEntity ;
}
break ;
case TRIANGLE :
case TRIANGLE_2 :
switch(NumEntity) {
case 1 : s[0] = -2.0*u+1.0-v ; s[1] = -u ; s[2] = 0. ; break ;
case 2 : s[0] = -v ; s[1] = -2.0*v+1.0-u ; s[2] = 0. ; break ;
case 3 : s[0] = v ; s[1] = u ; s[2] = 0. ; break ;
default : WrongNumEntity ;
}
break ;
case QUADRANGLE :
switch(NumEntity) {
default : Message::Error("BF_Edge_2E not ready for QUADRANGLE");
}
break ;
case TETRAHEDRON :
switch(NumEntity) {
case 1 : s[0] = -2.0*u+1.0-v-w ; s[1] = -u ; s[2] = -u ; break ;
case 2 : s[0] = -v ; s[1] = -2.0*v+1.0-u-w ; s[2] = -v ; break ;
case 3 : s[0] = -w ; s[1] = -w ; s[2] = -2.0*w+1.0-u-v ; break ;
case 4 : s[0] = v ; s[1] = u ; s[2] = 0. ; break ;
case 5 : s[0] = w ; s[1] = 0. ; s[2] = u ; break ;
case 6 : s[0] = 0. ; s[1] = w ; s[2] = v ; break ;
default : WrongNumEntity ;
}
break ;
case HEXAHEDRON :
switch(NumEntity) {
default : Message::Error("BF_Edge_2E not ready for HEXAHEDRON");
}
break ;
case PRISM :
switch(NumEntity) {
default : Message::Error("BF_Edge_2E not ready for PRISM");
}
break ;
case PYRAMID :
switch(NumEntity) {
default : Message::Error("BF_Edge_2E not ready for PYRAMID");
}
break ;
default :
Message::Error("Unknown type of Element in BF_Edge_2E");
break ;
}
}
#undef WrongNumEntity
/* ------- */
/* Faces */
/* ------- */
#define WrongNumEntity Message::Error("Wrong Face number in 'BF_Edge_2F'")
void BF_Edge_2F(struct Element * Element, int NumEntity,
double u, double v, double w, double s[])
{
Message::Error("You should never end up here!") ;
}
#undef WrongNumEntity
/* -------- */
/* Volume */
/* -------- */
void BF_Edge_2V(struct Element * Element, int NumEntity,
double u, double v, double w, double s[])
{
Message::Error("You should never end up here!") ;
}
/* ------------------------------------------------------------------------ */
/* B F _ C u r l E d g e _ 2 */
/* ------------------------------------------------------------------------ */
/* ------- */
/* Edges */
/* ------- */
void BF_CurlEdge_2E(struct Element * Element, int NumEntity,
double u, double v, double w, double s[])
{
s[0] = 0. ; s[1] = 0. ; s[2] = 0. ;
}
/* ------- */
/* Faces */
/* ------- */
void BF_CurlEdge_2F(struct Element * Element, int NumEntity,
double u, double v, double w, double s[])
{
s[0] = 0. ; s[1] = 0. ; s[2] = 0. ;
}
/* -------- */
/* Volume */
/* -------- */
void BF_CurlEdge_2V(struct Element * Element, int NumEntity,
double u, double v, double w, double s[])
{
s[0] = 0. ; s[1] = 0. ; s[2] = 0. ;
}
|