/[escript]/trunk/finley/src/NodeFile_scatter.c
ViewVC logotype

Diff of /trunk/finley/src/NodeFile_scatter.c

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

trunk/esys2/finley/src/finleyC/NodeFile_scatter.c revision 82 by jgs, Tue Oct 26 06:53:54 2004 UTC temp_trunk_copy/finley/src/NodeFile_scatter.c revision 1384 by phornby, Fri Jan 11 02:29:38 2008 UTC
# Line 1  Line 1 
1    
2  /* $Id$ */  /* $Id$ */
3    
4    /*******************************************************
5     *
6     *           Copyright 2003-2007 by ACceSS MNRF
7     *       Copyright 2007 by University of Queensland
8     *
9     *                http://esscc.uq.edu.au
10     *        Primary Business: Queensland, Australia
11     *  Licensed under the Open Software License version 3.0
12     *     http://www.opensource.org/licenses/osl-3.0.php
13     *
14     *******************************************************/
15    
16  /**************************************************************/  /**************************************************************/
17    
18  /*   Finley: Mesh: NodeFile */  /*   Finley: Mesh: NodeFile */
# Line 9  Line 23 
23    
24  /**************************************************************/  /**************************************************************/
25    
 /*   Copyrights by ACcESS Australia 2003/04 */  
 /*   Author: gross@access.edu.au */  
 /*   Version: $Id$ */  
   
 /**************************************************************/  
   
 #include "Common.h"  
26  #include "NodeFile.h"  #include "NodeFile.h"
27    
28  /**************************************************************/  /**************************************************************/
29    
30  void Finley_NodeFile_scatter(maybelong* index, Finley_NodeFile* in, Finley_NodeFile* out) {  void Finley_NodeFile_scatterEntries(dim_t n, index_t* index, index_t min_index, index_t max_index,
31     maybelong i,k,j;                                     index_t* Id_out, index_t* Id_in,
32     if (in->Id!=NULL) {                                     index_t* Tag_out, index_t* Tag_in,
33       #pragma omp parallel for private(i,j,k) schedule(static)                                     index_t* globalDegreesOfFreedom_out, index_t* globalDegreesOfFreedom_in,
34       for (i=0;i<in->numNodes;i++) {                                     dim_t numDim, double* Coordinates_out, double* Coordinates_in)
35          k=index[i];  {
36          out->Id[k]=in->Id[i];     dim_t i;
37          out->Tag[k]=in->Tag[i];     register index_t k;
38          out->degreeOfFreedom[k]=in->degreeOfFreedom[i];     register const index_t range=max_index-min_index;
39          out->reducedDegreeOfFreedom[k]=in->reducedDegreeOfFreedom[i];     const  size_t numDim_size=(size_t)numDim*sizeof(double);
40          out->toReduced[k]=in->toReduced[i];  
41          for(j=0;j<in->numDim;j++) out->Coordinates[INDEX2(j,k,in->numDim)]=in->Coordinates[INDEX2(j,i,in->numDim)];     #pragma omp parallel for private(i,k) schedule(static)
42       }     for (i=0;i<n;i++) {
43          k=index[i]-min_index;
44          if ((k>=0) && (k <range)) {
45             Id_out[k]=Id_in[i];
46             Tag_out[k]=Tag_in[i];
47             globalDegreesOfFreedom_out[k]=globalDegreesOfFreedom_in[i];
48             memcpy(&(Coordinates_out[INDEX2(0,k,numDim)]), &(Coordinates_in[INDEX2(0,i,numDim)]), numDim_size);
49          }
50     }     }
51  }  }
52  /*  
53  * $Log$  void Finley_NodeFile_scatter(index_t* index, Finley_NodeFile* in, Finley_NodeFile* out)
54  * Revision 1.1  2004/10/26 06:53:57  jgs  {
55  * Initial revision     Finley_NodeFile_scatterEntries(out->numNodes, index, 0, in->numNodes,
56  *                                    out->Id, in->Id,
57  * Revision 1.1.1.1  2004/06/24 04:00:40  johng                                    out->Tag, in->Tag,
58  * Initial version of eys using boost-python.                                    out->globalDegreesOfFreedom, in->globalDegreesOfFreedom,
59  *                                    out->numDim, out->Coordinates, in->Coordinates);
60  *  }
 */  

Legend:
Removed from v.82  
changed lines
  Added in v.1384

  ViewVC Help
Powered by ViewVC 1.1.26