/[escript]/branches/doubleplusgood/dudley/src/ElementFile_gather.cpp
ViewVC logotype

Contents of /branches/doubleplusgood/dudley/src/ElementFile_gather.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3259 - (show annotations)
Mon Oct 11 01:48:14 2010 UTC (8 years, 6 months ago) by jfenwick
Original Path: trunk/dudley/src/ElementFile_gather.c
File MIME type: text/plain
File size: 1640 byte(s)
Merging dudley and scons updates from branches

1
2 /*******************************************************
3 *
4 * Copyright (c) 2003-2010 by University of Queensland
5 * Earth Systems Science Computational Center (ESSCC)
6 * http://www.uq.edu.au/esscc
7 *
8 * Primary Business: Queensland, Australia
9 * Licensed under the Open Software License version 3.0
10 * http://www.opensource.org/licenses/osl-3.0.php
11 *
12 *******************************************************/
13
14 /**************************************************************/
15
16 /* Dudley: ElementFile */
17
18 /* gathers the ElementFile out from the ElementFile in using index[0:out->numElements-1]. */
19 /* index has to be between 0 and in->numElements-1. */
20 /* a conservative assumtion on the coloring is made */
21
22 /**************************************************************/
23
24 #include "ElementFile.h"
25
26 /**************************************************************/
27
28 void Dudley_ElementFile_gather(index_t * index, Dudley_ElementFile * in, Dudley_ElementFile * out)
29 {
30 index_t k;
31 dim_t e, j;
32 dim_t NN_in = in->numNodes;
33 dim_t NN_out = out->numNodes;
34 if (in != NULL)
35 {
36 /*OMP */
37 #pragma omp parallel for private(e,k,j) schedule(static)
38 for (e = 0; e < out->numElements; e++)
39 {
40 k = index[e];
41 out->Id[e] = in->Id[k];
42 out->Tag[e] = in->Tag[k];
43 out->Owner[e] = in->Owner[k];
44 out->Color[e] = in->Color[k] + out->maxColor + 1;
45 for (j = 0; j < MIN(NN_out, NN_in); j++)
46 out->Nodes[INDEX2(j, e, NN_out)] = in->Nodes[INDEX2(j, k, NN_in)];
47 }
48 out->minColor = MIN(out->minColor, in->minColor + out->maxColor + 1);
49 out->maxColor = MAX(out->maxColor, in->maxColor + out->maxColor + 1);
50 }
51 }

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26