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 degrees of freedom,                            */
00016 /*    the reduced degrees of freedom or the reduced node set                                                           */
00017 /*                                                                                                                     */
00018 
00019 #ifndef INC_DUDLEY_NODEMAPPING
00020 #define INC_DUDLEY_NODEMAPPING
00021 
00022 #include "esysUtils/Esys_MPI.h"
00023 
00024 struct Dudley_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 Dudley_NodeMapping Dudley_NodeMapping;
00033 
00034 Dudley_NodeMapping *Dudley_NodeMapping_alloc(dim_t numNodes, index_t *target, index_t unused);
00035 void Dudley_NodeMapping_free(Dudley_NodeMapping *);
00036 Dudley_NodeMapping *Dudley_NodeMapping_getReference(Dudley_NodeMapping *in);
00037 
00038 #endif