/[escript]/branches/domexper/dudley/src/Assemble_PDE_System2_3D.c
ViewVC logotype

Diff of /branches/domexper/dudley/src/Assemble_PDE_System2_3D.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1811 by ksteube, Thu Sep 25 23:11:13 2008 UTC revision 2548 by jfenwick, Mon Jul 20 06:20:06 2009 UTC
# Line 1  Line 1 
1    
2  /*******************************************************  /*******************************************************
3  *  *
4  * Copyright (c) 2003-2008 by University of Queensland  * Copyright (c) 2003-2009 by University of Queensland
5  * Earth Systems Science Computational Center (ESSCC)  * Earth Systems Science Computational Center (ESSCC)
6  * http://www.uq.edu.au/esscc  * http://www.uq.edu.au/esscc
7  *  *
# Line 52  void  Finley_Assemble_PDE_System2_3D(Ass Line 52  void  Finley_Assemble_PDE_System2_3D(Ass
52      #define DIM 3      #define DIM 3
53      index_t color;      index_t color;
54      dim_t e;      dim_t e;
55      double *EM_S, *EM_F, *Vol, *DSDX, *A_p, *B_p, *C_p, *D_p, *X_p, *Y_p;      __const double  *A_p, *B_p, *C_p, *D_p, *X_p, *Y_p;
56        double *EM_S, *EM_F, *Vol, *DSDX;
57      index_t *row_index;      index_t *row_index;
58      register dim_t q, s,r,k,m;      register dim_t q, s,r,k,m;
59      register double rtmp, rtmp0, rtmp1, rtmp2, rtmp00, rtmp01, rtmp02, rtmp10, rtmp11, rtmp12, rtmp20, rtmp21, rtmp22;      register double rtmp, rtmp0, rtmp1, rtmp2, rtmp00, rtmp01, rtmp02, rtmp10, rtmp11, rtmp12, rtmp20, rtmp21, rtmp22;
# Line 64  void  Finley_Assemble_PDE_System2_3D(Ass Line 65  void  Finley_Assemble_PDE_System2_3D(Ass
65      bool_t extendedD=isExpanded(D);      bool_t extendedD=isExpanded(D);
66      bool_t extendedX=isExpanded(X);      bool_t extendedX=isExpanded(X);
67      bool_t extendedY=isExpanded(Y);      bool_t extendedY=isExpanded(Y);
68      double *F_p=getSampleData(F,0);      double *F_p=(requireWrite(F), getSampleDataRW(F,0));    /* use comma, to get around the mixed code and declarations thing */
69      double *S=p.row_jac->ReferenceElement->S;      double *S=p.row_jac->ReferenceElement->S;
70      dim_t len_EM_S=p.row_NN*p.col_NN*p.numEqu*p.numComp;      dim_t len_EM_S=p.row_NN*p.col_NN*p.numEqu*p.numComp;
71      dim_t len_EM_F=p.row_NN*p.numEqu;      dim_t len_EM_F=p.row_NN*p.numEqu;
72    
73        void* ABuff=allocSampleBuffer(A);
74        void* BBuff=allocSampleBuffer(B);
75        void* CBuff=allocSampleBuffer(C);
76        void* DBuff=allocSampleBuffer(D);
77        void* XBuff=allocSampleBuffer(X);
78        void* YBuff=allocSampleBuffer(Y);
79      #pragma omp parallel private(color,EM_S, EM_F, Vol, DSDX, A_p, B_p, C_p, D_p, X_p, Y_p,row_index,q, s,r,k,m,rtmp, rtmp0, rtmp1, rtmp2, rtmp00, rtmp01, rtmp02, rtmp10, rtmp11, rtmp12, rtmp20, rtmp21, rtmp22,add_EM_F, add_EM_S)      #pragma omp parallel private(color,EM_S, EM_F, Vol, DSDX, A_p, B_p, C_p, D_p, X_p, Y_p,row_index,q, s,r,k,m,rtmp, rtmp0, rtmp1, rtmp2, rtmp00, rtmp01, rtmp02, rtmp10, rtmp11, rtmp12, rtmp20, rtmp21, rtmp22,add_EM_F, add_EM_S)
80      {      {
81         EM_S=THREAD_MEMALLOC(len_EM_S,double);         EM_S=THREAD_MEMALLOC(len_EM_S,double);
# Line 92  void  Finley_Assemble_PDE_System2_3D(Ass Line 98  void  Finley_Assemble_PDE_System2_3D(Ass
98                     /**************************************************************/                     /**************************************************************/
99                     /*   process A: */                     /*   process A: */
100                     /**************************************************************/                     /**************************************************************/
101                     A_p=getSampleData(A,e);                     A_p=getSampleDataRO(A,e,ABuff);
102                     if (NULL!=A_p) {                     if (NULL!=A_p) {
103                        add_EM_S=TRUE;                        add_EM_S=TRUE;
104                        if (extendedA) {                        if (extendedA) {
# Line 167  void  Finley_Assemble_PDE_System2_3D(Ass Line 173  void  Finley_Assemble_PDE_System2_3D(Ass
173                     /**************************************************************/                     /**************************************************************/
174                     /*   process B: */                     /*   process B: */
175                     /**************************************************************/                     /**************************************************************/
176                     B_p=getSampleData(B,e);                     B_p=getSampleDataRO(B,e,BBuff);
177                     if (NULL!=B_p) {                     if (NULL!=B_p) {
178                        add_EM_S=TRUE;                        add_EM_S=TRUE;
179                        if (extendedB) {                        if (extendedB) {
# Line 213  void  Finley_Assemble_PDE_System2_3D(Ass Line 219  void  Finley_Assemble_PDE_System2_3D(Ass
219                     /**************************************************************/                     /**************************************************************/
220                     /*   process C: */                     /*   process C: */
221                     /**************************************************************/                     /**************************************************************/
222                     C_p=getSampleData(C,e);                     C_p=getSampleDataRO(C,e,CBuff);
223                     if (NULL!=C_p) {                     if (NULL!=C_p) {
224                       add_EM_S=TRUE;                       add_EM_S=TRUE;
225                       if (extendedC) {                       if (extendedC) {
# Line 259  void  Finley_Assemble_PDE_System2_3D(Ass Line 265  void  Finley_Assemble_PDE_System2_3D(Ass
265                     /************************************************************* */                     /************************************************************* */
266                     /* process D */                     /* process D */
267                     /**************************************************************/                     /**************************************************************/
268                     D_p=getSampleData(D,e);                     D_p=getSampleDataRO(D,e,DBuff);
269                     if (NULL!=D_p) {                     if (NULL!=D_p) {
270                       add_EM_S=TRUE;                       add_EM_S=TRUE;
271                       if (extendedD) {                       if (extendedD) {
# Line 293  void  Finley_Assemble_PDE_System2_3D(Ass Line 299  void  Finley_Assemble_PDE_System2_3D(Ass
299                     /**************************************************************/                     /**************************************************************/
300                     /*   process X: */                     /*   process X: */
301                     /**************************************************************/                     /**************************************************************/
302                     X_p=getSampleData(X,e);                     X_p=getSampleDataRO(X,e,XBuff);
303                     if (NULL!=X_p) {                     if (NULL!=X_p) {
304                       add_EM_F=TRUE;                       add_EM_F=TRUE;
305                       if (extendedX) {                       if (extendedX) {
# Line 329  void  Finley_Assemble_PDE_System2_3D(Ass Line 335  void  Finley_Assemble_PDE_System2_3D(Ass
335                    /**************************************************************/                    /**************************************************************/
336                    /*   process Y: */                    /*   process Y: */
337                    /**************************************************************/                    /**************************************************************/
338                     Y_p=getSampleData(Y,e);                     Y_p=getSampleDataRO(Y,e,YBuff);
339                     if (NULL!=Y_p) {                     if (NULL!=Y_p) {
340                       add_EM_F=TRUE;                       add_EM_F=TRUE;
341                       if (extendedY) {                       if (extendedY) {
# Line 365  void  Finley_Assemble_PDE_System2_3D(Ass Line 371  void  Finley_Assemble_PDE_System2_3D(Ass
371    
372        } /* end of pointer check */        } /* end of pointer check */
373     } /* end parallel region */     } /* end parallel region */
374       freeSampleBuffer(ABuff);
375       freeSampleBuffer(BBuff);
376       freeSampleBuffer(CBuff);
377       freeSampleBuffer(DBuff);
378       freeSampleBuffer(XBuff);
379       freeSampleBuffer(YBuff);
380  }  }
381  /*  /*
382   * $Log$   * $Log$

Legend:
Removed from v.1811  
changed lines
  Added in v.2548

  ViewVC Help
Powered by ViewVC 1.1.26