/[escript]/trunk/finley/src/NodeFile.h
ViewVC logotype

Diff of /trunk/finley/src/NodeFile.h

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

trunk/esys2/finley/src/finleyC/NodeFile.h revision 150 by jgs, Thu Sep 15 03:44:45 2005 UTC trunk/finley/src/NodeFile.h revision 782 by bcumming, Tue Jul 18 00:47:47 2006 UTC
# Line 1  Line 1 
1  /*  /*
2   ******************************************************************************   ************************************************************
3   *                                                                            *   *          Copyright 2006 by ACcESS MNRF                   *
4   *       COPYRIGHT  ACcESS 2003,2004,2005 -  All Rights Reserved              *   *                                                          *
5   *                                                                            *   *              http://www.access.edu.au                    *
6   * This software is the property of ACcESS. No part of this code              *   *       Primary Business: Queensland, Australia            *
7   * may be copied in any form or by any means without the expressed written    *   *  Licensed under the Open Software License version 3.0    *
8   * consent of ACcESS.  Copying, use or modification of this software          *   *     http://www.opensource.org/licenses/osl-3.0.php       *
9   * by any unauthorised person is illegal unless that person has a software    *   *                                                          *
10   * license agreement with ACcESS.                                             *   ************************************************************
  *                                                                            *  
  ******************************************************************************  
11  */  */
12    
13  /* Version: $Id$ */  /* Version: $Id$ */
# Line 20  Line 18 
18  #define MAX_numDim 3  #define MAX_numDim 3
19    
20  #include "Finley.h"  #include "Finley.h"
21  #include "escript/Data/DataC.h"  #include "escript/DataC.h"
22    
23    #ifdef PASO_MPI
24    #include "Distribution.h"
25    #include "./paso/CommBuffer.h"
26    #endif
27    
28  struct Finley_NodeFile {  struct Finley_NodeFile {
29    #ifdef PASO_MPI
30      Paso_MPIInfo *MPIInfo;              /* MPI information */
31      Finley_NodeDistribution *degreeOfFreedomDistribution;  /* information about the distribution of degrees of freedom
32                                                  on this subdomain and over other subdomains */
33      Finley_NodeDistribution *reducedDegreeOfFreedomDistribution;
34      Paso_CommBuffer *CommBuffer;
35      Paso_CommBuffer *reducedCommBuffer;
36    
37        index_t *Dom;                                                   /* flags whether a node references an internal/boundary/external DOF. Is one of
38                                                                                         either NODE_INTERNAL, NODE_BOUNDARY or NODE_EXTERNAL, as defined in
39                                                                                         Mesh.h */
40    #endif
41    dim_t numNodes;                      /* number of nodes */    dim_t numNodes;                      /* number of nodes */
42    dim_t numDim;                        /* spatial dimension */    dim_t numDim;                        /* spatial dimension */
43    index_t *Id;                         /* Id[i] is the id number of node i. this number is not really    index_t *Id;                         /* Id[i] is the id number of node i. this number is not really
# Line 48  struct Finley_NodeFile { Line 63  struct Finley_NodeFile {
63    dim_t reducedNumNodes;               /* returnes the number of nodes in the mesh when looking at the corners */    dim_t reducedNumNodes;               /* returnes the number of nodes in the mesh when looking at the corners */
64                                         /* of elements only                                                     */                                         /* of elements only                                                     */
65    index_t *toReduced;                  /* toReduced[i] is the node id in the reduced mesh. if toReduced[i]<0 it means that the node does not appear in the reduced mesh */    index_t *toReduced;                  /* toReduced[i] is the node id in the reduced mesh. if toReduced[i]<0 it means that the node does not appear in the reduced mesh */
66    
67      int status; /* the status counts the updates done on the node coordinates */
68                  /* the value of status is increased by when the node coordinates are updated.*/
69                                                                                                                                                                                                    
70                                                                                                                                                                                                    
71  };  };
72    
73    
74    
75  typedef struct Finley_NodeFile Finley_NodeFile;  typedef struct Finley_NodeFile Finley_NodeFile;
76    
77  Finley_NodeFile * Finley_NodeFile_alloc(dim_t);  #ifdef PASO_MPI
78    Finley_NodeFile* Finley_NodeFile_alloc(dim_t, Paso_MPIInfo *MPIInfo);
79    void Finley_NodeFile_allocTable(Finley_NodeFile*,dim_t);
80    #else
81    Finley_NodeFile* Finley_NodeFile_alloc(dim_t numDim);
82    void Finley_NodeFile_allocTable(Finley_NodeFile*,dim_t);
83    #endif
84    
85    /* Finley_NodeFile * Finley_NodeFile_alloc(dim_t); */
86  void Finley_NodeFile_dealloc(Finley_NodeFile*);  void Finley_NodeFile_dealloc(Finley_NodeFile*);
87  void Finley_NodeFile_setIdRange(index_t*,index_t*,Finley_NodeFile*);  void Finley_NodeFile_setIdRange(index_t*,index_t*,Finley_NodeFile*);
88  void Finley_NodeFile_scatter(index_t*,Finley_NodeFile*,Finley_NodeFile*);  void Finley_NodeFile_scatter(index_t*,Finley_NodeFile*,Finley_NodeFile*);
89  void Finley_NodeFile_gather(index_t*,Finley_NodeFile*,Finley_NodeFile*);  void Finley_NodeFile_gather(index_t*,Finley_NodeFile*,Finley_NodeFile*);
90  void Finley_NodeFile_setCoordinates(Finley_NodeFile*,escriptDataC*);  void Finley_NodeFile_setCoordinates(Finley_NodeFile*,escriptDataC*);
91  void Finley_NodeFile_copyTable(dim_t,Finley_NodeFile*,dim_t,dim_t,Finley_NodeFile*);  void Finley_NodeFile_copyTable(dim_t,Finley_NodeFile*,dim_t,dim_t,Finley_NodeFile*);
92  void Finley_NodeFile_allocTable(Finley_NodeFile*,dim_t);  void Finley_NodeFile_setTags(Finley_NodeFile*,const int,escriptDataC*);
93  void Finley_NodeFile_deallocTable(Finley_NodeFile*);  void Finley_NodeFile_deallocTable(Finley_NodeFile*);
94    
95  #endif  #endif

Legend:
Removed from v.150  
changed lines
  Added in v.782

  ViewVC Help
Powered by ViewVC 1.1.26