ESYS13  Revision_
ReferenceElementSets.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 /***************************************************************************************************************
00016 
00017     Finley: Reference element sets manage the reference elements for the full and reduced integration order
00018 
00019 **************************************************************************************************************/
00020 
00021 #ifndef INC_FINLEY_REFERENCEELEMENTSETS
00022 #define INC_FINLEY_REFERENCEELEMENTSETS
00023 
00024 
00025 /**************************************************************/
00026 
00027 #include "ReferenceElements.h"
00028 
00029 /**************************************************************/
00030 
00031    
00032 typedef struct Finley_ReferenceElementSet {
00033     Finley_ReferenceElement* referenceElementReducedQuadrature;
00034     Finley_ReferenceElement* referenceElement;
00035     dim_t numNodes;
00036     index_t reference_counter;
00037 } Finley_ReferenceElementSet;
00038 
00039 
00040 
00041 Finley_ReferenceElementSet* Finley_ReferenceElementSet_alloc(Finley_ElementTypeId id, index_t order, index_t reduced_order);
00042 void Finley_ReferenceElementSet_dealloc(Finley_ReferenceElementSet* in);
00043 Finley_ReferenceElementSet* Finley_ReferenceElementSet_reference(Finley_ReferenceElementSet* in);
00044 Finley_ShapeFunction* Finley_ReferenceElementSet_borrowBasisFunctions(Finley_ReferenceElementSet* in, bool_t reducedShapefunction, bool_t reducedIntegrationOrder);
00045 Finley_ShapeFunction* Finley_ReferenceElementSet_borrowParametrization(Finley_ReferenceElementSet* in, bool_t reducedIntegrationOrder);
00046 Finley_ReferenceElement* Finley_ReferenceElementSet_borrowReferenceElement(Finley_ReferenceElementSet* in, bool_t reducedIntegrationOrder);
00047 #define Finley_ReferenceElementSet_getNumNodes(__IN__) ((__IN__)->numNodes)
00048 
00049 #endif /* #ifndef INC_FINLEY_REFERENCEELEMENTSETS */