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

Contents of /trunk/finley/src/ElementFile_markNodes.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1028 - (show annotations)
Wed Mar 14 00:15:24 2007 UTC (12 years, 5 months ago) by gross
File MIME type: text/plain
File size: 3388 byte(s)
modifications to be compliant with _WIN32. The substitutes for asinh, acosh, atanh are still missing (erf will through an exception)
1 /*
2 ************************************************************
3 * Copyright 2006 by ACcESS MNRF *
4 * *
5 * http://www.access.edu.au *
6 * Primary Business: Queensland, Australia *
7 * Licensed under the Open Software License version 3.0 *
8 * http://www.opensource.org/licenses/osl-3.0.php *
9 * *
10 ************************************************************
11 */
12
13 /**************************************************************/
14
15 /* Finley: ElementFile */
16
17 /* mark the used nodes with offeset: */
18
19 /**************************************************************/
20
21 /* Copyrights by ACcESS Australia 2003,2004,2005 */
22 /* Author: gross@access.edu.au */
23 /* Version: $Id$ */
24
25 /**************************************************************/
26
27 #include "ElementFile.h"
28
29 /**************************************************************/
30
31 void Finley_ElementFile_markNodes(index_t* mask,index_t offset,Finley_ElementFile* in,bool_t useLinear) {
32 dim_t i,NN,NN2,e;
33 index_t color,*lin_node,*id=NULL;
34 if (in!=NULL) {
35 id=TMPMEMALLOC(in->ReferenceElement->Type->numNodes, index_t);
36 if (! Finley_checkPtr(id) ){
37 for (i=0;i<in->ReferenceElement->Type->numNodes;i++) id[i]=i;
38 if (useLinear) {
39 NN=in->LinearReferenceElement->Type->numNodes;
40 lin_node=in->ReferenceElement->Type->linearNodes;
41 } else {
42 NN=in->ReferenceElement->Type->numNodes;
43 lin_node=id;
44 }
45 NN2=in->ReferenceElement->Type->numNodes;
46 if ((in->maxColor-in->minColor+1)*NN<in->numElements) {
47 #pragma omp parallel private(color)
48 {
49 for (color=in->minColor;color<=in->maxColor;color++) {
50 #pragma omp for private(e,i) schedule(static)
51 for (e=0;e<in->numElements;e++) {
52 if (in->Color[e]==color) {
53 for (i=0;i<NN;i++)
54 mask[in->Nodes[INDEX2(lin_node[i],e,NN2)]-offset]=1;
55 }
56 }
57 }
58 #pragma omp barrier
59 }
60 } else {
61 #pragma omp parallel for private(e,i) schedule(static)
62 for (e=0;e<in->numElements;e++) {
63 for (i=0;i<NN;i++)
64 mask[in->Nodes[INDEX2(lin_node[i],e,NN2)]-offset]=1;
65 }
66 }
67 TMPMEMFREE(id);
68 }
69 }
70 }
71
72 /*
73 * $Log$
74 * Revision 1.4 2005/09/15 03:44:22 jgs
75 * Merge of development branch dev-02 back to main trunk on 2005-09-15
76 *
77 * Revision 1.3.2.1 2005/09/07 06:26:18 gross
78 * the solver from finley are put into the standalone package paso now
79 *
80 * Revision 1.3 2005/07/22 03:53:08 jgs
81 * Merge of development branch back to main trunk on 2005-07-22
82 *
83 * Revision 1.2 2005/07/08 04:07:50 jgs
84 * Merge of development branch back to main trunk on 2005-07-08
85 *
86 * Revision 1.1.1.1.2.2 2005/07/18 10:34:54 gross
87 * some informance improvements when reading meshes
88 *
89 * Revision 1.1.1.1.2.1 2005/06/29 02:34:49 gross
90 * some changes towards 64 integers in finley
91 *
92 * Revision 1.1.1.1 2004/10/26 06:53:57 jgs
93 * initial import of project esys2
94 *
95 * Revision 1.1.1.1 2004/06/24 04:00:40 johng
96 * Initial version of eys using boost-python.
97 *
98 *
99 */

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26