ESYS13  Revision_
NodeMapping.h
Go to the documentation of this file.
00001 
00002 /*******************************************************
00003 *
00004 * Copyright (c) 2003-2012 by University of Queensland
00005 * Earth Systems Science Computational Center (ESSCC)
00006 * http://www.uq.edu.au/esscc
00007 *
00008 * Primary Business: Queensland, Australia
00009 * Licensed under the Open Software License version 3.0
00010 * http://www.opensource.org/licenses/osl-3.0.php
00011 *
00012 *******************************************************/
00013 
00014 
00015 /* NodeMapping provides a mapping from the local nodes typically to the     */
00016 /* degrees of freedom, the reduced degrees of freedom or the reduced node set */
00017 
00018 #ifndef INC_FINLEY_NODEMAPPING
00019 #define INC_FINLEY_NODEMAPPING
00020 
00021 #include "esysUtils/Esys_MPI.h"
00022 
00023 
00024 struct Finley_NodeMapping {
00025   dim_t numNodes; /* number of FEM nodes */
00026   index_t *target; /* target[i] defines the target if FEM node i =0,...,numNodes */
00027   index_t unused;  /* target[i]=unused defines that no target is defined for FEM  node i */
00028   dim_t numTargets; /* number of targets */
00029   index_t *map;  /* maps the target nodes back to the FEM nodes: target[map[i]]=i */
00030   dim_t reference_counter;
00031 };
00032 typedef struct Finley_NodeMapping Finley_NodeMapping;
00033 
00034 Finley_NodeMapping* Finley_NodeMapping_alloc(dim_t numNodes, index_t* target, index_t unused);
00035 void Finley_NodeMapping_free(Finley_NodeMapping*);
00036 Finley_NodeMapping* Finley_NodeMapping_getReference(Finley_NodeMapping *in );
00037 
00038 #endif