1 |
/* |
2 |
****************************************************************************** |
3 |
* * |
4 |
* COPYRIGHT ACcESS 2003,2004,2005 - All Rights Reserved * |
5 |
* * |
6 |
* This software is the property of ACcESS. No part of this code * |
7 |
* may be copied in any form or by any means without the expressed written * |
8 |
* consent of ACcESS. Copying, use or modification of this software * |
9 |
* by any unauthorised person is illegal unless that person has a software * |
10 |
* license agreement with ACcESS. * |
11 |
* * |
12 |
****************************************************************************** |
13 |
*/ |
14 |
|
15 |
/**************************************************************/ |
16 |
/* */ |
17 |
/* Finley: ElementFile */ |
18 |
/* */ |
19 |
/* scatter the ElementFile in into the ElementFile out using index[0:out->numElements-1]. */ |
20 |
/* index has to be between 0 and in->numElements-1. */ |
21 |
/* a conservative assumtion on the coloring is made */ |
22 |
/* */ |
23 |
/**************************************************************/ |
24 |
|
25 |
/* Author: gross@access.edu.au */ |
26 |
/* Version: $Id$ */ |
27 |
|
28 |
/**************************************************************/ |
29 |
|
30 |
#include "ElementFile.h" |
31 |
|
32 |
/**************************************************************/ |
33 |
|
34 |
void Finley_ElementFile_scatter(index_t* index, Finley_ElementFile* in, Finley_ElementFile* out) { |
35 |
index_t k; |
36 |
dim_t e,j; |
37 |
if (in!=NULL) { |
38 |
dim_t NN_in=in->ReferenceElement->Type->numNodes; |
39 |
dim_t NN_out=out->ReferenceElement->Type->numNodes; |
40 |
/*OMP */ |
41 |
#pragma omp parallel for private(e,k,j) schedule(static) |
42 |
for (e=0;e<in->numElements;e++) { |
43 |
k=index[e]; |
44 |
out->Id[k]=in->Id[e]; |
45 |
out->Tag[k]=in->Tag[e]; |
46 |
out->Color[k]=in->Color[e]+out->maxColor+1; |
47 |
for(j=0;j<MIN(NN_out,NN_in);j++) out->Nodes[INDEX2(j,k,NN_out)]=in->Nodes[INDEX2(j,e,NN_in)]; |
48 |
} |
49 |
out->minColor=MIN(out->minColor,in->minColor+out->maxColor+1); |
50 |
out->maxColor=MAX(out->maxColor,in->maxColor+out->maxColor+1); |
51 |
} |
52 |
} |
53 |
/* |
54 |
* $Log$ |
55 |
* Revision 1.3 2005/09/15 03:44:22 jgs |
56 |
* Merge of development branch dev-02 back to main trunk on 2005-09-15 |
57 |
* |
58 |
* Revision 1.2.2.1 2005/09/07 06:26:18 gross |
59 |
* the solver from finley are put into the standalone package paso now |
60 |
* |
61 |
* Revision 1.2 2005/07/08 04:07:50 jgs |
62 |
* Merge of development branch back to main trunk on 2005-07-08 |
63 |
* |
64 |
* Revision 1.1.1.1.2.2 2005/06/30 01:53:55 gross |
65 |
* a bug in coloring fixed |
66 |
* |
67 |
* Revision 1.1.1.1.2.1 2005/06/29 02:34:50 gross |
68 |
* some changes towards 64 integers in finley |
69 |
* |
70 |
* Revision 1.1.1.1 2004/10/26 06:53:57 jgs |
71 |
* initial import of project esys2 |
72 |
* |
73 |
* Revision 1.1.1.1 2004/06/24 04:00:40 johng |
74 |
* Initial version of eys using boost-python. |
75 |
* |
76 |
* |
77 |
*/ |