xref: /phasta/phSolver/common/symline.c (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1*59599516SKenneth E. Jansen typedef double DARR2[2];
2*59599516SKenneth E. Jansen 
3*59599516SKenneth E. Jansen int lineIntPnt(int, DARR2**,double**);
4*59599516SKenneth E. Jansen 
5*59599516SKenneth E. Jansen #ifdef sun4_5
6*59599516SKenneth E. Jansen symline_(int *n1, double pt[][4], double wt[], int *err)
7*59599516SKenneth E. Jansen #endif
8*59599516SKenneth E. Jansen #ifdef LINUX
9*59599516SKenneth E. Jansen symline_(int *n1, double pt[][4], double wt[], int *err)
10*59599516SKenneth E. Jansen #endif
11*59599516SKenneth E. Jansen #ifdef ibm
12*59599516SKenneth E. Jansen symline(int *n1, double pt[][4], double wt[], int *err)
13*59599516SKenneth E. Jansen #endif
14*59599516SKenneth E. Jansen #ifdef sgi
15*59599516SKenneth E. Jansen void symline_(int *n1, double pt[][4], double wt[], int *err)
16*59599516SKenneth E. Jansen #endif
17*59599516SKenneth E. Jansen #ifdef decalp
18*59599516SKenneth E. Jansen void symline_(int *n1, double pt[][4], double wt[], int *err)
19*59599516SKenneth E. Jansen #endif
20*59599516SKenneth E. Jansen #ifdef intel
21*59599516SKenneth E. Jansen void  SYMLINE(int *n1, double pt[][4], double wt[], int *err)
22*59599516SKenneth E. Jansen #endif
23*59599516SKenneth E. Jansen {
24*59599516SKenneth E. Jansen   double *lwt;
25*59599516SKenneth E. Jansen   DARR2 *lpt;
26*59599516SKenneth E. Jansen   int i,j;
27*59599516SKenneth E. Jansen   *err = lineIntPnt(*n1, &lpt, &lwt);
28*59599516SKenneth E. Jansen   for(i=0; i < *n1; i++){
29*59599516SKenneth E. Jansen     wt[i] = lwt[i];
30*59599516SKenneth E. Jansen     for(j=0; j < 2; j++)
31*59599516SKenneth E. Jansen       pt[i][j] = lpt[i][j];
32*59599516SKenneth E. Jansen   }
33*59599516SKenneth E. Jansen }
34*59599516SKenneth E. Jansen 
35*59599516SKenneth E. Jansen #include <stdio.h>
36*59599516SKenneth E. Jansen 
37*59599516SKenneth E. Jansen #define QpNon -1.000000000000000
38*59599516SKenneth E. Jansen #define Qp11   0.000000000000000
39*59599516SKenneth E. Jansen #define Qw1    2.000000000000000
40*59599516SKenneth E. Jansen 
41*59599516SKenneth E. Jansen #define Qp21  -0.577350269189626
42*59599516SKenneth E. Jansen #define Qp22   0.577350269189626
43*59599516SKenneth E. Jansen #define Qw2    1.000000000000000
44*59599516SKenneth E. Jansen 
45*59599516SKenneth E. Jansen #define Qp31  -0.774596669241483
46*59599516SKenneth E. Jansen #define Qp32   0.000000000000000
47*59599516SKenneth E. Jansen #define Qp33   0.774596669241483
48*59599516SKenneth E. Jansen #define Qw31   0.555555555555556
49*59599516SKenneth E. Jansen #define Qw32   0.888888888888889
50*59599516SKenneth E. Jansen 
51*59599516SKenneth E. Jansen /* typedef double DARR2[2] ; */
52*59599516SKenneth E. Jansen 
53*59599516SKenneth E. Jansen static double rst1[][2] = {{Qp11,QpNon}};
54*59599516SKenneth E. Jansen static double wt1[] = {Qw1};
55*59599516SKenneth E. Jansen 
56*59599516SKenneth E. Jansen static double rst2[][2] = {{Qp21,QpNon},{Qp22,QpNon}};
57*59599516SKenneth E. Jansen static double wt2[] = {Qw2,Qw2};
58*59599516SKenneth E. Jansen 
59*59599516SKenneth E. Jansen static double rst3[][2] = {{Qp31,QpNon},{Qp32,QpNon},{Qp33,QpNon}};
60*59599516SKenneth E. Jansen static double wt3[] = {Qw31,Qw32,Qw31};
61*59599516SKenneth E. Jansen 
62*59599516SKenneth E. Jansen 
63*59599516SKenneth E. Jansen int lineIntPnt(int nint, DARR2 **bcord, double **wt)
64*59599516SKenneth E. Jansen {
65*59599516SKenneth E. Jansen   int retval = 1 ;
66*59599516SKenneth E. Jansen   if( nint == 1 ) {*bcord = rst1 ; *wt = wt1; }
67*59599516SKenneth E. Jansen   else if( nint == 2 ){*bcord = rst2 ; *wt = wt2; }
68*59599516SKenneth E. Jansen   else if( nint == 3 ){*bcord = rst3 ; *wt = wt3; }
69*59599516SKenneth E. Jansen /*  else if( nint == 4 ){*bcord = rst4 ; *wt = wt4; }
70*59599516SKenneth E. Jansen   else if( nint == 5 ){*bcord = rst5 ; *wt = wt5; }*/
71*59599516SKenneth E. Jansen   else
72*59599516SKenneth E. Jansen   {
73*59599516SKenneth E. Jansen     fprintf(stderr,"\n%d integration points unsupported in symline.c; give {1,2,3}\n",nint);
74*59599516SKenneth E. Jansen     retval = 0;
75*59599516SKenneth E. Jansen   }
76*59599516SKenneth E. Jansen   return retval ;
77*59599516SKenneth E. Jansen }
78*59599516SKenneth E. Jansen 
79*59599516SKenneth E. Jansen 
80*59599516SKenneth E. Jansen 
81