SPModel: libSPModel/src/SurfaceRegularMesh.h Source File
VPAC - Computational Software Development
Main | SPModel | StGermain FrameWork |
Main Page | Alphabetical List | Class List | Directories | File List | Class Members | File Members

SurfaceRegularMesh.h

Go to the documentation of this file.
00001 
00002 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00003 **
00004 ** Copyright (C), 2004, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
00005 **
00006 ** Authors:
00007 **  Ogar R. Widjaja, Computational Scientist, VPAC.
00008 **  Raquibul Hassan, Software Engineer, VPAC. (raq@vpac.org)
00009 **  Keith Hsuan, Computational Scientist, VPAC (keith@vpac.org)
00010 **  William F. Appelbe, Director, VPAC. (bill@vpac.org)
00011 **  Stevan M. Quenette, Senior Software Engineer, VPAC. (steve@vpac.org)
00012 **  Patrick D. Sunter, Software Engineer, VPAC. (patrick@vpac.org)
00013 **
00014 ** This file may be distributed under the terms of the VPAC Public License
00015 ** as defined by VPAC of Australia and appearing in the file
00016 ** LICENSE.VPL included in the packaging of this file.
00017 **
00018 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00019 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00020 **
00021 */
00033 #ifndef __SPModel_SurfaceRegularMesh_h__
00034 #define __SPModel_SurfaceRegularMesh_h__
00035     
00036     typedef struct RegularNode_t{
00037         int     id; \
00038         float   x;
00039         float   y;
00040     }RegularNode;
00041 
00042     #define __SurfaceRegularMesh \
00043         __Stg_Component \
00044         Dictionary                  *dictionary; \
00045         int                         nx; \
00046         int                         ny; \
00047         float                       **dataArray; \
00048         RegularNode                 **regularNodes; \
00049         SurfaceMesh                 *mesh;
00050     struct SurfaceRegularMesh{ __SurfaceRegularMesh };
00051 
00052 SurfaceRegularMesh *SurfaceRegularMesh_DefaultNew( Name name );
00053 
00054 SurfaceRegularMesh *SurfaceRegularMesh_New( Name name, Dictionary *dictionary,
00055                                             SurfaceMesh *mesh );
00056 
00057 SurfaceRegularMesh                  *_SurfaceRegularMesh_New( SizeT                         _sizeOfSelf,
00058                                     Type                            type,
00059                                     Stg_Class_DeleteFunction*               _delete,
00060                                     Stg_Class_PrintFunction*                _print,
00061                                     Stg_Class_CopyFunction*             _copy, 
00062                                     Stg_Component_DefaultConstructorFunction*   _defaultConstructor,
00063                                     Stg_Component_ConstructFunction*            _construct,
00064                                     Stg_Component_BuildFunction*        _build,
00065                                     Stg_Component_InitialiseFunction*       _initialise,
00066                                     Stg_Component_ExecuteFunction*      _execute,
00067                                     Stg_Component_DestroyFunction*      _destroy,
00068                                     Name                            name,
00069                                     Bool                            initFlag,
00070                                     Dictionary                      *dictionary,
00071                                     SurfaceMesh                     *mesh );
00072 
00073 void _SurfaceRegularMesh_Init( SurfaceRegularMesh *self );
00074 
00075 void _SurfaceRegularMesh_Print( void *surfaceRegularMesh, Stream *stream );
00076 
00077 void _SurfaceRegularMesh_Delete( void *surfaceRegularMesh );
00078 
00079 void _SurfaceRegularMesh_Construct( void *surfaceRegularMesh, Stg_ComponentFactory *cf );
00080 
00081 void _SurfaceRegularMesh_Build( void *surfaceRegularMesh, void *data );
00082 
00083 void _SurfaceRegularMesh_Initialise( void *surfaceRegularMesh, void *data );
00084 
00085 void _SurfaceRegularMesh_Execute( void *surfaceRegularMesh, void *data );
00086 
00087 void _SurfaceRegularMesh_Destroy( void *surfaceRegularMesh, void *data );
00088 
00089 void SurfaceRegularMeshPrintFunction( void *data, void *stream );
00090 
00091 void SurfaceRegularMesh_GatherData( SurfaceRegularMesh *regularMesh, _Interpolator *interpolator );
00092 
00093 void SurfaceRegularMesh_BroadcastData( SurfaceRegularMesh *regularMesh );
00094 
00095 #endif
00096