"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "Functions/BF_Edge_2.cpp" between
getdp-3.4.0-source.tgz and getdp-3.5.0-source.tgz

About: GetDP is a general finite element solver using mixed elements to discretize de Rham-type complexes in one, two and three dimensions.

BF_Edge_2.cpp  (getdp-3.4.0-source.tgz):BF_Edge_2.cpp  (getdp-3.5.0-source.tgz)
// GetDP - Copyright (C) 1997-2021 P. Dular and C. Geuzaine, University of Liege // GetDP - Copyright (C) 1997-2022 P. Dular and C. Geuzaine, University of Liege
// //
// See the LICENSE.txt file for license information. Please report all // See the LICENSE.txt file for license information. Please report all
// issues on https://gitlab.onelab.info/getdp/getdp/issues. // issues on https://gitlab.onelab.info/getdp/getdp/issues.
#include "ProData.h" #include "ProData.h"
#include "Message.h" #include "Message.h"
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
/* B F _ E d g e _ 2 */ /* B F _ E d g e _ 2 */
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
/* ------- */ /* ------- */
/* Edges */ /* Edges */
/* ------- */ /* ------- */
#define WrongNumEntity Message::Error("Wrong Edge number in 'BF_Edge_2E'") #define WrongNumEntity Message::Error("Wrong Edge number in 'BF_Edge_2E'")
void BF_Edge_2E(struct Element * Element, int NumEntity, void BF_Edge_2E(struct Element *Element, int NumEntity, double u, double v,
double u, double v, double w, double s[]) double w, double s[])
{ {
switch (Element->Type) { switch(Element->Type) {
case LINE : case LINE_2 : case LINE:
case LINE_3 : case LINE_4 : case LINE_2:
case LINE_3:
case LINE_4:
switch(NumEntity) {
case 1:
s[0] = u;
s[1] = 0.;
s[2] = 0.;
break;
default: WrongNumEntity;
}
break;
case TRIANGLE:
case TRIANGLE_2:
case TRIANGLE_3:
case TRIANGLE_4:
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:
case QUADRANGLE_2:
case QUADRANGLE_2_8N:
case QUADRANGLE_3:
case QUADRANGLE_4:
switch(NumEntity) {
default: Message::Error("BF_Edge_2E not ready for QUADRANGLE");
}
break;
case TETRAHEDRON:
case TETRAHEDRON_2:
case TETRAHEDRON_3:
case TETRAHEDRON_4:
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:
case HEXAHEDRON_2:
case HEXAHEDRON_2_20N:
case HEXAHEDRON_3:
case HEXAHEDRON_4:
switch(NumEntity) {
default: Message::Error("BF_Edge_2E not ready for HEXAHEDRON");
}
break;
case PRISM:
case PRISM_2:
case PRISM_2_15N:
case PRISM_3:
case PRISM_4:
switch(NumEntity) {
default: Message::Error("BF_Edge_2E not ready for PRISM");
}
break;
case PYRAMID:
case PYRAMID_2:
case PYRAMID_2_13N:
case PYRAMID_3: // case PYRAMID_4
switch(NumEntity) { switch(NumEntity) {
case 1 : s[0] = u ; s[1] = 0. ; s[2] = 0. ; break ; default: Message::Error("BF_Edge_2E not ready for PYRAMID");
default : WrongNumEntity ;
} }
break ; break;
case TRIANGLE : case TRIANGLE_2 : default: Message::Error("Unknown type of Element in BF_Edge_2E"); break;
case TRIANGLE_3 : case TRIANGLE_4 :
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 : case QUADRANGLE_2 : case QUADRANGLE_2_8N :
case QUADRANGLE_3 : case QUADRANGLE_4 :
switch(NumEntity) {
default : Message::Error("BF_Edge_2E not ready for QUADRANGLE");
}
break ;
case TETRAHEDRON : case TETRAHEDRON_2 :
case TETRAHEDRON_3 : case TETRAHEDRON_4 :
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 : case HEXAHEDRON_2 : case HEXAHEDRON_2_20N :
case HEXAHEDRON_3 : case HEXAHEDRON_4 :
switch(NumEntity) {
default : Message::Error("BF_Edge_2E not ready for HEXAHEDRON");
}
break ;
case PRISM : case PRISM_2 : case PRISM_2_15N :
case PRISM_3 : case PRISM_4 :
switch(NumEntity) {
default : Message::Error("BF_Edge_2E not ready for PRISM");
}
break ;
case PYRAMID : case PYRAMID_2 : case PYRAMID_2_13N :
case PYRAMID_3 : // case PYRAMID_4
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 #undef WrongNumEntity
/* ------- */ /* ------- */
/* Faces */ /* Faces */
/* ------- */ /* ------- */
#define WrongNumEntity Message::Error("Wrong Face number in 'BF_Edge_2F'") #define WrongNumEntity Message::Error("Wrong Face number in 'BF_Edge_2F'")
void BF_Edge_2F(struct Element * Element, int NumEntity, void BF_Edge_2F(struct Element *Element, int NumEntity, double u, double v,
double u, double v, double w, double s[]) double w, double s[])
{ {
Message::Error("You should never end up here!") ; Message::Error("You should never end up here!");
} }
#undef WrongNumEntity #undef WrongNumEntity
/* -------- */ /* -------- */
/* Volume */ /* Volume */
/* -------- */ /* -------- */
void BF_Edge_2V(struct Element * Element, int NumEntity, void BF_Edge_2V(struct Element *Element, int NumEntity, double u, double v,
double u, double v, double w, double s[]) double w, double s[])
{ {
Message::Error("You should never end up here!") ; Message::Error("You should never end up here!");
} }
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
/* B F _ C u r l E d g e _ 2 */ /* B F _ C u r l E d g e _ 2 */
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
/* ------- */ /* ------- */
/* Edges */ /* Edges */
/* ------- */ /* ------- */
void BF_CurlEdge_2E(struct Element * Element, int NumEntity, void BF_CurlEdge_2E(struct Element *Element, int NumEntity, double u, double v,
double u, double v, double w, double s[]) double w, double s[])
{ {
s[0] = 0. ; s[1] = 0. ; s[2] = 0. ; s[0] = 0.;
s[1] = 0.;
s[2] = 0.;
} }
/* ------- */ /* ------- */
/* Faces */ /* Faces */
/* ------- */ /* ------- */
void BF_CurlEdge_2F(struct Element * Element, int NumEntity, void BF_CurlEdge_2F(struct Element *Element, int NumEntity, double u, double v,
double u, double v, double w, double s[]) double w, double s[])
{ {
s[0] = 0. ; s[1] = 0. ; s[2] = 0. ; s[0] = 0.;
s[1] = 0.;
s[2] = 0.;
} }
/* -------- */ /* -------- */
/* Volume */ /* Volume */
/* -------- */ /* -------- */
void BF_CurlEdge_2V(struct Element * Element, int NumEntity, void BF_CurlEdge_2V(struct Element *Element, int NumEntity, double u, double v,
double u, double v, double w, double s[]) double w, double s[])
{ {
s[0] = 0. ; s[1] = 0. ; s[2] = 0. ; s[0] = 0.;
s[1] = 0.;
s[2] = 0.;
} }
 End of changes. 18 change blocks. 
86 lines changed or deleted 141 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)