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

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

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

trunk/esys2/finley/src/finleyC/ElementFile_allocTable.c revision 100 by jgs, Wed Dec 15 03:48:48 2004 UTC temp_trunk_copy/finley/src/ElementFile_allocTable.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: ElementFile */  /*   Finley: ElementFile */
# Line 7  Line 21 
21    
22  /**************************************************************/  /**************************************************************/
23    
 /*   Copyrights by ACcESS Australia 2003 */  
 /*   Author: gross@access.edu.au */  
 /*   Version: $Id$                                            */  
   
 /**************************************************************/  
   
 #include "Finley.h"  
24  #include "ElementFile.h"  #include "ElementFile.h"
25    
26  /****************************************************************************/  /****************************************************************************/
27    
28  /*  allocates the element table within an element file to hold numElements: */  /*  allocates the element table within an element file to hold numElements: */
29    
30  void Finley_ElementFile_allocTable(Finley_ElementFile* in,int numElements) {  void Finley_ElementFile_allocTable(Finley_ElementFile* in,dim_t numElements)
31    maybelong *Id2=NULL,*Nodes2=NULL,*Tag2=NULL,*Color2=NULL;  {
32    maybelong numNodes,e,i;    index_t *Id2=NULL,*Nodes2=NULL,*Tag2=NULL,*Color2=NULL;
33        Paso_MPI_rank *Owner2=NULL;
34    /*  allocate memory: */    dim_t numNodes,e,i;
35      
36    numNodes=(maybelong) in->ReferenceElement->Type->numNodes;    Finley_resetError();
37    Id2=(maybelong*) MEMALLOC(numElements*sizeof(maybelong));    /*  allocate memory: */
38    Nodes2=(maybelong*) MEMALLOC(numElements*numNodes*sizeof(maybelong));    numNodes=in->numNodes;
39    Tag2=(maybelong*) MEMALLOC(numElements*sizeof(maybelong));    Owner2=MEMALLOC(numElements,Paso_MPI_rank);
40    Color2=(maybelong*) MEMALLOC(numElements*sizeof(maybelong));    Id2=MEMALLOC(numElements,index_t);
41      Nodes2=MEMALLOC(numElements*in->numNodes,index_t);
42      Tag2=MEMALLOC(numElements,index_t);
43      Color2=MEMALLOC(numElements,index_t);
44        
45    /*  if fine, deallocate the old table and replace by new: */    /*  if fine, deallocate the old table and replace by new: */
46        
47    if (Finley_checkPtr(Id2) || Finley_checkPtr(Nodes2) || Finley_checkPtr(Tag2) || Finley_checkPtr(Color2)) {    if ( Finley_checkPtr(Owner2) || Finley_checkPtr(Id2) || Finley_checkPtr(Nodes2) ||
48      MEMFREE(Id2);                                                         Finley_checkPtr(Tag2) || Finley_checkPtr(Color2) ) {
49        MEMFREE(Owner2);    
50      MEMFREE(Nodes2);      MEMFREE(Nodes2);
51        MEMFREE(Id2);
52      MEMFREE(Tag2);      MEMFREE(Tag2);
53      MEMFREE(Color2);      MEMFREE(Color2);
54    } else {    } else {
55      Finley_ElementFile_deallocTable(in);      Finley_ElementFile_freeTable(in);
56        in->Owner=Owner2;
57      in->numElements=numElements;      in->numElements=numElements;
58      in->Id=Id2;      in->Id=Id2;
59      in->Nodes=Nodes2;      in->Nodes=Nodes2;
# Line 52  void Finley_ElementFile_allocTable(Finle Line 65  void Finley_ElementFile_allocTable(Finle
65      #pragma omp parallel for private(e,i) schedule(static)      #pragma omp parallel for private(e,i) schedule(static)
66      for (e=0;e<numElements;e++) {      for (e=0;e<numElements;e++) {
67         for (i=0;i<numNodes;i++) in->Nodes[INDEX2(i,e,numNodes)]=-1;         for (i=0;i<numNodes;i++) in->Nodes[INDEX2(i,e,numNodes)]=-1;
68           in->Owner[e]=-1;
69         in->Id[e]=-1;         in->Id[e]=-1;
70         in->Tag[e]=-1;         in->Tag[e]=-1;
71         in->Color[e]=-1;         in->Color[e]=-1;
72      }      }
73      in->numColors=0;      in->maxColor=-1;
74        in->minColor=0;
75    }    }
76    return;    return;
77  }  }
78    
79  /*  deallocates the element table within an element file: */  /*  deallocates the element table within an element file: */
80    
81  void Finley_ElementFile_deallocTable(Finley_ElementFile* in) {  void Finley_ElementFile_freeTable(Finley_ElementFile* in) {
82      MEMFREE(in->Owner);
83    MEMFREE(in->Id);    MEMFREE(in->Id);
84    MEMFREE(in->Nodes);    MEMFREE(in->Nodes);
85    MEMFREE(in->Tag);    MEMFREE(in->Tag);
86    MEMFREE(in->Color);    MEMFREE(in->Color);
87    in->numElements=0;    in->numElements=0;
88    in->numColors=0;    in->maxColor=-1;
89      in->minColor=0;
90  }  }
   
 /*  
 * $Log$  
 * Revision 1.3  2004/12/15 03:48:45  jgs  
 * *** empty log message ***  
 *  
 * Revision 1.1.1.1  2004/10/26 06:53:57  jgs  
 * initial import of project esys2  
 *  
 * Revision 1.1.1.1  2004/06/24 04:00:40  johng  
 * Initial version of eys using boost-python.  
 *  
 *  
 */  

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

  ViewVC Help
Powered by ViewVC 1.1.26