[cig-commits] commit:

Mercurial hg at geodynamics.org
Mon Nov 24 11:58:54 PST 2008


changeset:   87:2d2b0e0a0ff1
user:        LukeHodkinson
date:        Wed May 14 02:42:34 2008 +0000
files:       Geometry/src/BlockGeometry.c Geometry/src/BlockGeometry.h Geometry/src/BlockGeometry.meta Geometry/src/Geometry.h Geometry/src/GeometryClass.c Geometry/src/GeometryClass.h Geometry/src/GeometryClass.meta Geometry/src/IJK26Topology.c Geometry/src/IJK26Topology.h Geometry/src/IJK26Topology.meta Geometry/src/IJK6Topology.c Geometry/src/IJK6Topology.h Geometry/src/IJK6Topology.meta Geometry/src/IJKTopology.c Geometry/src/IJKTopology.h Geometry/src/IJKTopology.meta Geometry/src/Init.c Geometry/src/IrregGeometry.c Geometry/src/IrregGeometry.h Geometry/src/IrregGeometry.meta Geometry/src/IrregTopology.c Geometry/src/IrregTopology.h Geometry/src/IrregTopology.meta Geometry/src/RefinedRegionsGeometry.c Geometry/src/RefinedRegionsGeometry.h Geometry/src/RefinedRegionsGeometry.meta Geometry/src/Topology.c Geometry/src/Topology.h Geometry/src/Topology.meta Utils/src/RegularMeshUtils.c
description:
Removing some old old stuff. Also fixing a
problem with building walls for cartesian
meshes that was causing bogus results in 2D.


diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/BlockGeometry.c
--- a/Geometry/src/BlockGeometry.c	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,360 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-** $Id: BlockGeometry.c 3882 2006-10-26 04:41:18Z KathleenHumble $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <mpi.h>
-#include "StGermain/StGermain.h"
-
-
-#include "units.h"
-#include "types.h"
-#include "GeometryClass.h"
-#include "BlockGeometry.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include <assert.h>
-
-
-/* Textual name of this class */
-const Type BlockGeometry_Type = "BlockGeometry";
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-BlockGeometry* BlockGeometry_DefaultNew( Name name )
-{
-	return (BlockGeometry*)_BlockGeometry_New(
-		sizeof(BlockGeometry), 
-		BlockGeometry_Type, 
-		_BlockGeometry_Delete, 
-		_BlockGeometry_Print,
-		_BlockGeometry_Copy,
-		(Stg_Component_DefaultConstructorFunction*)BlockGeometry_DefaultNew,
-		_BlockGeometry_Construct,
-		_BlockGeometry_Build,
-		_BlockGeometry_Initialise,
-		_BlockGeometry_Execute,
-		_BlockGeometry_Destroy,
-		name,
-		False,
-		_BlockGeometry_BuildPoints,
-		_BlockGeometry_PointAt,
-		NULL );
-}
-
-BlockGeometry* BlockGeometry_New(
-		Name name,
-		Dictionary*					dictionary )
-{
-	return _BlockGeometry_New( 
-		sizeof(BlockGeometry), 
-		BlockGeometry_Type, 
-		_BlockGeometry_Delete, 
-		_BlockGeometry_Print,
-		_BlockGeometry_Copy,
-		(Stg_Component_DefaultConstructorFunction*)BlockGeometry_DefaultNew,
-		_BlockGeometry_Construct,
-		_BlockGeometry_Build,
-		_BlockGeometry_Initialise,
-		_BlockGeometry_Execute,
-		_BlockGeometry_Destroy,
-		name,
-		True,
-		_BlockGeometry_BuildPoints,
-		_BlockGeometry_PointAt,
-		dictionary );
-}
-
-
-void BlockGeometry_Init(
-		BlockGeometry*					self,
-		Name						name,
-		Dictionary*					dictionary )
-{
-	/* General info */
-	self->type = BlockGeometry_Type;
-	self->_sizeOfSelf = sizeof(BlockGeometry);
-	self->_deleteSelf = False;
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	self->_delete = _BlockGeometry_Delete;
-	self->_print = _BlockGeometry_Print;
-	self->_copy = _BlockGeometry_Copy;
-	self->_defaultConstructor = (Stg_Component_DefaultConstructorFunction*)BlockGeometry_DefaultNew;
-	self->_construct = _BlockGeometry_Construct;
-	self->_build = _BlockGeometry_Build;
-	self->_initialise = _BlockGeometry_Initialise;
-	self->_execute = _BlockGeometry_Execute;
-	self->_destroy = _BlockGeometry_Destroy;
-	self->buildPoints = _BlockGeometry_BuildPoints;
-	self->pointAt = _BlockGeometry_PointAt;
-	
-	_Stg_Class_Init( (Stg_Class*)self );
-	_Stg_Object_Init( (Stg_Object*)self, name, NON_GLOBAL );
-	_Stg_Component_Init( (Stg_Component*)self );
-	
-	_Geometry_Init( (Geometry*)self );
-	
-	/* BlockGeometry info */
-	_BlockGeometry_Init( self, NULL );
-}
-
-
-BlockGeometry* _BlockGeometry_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Geometry_BuildPointsFunction*			buildPoints,
-		Geometry_PointAtFunction*			pointAt,
-		Dictionary*					dictionary )
-{
-	BlockGeometry* self;
-	
-	/* Allocate memory */
-	assert( _sizeOfSelf >= sizeof(BlockGeometry) );
-	self = (BlockGeometry*)_Geometry_New(
-		_sizeOfSelf,
-		type,
-		_delete,
-		_print,
-		_copy,
-		_defaultConstructor,
-		_construct,
-		_build,
-		_initialise,
-		_execute,
-		_destroy,
-		name,
-		initFlag,
-		buildPoints,
-		pointAt,
-		dictionary );
-	
-	/* General info */
-	
-	/* Virtual info */
-	
-	/* BlockGeometry info */
-	if( initFlag ){
-		_BlockGeometry_Init( self, NULL );
-	}
-	
-	return self;
-}
-
-void _BlockGeometry_Init( BlockGeometry* self, IJK size ) {
-	/* General and Virtual info should already be set */
-	
-	/* BlockGeometry info */
-	self->isConstructed = False;
-
-	if ( size ) {
-		memcpy( self->size, size, sizeof(IJK) );
-	}
-	else {
-		self->size[ I_AXIS ] = Dictionary_GetUnsignedInt_WithDefault( self->dictionary, "meshSizeI", 2 );
-		self->size[ J_AXIS ] = Dictionary_GetUnsignedInt_WithDefault( self->dictionary, "meshSizeJ", 2 );
-		self->size[ K_AXIS ] = Dictionary_GetUnsignedInt_WithDefault( self->dictionary, "meshSizeK", 2 );
-	}
-	self->pointCount = self->size[I_AXIS] * self->size[J_AXIS] * self->size[K_AXIS];
-	assert( self->pointCount );
-	
-	self->min[ I_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "minX", 0.0f );
-	self->min[ J_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "minY", 0.0f );
-	self->min[ K_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "minZ", 0.0f );
-
-	self->max[ I_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "maxX", 1.0f );
-	self->max[ J_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "maxY", 1.0f );
-	self->max[ K_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "maxZ", 1.0f );
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _BlockGeometry_Delete( void* blockGeometry ) {
-	BlockGeometry* self = (BlockGeometry*)blockGeometry;
-	
-	/* Stg_Class_Delete parent */
-	_Geometry_Delete( self );
-}
-
-
-void _BlockGeometry_Print( void* blockGeometry, Stream* stream ) {
-	BlockGeometry* self = (BlockGeometry*)blockGeometry;
-	
-	/* Set the Journal for printing informations */
-	Stream* blockGeometryStream;
-	blockGeometryStream = Journal_Register( InfoStream_Type, "BlockGeometryStream" );
-
-	/* Print parent */
-	_Geometry_Print( self, stream );
-	
-	/* General info */
-	Journal_Printf( stream, "BlockGeometry (ptr): (%p)\n", self );
-	
-	/* Virtual info */
-	
-	/* BlockGeometry info */
-}
-
-void _BlockGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf, void* data ){
-	BlockGeometry*  self   = (BlockGeometry*)blockGeometry;
-	IJK             size;
-	int             shift;
-	Dimension_Index dim;
-	Dimension_Index dim_I;
-
-	self->dictionary = cf->rootDict;
-
-	/* Get Size from Dictionary */
-	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
-		
-	size[ I_AXIS ] = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "sizeI", 1 );  
-	size[ J_AXIS ] = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "sizeJ", 1 );
-	size[ K_AXIS ] = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "sizeK", 1 );
-	if ( dim == 2 )
-		size[ K_AXIS ] = 1;
-
-	/* Shift the size if nessesary */
-	shift = Stg_ComponentFactory_GetInt( cf, self->name, "sizeShift", 0 );
-	for ( dim_I = I_AXIS ; dim_I < dim ; dim_I++ )
-		size[ dim_I ] += shift;
-	
-	_Geometry_Init( (Geometry*)self );
-	_BlockGeometry_Init( self, size );
-}
-	
-void _BlockGeometry_Build( void* blockGeometry, void *data ){
-	
-}
-	
-void _BlockGeometry_Initialise( void* blockGeometry, void *data ){
-	
-}
-	
-void _BlockGeometry_Execute( void* blockGeometry, void *data ){
-	
-}
-	
-void _BlockGeometry_Destroy( void* blockGeometry, void *data ){
-	
-}
-
-void* _BlockGeometry_Copy( void* blockGeometry, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
-	BlockGeometry*	self = (BlockGeometry*)blockGeometry;
-	BlockGeometry*	newBlockGeometry;
-	Index		idx_I;
-	
-	newBlockGeometry = (BlockGeometry*)_Geometry_Copy( self, dest, deep, nameExt, ptrMap );
-	
-	for( idx_I = 0; idx_I < 3; idx_I++ ) {
-		newBlockGeometry->size[idx_I] = self->size[idx_I];
-		newBlockGeometry->min[idx_I] = self->min[idx_I];
-		newBlockGeometry->max[idx_I] = self->max[idx_I];
-	}
-	
-	return (void*)newBlockGeometry;
-}
-
-
-void _BlockGeometry_BuildPoints( void* blockGeometry, Coord_List points )
-{
-	BlockGeometry*  self = (BlockGeometry*)blockGeometry;
-	Index		i;
-	
-	for( i = 0; i < self->pointCount; i++ ) {
-		IJK	ijk;
-	
-		ijk[0] = i % self->size[0];
-		ijk[1] = (i / self->size[0]) % self->size[1];
-		ijk[2] = i / (self->size[0] * self->size[1]);
-	
-		points[i][0] = self->size[0] > 1 ? self->min[0] + (self->max[0] - self->min[0]) * ((double)ijk[0] / 
-			(double)(self->size[0] - 1)) : self->min[0];
-		points[i][1] = self->size[1] > 1 ? self->min[1] + (self->max[1] - self->min[1]) * ((double)ijk[1] / 
-			(double)(self->size[1] - 1)) : self->min[1];
-		points[i][2] = self->size[2] > 1 ? self->min[2] + (self->max[2] - self->min[2]) * ((double)ijk[2] / 
-			(double)(self->size[2] - 1)) : self->min[2];
-	}
-}
-
-
-void _BlockGeometry_PointAt( void* blockGeometry, Index index, Coord point )
-{
-	BlockGeometry* self = (BlockGeometry*)blockGeometry;
-	
-	if( index < self->pointCount ) {
-		IJK	ijk;
-	
-		ijk[0] = index % self->size[0];
-		ijk[1] = (index / self->size[0]) % self->size[1];
-		ijk[2] = index / (self->size[0] * self->size[1]);
-	
-		point[0] = self->size[0] > 1 ? self->min[0] + (self->max[0] - self->min[0]) * ((double)ijk[0] / 
-			(double)(self->size[0] - 1)) : self->min[0];
-		point[1] = self->size[1] > 1 ? self->min[1] + (self->max[1] - self->min[1]) * ((double)ijk[1] / 
-			(double)(self->size[1] - 1)) : self->min[1];
-		point[2] = self->size[2] > 1 ? self->min[2] + (self->max[2] - self->min[2]) * ((double)ijk[2] / 
-			(double)(self->size[2] - 1)) : self->min[2];
-	}
-	else {
-		point[0] = HUGE_VAL;
-		point[1] = HUGE_VAL;
-		point[2] = HUGE_VAL;
-	}
-}
-
-
-/*--------------------------------------------------------------------------------------------------------------------------
-** Public Functions
-*/
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Private Functions
-*/
-
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/BlockGeometry.h
--- a/Geometry/src/BlockGeometry.h	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-*/
-/** \file
-**  Role:
-**
-** Assumptions:
-**
-** Comments:
-**
-** $Id: BlockGeometry.h 3851 2006-10-12 08:57:22Z SteveQuenette $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Domain_Geometry_BlockGeometry_h__
-#define __Domain_Geometry_BlockGeometry_h__
-
-	/* Virtual function types */
-	
-	/* Textual name of this class */
-	extern const Type BlockGeometry_Type;
-
-	/* BlockGeometry information */
-	#define __BlockGeometry \
-		/* General info */ \
-		__Geometry \
-		\
-		/* Virtual info */ \
-		\
-		/* BlockGeometry info ... */ \
-		IJK				size; \
-		XYZ				min; \
-		XYZ				max;
-	struct BlockGeometry { __BlockGeometry };
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-	
-	/* Create a BlockGeometry */
-	BlockGeometry* BlockGeometry_DefaultNew( Name name );
-	
-	BlockGeometry* BlockGeometry_New(
-		Name						name,
-		Dictionary*					dictionary );
-	
-	/* Initialise a BlockGeometry */
-	void BlockGeometry_Init(
-		BlockGeometry*					self,
-		Name						name,
-		Dictionary*					dictionary );
-	
-	/* Creation implementation */
-	BlockGeometry* _BlockGeometry_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Geometry_BuildPointsFunction*			buildPoints,
-		Geometry_PointAtFunction*			pointAt,
-		Dictionary*					dictionary );
-	
-	/* Initialisation implementation functions */
-	void _BlockGeometry_Init( BlockGeometry* self, IJK size );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-	
-	/* Stg_Class_Delete BlockGeometry implementation */
-	void _BlockGeometry_Delete( void* blockGeometry );
-	
-	/* Print BlockGeometry implementation */
-	void _BlockGeometry_Print( void* blockGeometry, Stream* stream );
-	
-	void _BlockGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf, void* data );
-	
-	void _BlockGeometry_Build( void* blockGeometry, void *data );
-	
-	void _BlockGeometry_Initialise( void* blockGeometry, void *data );
-	
-	void _BlockGeometry_Execute( void* blockGeometry, void *data );
-	
-	void _BlockGeometry_Destroy( void* blockGeometry, void *data );
-	
-	/* Copy */
-	#define BlockGeometry_Copy( self ) \
-		(BlockGeometry*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
-	#define BlockGeometry_DeepCopy( self ) \
-		(BlockGeometry*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
-	
-	void* _BlockGeometry_Copy( void* geometry, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
-	
-	void _BlockGeometry_BuildPoints( void* blockGeometry, Coord_List points );
-	
-	void _BlockGeometry_PointAt( void* blockGeometry, Index index, Coord point );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Public member functions
-	*/
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-	
-	
-#endif /* __Domain_Geometry_BlockGeometry_h__ */
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/BlockGeometry.meta
--- a/Geometry/src/BlockGeometry.meta	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-
-<param name="Name">BlockGeometry</param>
-<param name="Author">...</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StGermain/Discretisation/Geometry/src/</param>
-<param name="Project Web">https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome</param>
-<param name="Copyright">StGermain Framework. Copyright (C) 2003-2005 VPAC.</param>
-<param name="License">The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html</param>
-<param name="Parent">Geometry</param>
-<param name="Reference">...</param>
-<param name="Summary">Defines points inside a block of a regular mesh.</param>
-<param name="Description">BlockGeometry assigns points in a regular arrangement over a defined area of a mesh.  It assumes you are using a regular, Cartesian block in two or three dimensions.
-
-To use BlockGeometry, pass it the coordinates of opposing corners of the block, and also the number of mesh points to include for each dimension.
-
-In the nomenclature of BlockGeometry, the number of points along each axis is known as its size.  In this context, size  should not be confused with the difference between max values and min coordinates.  For example, a block where the size is 4 high (sizeJ=4) would feature four nodes along the Y axis.
-Use the component interface to set the values of sizeI, sizeJ and sizeK.
-
-Conversely, BlockGeometry searches in the Root Directory for (minX, minY, minZ) and (maxX ,maxY, maxZ), so set those values in the Root Directory.
-For a two-dimensional mesh, minX and minY coordinates refer to the bottom-left corner, while maxX and maxY refer to the top-right corner.  Meanwhile, Z coordinates are set to 0 and ignored for a 2D BlockGeometry mesh.
-
-The spaces between points along an axis of a BlockGeometry mesh are always equal.  For example, the vertical distance between points = maxY–minY/sizeJ-1.
-</param>
-
-<!--Now the interesting stuff-->
-
-
-<list name="Params">
-	<struct>
-		<param name="Name">dim</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">0</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeI</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">1</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeJ</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">1</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeK</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">1</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeShift</param>
-		<param name="Type">Int</param>
-		<param name="Default">0</param>
-		<param name="Description">...</param>
-	</struct>
-
-</list>
-
-<list name="Dependencies">
-
-</list>
-<!-- Add an exmaple XML if possible -->
-<param name="Example">
-<struct name="components" mergeType="merge">
-  <struct name="geometry">
-    <param name="Type">BlockGeometry</param>
-    <param name="sizeI"> elementResI </param>
-    <param name="sizeJ"> elementResJ </param>
-    <param name="sizeK"> elementResK </param>
-    <param name="sizeShift">+1</param>
-  </struct>
-  <struct name="elementTopology">
-    <param name="Type">IJK26Topology</param>
-    <param name="sizeI"> elementResI </param>
-    <param name="sizeJ"> elementResJ </param>
-    <param name="sizeK"> elementResK </param>
-  </struct>
-  <struct name="elementLayout">
-    <param name="Type">ParallelPipedHexaEL</param>
-    <param name="Topology">elementTopology</param>
-    <param name="Geometry">geometry</param>
-  </struct>
-</struct>
-</param>
-
-</StGermainData>
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/Geometry.h
--- a/Geometry/src/Geometry.h	Wed May 14 02:38:13 2008 +0000
+++ b/Geometry/src/Geometry.h	Wed May 14 02:42:34 2008 +0000
@@ -54,16 +54,6 @@
 	#include "Edge.h"
 	#include "Line.h"
 	#include "RMatrix.h"
-	#include "Topology.h"
-	#include "IJKTopology.h"
-	#include "IJK6Topology.h"
-	#include "IJK26Topology.h"
-	#include "IrregTopology.h"
-	#include "GeometryClass.h"
-	#include "BlockGeometry.h"
-	#include "RefinedRegionsGeometry.h"
-	#include "ShellGeometry.h"
-	#include "IrregGeometry.h"
 	#include "QuadEdge.h"
 	#include "Delaunay.h"
 	#include "ParallelDelaunay.h"
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/GeometryClass.c
--- a/Geometry/src/GeometryClass.c	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org) ) {
-	IrregTopology* self = (IrregTopology*)ir
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-** $Id: GeometryClass.c 3462 2006-02-19 06:53:24Z WalterLandry $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <mpi.h>
-#include "StGermain/StGermain.h"
-
-
-#include "units.h"
-#include "types.h"
-#include "GeometryClass.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-
-/* Textual name of this class */
-const Type Geometry_Type = "Geometry";
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-Geometry* _Geometry_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Geometry_BuildPointsFunction*			buildPoints,
-		Geometry_PointAtFunction*			pointAt,
-		Dictionary*					dictionary )
-{
-	Geometry* self;
-	
-	/* Allocate memory */
-	assert( _sizeOfSelf >= sizeof(Geometry) );
-	self = (Geometry*)_Stg_Component_New( _sizeOfSelf, type, _delete, _print, _copy, _defaultConstructor, _construct, _build, 
-			_initialise, _execute, _destroy, name, NON_GLOBAL );
-	
-	/* General info */
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	self->buildPoints = buildPoints;
-	self->pointAt = pointAt;
-	
-	/* Geometry info */
-	if( initFlag ){
-		_Geometry_Init( self );
-	}
-	
-	return self;
-}
-
-void _Geometry_Init(
-		Geometry*					self )
-{
-	/* General and Virtual info should already be set */
-	
-	/* Geometry info */
-	self->isConstructed = True;
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _Geometry_Delete( void* geometry ) {
-	Geometry* self = (Geometry*)geometry;
-	
-	/* Stg_Class_Delete parent */
-	_Stg_Class_Delete( self );
-}
-
-
-void _Geometry_Print( void* geometry, Stream* stream ) {
-	Geometry* self = (Geometry*)geometry;
-	
-	/* Set the Journal for printing informations */
-	Stream* geometryStream;
-	geometryStream = Journal_Register( InfoStream_Type, "GeometryStream" );
-
-	/* Print parent */
-	_Stg_Class_Print( self, stream );
-	
-	/* General info */
-	Journal_Printf( stream, "Geometry (ptr): (%p)\n", self );
-	
-	/* Virtual info */
-	
-	/* Geometry info */
-}
-
-
-void* _Geometry_Copy( void* geometry, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
-	Geometry*	self = (Geometry*)geometry;
-	Geometry*	newGeometry;
-	
-	newGeometry = (Geometry*)_Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
-	
-	/* Virtual methods */
-	newGeometry->buildPoints = self->buildPoints;
-	newGeometry->pointAt = self->pointAt;
-	
-	newGeometry->pointCount = self->pointCount;
-	
-	return (void*)newGeometry;
-}
-
-
-/*--------------------------------------------------------------------------------------------------------------------------
-** Public Functions
-*/
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Private Functions
-*/
-
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/GeometryClass.h
--- a/Geometry/src/GeometryClass.h	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-*/
-/** \file
-**  Role:
-**
-** Assumptions:
-**
-** Comments:
-**
-** $Id: GeometryClass.h 3462 2006-02-19 06:53:24Z WalterLandry $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Domain_Geometry_GeometryClass_h__
-#define __Domain_Geometry_GeometryClass_h__
-
-	/* Virtual function types */
-	typedef void	(Geometry_BuildPointsFunction)	( void* geometry, Coord_List points );
-	typedef void	(Geometry_PointAtFunction)	( void* geometry, Index index, Coord point );
-	
-	/* Textual name of this class */
-	extern const Type Geometry_Type;
-
-	/* Geometry information */
-	#define __Geometry \
-		/* General info */ \
-		__Stg_Component \
-		Dictionary*				dictionary; \
-		\
-		/* Virtual info */ \
-		Geometry_BuildPointsFunction*		buildPoints; \
-		Geometry_PointAtFunction*		pointAt; \
-		\
-		/* Geometry info ... */ \
-		Index					pointCount;
-	struct Geometry { __Geometry };
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-	
-	/* Creation implementation */
-	Geometry* _Geometry_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Geometry_BuildPointsFunction*			buildPoints,
-		Geometry_PointAtFunction*			pointAt,
-		Dictionary*					dictionary );
-	
-	/* Initialisation implementation functions */
-	void _Geometry_Init(
-		Geometry*					self );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions ) {
-	IrregTopology* self = (IrregTopology*)ir
-	*/
-	
-	/* Stg_Class_Delete Geometry implementation */
-	void _Geometry_Delete( void* geometry );
-	
-	/* Print Geometry implementation */
-	void _Geometry_Print( void* geometry, Stream* stream );
-	
-	/* Copy */
-	#define Geometry_Copy( self ) \
-		(Geometry*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
-	#define Geometry_DeepCopy( self ) \
-		(Geometry*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
-	
-	void* _Geometry_Copy( void* geometry, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Public member functions
-	*/
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-	
-	
-#endif /* __Domain_Geometry_GeometryClass_h__ */
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/GeometryClass.meta
--- a/Geometry/src/GeometryClass.meta	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-
-<param name="Name">Geometry</param>
-<param name="Author">...</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StGermain/Discretisation/Geometry/src/</param>
-<param name="Project Web">https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome</param>
-<param name="Copyright">StGermain Framework. Copyright (C) 2003-2005 VPAC.</param>
-<param name="License">The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html</param>
-<param name="Parent">Stg_Component</param>
-<param name="Reference">...</param>
-<param name="Summary">Sets the position of points on a mesh.</param>
-<param name="Description">Geometry sets the spatial location of every component in a mesh.  It does this by operating on the geometry in terms of points, not higher-order elements such as faces.  More complex shapes can be built-up later from these atomic points.  Geometry defines position of each point during construction of a mesh. It uses (x, y, z) coordinates and works on a regular or irregular mesh.</param>
-
-<!--Now the interesting stuff-->
-
-
-<list name="Params">
-
-</list>
-
-<list name="Dependencies">
-
-</list>
-<!-- Add an exmaple XML if possible -->
-<param name="Example">...</param>
-
-</StGermainData>
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IJK26Topology.c
--- a/Geometry/src/IJK26Topology.c	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,535 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-** $Id: IJK26Topology.c 3882 2006-10-26 04:41:18Z KathleenHumble $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <mpi.h>
-#include "StGermain/StGermain.h"
-
-
-#include "units.h"
-#include "types.h"
-#include "Topology.h"
-#include "IJKTopology.h"
-#include "IJK26Topology.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <assert.h>
-
-
-/* Textual name of this class */
-const Type IJK26Topology_Type = "IJK26Topology";
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-IJK26Topology* IJK26Topology_DefaultNew( Name name )
-{
-	return (IJK26Topology*)_IJKTopology_New( 
-		sizeof(IJK26Topology), 
-		IJK26Topology_Type, 
-		_IJK26Topology_Delete, 
-		_IJK26Topology_Print,
-		_IJKTopology_Copy,
-		(Stg_Component_DefaultConstructorFunction*)IJK26Topology_DefaultNew,
-		_IJK26Topology_Construct,
-		_IJK26Topology_Build,
-		_IJK26Topology_Initialise,
-		_IJK26Topology_Execute,
-		_IJK26Topology_Destroy,
-		name,
-		False,
-		_IJK26Topology_NeighbourCount,
-		_IJK26Topology_BuildNeighbours,
-		NULL,
-		NULL,
-		NULL );
-}
-
-IJK26Topology* IJK26Topology_New_All(
-		Name						name,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] )
-{
-	return _IJK26Topology_New( 
-		sizeof(IJK26Topology), 
-		IJK26Topology_Type, 
-		_IJK26Topology_Delete, 
-		_IJK26Topology_Print,
-		_IJKTopology_Copy,
-		(Stg_Component_DefaultConstructorFunction*)IJK26Topology_DefaultNew,
-		_IJK26Topology_Construct,
-		_IJK26Topology_Build,
-		_IJK26Topology_Initialise,
-		_IJK26Topology_Execute,
-		_IJK26Topology_Destroy,
-		name,
-		True,
-		_IJK26Topology_NeighbourCount,
-		_IJK26Topology_BuildNeighbours,
-		dictionary,
-		size,
-		isPeriodic );
-}
-
-
-void IJK26Topology_Init(
-		IJK26Topology*					self,
-		Name						name,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] )
-{
-	/* General info */
-	self->type = IJK26Topology_Type;
-	self->_sizeOfSelf = sizeof(IJK26Topology);
-	self->_deleteSelf = False;
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	self->_delete = _IJK26Topology_Delete;
-	self->_print = _IJK26Topology_Print;
-	self->_copy = _IJKTopology_Copy;
-	self->_defaultConstructor = (Stg_Component_DefaultConstructorFunction*)IJK26Topology_DefaultNew;
-	self->_construct = _IJK26Topology_Construct;
-	self->_build = _IJK26Topology_Build;
-	self->_initialise = _IJK26Topology_Initialise;
-	self->_execute = _IJK26Topology_Execute;
-	self->_destroy = _IJK26Topology_Destroy;
-	self->neighbourCount = _IJK26Topology_NeighbourCount;
-	self->buildNeighbours = _IJK26Topology_BuildNeighbours;
-	
-	_Stg_Class_Init( (Stg_Class*)self );
-	_Stg_Object_Init( (Stg_Object*)self, name, NON_GLOBAL );
-	_Stg_Component_Init( (Stg_Component*)self );
-
-	/* IJK26Topology info */
-	_Topology_Init( (Topology*)self );
-	_IJKTopology_Init( (IJKTopology*)self, size, isPeriodic, False );
-	_IJK26Topology_Init( self, True );
-}
-
-
-IJK26Topology* _IJK26Topology_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*		neighbourCount,
-		Topology_BuildNeighboursFunction*		buildNeighbours,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] )
-{
-	IJK26Topology* self;
-	
-	/* Allocate memory */
-	assert( _sizeOfSelf >= sizeof(IJK26Topology) );
-	self = (IJK26Topology*)_IJKTopology_New( _sizeOfSelf, type, _delete, _print, _copy, _defaultConstructor,
-			_construct, _build, _initialise, _execute, _destroy, name, initFlag, neighbourCount, buildNeighbours,
-			dictionary, size, isPeriodic );
-	
-	/* General info */
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	
-	/* IJK26Topology info */
-	if( initFlag ){
-		_IJK26Topology_Init( self, True );
-	}
-	
-	return self;
-}
-
-
-void _IJK26Topology_Init( IJK26Topology* self, Bool shiftNegOne )
-{
-	Index i;
-
-	if (self->dictionary) {
-		self->isConstructed = True;
-
-		/* Since the default is for elements, do a slight adjustment */
-		for (i=I_AXIS; i < 3; i++ ) {
-			if (shiftNegOne)
-				self->size[i] -= 1;
-
-			if ( self->size[i] == 0 )
-				self->size[i] = 1;
-		}
-		
-		self->indexCount = self->size[I_AXIS] * self->size[J_AXIS] * self->size[K_AXIS];
-		assert( self->indexCount );
-	}
-
-	return;
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _IJK26Topology_Delete( void* ijk26Topology ) {
-	IJK26Topology* self = (IJK26Topology*)ijk26Topology;
-	
-	/* Stg_Class_Delete parent */
-	_IJKTopology_Delete( self );
-}
-
-
-void _IJK26Topology_Print( void* ijk26Topology, Stream* stream ) {
-	IJK26Topology* self = (IJK26Topology*)ijk26Topology;
-	
-	/* Set the Journal for printing informations */
-	Stream* ijk26TopologyStream = Journal_Register( InfoStream_Type, "IJK26TopologyStream" );
-
-	/* Print parent */
-	_Topology_Print( self, stream );
-	
-	/* General info */
-	Journal_Printf( ijk26TopologyStream, "IJK26Topology (ptr): (%p)\n", self );
-	
-	/* Virtual info */
-	
-	/* IJK26Topology info */
-}
-
-void _IJK26Topology_Construct( void* ijk26Topology, Stg_ComponentFactory* cf, void* data ){
-	IJK26Topology *self = (IJK26Topology*)ijk26Topology;
-
-	_IJKTopology_Construct( self, cf, data );
-
-	/* No shifting sizes of topology because no assumption is made about elements */
-	_IJK26Topology_Init( self, False );
-}
-
-void _IJK26Topology_Build( void* ijk26Topology, void* data ){
-	
-}
-	
-void _IJK26Topology_Initialise( void* ijk26Topology, void* data ){
-	
-}
-	
-void _IJK26Topology_Execute( void* ijk26Topology, void* data ){
-	
-}
-	
-void _IJK26Topology_Destroy( void* ijk26Topology, void* data ){
-	
-}
-
-/* See header file for docs */
-NeighbourIndex _IJK26Topology_NeighbourCount( void* ijk26Topology, Index index ) {
-	IJK26Topology*  self = (IJK26Topology*)ijk26Topology;
-	IJK		max;		/* init later */
-	IJK		nbrPerDim = { 3, 3, 3 };
-	IJK		refObject;
-	Index	i;
-	
-	max[0] = self->size[I_AXIS] - 1;
-	max[1] = self->size[J_AXIS] - 1;
-	max[2] = self->size[K_AXIS] - 1;
-	 
-	IJK_1DTo3D( self, index, refObject );
-	
-	for( i=I_AXIS; i < 3; i++ ) {
-
-		if( 0 == max[i] )
-			nbrPerDim[i] = 1;
-
-		/* Ok given there is actually more than one item in this dim:
-		only if we are using "dynamic sizes" ie just want the good values to
-		be returned from BuildNeighbours and don't want entries in the array with
-		an INVALID tag, do we need to see if the size should be reduced */
-		else if( self->dynamicSizes ) {
-			if ( ( False == self->isPeriodic[i] )
-				&& (refObject[i] == 0 || refObject[i] == max[i]) )
-			{
-				nbrPerDim[i]--;
-			}	
-		}	
-	}	
-	
-	return nbrPerDim[I_AXIS] * nbrPerDim[J_AXIS] * nbrPerDim[K_AXIS] - 1;
-}
-
-
-void _IJK26Topology_BuildNeighbours( void* ijk26Topology, Index index, NeighbourIndex* neighbours )
-{
-	IJK26Topology*	self = (IJK26Topology*)ijk26Topology;
-	IJK		max; 		/* init later */
-	IJK		refObject;
-	Index		pos = 0;
-	int		nbrRelative[3];
-	Index	dim_I;
-	Bool	nbrExists = True;
-
-	max[0] = self->size[0] - 1;
-	max[1] = self->size[1] - 1;
-	max[2] = self->size[2] - 1;
-
-	IJK_1DTo3D( self, index, refObject );
-
-	/* For each neighbour position relative to the reference object */
-	for ( nbrRelative[K_AXIS] = -1; nbrRelative[K_AXIS] <= 1; nbrRelative[K_AXIS] ++ ) {
-		if ( (0 == max[K_AXIS]) && (nbrRelative[K_AXIS] != 0) ) continue; 
-		
-		for ( nbrRelative[J_AXIS] = -1; nbrRelative[J_AXIS] <= 1; nbrRelative[J_AXIS]++ ) {
-			if ( (0 == max[J_AXIS]) && (nbrRelative[J_AXIS] != 0) ) continue; 
-		
-			for ( nbrRelative[I_AXIS] = -1; nbrRelative[I_AXIS] <= 1; nbrRelative[I_AXIS]++ ) {
-				if ( (0 == max[I_AXIS]) && (nbrRelative[I_AXIS] != 0) ) continue; 
-
-				if ( ( 0 == nbrRelative[I_AXIS] ) && ( 0 == nbrRelative[J_AXIS] ) && ( 0 == nbrRelative[K_AXIS] )  ) {
-					continue;
-				}
-				
-				nbrExists = True;
-				/* Test if the neigbour exists or not, and modify the index appropriately */
-				for ( dim_I=0; dim_I < 3; dim_I++ ) {
-					if ( (False == self->isPeriodic[dim_I] ) &&
-						( (( refObject[dim_I] == 0 ) && (-1 == nbrRelative[dim_I] )) ||
-						(( refObject[dim_I] == max[dim_I] ) && (1 == nbrRelative[dim_I] )) ) )
-					{
-						nbrExists = False;
-						break;
-					}
-				}	
-				if (nbrExists) {
-					IJK     nbrPos;
-					Dimension_Index	innerDim_I;
-				
-					/* Find out the object's number */
-
-					for ( innerDim_I=0; innerDim_I < 3; innerDim_I++ ) {
-						if ( self->isPeriodic[innerDim_I] && (refObject[innerDim_I] == 0)
-							&& (-1 == nbrRelative[innerDim_I] ) )
-						{
-							nbrPos[innerDim_I] = max[innerDim_I];
-						}
-						else if ( self->isPeriodic[innerDim_I]
-							&& (refObject[innerDim_I] == max[innerDim_I] )
-							&& (1 == nbrRelative[innerDim_I] ) )
-						{
-							nbrPos[innerDim_I] = 0;
-						}
-						else {
-							nbrPos[innerDim_I] = refObject[innerDim_I] + nbrRelative[innerDim_I];
-						}
-					}	
-					
-					IJK_3DTo1D_3( self, 
-						nbrPos[I_AXIS],
-						nbrPos[J_AXIS],
-						nbrPos[K_AXIS],
-						&neighbours[pos] );
-					pos++;
-				}
-				else {
-					if( False == self->dynamicSizes ) {
-						/* Set the object to invalid if using dynamic sizes */
-						neighbours[pos] = Topology_Invalid( self );
-						pos++;
-					}	
-				}
-			}	
-		}	
-	}
-}
-
-
-/*--------------------------------------------------------------------------------------------------------------------------
-** Public Functions
-*/
-
-void IJK26Topology_PrintNeighboursOfIndex( IJK26Topology* self, Index refIndex, Stream* stream ) {
-	NeighbourIndex nbrCount;
-	NeighbourIndex* neighbours;
-
-	nbrCount = Topology_NeighbourCount( self, refIndex );
-	neighbours = Memory_Alloc_Array( NeighbourIndex, nbrCount, "neighbours" );
-	Topology_BuildNeighbours( self, refIndex, neighbours );
-	
-	IJK26Topology_PrintNeighbourOfIndexFromArray( self, refIndex, neighbours, nbrCount, stream );
-	Memory_Free( neighbours );
-}
-
-
-void IJK26Topology_PrintNeighbourOfIndexFromArray(
-		IJK26Topology* self,
-		Index refIndex,
-		NeighbourIndex* neighbours,
-		NeighbourIndex nbrCount,
-		Stream* stream )
-{		
-	if ( True == self->dynamicSizes )
-	{
-		Index nbr_I;
-
-		Journal_Printf( stream, "[%d] = {", nbrCount );
-		for ( nbr_I=0; nbr_I < nbrCount; nbr_I++ ) {
-			Journal_Printf( stream, "%d", neighbours[nbr_I] );
-			if ( neighbours[nbr_I] == Topology_Invalid( self ) ) {
-				Journal_Printf( stream, "(Inv)");
-			}
-			Journal_Printf( stream, ", ");
-		}
-		Journal_Printf( stream, "}\n" );
-	} 
-	else {
-		Dimension_Index  dimension = 0;
-		Dimension_Index  dim_I=0;
-
-		for ( dim_I=0; dim_I < 3; dim_I++ ) {
-			if (self->size[dim_I] > 1) {
-				dimension++;
-			}
-		}
-		if ( 0 == dimension ) {
-			Journal_Printf( stream, "|" );
-			Journal_Printf( stream, "(%3d  )", refIndex );
-			Journal_Printf( stream, "|" );
-			Journal_Printf( stream, "\n" );
-		}
-		else if ( 1 == dimension ) {
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintMiddleRow( self, neighbours, 0, refIndex, 1, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-		}
-		else if ( 2 == dimension ) {
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 5, 6, 7, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintMiddleRow( self, neighbours, 3, refIndex, 4, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 0, 1, 2, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-		}
-		else {
-			/* 3D: do it in 3 separate goes: */
-			Journal_Printf( stream, "-1 in 3rd dim plane\n" );
-			Stream_Indent( stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 6, 7, 8, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 3, 4, 5, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 0, 1, 2, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			Stream_UnIndent( stream );
-			Journal_Printf( stream, "ref item's plane in 3rd dim\n" );
-			Stream_Indent( stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 14, 15, 16, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintMiddleRow( self, neighbours, 12, refIndex, 13, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 9, 10, 11, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			Stream_UnIndent( stream );
-			Journal_Printf( stream, "+1 3rd dim\n" );
-			Stream_Indent( stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 23, 24, 25, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 20, 21, 22, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			IJK26Topology_PrintNormalRow( self, neighbours, 17, 18, 19, stream );
-			IJK26Topology_PrintRowSeparator( self, stream );
-			Stream_UnIndent( stream );
-		}
-	}
-}	
-
-
-void IJK26Topology_PrintRowSeparator( IJK26Topology* self, Stream* stream ) {  	
-	Journal_Printf( stream, "-------------------------\n" );
-}
-
-
-void IJK26Topology_PrintNeighbour( IJK26Topology* topology, Index itemIndex, Stream* stream ) {  	
-	if ( itemIndex == Topology_Invalid( topology ) ) {
-		Journal_Printf( stream, "   X   ", itemIndex );
-	}
-	else {	
-		Journal_Printf( stream, "%4d   ", itemIndex );
-	}
-}	
-
-
-void IJK26Topology_PrintNormalRow( IJK26Topology* topology, NeighbourIndex* neighbours,
-		Index nbr1, Index nbr2, Index nbr3, Stream* stream )
-{
-	/* Do middle row */
-	Journal_Printf( stream, "|" );
-	IJK26Topology_PrintNeighbour( topology, neighbours[nbr1], stream );
-	Journal_Printf( stream, "|" );
-	IJK26Topology_PrintNeighbour( topology, neighbours[nbr2], stream );
-	Journal_Printf( stream, "|" );
-	IJK26Topology_PrintNeighbour( topology, neighbours[nbr3], stream );
-	Journal_Printf( stream, "|" );
-	Journal_Printf( stream, "\n" );
-}
-
-
-void IJK26Topology_PrintMiddleRow( IJK26Topology* topology, NeighbourIndex* neighbours,
-		Index leftNbr, Index refPos, Index rightNbr, Stream* stream )
-{
-	/* Do middle row */
-	Journal_Printf( stream, "|" );
-	IJK26Topology_PrintNeighbour( topology, neighbours[leftNbr], stream );
-	Journal_Printf( stream, "|" );
-	/* represents the current one */
-	Journal_Printf( stream, "(%3d  )", refPos );
-	Journal_Printf( stream, "|" );
-	IJK26Topology_PrintNeighbour( topology, neighbours[rightNbr], stream );
-	Journal_Printf( stream, "|" );
-	Journal_Printf( stream, "\n" );
-}
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Private Functions
-*/
-
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IJK26Topology.h
--- a/Geometry/src/IJK26Topology.h	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-*/
-/** \file
-**  Role:
-**	Concrete IJKTopology class for elements or nodes with 26 neighbours
-**	(all directions, including diagonals).
-**
-** Assumptions:
-**
-** Comments:
-** Refactored by PatrickSunter on 7th July 2004 for easier readability.
-**
-** $Id: IJK26Topology.h 3851 2006-10-12 08:57:22Z SteveQuenette $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Domain_Geometry_IJK26Topology_h__
-#define __Domain_Geometry_IJK26Topology_h__
-
-	/* Virtual function types */
-	
-	/** Textual name of this class */
-	extern const Type IJK26Topology_Type;
-
-	/** IJK26Topology class contents (see IJK26Topology) */
-	#define __IJK26Topology \
-		/* General info */ \
-		__IJKTopology \
-		\
-	
-	/**	Handles the 3D topology for an element/node, with 26 neighbours - see IJK26Topology.h.
-	That file has full information on the class and its member functions. */
-	struct IJK26Topology { __IJK26Topology };
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-	
-	/** Create a IJK26Topology, using the sizes in the dictionary */
-	#define IJK26Topology_New( name, dictionary ) \
-		IJK26Topology_New_All( name, dictionary, NULL, NULL )
-	
-	/** Create a IJK26Topology */
-	IJK26Topology* IJK26Topology_DefaultNew( Name name );
-	
-	IJK26Topology* IJK26Topology_New_All(
-		Name						name,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] );
-	
-	/** Initialise a IJK26Topology */
-	void IJK26Topology_Init(
-		IJK26Topology*					self,
-		Name						name,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] );
-	
-	/** Creation implementation */
-	IJK26Topology* _IJK26Topology_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*		neighbourCount,
-		Topology_BuildNeighboursFunction*		buildNeighbours,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] );
-	
-	/** Initialises members. Uses IJKTopology_Init(), but behaviour is different
-	if the mesh sizes are read from the dictionary: for the IJK26 system we assume
-	the topology relates to elements, and thus 1 is subtracted from each of the
-	total node numbers per dimension read from the dictionary. */
-	void _IJK26Topology_Init( IJK26Topology* self, Bool shiftNegOne );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-	
-	/** Stg_Class_Delete() implementation */
-	void _IJK26Topology_Delete( void* ijk26Topology );
-	
-	/** Stg_Class_Print() implementation */
-	void _IJK26Topology_Print( void* ijk26Topology, Stream* stream );
-	
-	void _IJK26Topology_Construct( void* ijk26Topology, Stg_ComponentFactory* cf, void* data );
-	
-	void _IJK26Topology_Build( void* ijk26Topology, void* data );
-	
-	void _IJK26Topology_Initialise( void* ijk26Topology, void* data );
-	
-	void _IJK26Topology_Execute( void* ijk26Topology, void* data );
-	
-	void _IJK26Topology_Destroy( void* ijk26Topology, void* data );
-	
-	/** Topology_NeighbourCount() implementation. */
-	NeighbourIndex _IJK26Topology_NeighbourCount( void* ijk26Topology, Index index );
-	
-	/** Topology_BuildNeighbours() implementation. */
-	void _IJK26Topology_BuildNeighbours( void* ijk26Topology, Index index, NeighbourIndex* neighbours );
-	
-	/* ******************** Public Functions ********************* */
-
-	/** Handy little function to print the neighbours of an item in an easy to read manner using
-		high-tech ASCII art techniques ;) */
-	void IJK26Topology_PrintNeighboursOfIndex( IJK26Topology* topology, Index index, Stream* stream );
-
-	/** Version of IJKTopology_PrintNeighboursOfIndex() for when you already have generated the nbr array */
-	void IJK26Topology_PrintNeighbourOfIndexFromArray( IJK26Topology* topology, Index index,
-		NeighbourIndex* neighbours, NeighbourIndex neighbourCount, Stream* stream );
-	
-	/* TODO: it would be cool to have a little ASCII art function to print the whole topology layout too
-		for 2D topologies, including some special symbols for periodicity too. */
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-	
-	/* Some little utility functions for printing the nbr info */
-	
-	void IJK26Topology_PrintRowSeparator( IJK26Topology* self, Stream* stream );
-	void IJK26Topology_PrintNeighbour( IJK26Topology* topology, Index itemIndex, Stream* stream );
-	void IJK26Topology_PrintNormalRow( IJK26Topology* topology, NeighbourIndex* neighbours,
-		Index nbr1, Index nbr2, Index nbr3, Stream* stream );
-	void IJK26Topology_PrintMiddleRow( IJK26Topology* topology, NeighbourIndex* neighbours,
-		Index leftNbr, Index refPos, Index rightNbr, Stream* stream );	
-	
-#endif /* __Domain_Geometry_IJK26Topology_h__ */
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IJK26Topology.meta
--- a/Geometry/src/IJK26Topology.meta	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-
-<param name="Name">IJK26Topology</param>
-<param name="Author">...</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StGermain/Discretisation/Geometry/src/</param>
-<param name="Project Web">https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome</param>
-<param name="Copyright">StGermain Framework. Copyright (C) 2003-2005 VPAC.</param>
-<param name="License">The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html</param>
-<param name="Parent">IJKTopology</param>
-<param name="Reference">...</param>
-<param name="Summary">...</param>
-<param name="Description">...</param>
-
-<!--Now the interesting stuff-->
-
-
-<list name="Params">
-
-</list>
-
-<list name="Dependencies">
-
-</list>
-<!-- Add an exmaple XML if possible -->
-<param name="Example">...</param>
-
-</StGermainData>
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IJK6Topology.c
--- a/Geometry/src/IJK6Topology.c	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,345 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-** $Id: IJK6Topology.c 3882 2006-10-26 04:41:18Z KathleenHumble $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <mpi.h>
-#include "StGermain/StGermain.h"
-
-
-#include "units.h"
-#include "types.h"
-#include "Topology.h"
-#include "IJKTopology.h"
-#include "IJK6Topology.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-
-
-/* Textual name of this class */
-const Type IJK6Topology_Type = "IJK6Topology";
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-IJK6Topology* IJK6Topology_DefaultNew( Name name )
-{
-	return _IJK6Topology_New( 
-		sizeof(IJK6Topology), 
-		IJK6Topology_Type, 
-		_IJK6Topology_Delete, 
-		_IJK6Topology_Print,
-		_IJKTopology_Copy,
-                (Stg_Component_DefaultConstructorFunction*)IJK6Topology_DefaultNew,
-		_IJK6Topology_Construct,
-		_IJK6Topology_Build,
-		_IJK6Topology_Initialise,
-		_IJK6Topology_Execute,
-		_IJK6Topology_Destroy,
-		name,
-		False,
-		_IJK6Topology_NeighbourCount,
-		_IJK6Topology_BuildNeighbours,
-		NULL,
-		NULL,
-		NULL );
-}
-
-IJK6Topology* IJK6Topology_New_All(
-		Name						name,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] )
-{
-	return _IJK6Topology_New( 
-		sizeof(IJK6Topology), 
-		IJK6Topology_Type, 
-		_IJK6Topology_Delete, 
-		_IJK6Topology_Print,
-		_IJKTopology_Copy,
-		(Stg_Component_DefaultConstructorFunction*)IJK6Topology_DefaultNew,
-		_IJK6Topology_Construct,
-		_IJK6Topology_Build,
-		_IJK6Topology_Initialise,
-		_IJK6Topology_Execute,
-		_IJK6Topology_Destroy,
-		name,
-		True,
-		_IJK6Topology_NeighbourCount,
-		_IJK6Topology_BuildNeighbours,
-		dictionary,
-		size,
-		isPeriodic );
-}
-
-void IJK6Topology_Init(
-		IJK6Topology*					self,
-		Name						name,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] )
-{
-	/* General info */
-	self->type = IJK6Topology_Type;
-	self->_sizeOfSelf = sizeof(IJK6Topology);
-	self->_deleteSelf = False;
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	self->_delete = _IJK6Topology_Delete;
-	self->_print = _IJK6Topology_Print;
-	self->_copy = _IJKTopology_Copy;
-	self->_defaultConstructor = (Stg_Component_DefaultConstructorFunction*)IJK6Topology_DefaultNew;
-	self->_construct = _IJK6Topology_Construct;
-	self->_build = _IJK6Topology_Build,
-	self->_initialise = _IJK6Topology_Initialise;
-	self->_execute = _IJK6Topology_Execute;
-	self->_destroy = _IJK6Topology_Destroy;
-	self->neighbourCount = _IJK6Topology_NeighbourCount;
-	self->buildNeighbours = _IJK6Topology_BuildNeighbours;
-
-	_Stg_Class_Init( (Stg_Class*)self );
-	_Stg_Object_Init( (Stg_Object*)self, name, NON_GLOBAL );
-	_Stg_Component_Init( (Stg_Component*)self );
-	
-	/* IJK6Topology info */
-	_Topology_Init( (Topology*)self );
-	_IJKTopology_Init( (IJKTopology*)self, size, isPeriodic, False );
-	_IJK6Topology_Init( self );
-}
-
-
-IJK6Topology* _IJK6Topology_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*		neighbourCount,
-		Topology_BuildNeighboursFunction*		buildNeighbours,
-		Dictionary*					dictionary,
-		IJK					size,
-		Bool					isPeriodic[3] )
-{
-	IJK6Topology* self;
-	
-	/* Allocate memory */
-	assert( _sizeOfSelf >= sizeof(IJK6Topology) );
-	self = (IJK6Topology*)_IJKTopology_New( _sizeOfSelf, type, _delete, _print, _copy, _defaultConstructor,
-			_construct, _build, _initialise, _execute, _destroy, name, initFlag, neighbourCount, buildNeighbours,
-			dictionary, size, isPeriodic );
-
-	/* General info */
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	
-	/* IJK6Topology info */
-	if( initFlag ){
-		_IJK6Topology_Init( self );
-	}
-	
-	return self;
-}
-
-void _IJK6Topology_Init(
-		IJK6Topology*					self )
-{
-	self->isConstructed = True;
-	return;
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _IJK6Topology_Delete( void* ijk6Topology ) {
-	IJK6Topology* self = (IJK6Topology*)ijk6Topology;
-	
-	/* Stg_Class_Delete parent */
-	_Topology_Delete( self );
-}
-
-
-void _IJK6Topology_Print( void* ijk6Topology, Stream* stream ) {
-	IJK6Topology* self = (IJK6Topology*)ijk6Topology;
-	
-	/* Set the Journal for printing informations */
-	Stream* ijk6TopologyStream = Journal_Register( InfoStream_Type, "IJK6TopologyStream" );
-
-	/* Print parent */
-	_Topology_Print( self, stream );
-	
-	/* General info */
-	Journal_Printf( ijk6TopologyStream, "IJK6Topology (ptr): (%p)\n", self );
-	
-	/* Virtual info */
-	
-	/* IJK6Topology info */
-}
-
-void _IJK6Topology_Construct( void* ijk6Topology, Stg_ComponentFactory* cf, void* data ){
-	IJK6Topology *self = (IJK6Topology*)ijk6Topology;
-
-	_IJKTopology_Construct( self, cf, data );
-	_IJK6Topology_Init( self );
-}
-
-void _IJK6Topology_Build( void* ijk6Topology, void* data ){
-	
-}
-	
-void _IJK6Topology_Initialise( void* ijk6Topology, void* data ){
-	
-}
-	
-void _IJK6Topology_Execute( void* ijk6Topology, void* data ){
-	
-}
-	
-void _IJK6Topology_Destroy( void* ijk6Topology, void* data ){
-	
-}
-
-NeighbourIndex _IJK6Topology_NeighbourCount( void* ijk6Topology, Index index ) {
-	IJK6Topology*   self = (IJK6Topology*)ijk6Topology;
-	IJK		max;			/* init later */
-	Index		nbrCnt = 6;
-	Index		dim_I;
-	IJK		refObject;
-	int		nbrRelative[3];
-	int		sign;
-	
-	max[0] = self->size[0]-1;
-	max[1] = self->size[1]-1;
-	max[2] = self->size[2]-1;
-	 
-	IJK_1DTo3D( self, index, refObject );
-
-	for ( sign = 1; sign >= -1; sign -= 2 ) {
-		for (dim_I=I_AXIS; dim_I < 3; dim_I++) {
-			if( self->size[dim_I] == 1 ) {
-				nbrCnt--;
-				continue;
-			}	
-
-			if( True == self->dynamicSizes ) {
-				nbrRelative[I_AXIS] = nbrRelative[J_AXIS] = nbrRelative[K_AXIS] = 0;
-				nbrRelative[dim_I] = sign;
-
-				if ( ( False == self->isPeriodic[dim_I] ) &&
-					( (( refObject[dim_I] == 0 ) && (-1 == nbrRelative[dim_I] ) ) ||
-					(( refObject[dim_I] == max[dim_I] ) && (1 == nbrRelative[dim_I] )) ) )
-				{
-					nbrCnt--;
-				}
-			}	
-		}
-	}	
-	
-	return nbrCnt;
-}
-
-
-void _IJK6Topology_BuildNeighbours( void* ijk6Topology, Index index, NeighbourIndex* neighbours )
-{
-	IJK6Topology*	self = (IJK6Topology*)ijk6Topology;
-	IJK		max;			/* init later */
-	int		sign;
-	Index	dim_I;
-	IJK		refObject;
-	int		nbrRelative[3];
-	Index	pos = 0;
-	
-	max[0] = self->size[0]-1;
-	max[1] = self->size[1]-1;
-	max[2] = self->size[2]-1;
- 
-	IJK_1DTo3D( self, index, refObject );
-
-	for ( sign = 1; sign >= -1; sign -= 2 ) {
-		for ( dim_I = I_AXIS; dim_I < 3; dim_I++ ) {
-			if ( 0 == max[dim_I] ) continue;
-		
-			nbrRelative[I_AXIS] = nbrRelative[J_AXIS] = nbrRelative[K_AXIS] = 0;
-			nbrRelative[dim_I] = sign;
-
-			if ( ( False == self->isPeriodic[dim_I] ) &&
-				( ( ( refObject[dim_I] == 0 ) && (-1 == nbrRelative[dim_I] ) ) ||
-				( ( refObject[dim_I] == max[dim_I] ) && (1 == nbrRelative[dim_I] ) ) ) )
-			{
-				if( False == self->dynamicSizes ) {
-					/* Set the object to invalid if using dynamic sizes */
-					neighbours[pos] = Topology_Invalid( self );
-					pos++;
-				}	
-			}
-			else {
-				IJK nbrPos;
-				Dimension_Index	innerDim_I;
-
-				for ( innerDim_I=0; innerDim_I < 3; innerDim_I++ ) {
-					if ( self->isPeriodic[innerDim_I] && (refObject[innerDim_I] == 0)
-						&& (-1 == nbrRelative[innerDim_I] ) )
-					{
-						nbrPos[innerDim_I] = max[innerDim_I];
-					}
-					else if ( self->isPeriodic[innerDim_I] && (refObject[innerDim_I] == max[innerDim_I] )
-						&& (1 == nbrRelative[innerDim_I] ) )
-					{
-						nbrPos[innerDim_I] = 0;
-					}
-					else {
-						nbrPos[innerDim_I] = refObject[innerDim_I] + nbrRelative[innerDim_I];
-					}
-				}	
-
-				IJK_3DTo1D_3( self, 
-					nbrPos[I_AXIS],
-					nbrPos[J_AXIS],
-					nbrPos[K_AXIS],
-					&neighbours[pos] );
-				pos++;
-			}
-		}
-	}	
-}
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IJK6Topology.h
--- a/Geometry/src/IJK6Topology.h	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-*/
-/** \file
-**  Role:
-**	Concrete IJKTopology class for element or node with 6 neighbours
-**	(only fully adjoining directions, no diagonals).
-**
-** Assumptions:
-**
-** Comments:
-**	In this topology, the ordering goes:
-**	---In 3D---
-**	0:+ve I, 1:+ve J, 2:+ve K, 3:-ve I, 4:-ve J, 5:-ve K
-**
-**  ---In 2D---
-**  In 2D, the same convention applies, except the missing dimension is
-**	skipped. Eg if there was no K dimension:
-**	0:+ve I, 1:+ve J, 2: -ve I, 3: -ve J
-**
-**	TODO: Add a link to a TWiki page with a diagram.
-**
-** $Id: IJK6Topology.h 3851 2006-10-12 08:57:22Z SteveQuenette $
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Domain_Geometry_IJK6Topology_h__
-#define __Domain_Geometry_IJK6Topology_h__
-
-	/* Virtual function types */
-	
-	/* Textual name of this class */
-	extern const Type IJK6Topology_Type;
-
-	/** IJK6Topology class contents */
-	#define __IJK6Topology \
-		/* General info */ \
-		__IJKTopology \
-
-	/**	Concrete IJKTopology class for element or node with 6 neighbours
-	- see IJK6Topology.h for member functions. */
-	struct IJK6Topology { __IJK6Topology };
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-	
-	/** Create an IJK6Topology, using the dictonary */
-	#define IJK6Topology_New( name, dictionary ) \
-		IJK6Topology_New_All( name, dictionary, NULL, NULL )
-	
-	/** Create an IJK6Topology */
-	
-	IJK6Topology* IJK6Topology_DefaultNew( Name name );
-	
-	IJK6Topology* IJK6Topology_New_All(
-		Name						name,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] );
-
-	/** Initialise an IJK6Topology */
-	void IJK6Topology_Init(
-		IJK6Topology*					self,
-		Name						name,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] );
-
-	
-	/** Creation implementation */
-	IJK6Topology* _IJK6Topology_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*		neighbourCount,
-		Topology_BuildNeighboursFunction*		buildNeighbours,
-		Dictionary*					dictionary,
-		IJK					size,
-		Bool						isPeriodic[3] );
-
-	/** Initialisation implementation */
-	void _IJK6Topology_Init(
-		IJK6Topology*					self );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-	
-	/** Stg_Class_Delete() implementation */
-	void _IJK6Topology_Delete( void* ijk6Topology );
-	
-	/** Stg_Class_Print() implementation */
-	void _IJK6Topology_Print( void* ijk6Topology, Stream* stream );
-	
-	void _IJK6Topology_Construct( void* ijk6Topology, Stg_ComponentFactory* cf, void* data );
-	
-	void _IJK6Topology_Build( void* ijk6Topology, void* data );
-	
-	void _IJK6Topology_Initialise( void* ijk6Topology, void* data );
-	
-	void _IJK6Topology_Execute( void* ijk6Topology, void* data );
-	
-	void _IJK6Topology_Destroy( void* ijk6Topology, void* data );
-	
-	/** Topology_NeighbourCount() implementation. */
-	NeighbourIndex _IJK6Topology_NeighbourCount( void* ijk6Topology, Index index );
-	
-	/** Topology_BuildNeighbours() implementation. */
-	void _IJK6Topology_BuildNeighbours( void* ijk6Topology, Index index, NeighbourIndex* neighbours );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Public member functions
-	*/
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-	
-	
-#endif /* __Domain_Geometry_IJK6Topology_h__ */
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IJK6Topology.meta
--- a/Geometry/src/IJK6Topology.meta	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-
-<param name="Name">IJK6Topology</param>
-<param name="Author">...</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StGermain/Discretisation/Geometry/src/</param>
-<param name="Project Web">https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome</param>
-<param name="Copyright">StGermain Framework. Copyright (C) 2003-2005 VPAC.</param>
-<param name="License">The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html</param>
-<param name="Parent">IJKTopology</param>
-<param name="Reference">...</param>
-<param name="Summary">...</param>
-<param name="Description">...</param>
-
-<!--Now the interesting stuff-->
-
-
-<list name="Params">
-
-</list>
-
-<list name="Dependencies">
-
-</list>
-<!-- Add an exmaple XML if possible -->
-<param name="Example">...</param>
-
-</StGermainData>
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IJKTopology.c
--- a/Geometry/src/IJKTopology.c	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-** $Id: IJKTopology.c 3851 2006-10-12 08:57:22Z SteveQuenette $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <mpi.h>
-#include "StGermain/StGermain.h"
-
-
-#include "units.h"
-#include "types.h"
-#include "Topology.h"
-#include "IJKTopology.h"
-
-#include "Geometry.h"
-#include "BlockGeometry.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <assert.h>
-
-
-/* Textual name of this class */
-const Type IJKTopology_Type = "IJKTopology";
-
-const char IJKTopology_DimNumToDimLetter[3] = { 'I', 'J', 'K' };
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-IJKTopology* _IJKTopology_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*		neighbourCount,
-		Topology_BuildNeighboursFunction*		buildNeighbours,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool						isPeriodic[3] )
-{
-	IJKTopology* self;
-	
-	/* Allocate memory */
-	assert( _sizeOfSelf >= sizeof(IJKTopology) );
-	self = (IJKTopology*)_Topology_New( _sizeOfSelf, type, _delete, _print, _copy, _defaultConstructor,
-			_construct, _build, _initialise, _execute, _destroy, name, initFlag, neighbourCount, buildNeighbours );
-	
-	/* General info */
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	
-	/* IJKTopology info */
-	if( initFlag ){
-		_IJKTopology_Init( self, size, isPeriodic, False );
-	}
-	
-	return self;
-}
-
-void _IJKTopology_Construct( void* ijkTopology, Stg_ComponentFactory* cf, void* data ){
-	IJKTopology*    self   = (IJKTopology*)ijkTopology;
-	IJK             size;
-	int             shift;
-	Dimension_Index dim;
-	Dimension_Index dim_I;
-	Bool		isPeriodic[3];
-	Bool		dynamic;
-
-	self->dictionary = cf->rootDict;
-	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
-	
-	/* TODO _Topology_Construct( self, cf ); */
-	_Topology_Init( (Topology*)self );
-
-	size[ I_AXIS ] = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "sizeI", 1 );  
-	size[ J_AXIS ] = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "sizeJ", 1 );  
-	size[ K_AXIS ] = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "sizeK", 1 );  
-	if ( dim == 2 )
-		size[ K_AXIS ] = 1;
-
-	isPeriodic[ I_AXIS ] = Stg_ComponentFactory_GetRootDictBool( cf, "isPeriodicI", False );  
-	isPeriodic[ J_AXIS ] = Stg_ComponentFactory_GetRootDictBool( cf, "isPeriodicJ", False );  
-	isPeriodic[ K_AXIS ] = Stg_ComponentFactory_GetRootDictBool( cf, "isPeriodicK", False );  
-
-	dynamic = Stg_ComponentFactory_GetBool( cf, self->name, "dynamic", False );
-	
-	/* Shift the topology if nessesary */
-	shift = Stg_ComponentFactory_GetInt( cf, self->name, "sizeShift", 0 );
-	for ( dim_I = I_AXIS ; dim_I < dim ; dim_I++ )
-		size[ dim_I ] += shift;
-
-	_IJKTopology_Init( self, size, isPeriodic, dynamic );
-}
-
-
-void _IJKTopology_Init(
-		IJKTopology*					self,
-		IJK						size,
-		Bool						isPeriodic[3], 
-		Bool						dynamic )
-{
-	Index i = I_AXIS;
-
-	/* General and Virtual info should already be set */
-	
-	/* IJKTopology info */
-	self->isConstructed = True;
-	if ( size ) {
-		for (i=I_AXIS; i < 3; i++ ) {
-			self->size[i] = size[i];
-		}
-	}
-	else if( self->dictionary ) {
-		char* keyBase = "meshSize";
-		char* key = Memory_Alloc_Array_Unnamed( char, (strlen( keyBase ) + 2 ) );
-
-		for (i=I_AXIS; i < 3; i++ ) {
-			sprintf ( key, "%s%c", keyBase, IJKTopology_DimNumToDimLetter[i] );
-			self->size[i] = Dictionary_Entry_Value_AsUnsignedInt( Dictionary_GetDefault(
-				self->dictionary, key, Dictionary_Entry_Value_FromUnsignedInt( 1 ) ) );
-		}
-		Memory_Free( key );
-	}
-	else {
-		fprintf( stderr, "Error - %s: either a valid Dictionary or size input parameter must be given.\n",
-			__func__ );
-		exit( EXIT_FAILURE );	
-	}
-	
-	if ( isPeriodic ) {
-		for (i=I_AXIS; i < 3; i++ ) {
-			self->isPeriodic[i] = isPeriodic[i];
-		}
-	}
-	else if( self->dictionary ) {
-		self->isPeriodic[I_AXIS] = Dictionary_GetBool_WithDefault( self->dictionary, "isPeriodicI", False );
-		self->isPeriodic[J_AXIS] = Dictionary_GetBool_WithDefault( self->dictionary, "isPeriodicJ", False );
-		self->isPeriodic[K_AXIS] = Dictionary_GetBool_WithDefault( self->dictionary, "isPeriodicK", False );
-	}
-	else {
-		fprintf( stderr, "Error - %s: either a valid Dictionary or \"isPeriodic\" input parameter must be given.\n",
-			__func__ );
-		exit( EXIT_FAILURE );	
-	}	
-
-	for (i=I_AXIS; i < 3; i++ ) {
-		if ( self->size[i] == 0 ) self->size[i] = 1;
-	}
-	
-	self->indexCount = self->size[I_AXIS] * self->size[J_AXIS] * self->size[K_AXIS];
-	assert( self->indexCount );
-	
-	self->dynamicSizes = dynamic;
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _IJKTopology_Delete( void* ijk26Topology ) {
-	IJKTopology* self = (IJKTopology*)ijk26Topology;
-	
-	/* Stg_Class_Delete parent */
-	_Topology_Delete( self );
-}
-
-
-void _IJKTopology_Print( void* ijk26Topology, Stream* stream ) {
-	IJKTopology* self = (IJKTopology*)ijk26Topology;
-	
-	/* Print parent */
-	_Topology_Print( self, stream );
-	
-	 IJKTopology_PrintConcise( self, stream );
-}
-
-
-void IJKTopology_PrintConcise( IJKTopology* self, Stream* stream ) {
-	/* General info */
-	Journal_Printf( stream, "IJKTopology (ptr): (%p)\n", self );
-	
-	/* IJKTopology info */
-	Stream_Indent( stream );
-	Journal_Printf( stream, "size : (%u,%u,%u)\n", self->size[0], self->size[1], self->size[2] );
-	Journal_Printf( stream, "isPeriodic : (%s,%s,%s)\n",
-		StG_BoolToStringMap[self->isPeriodic[I_AXIS]],
-		StG_BoolToStringMap[self->isPeriodic[J_AXIS]],
-		StG_BoolToStringMap[self->isPeriodic[K_AXIS]] );
-	Journal_Printf( stream, "dynamicSizes : %s\n", StG_BoolToStringMap[self->dynamicSizes] );
-	Stream_UnIndent( stream );
-}
-
-
-void* _IJKTopology_Copy( void* ijkTopology, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
-	IJKTopology*	self = (IJKTopology*)ijkTopology;
-	IJKTopology*	newIJKTopology;
-	Dimension_Index	dim_I=0;
-	
-	newIJKTopology = (IJKTopology*)_Topology_Copy( self, dest, deep, nameExt, ptrMap );
-	
-	newIJKTopology->dictionary = self->dictionary;
-	for ( dim_I = 0; dim_I < 3; dim_I++ ) {
-		newIJKTopology->size[dim_I] = self->size[dim_I];
-		newIJKTopology->isPeriodic[dim_I] = self->isPeriodic[dim_I];
-	}	
-	newIJKTopology->dynamicSizes = self->dynamicSizes;
-	
-	return (void*)newIJKTopology;
-}
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IJKTopology.h
--- a/Geometry/src/IJKTopology.h	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-*/
-/** \file
-**  Role:
-**	Abstract class inheriting from Topology, which handles the 3D topology for
-**	an element or node, in an IJK co-ordinate system.
-**
-** Assumptions:
-**
-** Comments:
-** This class was abstracted from the common code in IJK6Topology.h and
-**	IJK26Topology.h on 8 July 2004.
-**
-** $Id: IJKTopology.h 3851 2006-10-12 08:57:22Z SteveQuenette $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include "Dimension.h"
-
-#ifndef __Domain_Geometry_IJKTopology_h__
-#define __Domain_Geometry_IJKTopology_h__
-
-	/* Virtual function types */
-	
-	/** Textual name of this class */
-	extern const Type IJKTopology_Type;
-
-	/** Mapping from integer dimension to letter */
-	extern const char IJKTopology_DimNumToDimLetter[3];
-
-	/** IJKTopology class contents (see IJKTopology) */
-	#define __IJKTopology \
-		/* General info */ \
-		/** Parent class - Topology */ \
-		__Topology \
-		Dictionary*			dictionary; \
-		\
-		/* Virtual info */ \
-		\
-		/* IJKTopology info ... */ \
-		/** The total number of elements/nodes in the I,J, and K directions for the entire mesh. */ \
-		IJK				size; \
-		/** Determines, for each dimension, whether the topology is periodic */ \
-		Bool                            isPeriodic[3];	\
-		/** Determines whether objects outside the mesh should be counted - see Topology_NeighbourCount() and Topology_BuildNeighbours(). */ \
-		Bool				dynamicSizes;
-
-	/**	Abstract class inheriting from Topology, which handles the topology for
-	**	an element/node, in an IJK co-ordinate system - see IJKTopology.h for functions etc.
-	*/
-	struct IJKTopology { __IJKTopology };
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-	
-	/** Creation implementation */
-	IJKTopology* _IJKTopology_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*		neighbourCount,
-		Topology_BuildNeighboursFunction*		buildNeighbours,
-		Dictionary*					dictionary,
-		IJK						size,
-		Bool                                            isPeriodic[3] );
-	
-	/** Initialises members. If a valid dictionary has been passed in, the mesh sizes
-	in the dictionary are used to determine the number of elements. Otherwise, the
-	values in the "size" input parameter are used. */
-	void _IJKTopology_Init(
-		IJKTopology*		self,
-		IJK			size,
-		Bool			isPeriodic[3], 
-		Bool			dynamic );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-	
-	/** Stg_Class_Delete() IJKTopology implementation */
-	void _IJKTopology_Delete( void* ijk26Topology );
-	
-	/** Stg_Class_Print() IJKTopology implementation */
-	void _IJKTopology_Print( void* ijk26Topology, Stream* stream );
-	
-	/** Prints core info without all the Class overhead */
-	void IJKTopology_PrintConcise( IJKTopology* self, Stream* stream );
-
-	/* Copy */
-	#define IJKTopology_Copy( self ) \
-		(IJKTopology*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
-	#define IJKTopology_DeepCopy( self ) \
-		(IJKTopology*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
-	
-	void* _IJKTopology_Copy( void* ijkTopology, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
-	
-	
-	void _IJKTopology_Construct( void* ijkTopology, Stg_ComponentFactory* cf, void* data );
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Public functions/macros
-	*/
-	
-	/** Converts i,j,k coordinates into the exact element number for this topology type. */ 
-	#define IJK_3DTo1D( self, ijk, indexPtr ) \
-		Dimension_3DTo1D( (ijk), (self)->size, indexPtr )
-
-	/** Converts i,j,k coordinates into the exact element number for this topology type. */ 
-	#define IJK_3DTo1D_3( self, i, j, k, indexPtr ) \
-		Dimension_3DTo1D_3( (i), (j), (k), (self)->size[I_AXIS], (self)->size[J_AXIS], (self)->size[K_AXIS], indexPtr )
-
-	/** Converts an element number in the mesh into i,j,k co-ordinates, returned separately */
-	#define IJK_1DTo3D_3( self, index, iPtr, jPtr, kPtr ) \
-		Dimension_1DTo3D_3( (index), (self)->size[I_AXIS], (self)->size[J_AXIS], (self)->size[K_AXIS], (iPtr), (jPtr), (kPtr) )
-		
-	/** Converts an element number in to mesh into i,j,k co-ordinates, returned in an ijk array */
-	#define IJK_1DTo3D(self, index, ijk) \
-		IJK_1DTo3D_3(self, index, &(ijk)[I_AXIS], &(ijk)[J_AXIS], &(ijk)[K_AXIS])
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-	
-	
-#endif /* __Domain_Geometry_IJKTopology_h__ */
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IJKTopology.meta
--- a/Geometry/src/IJKTopology.meta	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-
-<param name="Name">IJKTopology</param>
-<param name="Author">...</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StGermain/Discretisation/Geometry/src/</param>
-<param name="Project Web">https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome</param>
-<param name="Copyright">StGermain Framework. Copyright (C) 2003-2005 VPAC.</param>
-<param name="License">The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html</param>
-<param name="Parent">Topology</param>
-<param name="Reference">...</param>
-<param name="Summary">...</param>
-<param name="Description">...</param>
-
-<!--Now the interesting stuff-->
-
-
-<list name="Params">
-	<struct>
-		<param name="Name">dim</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">0</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeI</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">1</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeJ</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">1</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeK</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">1</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">isPeriodicI</param>
-		<param name="Type">Bool</param>
-		<param name="Default">False</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">isPeriodicJ</param>
-		<param name="Type">Bool</param>
-		<param name="Default">False</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">isPeriodicK</param>
-		<param name="Type">Bool</param>
-		<param name="Default">False</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeShift</param>
-		<param name="Type">Int</param>
-		<param name="Default">0</param>
-		<param name="Description">...</param>
-	</struct>
-
-</list>
-
-<list name="Dependencies">
-
-</list>
-<!-- Add an exmaple XML if possible -->
-<param name="Example">...</param>
-
-</StGermainData>
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/Init.c
--- a/Geometry/src/Init.c	Wed May 14 02:38:13 2008 +0000
+++ b/Geometry/src/Init.c	Wed May 14 02:42:34 2008 +0000
@@ -35,16 +35,6 @@
 #include "units.h"
 #include "types.h"
 #include "Init.h"
-#include "Topology.h"
-#include "IJKTopology.h"
-#include "IJK6Topology.h"
-#include "IJK26Topology.h"
-#include "IrregTopology.h"
-#include "GeometryClass.h"
-#include "BlockGeometry.h"
-#include "RefinedRegionsGeometry.h"
-#include "ShellGeometry.h"
-#include "IrregGeometry.h"
 #include "Delaunay.h"
 #include "ParallelDelaunay.h"
 
@@ -54,29 +44,11 @@ Bool StgDomainGeometry_Init( int* argc, 
 	Journal_Printf( Journal_Register( DebugStream_Type, "Context" ), "In: %s\n", __func__ ); /* DO NOT CHANGE OR REMOVE */
 
 		
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), IJK6Topology_Type, "0", (Stg_Component_DefaultConstructorFunction*)IJK6Topology_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), IJK26Topology_Type, "0", (Stg_Component_DefaultConstructorFunction*)IJK26Topology_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), IrregTopology_Type, "0", (Stg_Component_DefaultConstructorFunction*)IrregTopology_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), BlockGeometry_Type, "0", (Stg_Component_DefaultConstructorFunction*)BlockGeometry_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), RefinedRegionsGeometry_Type, "0", RefinedRegionsGeometry_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), ShellGeometry_Type, "0", (Stg_Component_DefaultConstructorFunction*)ShellGeometry_DefaultNew );
-	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), IrregGeometry_Type, "0", (Stg_Component_DefaultConstructorFunction*)IrregGeometry_DefaultNew );
 	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Delaunay_Type, "0", (Stg_Component_DefaultConstructorFunction*)Delaunay_DefaultNew );
 	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), ParallelDelaunay_Type, "0", (Stg_Component_DefaultConstructorFunction*)ParallelDelaunay_DefaultNew );
 
 	RegisterParent( Delaunay_Type,               Stg_Component_Type );
 	RegisterParent( ParallelDelaunay_Type,       Delaunay_Type );
-	RegisterParent( Geometry_Type,               Stg_Component_Type );
-	RegisterParent( BlockGeometry_Type,          Geometry_Type );
-	RegisterParent( RefinedRegionsGeometry_Type, Geometry_Type );
-	RegisterParent( IrregGeometry_Type,          Geometry_Type );
-	RegisterParent( ShellGeometry_Type,          Geometry_Type );
-	
-	RegisterParent( Topology_Type,      Stg_Component_Type );
-	RegisterParent( IJKTopology_Type,   Topology_Type );
-	RegisterParent( IrregTopology_Type, Topology_Type );
-	RegisterParent( IJK26Topology_Type, IJKTopology_Type );
-	RegisterParent( IJK6Topology_Type,  IJKTopology_Type );
 	
 	return True;
 }
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IrregGeometry.c
--- a/Geometry/src/IrregGeometry.c	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,318 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-** $Id: IrregGeometry.c 3882 2006-10-26 04:41:18Z KathleenHumble $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <mpi.h>
-#include "StGermain/StGermain.h"
-
-
-#include "units.h"
-#include "types.h"
-#include "GeometryClass.h"
-#include "IrregGeometry.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <assert.h>
-
-
-/* Textual name of this class */
-const Type IrregGeometry_Type = "IrregGeometry";
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-IrregGeometry* IrregGeometry_DefaultNew( Name name )
-{
-	return (IrregGeometry*)_IrregGeometry_New(
-		sizeof(IrregGeometry), 
-		IrregGeometry_Type, 
-		_IrregGeometry_Delete, 
-		_IrregGeometry_Print,
-		NULL,
-		(Stg_Component_DefaultConstructorFunction*)IrregGeometry_DefaultNew,
-		_IrregGeometry_Construct,
-		_IrregGeometry_Build,
-		_IrregGeometry_Initialise,
-		_IrregGeometry_Execute,
-		_IrregGeometry_Destroy,
-		name,
-		False,
-		_IrregGeometry_BuildPoints,
-		_IrregGeometry_PointAt,
-		NULL, 
-		NULL );
-}
-
-IrregGeometry* IrregGeometry_New(
-		Name						name,
-		Dictionary*					dictionary,
-		Name						listKey )
-{
-	return _IrregGeometry_New( 
-		sizeof(IrregGeometry), 
-		IrregGeometry_Type, 
-		_IrregGeometry_Delete, 
-		_IrregGeometry_Print,
-		NULL,
-		(Stg_Component_DefaultConstructorFunction*)IrregGeometry_DefaultNew,
-		_IrregGeometry_Construct,
-		_IrregGeometry_Build,
-		_IrregGeometry_Initialise,
-		_IrregGeometry_Execute,
-		_IrregGeometry_Destroy,
-		name,
-		True,
-		_IrregGeometry_BuildPoints,
-		_IrregGeometry_PointAt,
-		dictionary,
-		listKey );
-}
-
-
-void IrregGeometry_Init(
-		IrregGeometry*					self,
-		Name						name,
-		Dictionary*					dictionary,
-		Name						listKey )
-{
-	/* General info */
-	self->type = IrregGeometry_Type;
-	self->_sizeOfSelf = sizeof(IrregGeometry);
-	self->_deleteSelf = False;
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	self->_delete = _IrregGeometry_Delete;
-	self->_print = _IrregGeometry_Print;
-	self->_copy = NULL;
-	self->_defaultConstructor = (Stg_Component_DefaultConstructorFunction*)IrregGeometry_DefaultNew;
-	self->_construct = _IrregGeometry_Construct;
-	self->_build = _IrregGeometry_Build;
-	self->_initialise = _IrregGeometry_Initialise;
-	self->_execute = _IrregGeometry_Execute;
-	self->_destroy = _IrregGeometry_Destroy;
-	self->buildPoints = _IrregGeometry_BuildPoints;
-	self->pointAt = _IrregGeometry_PointAt;
-	
-	_Stg_Class_Init( (Stg_Class*)self );
-	_Stg_Object_Init( (Stg_Object*)self, name, NON_GLOBAL );
-	_Stg_Component_Init( (Stg_Component*)self );
-	
-	_Geometry_Init( (Geometry*)self );
-	
-	/* IrregGeometry info */
-	_IrregGeometry_Init( self, listKey );
-}
-
-
-IrregGeometry* _IrregGeometry_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Geometry_BuildPointsFunction*			buildPoints,
-		Geometry_PointAtFunction*			pointAt,
-		Dictionary*					dictionary,
-		Name						listKey )
-{
-	IrregGeometry* self;
-	
-	/* Allocate memory */
-	assert( _sizeOfSelf >= sizeof(IrregGeometry) );
-	self = (IrregGeometry*)_Geometry_New(
-		_sizeOfSelf,
-		type,
-		_delete,
-		_print,
-		_copy, 
-		_defaultConstructor,
-		_construct,
-		_build,
-		_initialise,
-		_execute,
-		_destroy,
-		name,
-		initFlag,
-		buildPoints,
-		pointAt,
-		dictionary );
-	
-	/* General info */
-	
-	/* Virtual info */
-	
-	/* IrregGeometry info */
-	if( initFlag ){
-		_IrregGeometry_Init( self, listKey );
-	}
-	
-	return self;
-}
-
-void _IrregGeometry_Init(
-		IrregGeometry*					self,
-		Name						listKey )
-{
-	/* General and Virtual info should already be set */
-	
-	/* IrregGeometry info */
-	Dictionary_Entry_Value*		list;
-	Dictionary_Entry_Value*		point;
-	Index				i;
-	
-	self->isConstructed = True;
-	list = Dictionary_Get( self->dictionary, listKey );
-	self->pointCount = Dictionary_Entry_Value_GetCount( list );
-	self->pointTbl = Memory_Alloc_Array( Coord, self->pointCount, "IrregGeometry->pointTbl" );
-	point = Dictionary_Entry_Value_GetFirstElement( list );
-	
-	for( i = 0; i < self->pointCount; i++ ) {
-		self->pointTbl[i][0] = Dictionary_Entry_Value_AsDouble( Dictionary_Entry_Value_GetMember( point, "x") );
-		self->pointTbl[i][1] = Dictionary_Entry_Value_AsDouble( Dictionary_Entry_Value_GetMember( point, "y") );
-		self->pointTbl[i][2] = Dictionary_Entry_Value_AsDouble( Dictionary_Entry_Value_GetMember( point, "z") );
-		point = point->next;
-	}
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _IrregGeometry_Delete( void* irregGeometry ) {
-	IrregGeometry* self = (IrregGeometry*)irregGeometry;
-	
-	/* Stg_Class_Delete parent */
-	_Geometry_Delete( self );
-}
-
-
-void _IrregGeometry_Print( void* irregGeometry, Stream* stream ) {
-	IrregGeometry* self = (IrregGeometry*)irregGeometry;
-	
-	/* Set the Journal for printing informations */
-	Stream* irregGeometryStream;
-	irregGeometryStream = Journal_Register( InfoStream_Type, "IrregGeometryStream" );
-
-	/* Print parent */
-	_Geometry_Print( self, stream );
-	
-	/* General info */
-	Journal_Printf( stream, "IrregGeometry (ptr): (%p)\n", self );
-	
-	/* Virtual info */
-	
-	/* IrregGeometry info */
-}
-
-void _IrregGeometry_Construct( void* irregGeometry, Stg_ComponentFactory *cf, void* data ){
-	IrregGeometry *self = (IrregGeometry*)irregGeometry;
-	Dictionary *componentDict = NULL;
-	Dictionary *thisComponentDict = NULL;
-	Name listName = NULL;
-
-	self->dictionary = cf->rootDict;
-	componentDict = cf->componentDict;
-	assert( componentDict );
-	thisComponentDict = Dictionary_GetDictionary( componentDict, self->name );
-	assert( thisComponentDict );
-	
-	listName = Dictionary_GetString( thisComponentDict, "ListName" );
-
-	_Geometry_Init( (Geometry*)self );
-	_IrregGeometry_Init( self, listName );
-}
-	
-void _IrregGeometry_Build( void* irregGeometry, void *data ){
-	
-}
-	
-void _IrregGeometry_Initialise( void* irregGeometry, void *data ){
-	
-}
-	
-void _IrregGeometry_Execute( void* irregGeometry, void *data ){
-	
-}
-
-void _IrregGeometry_Destroy( void* irregGeometry, void *data ){
-	
-}
-
-void _IrregGeometry_BuildPoints( void* irregGeometry, Coord_List points )
-{
-	IrregGeometry*  self = (IrregGeometry*)irregGeometry;
-	Index		i;
-	
-	for( i = 0; i < self->pointCount; i++ ) {
-		points[i][0] = self->pointTbl[i][0];
-		points[i][1] = self->pointTbl[i][1];
-		points[i][2] = self->pointTbl[i][2];
-	}
-}
-
-
-void _IrregGeometry_PointAt( void* irregGeometry, Index index, Coord point )
-{
-	IrregGeometry* self = (IrregGeometry*)irregGeometry;
-	
-	if( index < self->pointCount ) {
-		point[0] = self->pointTbl[index][0];
-		point[1] = self->pointTbl[index][1];
-		point[2] = self->pointTbl[index][2];
-	}
-	else {
-		point[0] = HUGE_VAL;
-		point[1] = HUGE_VAL;
-		point[2] = HUGE_VAL;
-	}
-}
-
-
-/*--------------------------------------------------------------------------------------------------------------------------
-** Public Functions
-*/
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Private Functions
-*/
-
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IrregGeometry.h
--- a/Geometry/src/IrregGeometry.h	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-*/
-/** \file
-**  Role:
-**
-** Assumptions:
-**
-** Comments:
-**
-** $Id: IrregGeometry.h 3851 2006-10-12 08:57:22Z SteveQuenette $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Domain_Geometry_IrregGeometry_h__
-#define __Domain_Geometry_IrregGeometry_h__
-
-	/* Virtual function types */
-	
-	/* Textual name of this class */
-	extern const Type IrregGeometry_Type;
-
-	/* IrregGeometry information */
-	#define __IrregGeometry \
-		/* General info */ \
-		__Geometry \
-		\
-		/* Virtual info */ \
-		\
-		/* IrregGeometry info ... */ \
-		Coord_List			pointTbl;
-	struct IrregGeometry { __IrregGeometry };
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-	
-	/* Create a IrregGeometry */
-	IrregGeometry* IrregGeometry_DefaultNew( );
-
-	IrregGeometry* IrregGeometry_New(
-		Name						name,
-		Dictionary*					dictionary,
-		Name						listKey );
-	
-	/* Initialise a IrregGeometry */
-	void IrregGeometry_Init(
-		IrregGeometry*					self,
-		Name						name,
-		Dictionary*					dictionary,
-		Name						listKey );
-	
-	/* Creation implementation */
-	IrregGeometry* _IrregGeometry_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Geometry_BuildPointsFunction*			buildPoints,
-		Geometry_PointAtFunction*			pointAt,
-		Dictionary*					dictionary,
-		Name						listKey );
-	
-	/* Initialisation implementation functions */
-	void _IrregGeometry_Init(
-		IrregGeometry*					self,
-		Name						listKey );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-	
-	/* Stg_Class_Delete IrregGeometry implementation */
-	void _IrregGeometry_Delete( void* irregGeometry );
-	
-	/* Print IrregGeometry implementation */
-	void _IrregGeometry_Print( void* irregGeometry, Stream* stream );
-	
-	void _IrregGeometry_Construct( void* irregGeometry, Stg_ComponentFactory *cf, void* data );
-	
-	void _IrregGeometry_Build( void* irregGeometry, void *data );
-	
-	void _IrregGeometry_Initialise( void* irregGeometry, void *data );
-	
-	void _IrregGeometry_Execute( void* irregGeometry, void *data );
-
-	void _IrregGeometry_Destroy( void* irregGeometry, void *data );
-	
-	void _IrregGeometry_BuildPoints( void* irregGeometry, Coord_List points );
-	
-	void _IrregGeometry_PointAt( void* irregGeometry, Index index, Coord point );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Public member functions
-	*/
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-	
-	
-#endif /* __Domain_Geometry_IrregGeometry_h__ */
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IrregGeometry.meta
--- a/Geometry/src/IrregGeometry.meta	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-
-<param name="Name">IrregGeometry</param>
-<param name="Author">...</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StDomain</param>
-<param name="Location">./StGermain/Geometry/src/</param>
-<param name="Project Web">https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome</param>
-<param name="Copyright">StGermain Framework. Copyright (C) 2003-2005 VPAC.</param>
-<param name="License">The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html</param>
-<param name="Parent">Geometry</param>
-<param name="Reference">...</param>
-<param name="Summary">Imports mesh coordinates from a file and applies them to a mesh.</param>
-<param name="Description"><p>IrregGeometry reads in a set of arbitrary points from a file and applies them to the geometry of a mesh.  This makes it ideal for importing mesh data produced by another tool, such as a third-party application.  As the name of this Code implies, the geometry of this mesh can be irregular.</p>
-
-<p>IrregGeometry retrieves ListName from the Root Directory.  This lets it locate an XML file containing listing of (x, y, z) points in a simple format, typically inside an &lt;asciidata&gt; element.</p>
-</param>
-
-<!--Now the interesting stuff-->
-
-
-<list name="Params">
-
-</list>
-
-<list name="Dependencies">
-<!-- This component calls in another directory so the info above/below may not be complete-->
-
-</list>
-<!-- Add an exmaple XML if possible -->
-<param name="Example">...</param>
-
-</StGermainData>
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IrregTopology.c
--- a/Geometry/src/IrregTopology.c	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,313 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-** $Id: IrregTopology.c 3882 2006-10-26 04:41:18Z KathleenHumble $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <mpi.h>
-#include "StGermain/StGermain.h"
-
-
-#include "units.h"
-#include "types.h"
-#include "Topology.h"
-#include "IrregTopology.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-
-/* Textual name of this class */
-const Type IrregTopology_Type = "IrregTopology";
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-IrregTopology* IrregTopology_DefaultNew( Name name )
-{
-	return (IrregTopology*)_IrregTopology_New( 
-		sizeof(IrregTopology), 
-		IrregTopology_Type, 
-		_IrregTopology_Delete, 
-		_IrregTopology_Print,
-		NULL,
-		(Stg_Component_DefaultConstructorFunction*)IrregTopology_DefaultNew,
-		_IrregTopology_Construct,
-		_IrregTopology_Build,
-		_IrregTopology_Initialise,
-		_IrregTopology_Execute,
-		_IrregTopology_Destroy,
-		name,
-		False,
-		_IrregTopology_NeighbourCount,
-		_IrregTopology_BuildNeighbours,
-		NULL,
-		NULL );
-}
-
-IrregTopology* IrregTopology_New(
-		Name						name,
-		Dictionary*					dictionary,
-		Name						listKey )
-{
-	return _IrregTopology_New( 
-		sizeof(IrregTopology), 
-		IrregTopology_Type, 
-		_IrregTopology_Delete, 
-		_IrregTopology_Print,
-		NULL,
-		(Stg_Component_DefaultConstructorFunction*)IrregTopology_DefaultNew,
-		_IrregTopology_Construct,
-		_IrregTopology_Build,
-		_IrregTopology_Initialise,
-		_IrregTopology_Execute,
-		_IrregTopology_Destroy,
-		name,
-		True,
-		_IrregTopology_NeighbourCount,
-		_IrregTopology_BuildNeighbours,
-		dictionary,
-		listKey );
-}
-
-
-void IrregTopology_Init(
-		IrregTopology*					self,
-		Name						name,
-		Dictionary*					dictionary,
-		Name						listKey )
-{
-	/* General info */
-	self->type = IrregTopology_Type;
-	self->_sizeOfSelf = sizeof(IrregTopology);
-	self->_deleteSelf = False;
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	self->_delete = _IrregTopology_Delete;
-	self->_print = _IrregTopology_Print;
-	self->_copy = NULL;
-	self->_defaultConstructor = (Stg_Component_DefaultConstructorFunction*)IrregTopology_DefaultNew;
-	self->_construct = _IrregTopology_Construct;
-	self->_build = _IrregTopology_Build;
-	self->_initialise = _IrregTopology_Initialise;
-	self->_execute = _IrregTopology_Execute;
-	self->_destroy = _IrregTopology_Destroy;
-	self->neighbourCount = _IrregTopology_NeighbourCount;
-	self->buildNeighbours = _IrregTopology_BuildNeighbours;
-	
-	_Stg_Class_Init( (Stg_Class*)self );
-	_Stg_Object_Init( (Stg_Object*)self, name, NON_GLOBAL );
-	_Stg_Component_Init( (Stg_Component*)self );
-	
-	/* IrregTopology info */
-	_IrregTopology_Init( self, listKey );
-}
-
-
-IrregTopology* _IrregTopology_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*		neighbourCount,
-		Topology_BuildNeighboursFunction*		buildNeighbours,
-		Dictionary*					dictionary,
-		Name						listKey )
-{
-	IrregTopology* self;
-	
-	/* Allocate memory */
-	assert( _sizeOfSelf >= sizeof(IrregTopology) );
-	self = (IrregTopology*)_Topology_New( _sizeOfSelf, type, _delete, _print, _copy, _defaultConstructor,
-			_construct, _build, _initialise, _execute, _destroy, name, initFlag, neighbourCount, buildNeighbours );
-	
-	/* General info */
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	
-	/* IrregTopology info */
-	if( initFlag ){
-		_IrregTopology_Init( self, listKey );
-	}
-	
-	return self;
-}
-
-void _IrregTopology_Init(
-		IrregTopology*					self,
-		Name						listKey )
-{
-	/* General and Virtual info should already be set */
-	
-	/* IrregTopology info */
-	Dictionary_Entry_Value*		list;
-	Dictionary_Entry_Value*		index;
-	Dictionary_Entry_Value*		nbr;
-	Index				i;
-	
-	self->isConstructed = True;
-	list = Dictionary_Get( self->dictionary, listKey );
-	self->indexCount = Dictionary_Entry_Value_GetCount( list );
-	self->neighbourCountTbl = Memory_Alloc_Array( Index, self->indexCount, "IrregTopology->neighbourCountTbl" );
-	self->neighbourTbl = Memory_Alloc_Array( Index*, self->indexCount, "IrregTopology->neighbourCountTbl" );
-	index = Dictionary_Entry_Value_GetFirstElement( list );
-	
-	for( i = 0; i < self->indexCount; i++ ) {
-		Index n_I;
-		
-		self->neighbourCountTbl[i] = Dictionary_Entry_Value_GetCount( index );
-		nbr = Dictionary_Entry_Value_GetFirstElement( index );
-		self->neighbourTbl[i] = Memory_Alloc_Array( Index, self->neighbourCountTbl[i], "IrregTopology->neighbourTbl[]" );
-		
-		for( n_I = 0; n_I < self->neighbourCountTbl[i]; n_I++ ) {
-			self->neighbourTbl[i][n_I] = Dictionary_Entry_Value_AsUnsignedInt( nbr );
-			nbr = nbr->next;
-		}
-		
-		index = index->next;
-	}
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _IrregTopology_Delete( void* irregTopology ) {
-	IrregTopology*  self = (IrregTopology*)irregTopology;
-	Index		i;
-	
-	for( i = 0; i < self->indexCount; i++ )
-		if( self->neighbourTbl[i] )
-			Memory_Free( self->neighbourTbl[i] );
-	if( self->neighbourTbl ) {
-		Memory_Free( self->neighbourTbl );
-		self->neighbourTbl = NULL;
-	}
-	
-	if( self->neighbourCountTbl ) {
-		Memory_Free( self->neighbourCountTbl );
-		self->neighbourCountTbl = NULL;
-	}
-	
-	/* Stg_Class_Delete parent */
-	_Topology_Delete( self );
-}
-
-
-void _IrregTopology_Print( void* irregTopology, Stream* stream ) {
-	IrregTopology* self = (IrregTopology*)irregTopology;
-	
-	/* Set the Journal for printing informations */
-	Stream* irregTopologyStream;
-	irregTopologyStream = Journal_Register( InfoStream_Type, "IrregTopologyStream" );
-
-	/* Print parent */
-	_Topology_Print( self, stream );
-	
-	/* General info */
-	Journal_Printf( stream, "IrregTopology (ptr): (%p)\n", self );
-	
-	/* Virtual info */
-	
-	/* IrregTopology info */
-}
-
-void _IrregTopology_Construct( void* irregTopology, Stg_ComponentFactory *cf, void* data ){
-	IrregTopology *self = (IrregTopology*)irregTopology;
-	Dictionary *componentDict = NULL;
-	Dictionary *thisComponentDict = NULL;
-	Name listName = NULL;
-
-	self->dictionary = cf->rootDict;
-	componentDict = cf->componentDict;
-	assert( componentDict );
-	thisComponentDict = Dictionary_GetDictionary( componentDict, self->name );
-	assert( thisComponentDict );
-	
-	listName = Dictionary_GetString( thisComponentDict, "ListName" );
-
-	_Topology_Init( (Topology*)self );
-	_IrregTopology_Init( self, listName );
-}
-
-void _IrregTopology_Build( void* irregTopology, void* data ){
-	
-}
-	
-void _IrregTopology_Initialise( void* irregTopology, void* data ){
-	
-}
-	
-void _IrregTopology_Execute( void* irregTopology, void* data ){
-	
-}
-	
-void _IrregTopology_Destroy( void* irregTopology, void* data ){
-	
-}
-
-
-NeighbourIndex _IrregTopology_NeighbourCount( void* irregTopology, Index index ) {
-	IrregTopology* self = (IrregTopology*)irregTopology;
-
-	return self->neighbourCountTbl[index];
-}
-
-
-void _IrregTopology_BuildNeighbours( void* irregTopology, Index index, NeighbourIndex* neighbours ) {
-	IrregTopology*  self = (IrregTopology*)irregTopology;
-	NeighbourIndex  n_I;
-	
-	for( n_I = 0; n_I < self->neighbourCountTbl[index]; n_I++ )
-		neighbours[n_I] = self->neighbourTbl[index][n_I];
-}
-
-
-/*--------------------------------------------------------------------------------------------------------------------------
-** Public Functions
-*/
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Private Functions
-*/
-
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IrregTopology.h
--- a/Geometry/src/IrregTopology.h	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-*/
-/** \file
-**  Role:
-**
-** Assumptions:
-**
-** Comments:
-**
-** $Id: IrregTopology.h 3851 2006-10-12 08:57:22Z SteveQuenette $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Domain_Geometry_IrregTopology_h__
-#define __Domain_Geometry_IrregTopology_h__
-
-	/* Virtual function types */
-	
-	/* Textual name of this class */
-	extern const Type IrregTopology_Type;
-
-	/* IrregTopology information */
-	#define __IrregTopology \
-		/* General info */ \
-		__Topology \
-		Dictionary*			dictionary; \
-		\
-		/* Virtual info */ \
-		\
-		/* IrregTopology info ... */ \
-		Index*				neighbourCountTbl; \
-		Index**				neighbourTbl;
-	struct IrregTopology { __IrregTopology };
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-	
-	/* Create a IrregTopology */
-	IrregTopology* IrregTopology_DefaultNew( Name name );
-
-	IrregTopology* IrregTopology_New(
-		Name						name,
-		Dictionary*					dictionary,
-		Name						listKey );
-	
-	/* Initialise a IrregTopology */
-	void IrregTopology_Init(
-		IrregTopology*					self,
-		Name						name,
-		Dictionary*					dictionary,
-		Name						listKey );
-	
-	/* Creation implementation */
-	IrregTopology* _IrregTopology_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*		neighbourCount,
-		Topology_BuildNeighboursFunction*		buildNeighbours,
-		Dictionary*					dictionary,
-		Name						listKey );
-	
-	/* Initialisation implementation functions */
-	void _IrregTopology_Init(
-		IrregTopology*					self,
-		Name						listKey );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-	
-	/* Stg_Class_Delete IrregTopology implementation */
-	void _IrregTopology_Delete( void* irregTopology );
-	
-	/* Print IrregTopology implementation */
-	void _IrregTopology_Print( void* irregTopology, Stream* stream );
-
-	void _IrregTopology_Construct( void* irregTopology, Stg_ComponentFactory *cf, void* data );
-
-	void _IrregTopology_Build( void* irregTopology, void* data );
-	
-	void _IrregTopology_Initialise( void* irregTopology, void* data );
-	
-	void _IrregTopology_Execute( void* irregTopology, void* data );
-	
-	void _IrregTopology_Destroy( void* irregTopology, void* data );
-	
-	NeighbourIndex _IrregTopology_NeighbourCount( void* irregTopology, Index index );
-	
-	void _IrregTopology_BuildNeighbours( void* irregTopology, Index index, NeighbourIndex* neighbours );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Public member functions
-	*/
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-	
-	
-#endif /* __Domain_Geometry_IrregTopology_h__ */
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/IrregTopology.meta
--- a/Geometry/src/IrregTopology.meta	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-
-<param name="Name">IrregTopology</param>
-<param name="Author">...</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StGermain/Discretisation/Geometry/src/</param>
-<param name="Project Web">https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome</param>
-<param name="Copyright">StGermain Framework. Copyright (C) 2003-2005 VPAC.</param>
-<param name="License">The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html</param>
-<param name="Parent">Topology</param>
-<param name="Reference">...</param>
-<param name="Summary">...</param>
-<param name="Description">...</param>
-
-<!--Now the interesting stuff-->
-
-
-<list name="Params">
-
-</list>
-
-<list name="Dependencies">
-<!-- This component calls in another directory so the info above/below may not be complete-->
-
-</list>
-<!-- Add an exmaple XML if possible -->
-<param name="Example">...</param>
-
-</StGermainData>
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/RefinedRegionsGeometry.c
--- a/Geometry/src/RefinedRegionsGeometry.c	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,564 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-** $Id: RefinedRegionsGeometry.c 3851 2006-10-12 08:57:22Z SteveQuenette $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <mpi.h>
-#include "StGermain/StGermain.h"
-
-
-#include "units.h"
-#include "types.h"
-#include "GeometryClass.h"
-#include "RefinedRegionsGeometry.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include <assert.h>
-
-
-/* Textual name of this class */
-const Type RefinedRegionsGeometry_Type = "RefinedRegionsGeometry";
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-void* RefinedRegionsGeometry_DefaultNew( Name name )
-{
-	return (void*) _RefinedRegionsGeometry_New(
-		sizeof(RefinedRegionsGeometry), 
-		RefinedRegionsGeometry_Type, 
-		_RefinedRegionsGeometry_Delete, 
-		_RefinedRegionsGeometry_Print,
-		_RefinedRegionsGeometry_Copy,
-		RefinedRegionsGeometry_DefaultNew,
-		_RefinedRegionsGeometry_Construct,
-		_RefinedRegionsGeometry_Build,
-		_RefinedRegionsGeometry_Initialise,
-		_RefinedRegionsGeometry_Execute,
-		_RefinedRegionsGeometry_Destroy,
-		name,
-		False,
-		_RefinedRegionsGeometry_BuildPoints,
-		_RefinedRegionsGeometry_PointAt,
-		NULL );
-}
-
-RefinedRegionsGeometry* RefinedRegionsGeometry_New(
-		Name name,
-		Dictionary*					dictionary )
-{
-	return _RefinedRegionsGeometry_New( 
-		sizeof(RefinedRegionsGeometry), 
-		RefinedRegionsGeometry_Type, 
-		_RefinedRegionsGeometry_Delete, 
-		_RefinedRegionsGeometry_Print,
-		_RefinedRegionsGeometry_Copy,
-		RefinedRegionsGeometry_DefaultNew,
-		_RefinedRegionsGeometry_Construct,
-		_RefinedRegionsGeometry_Build,
-		_RefinedRegionsGeometry_Initialise,
-		_RefinedRegionsGeometry_Execute,
-		_RefinedRegionsGeometry_Destroy,
-		name,
-		True,
-		_RefinedRegionsGeometry_BuildPoints,
-		_RefinedRegionsGeometry_PointAt,
-		dictionary );
-}
-
-
-void RefinedRegionsGeometry_Init(
-		RefinedRegionsGeometry*					self,
-		Name						name,
-		Dictionary*					dictionary )
-{
-	/* General info */
-	self->type = RefinedRegionsGeometry_Type;
-	self->_sizeOfSelf = sizeof(RefinedRegionsGeometry);
-	self->_deleteSelf = False;
-	self->dictionary = dictionary;
-	
-	/* Virtual info */
-	self->_delete = _RefinedRegionsGeometry_Delete;
-	self->_print = _RefinedRegionsGeometry_Print;
-	self->_copy = _RefinedRegionsGeometry_Copy;
-	self->_defaultConstructor = RefinedRegionsGeometry_DefaultNew;
-	self->_construct = _RefinedRegionsGeometry_Construct;
-	self->_build = _RefinedRegionsGeometry_Build;
-	self->_initialise = _RefinedRegionsGeometry_Initialise;
-	self->_execute = _RefinedRegionsGeometry_Execute;
-	self->_destroy = _RefinedRegionsGeometry_Destroy;
-	self->buildPoints = _RefinedRegionsGeometry_BuildPoints;
-	self->pointAt = _RefinedRegionsGeometry_PointAt;
-	
-	_Stg_Class_Init( (Stg_Class*)self );
-	_Stg_Object_Init( (Stg_Object*)self, name, NON_GLOBAL );
-	_Stg_Component_Init( (Stg_Component*)self );
-	
-	_Geometry_Init( (Geometry*)self );
-	
-	/* RefinedRegionsGeometry info */
-	_RefinedRegionsGeometry_Init( self, NULL );
-}
-
-
-RefinedRegionsGeometry* _RefinedRegionsGeometry_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Geometry_BuildPointsFunction*			buildPoints,
-		Geometry_PointAtFunction*			pointAt,
-		Dictionary*					dictionary )
-{
-	RefinedRegionsGeometry* self;
-	
-	/* Allocate memory */
-	assert( _sizeOfSelf >= sizeof(RefinedRegionsGeometry) );
-	self = (RefinedRegionsGeometry*)_Geometry_New(
-		_sizeOfSelf,
-		type,
-		_delete,
-		_print,
-		_copy,
-		_defaultConstructor,
-		_construct,
-		_build,
-		_initialise,
-		_execute,
-		_destroy,
-		name,
-		initFlag,
-		buildPoints,
-		pointAt,
-		dictionary );
-	
-	/* General info */
-	
-	/* Virtual info */
-	
-	/* RefinedRegionsGeometry info */
-	if( initFlag ){
-		_RefinedRegionsGeometry_Init( self, NULL );
-	}
-	
-	return self;
-}
-
-void _RefinedRegionsGeometry_Init( RefinedRegionsGeometry* self, IJK size ) {
-	Dimension_Index		dim_I;
-	Dictionary_Entry_Value*	regionsList = NULL;
-
-	/* General and Virtual info should already be set */
-	
-	/* RefinedRegionsGeometry info */
-	self->isConstructed = False;
-
-	self->min[ I_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "minX", 0.0f );
-	self->min[ J_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "minY", 0.0f );
-	self->min[ K_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "minZ", 0.0f );
-
-	self->max[ I_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "maxX", 1.0f );
-	self->max[ J_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "maxY", 1.0f );
-	self->max[ K_AXIS ] = Dictionary_GetDouble_WithDefault( self->dictionary, "maxZ", 1.0f );
-
-	if ( size ) {
-		memcpy( self->countPerDim, size, sizeof(IJK) );
-	}
-	else {
-		self->countPerDim[ I_AXIS ] = Dictionary_GetUnsignedInt_WithDefault( self->dictionary, "meshSizeI", 2 );
-		self->countPerDim[ J_AXIS ] = Dictionary_GetUnsignedInt_WithDefault( self->dictionary, "meshSizeJ", 2 );
-		self->countPerDim[ K_AXIS ] = Dictionary_GetUnsignedInt_WithDefault( self->dictionary, "meshSizeK", 2 );
-	}
-
-	for ( dim_I = 0; dim_I < 3; dim_I++ ) {
-		self->refinedRegionDeltas[dim_I] = 4;
-	}
-	
-	/* Now Read in the refined regions */
-	regionsList = Dictionary_Get( self->dictionary, "RefinedRegions" );	
-	if ( regionsList ) {
-		Index				entryCount = Dictionary_Entry_Value_GetCount( regionsList );
-		Index				entry_I = 0;
-		Dictionary_Entry_Value*		regionEntry;
-		Dictionary*			regionDict;
-		Dimension_Index			dim = 0;
-		double				regionStart = 0;
-		double				regionEnd = 0;
-		unsigned int			refinementFactor = 1;
-		
-		for( entry_I = 0; entry_I < entryCount; entry_I++ ) {
-			regionEntry = Dictionary_Entry_Value_GetElement( regionsList, entry_I );
-			regionDict = Dictionary_Entry_Value_AsDictionary( regionEntry );
-			dim = Dictionary_GetUnsignedInt_WithDefault( regionDict, "dim", 0 );
-			regionStart = Dictionary_GetDouble_WithDefault( regionDict, "regionStart", 0.0 );
-			regionEnd = Dictionary_GetDouble_WithDefault( regionDict, "regionEnd", 1.0 );
-			refinementFactor = Dictionary_GetUnsignedInt_WithDefault( regionDict, "refinementFactor", 2 );
-			_RefinedRegionsGeometry_AddRefinedRegion( self, dim, regionStart, regionEnd, refinementFactor );
-		}	
-	}
-	
-	self->pointCount = self->countPerDim[I_AXIS] * self->countPerDim[J_AXIS] *
-		self->countPerDim[K_AXIS];
-	
-	assert( self->pointCount );
-
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _RefinedRegionsGeometry_Delete( void* refinedRegionsGeometry ) {
-	RefinedRegionsGeometry* self = (RefinedRegionsGeometry*)refinedRegionsGeometry;
-	
-	/* Stg_Class_Delete parent */
-	_Geometry_Delete( self );
-}
-
-
-void _RefinedRegionsGeometry_Print( void* refinedRegionsGeometry, Stream* stream ) {
-	RefinedRegionsGeometry* self = (RefinedRegionsGeometry*)refinedRegionsGeometry;
-	
-	/* Print parent */
-	_Geometry_Print( self, stream );
-	
-	/* General info */
-	Journal_Printf( stream, "RefinedRegionsGeometry (ptr): (%p)\n", self );
-	
-	/* Virtual info */
-	
-	/* RefinedRegionsGeometry info */
-}
-
-void _RefinedRegionsGeometry_Construct( void* refinedRegionsGeometry, Stg_ComponentFactory *cf, void* data ){
-	RefinedRegionsGeometry*  self   = (RefinedRegionsGeometry*)refinedRegionsGeometry;
-	IJK             size;
-	int             shift;
-	Dimension_Index dim;
-	Dimension_Index dim_I;
-
-	self->dictionary =  Dictionary_GetDictionary( cf->componentDict, self->name );
-
-	/* Get Size from Dictionary */
-	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
-		
-	size[ I_AXIS ] = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "sizeI", 1 );  
-	size[ J_AXIS ] = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "sizeJ", 1 );
-	size[ K_AXIS ] = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "sizeK", 1 );
-	if ( dim == 2 )
-		size[ K_AXIS ] = 1;
-
-	/* Shift the size if nessesary */
-	shift = Stg_ComponentFactory_GetInt( cf, self->name, "sizeShift", 0 );
-	for ( dim_I = I_AXIS ; dim_I < dim ; dim_I++ )
-		size[ dim_I ] += shift;
-	
-	_Geometry_Init( (Geometry*)self );
-	_RefinedRegionsGeometry_Init( self, size );
-}
-	
-void _RefinedRegionsGeometry_Build( void* refinedRegionsGeometry, void *data ){
-	
-}
-	
-void _RefinedRegionsGeometry_Initialise( void* refinedRegionsGeometry, void *data ){
-	
-}
-	
-void _RefinedRegionsGeometry_Execute( void* refinedRegionsGeometry, void *data ){
-	
-}
-	
-void _RefinedRegionsGeometry_Destroy( void* refinedRegionsGeometry, void *data ){
-	
-}
-
-
-void* _RefinedRegionsGeometry_Copy( void* refinedRegionsGeometry, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
-	RefinedRegionsGeometry*	self = (RefinedRegionsGeometry*)refinedRegionsGeometry;
-	RefinedRegionsGeometry*	newRefinedRegionsGeometry;
-	Index		dim_I;
-	
-	newRefinedRegionsGeometry = (RefinedRegionsGeometry*)_Geometry_Copy( self, dest, deep, nameExt, ptrMap );
-	
-	for( dim_I = 0; dim_I < 3; dim_I++ ) {
-		newRefinedRegionsGeometry->countPerDim[dim_I] = 
-			self->countPerDim[dim_I];
-		newRefinedRegionsGeometry->min[dim_I] = self->min[dim_I];
-		newRefinedRegionsGeometry->max[dim_I] = self->max[dim_I];
-		newRefinedRegionsGeometry->refinedRegionCounts[dim_I] = 
-			self->refinedRegionCounts[dim_I];
-		newRefinedRegionsGeometry->refinedRegionSizes[dim_I] = 
-			self->refinedRegionSizes[dim_I];
-		newRefinedRegionsGeometry->refinedRegionDeltas[dim_I] = 
-			self->refinedRegionDeltas[dim_I];
-		memcpy( newRefinedRegionsGeometry->refinedRegions[dim_I],
-			self->refinedRegions[dim_I], 
-			sizeof(RefinedRegion) * self->refinedRegionCounts[dim_I] );
-	}
-	
-	return (void*)newRefinedRegionsGeometry;
-}
-
-
-void _RefinedRegionsGeometry_AddRefinedRegion( void* refinedRegionsGeometry, Index dim,
-		double regionStart, double regionEnd, unsigned int refinementFactor )
-{
-	RefinedRegionsGeometry*	self = (RefinedRegionsGeometry*)refinedRegionsGeometry;
-
-	if ( self->refinedRegionCounts[dim] == self->refinedRegionSizes[dim] )
-	{
-		self->refinedRegionSizes[dim] += self->refinedRegionDeltas[dim];
-		self->refinedRegions[dim] = Memory_Realloc( 
-			self->refinedRegions[dim],
-			self->refinedRegionSizes[dim] * sizeof(RefinedRegion) );
-	}
-	self->refinedRegions[dim][self->refinedRegionCounts[dim]].regionStart = regionStart;
-	self->refinedRegions[dim][self->refinedRegionCounts[dim]].regionEnd = regionEnd;
-	self->refinedRegions[dim][self->refinedRegionCounts[dim]].refinementFactor = refinementFactor;
-	/* Following 2 values are set to zero until real vals calculated later */
-	self->refinedRegions[dim][self->refinedRegionCounts[dim]].numElements = 0;
-	self->refinedRegions[dim][self->refinedRegionCounts[dim]].elementLength = 0.0;
-	self->refinedRegionCounts[dim]++;
-}
-
-
-
-
-
-void _RefinedRegionsGeometry_BuildPoints( void* refinedRegionsGeometry, Coord_List points )
-{
-	RefinedRegionsGeometry*  self = (RefinedRegionsGeometry*)refinedRegionsGeometry;
-	Dimension_Index	dim_I = 0;
-	Index		currRegion_I[3] = { 0, 0, 0 };
-	double		elementLengthNormal[3];
-	Index		numElementsNormal[3];
-	RefinedRegion*	currRefinedRegion = NULL;
-	Index		i;
-	double		increment = 0;
-	IJK		ijk;
-	IJK		prevIJK = {0,0,0};
-	Coord		prevPos = {0,0,0};
-	Bool		withinRefined[3] = { False, False, False };
-	
-	_RefinedRegionsGeometry_CalculateElementLengths( refinedRegionsGeometry, numElementsNormal, elementLengthNormal );
-
-	for( i = 0; i < self->pointCount; i++ ) {
-	
-		ijk[0] = i % self->countPerDim[0];
-		ijk[1] = (i / self->countPerDim[0]) % self->countPerDim[1];
-		ijk[2] = i / (self->countPerDim[0] * self->countPerDim[1]);
-	
-		for ( dim_I = 0; dim_I < 3; dim_I++ ) {
-			if ( ijk[dim_I] == 0 ) {
-				/* Axis reset to 0 - also reset the region iterator*/
-				points[i][dim_I] = self->min[dim_I];
-				currRegion_I[dim_I] = 0;
-			}
-			else if ( ijk[dim_I] == prevIJK[dim_I] ) {
-				/* We haven't moved in this direction this step */
-				points[i][dim_I] = prevPos[dim_I];
-			}
-			else if ( withinRefined[dim_I] ) {
-				currRefinedRegion = &self->refinedRegions[dim_I][currRegion_I[dim_I]];
-				/* We are within a refined block */
-				increment = currRefinedRegion->elementLength;
-				points[i][dim_I] =  prevPos[dim_I] + increment;
-				if ( points[i][dim_I] > ( currRefinedRegion->regionEnd - 1e-6 ) ) {
-					withinRefined[dim_I] = False;
-					(currRegion_I[dim_I])++;
-				}
-			}
-			else if ( ( self->refinedRegions[dim_I] ) &&
-				( currRegion_I[dim_I] < self->refinedRegionCounts[dim_I] ) &&
-				(prevPos[dim_I] > self->refinedRegions[dim_I][currRegion_I[dim_I]].regionStart - 1e-6 ) )
-			{
-				currRefinedRegion = &self->refinedRegions[dim_I][currRegion_I[dim_I]];
-				/* We are entering a refined block */
-				withinRefined[dim_I] = True;
-				increment = currRefinedRegion->elementLength;
-				points[i][dim_I] = prevPos[dim_I] + increment;
-			}	
-			else {
-				/* The "normal" case- not in refined area */
-				points[i][dim_I] = prevPos[dim_I] + elementLengthNormal[dim_I];
-			}
-
-			prevPos[dim_I] = points[i][dim_I];
-			prevIJK[dim_I] = ijk[dim_I];
-		}
-	}
-}
-
-void _RefinedRegionsGeometry_PointAt( void* refinedRegionsGeometry, Index index, Coord point )
-{
-	RefinedRegionsGeometry* self = (RefinedRegionsGeometry*)refinedRegionsGeometry;
-	
-	if( index < self->pointCount ) {
-		Index		i;
-		Bool		withinRefined[3] = { False, False, False };
-		Index		currRegion_I[3] = { 0, 0, 0 };
-		RefinedRegion*	currRefinedRegion = NULL;
-		Dimension_Index	dim_I = 0;
-		double		increment = 0;
-		IJK		ijk;
-		IJK		prevIJK = {0,0,0};
-		Coord		prevPos = {0,0,0};
-		double		elementLengthNormal[3];
-		Index		numElementsNormal[3];
-		
-		_RefinedRegionsGeometry_CalculateElementLengths( refinedRegionsGeometry, numElementsNormal, elementLengthNormal );
-		
-		for( i = 0; i <= index; i++ ) {
-		
-			ijk[0] = i % self->countPerDim[0];
-			ijk[1] = (i / self->countPerDim[0]) % self->countPerDim[1];
-			ijk[2] = i / (self->countPerDim[0] * self->countPerDim[1]);
-		
-			for ( dim_I = 0; dim_I < 3; dim_I++ ) {
-				if ( ijk[dim_I] == 0 ) {
-					/* Axis reset to 0 - also reset the region iterator*/
-					point[dim_I] = self->min[dim_I];
-					currRegion_I[dim_I] = 0;
-				}
-				else if ( ijk[dim_I] == prevIJK[dim_I] ) {
-					/* We haven't moved in this direction this step */
-					point[dim_I] = prevPos[dim_I];
-				}
-				else if ( withinRefined[dim_I] ) {
-					currRefinedRegion = &self->refinedRegions[dim_I][currRegion_I[dim_I]];
-					/* We are within a refined block */
-					increment = currRefinedRegion->elementLength;
-					point[dim_I] =  prevPos[dim_I] + increment;
-					if ( point[dim_I] > ( currRefinedRegion->regionEnd - 1e-6 ) ) {
-						withinRefined[dim_I] = False;
-						(currRegion_I[dim_I])++;
-					}
-				}
-				else if ( ( self->refinedRegions[dim_I] ) &&
-					( currRegion_I[dim_I] < self->refinedRegionCounts[dim_I] ) &&
-					( prevPos[dim_I] > self->refinedRegions[dim_I][currRegion_I[dim_I]].regionStart - 1e-6) )
-				{
-					currRefinedRegion = &self->refinedRegions[dim_I][currRegion_I[dim_I]];
-					/* We are entering a refined block */
-					withinRefined[dim_I] = True;
-					increment = currRefinedRegion->elementLength;
-					point[dim_I] =  prevPos[dim_I] + increment;
-				}	
-				else {
-					/* The "normal" case- not in refined area */
-					point[dim_I] = prevPos[dim_I] + elementLengthNormal[dim_I];
-				}
-
-				prevPos[dim_I] = point[dim_I];
-				prevIJK[dim_I] = ijk[dim_I];
-			}
-		}	
-	}
-	else {
-		point[0] = HUGE_VAL;
-		point[1] = HUGE_VAL;
-		point[2] = HUGE_VAL;
-	}
-}
-
-
-/*--------------------------------------------------------------------------------------------------------------------------
-** Public Functions
-*/
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Private Functions
-*/
-
-void _RefinedRegionsGeometry_CalculateElementLengths(
-		RefinedRegionsGeometry*	self,
-		Index			numElementsNormal[3],
-		double			elementLengthNormal[3] )
-{	
-	Dimension_Index	dim_I = 0;
-	Index		currRegion_I = 0;
-	double		remainderLength;
-	RefinedRegion*	currRefinedRegion = NULL;
-	double		summation = 0;
-	double		elLengthBase = 0;
-	double		regionLength;
-
-	for ( dim_I = 0; dim_I < 3; dim_I++ ) {
-		remainderLength = self->max[dim_I] - self->min[dim_I];
-
-		for ( currRegion_I = 0; currRegion_I < self->refinedRegionCounts[dim_I]; currRegion_I++ ) {
-			currRefinedRegion = &self->refinedRegions[dim_I][currRegion_I];
-			remainderLength -= ( currRefinedRegion->regionEnd - currRefinedRegion->regionStart );
-		}
-		
-		summation = 0.0;
-		for ( currRegion_I = 0; currRegion_I < self->refinedRegionCounts[dim_I]; currRegion_I++ ) {
-			currRefinedRegion = &self->refinedRegions[dim_I][currRegion_I];
-			summation += ( currRefinedRegion->regionEnd - currRefinedRegion->regionStart ) *
-				currRefinedRegion->refinementFactor;
-		}	
-		summation += remainderLength * 1;
-			
-		elLengthBase = 1.0 / (self->countPerDim[dim_I] - 1) * summation;	
-		
-		/* Now we have the base element length, calculate the rounded values for each section */
-		for ( currRegion_I = 0; currRegion_I < self->refinedRegionCounts[dim_I]; currRegion_I++ ) {
-			currRefinedRegion = &self->refinedRegions[dim_I][currRegion_I];
-			regionLength = currRefinedRegion->regionEnd - currRefinedRegion->regionStart;
-			currRefinedRegion->numElements = floor( regionLength / elLengthBase *
-				currRefinedRegion->refinementFactor + 0.5 );
-			currRefinedRegion->elementLength = regionLength / currRefinedRegion->numElements;	
-		}	
-
-		/* Do a check to make sure the total number of elements is correct */
-		numElementsNormal[dim_I] = self->countPerDim[dim_I] - 1;
-		for ( currRegion_I = 0; currRegion_I < self->refinedRegionCounts[dim_I]; currRegion_I++ ) {
-			currRefinedRegion = &self->refinedRegions[dim_I][currRegion_I];
-			numElementsNormal[dim_I] -= currRefinedRegion->numElements;
-		}	
-		elementLengthNormal[dim_I] = remainderLength / numElementsNormal[dim_I];
-	}
-}
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/RefinedRegionsGeometry.h
--- a/Geometry/src/RefinedRegionsGeometry.h	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-*/
-/** \file
-**  Role:
-**	This class allows the user to specify a regular geometry, but with refinements
-**	in special regions.
-**
-** Assumptions:
-**
-** Comments:
-**
-** $Id: RefinedRegionsGeometry.h 3851 2006-10-12 08:57:22Z SteveQuenette $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Domain_Geometry_RefinedRegionsGeometry_h__
-#define __Domain_Geometry_RefinedRegionsGeometry_h__
-
-	/* Virtual function types */
-	
-	/* Textual name of this class */
-	extern const Type RefinedRegionsGeometry_Type;
-
-	typedef struct RefinedRegion {
-		double		regionStart;
-		double		regionEnd;
-		unsigned int	refinementFactor;
-		Index		numElements;
-		double		elementLength;
-	} RefinedRegion;
-
-	/* RefinedRegionsGeometry information */
-	#define __RefinedRegionsGeometry \
-		/* General info */ \
-		__Geometry \
-		\
-		/* Virtual info */ \
-		\
-		/* RefinedRegionsGeometry info ... */ \
-		IJK				countPerDim; \
-		XYZ				min; \
-		XYZ				max; \
-		Index				refinedRegionCounts[3]; \
-		Index				refinedRegionSizes[3]; \
-		Index				refinedRegionDeltas[3]; \
-		RefinedRegion*			refinedRegions[3]; \
-		
-	struct RefinedRegionsGeometry { __RefinedRegionsGeometry };
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-	
-	/* Create a RefinedRegionsGeometry */
-	void* RefinedRegionsGeometry_DefaultNew( Name name );
-	
-	RefinedRegionsGeometry* RefinedRegionsGeometry_New(
-		Name						name,
-		Dictionary*					dictionary );
-	
-	/* Initialise a RefinedRegionsGeometry */
-	void RefinedRegionsGeometry_Init(
-		RefinedRegionsGeometry*					self,
-		Name						name,
-		Dictionary*					dictionary );
-	
-	/* Creation implementation */
-	RefinedRegionsGeometry* _RefinedRegionsGeometry_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Geometry_BuildPointsFunction*			buildPoints,
-		Geometry_PointAtFunction*			pointAt,
-		Dictionary*					dictionary );
-	
-	/* Initialisation implementation functions */
-	void _RefinedRegionsGeometry_Init( RefinedRegionsGeometry* self, IJK size );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-	
-	/* Stg_Class_Delete RefinedRegionsGeometry implementation */
-	void _RefinedRegionsGeometry_Delete( void* blockGeometry );
-	
-	/* Print RefinedRegionsGeometry implementation */
-	void _RefinedRegionsGeometry_Print( void* blockGeometry, Stream* stream );
-	
-	void _RefinedRegionsGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf, void* data );
-	
-	void _RefinedRegionsGeometry_Build( void* blockGeometry, void *data );
-	
-	void _RefinedRegionsGeometry_Initialise( void* blockGeometry, void *data );
-	
-	void _RefinedRegionsGeometry_Execute( void* blockGeometry, void *data );
-	
-	void _RefinedRegionsGeometry_Destroy( void* blockGeometry, void *data );
-	
-	/* Copy */
-	#define RefinedRegionsGeometry_Copy( self ) \
-		(RefinedRegionsGeometry*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
-	#define RefinedRegionsGeometry_DeepCopy( self ) \
-		(RefinedRegionsGeometry*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
-	
-	void* _RefinedRegionsGeometry_Copy( void* geometry, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
-	
-	void _RefinedRegionsGeometry_AddRefinedRegion( void* blockGeometry, Index dimension, double regionStart, double regionEnd, unsigned int refinementFactor );
-
-	void _RefinedRegionsGeometry_BuildPoints( void* blockGeometry, Coord_List points );
-	
-	void _RefinedRegionsGeometry_PointAt( void* blockGeometry, Index index, Coord point );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Public member functions
-	*/
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-
-	/** Calculates element lengths and numbers of elements in each region, including the "normal"
-	unrefined region. A first iteration at the normal length is calculated using:
-	X0 = 1 / globalRes * ( sigma ( Fn * Rn) ) 
-	Where:
-	X0 = unrefined element length, 
-	globalRes = global number of elements in this dimension
-	Fn = requested refinement factor of nth region
-	Rn = Region length of nth region
-
-	We then calculate the number of elements in the refined regions, _rounding off_ to ensure
-	even division:
-	resN = round( Rn / X0 * Fn)
-	where resN = the number of elements in the nth region, others as before.
-
-	And the element length can be calculated as:
-	elLengthN = Rn / resN.
-	
-	The number of elements in the unrefined region is then recovered by subtracting all the
-	other element totals, and the element length calcualted as above.
-	*/
-	void _RefinedRegionsGeometry_CalculateElementLengths(
-		RefinedRegionsGeometry*	self,
-		Index			numElementsNormal[3],
-		double			elementLengthNormal[3] );
-
-	
-#endif /* __Domain_Geometry_RefinedRegionsGeometry_h__ */
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/RefinedRegionsGeometry.meta
--- a/Geometry/src/RefinedRegionsGeometry.meta	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-
-<param name="Name">RefinedRegionsGeometry</param>
-<param name="Author">...</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StGermain/Discretisation/Geometry/src/</param>
-<param name="Project Web">https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome</param>
-<param name="Copyright">StGermain Framework. Copyright (C) 2003-2005 VPAC.</param>
-<param name="License">The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html</param>
-<param name="Parent">Geometry</param>
-<param name="Reference">...</param>
-<param name="Summary">Inserts additional points in a region of interest of a mesh.</param>
-<param name="Description">RefinedRegionsGeometry helps you use a refined geometry in regions of interest.  It does this by adding more points, allowing you to decompose the mesh to a higher degree.</param>
-
-<!--Now the interesting stuff-->
-
-
-<list name="Params">
-	<struct>
-		<param name="Name">dim</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">0</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeI</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">1</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeJ</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">1</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeK</param>
-		<param name="Type">UnsignedInt</param>
-		<param name="Default">1</param>
-		<param name="Description">...</param>
-	</struct>
-	<struct>
-		<param name="Name">sizeShift</param>
-		<param name="Type">Int</param>
-		<param name="Default">0</param>
-		<param name="Description">...</param>
-	</struct>
-
-</list>
-
-<list name="Dependencies">
-<!-- This component calls in another directory so the info above/below may not be complete-->
-
-</list>
-<!-- Add an exmaple XML if possible -->
-<param name="Example">...</param>
-
-</StGermainData>
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/Topology.c
--- a/Geometry/src/Topology.c	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-** $Id: Topology.c 3462 2006-02-19 06:53:24Z WalterLandry $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <mpi.h>
-#include "StGermain/StGermain.h"
-
-
-#include "units.h"
-#include "types.h"
-#include "Topology.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-
-/* Textual name of this class */
-const Type Topology_Type = "Topology";
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-Topology* _Topology_New(
-		SizeT						_sizeOfSelf, 
-		Type						type,
-		Stg_Class_DeleteFunction*				_delete,
-		Stg_Class_PrintFunction*				_print,
-		Stg_Class_CopyFunction*				_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*		neighbourCount,
-		Topology_BuildNeighboursFunction*		buildNeighbours )
-{
-	Topology* self;
-	
-	/* Allocate memory */
-	assert( _sizeOfSelf >= sizeof(Topology) );
-	self = (Topology*)_Stg_Component_New( _sizeOfSelf, type, _delete, _print, _copy, _defaultConstructor, _construct, _build, 
-			_initialise, _execute, _destroy, name, NON_GLOBAL );
-	
-	/* General info */
-	
-	/* Virtual info */
-	self->neighbourCount = neighbourCount;
-	self->buildNeighbours = buildNeighbours;
-	
-	/* Topology info */
-	if( initFlag ){
-		_Topology_Init( self );
-	}
-	
-	return self;
-}
-
-void _Topology_Init(
-		Topology*					self )
-{
-	/* General and Virtual info should already be set */
-	
-	/* Topology info */
-	self->isConstructed = True;
-	self->indexCount = 0;
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _Topology_Delete( void* topology ) {
-	Topology* self = (Topology*)topology;
-	
-	/* Stg_Class_Delete parent */
-	_Stg_Component_Delete( self );
-}
-
-
-void _Topology_Print( void* topology, Stream* stream ) {
-	Topology* self = (Topology*)topology;
-	
-	/* Set the Journal for printing informations */
-	Stream* topologyStream;
-	topologyStream = Journal_Register( InfoStream_Type, "TopologyStream" );
-
-	/* Print parent */
-	_Stg_Component_Print( self, stream );
-	
-	/* General info */
-	Journal_Printf( stream, "Topology (ptr): (%p)\n", self );
-	
-	/* Virtual info */
-	
-	/* Topology info */
-}
-
-
-void* _Topology_Copy( void* topology, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
-	Topology*	self = (Topology*)topology;
-	Topology*	newTopology;
-	
-	newTopology = (Topology*)_Stg_Component_Copy( self, dest, deep, nameExt, ptrMap );
-	
-	/* Virtual methods */
-	newTopology->neighbourCount = self->neighbourCount;
-	newTopology->buildNeighbours = self->buildNeighbours;
-	
-	newTopology->indexCount = self->indexCount;
-	
-	return (void*)newTopology;
-}
-
-
-NeighbourIndex Topology_NeighbourCount( void* topology, Index index ) {
-	Topology* self = (Topology*)topology;
-	assert( topology );
-	return self->neighbourCount( self, index );
-}
-
-void Topology_BuildNeighbours( void* topology, Index index, NeighbourIndex* neighbours ) {
-	Topology* self = (Topology*)topology;
-	assert( topology );
-	self->buildNeighbours( self, index, neighbours );
-}
-
-/*--------------------------------------------------------------------------------------------------------------------------
-** Public Functions
-*/
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Private Functions
-*/
-
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/Topology.h
--- a/Geometry/src/Topology.h	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**
-** Copyright (C), 2003, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street, Melbourne, 3053, Australia.
-**
-** Authors:
-**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
-**	Patrick D. Sunter, Software Engineer, VPAC. (pds at vpac.org)
-**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
-**	Siew-Ching Tan, Software Engineer, VPAC. (siew at vpac.org)
-**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
-**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
-**
-**  This library is free software; you can redistribute it and/or
-**  modify it under the terms of the GNU Lesser General Public
-**  License as published by the Free Software Foundation; either
-**  version 2.1 of the License, or (at your option) any later version.
-**
-**  This library is distributed in the hope that it will be useful,
-**  but WITHOUT ANY WARRANTY; without even the implied warranty of
-**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-**  Lesser General Public License for more details.
-**
-**  You should have received a copy of the GNU Lesser General Public
-**  License along with this library; if not, write to the Free Software
-**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-**
-*/
-/** \file
-** Role:
-**	Abstract class which handles the 3D topology for an element or node. 
-**	This includes responsibility for finding neighbour information
-**	for a given element or node.
-**
-** Assumptions:
-**
-** Comments:
-**
-** $Id: Topology.h 3462 2006-02-19 06:53:24Z WalterLandry $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Domain_Geometry_Topology_h__
-#define __Domain_Geometry_Topology_h__
-	
-	/** Textual name of this class */
-	extern const Type Topology_Type;
-	
-	/* Virtual function types */
-	typedef NeighbourIndex	(Topology_NeighbourCountFunction)   ( void* topology, Index index );
-	typedef void		(Topology_BuildNeighboursFunction)  ( void* topology, Index index, NeighbourIndex* neighbours );
-	
-	/** Topology class contents (see Topology) */
-	#define __Topology \
-		/* General info */ \
-		/** Parent class - Stg_Component */ \
-		__Stg_Component \
-		\
-		/* Virtual info */ \
-		/**	Virtual function ptr for Topology_NeighbourCount() */ \
-		Topology_NeighbourCountFunction*		neighbourCount; \
-		/**	Virtual function ptr for Topology_BuildNeighbours() */ \
-		Topology_BuildNeighboursFunction*		buildNeighbours; \
-		\
-		/* Stg_Class info */ \
-		/** The maximum number of nodes/elements in the mesh */ \
-		Index						indexCount;
-
-	/**	Abstract class which handles the 3D topology for an element or node
-	- see Topology.h for member functions. */
-	struct Topology { __Topology };
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-	
-	/** Creation implementation */
-
-	Topology* _Topology_New( 
-		SizeT							_sizeOfSelf, 
-		Type							type,
-		Stg_Class_DeleteFunction*					_delete,
-		Stg_Class_PrintFunction*					_print, 
-		Stg_Class_CopyFunction*					_copy, 
-		Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
-		Stg_Component_ConstructFunction*			_construct,
-		Stg_Component_BuildFunction*		_build,
-		Stg_Component_InitialiseFunction*		_initialise,
-		Stg_Component_ExecuteFunction*		_execute,
-		Stg_Component_DestroyFunction*		_destroy,
-		Name							name,
-		Bool							initFlag,
-		Topology_NeighbourCountFunction*			neighbourCount,
-		Topology_BuildNeighboursFunction*			buildNeighbours );
-	
-	/** Initialisation implementation functions */
-	void _Topology_Init(
-		Topology*						self );
-	
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-	
-	/** Stg_Class_Delete() implementation */
-	void _Topology_Delete( void* topology );
-	
-	/** Stg_Class_Print() implementation */
-	void _Topology_Print( void* topology, Stream* stream);
-	
-	/* Copy */
-	#define Topology_Copy( self ) \
-		(Topology*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
-	#define Topology_DeepCopy( self ) \
-		(Topology*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
-	
-	void* _Topology_Copy( void* topology, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-
-	/** Returns the number of neigbours for the given element. If the mesh
-	system is 2D or 1D, the count will be decreased appropriately. For regular
-	systems, the IJKTopology::dynamicSizes parameter effects the count. If
-	False, the count will ignore the possibility of neighbours outside the
-	mesh not existing. If True, the count will return the number of 
-	neighbours that actually exist. */
-	NeighbourIndex Topology_NeighbourCount( void* topology, Index index );
-	
-	/** Returns a dynamically allocated array containing the Index
-	number of the neighbours of a given node or element.
-	
-	Assumes that the neighbours input array has been pre-allocated to the 
-	correct size, as returned by Topology_NeighbourCount().
-
-	For regular topologies, the returned contents of the neighbours array
-	depends on the IJKTopology::dynamicSizes parameter. If False, the
-	positions in the array indexing Neigbours that don't exist will be 
-	filled with Topology_Invalid(). If true, neigbours that don't exist
-	will be skipped and only neighbours that exist will be returned.
-	*/
-	void Topology_BuildNeighbours( void* topology, Index index, NeighbourIndex* neighbours );
-	
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Functions/Macros
-	*/
-
-	/** This macro defines what should be used to record an invalid value, eg an
-	element in the neighbour table that doesn't exist (if you're on the outside
-	boundary on the mesh. */
-	#define Topology_Invalid( self ) \
-		(self)->indexCount
-	
-#endif /* __Domain_Geometry_Topology_h__ */
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Geometry/src/Topology.meta
--- a/Geometry/src/Topology.meta	Wed May 14 02:38:13 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-
-<param name="Name">Topology</param>
-<param name="Author">...</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StGermain/Discretisation/Geometry/src/</param>
-<param name="Project Web">https://csd.vpac.org/twiki/bin/view/Stgermain/WebHome</param>
-<param name="Copyright">StGermain Framework. Copyright (C) 2003-2005 VPAC.</param>
-<param name="License">The Gnu Lesser General Public License http://www.gnu.org/licenses/lgpl.html</param>
-<param name="Parent">Stg_Component</param>
-<param name="Reference">...</param>
-<param name="Summary">...</param>
-<param name="Description">...</param>
-
-<!--Now the interesting stuff-->
-
-
-<list name="Params">
-
-</list>
-
-<list name="Dependencies">
-
-</list>
-<!-- Add an exmaple XML if possible -->
-<param name="Example">...</param>
-
-</StGermainData>
diff -r f1a8924dac28 -r 2d2b0e0a0ff1 Utils/src/RegularMeshUtils.c
--- a/Utils/src/RegularMeshUtils.c	Wed May 14 02:38:13 2008 +0000
+++ b/Utils/src/RegularMeshUtils.c	Wed May 14 02:42:34 2008 +0000
@@ -256,18 +256,21 @@ IndexSet* RegularMeshUtils_CreateGlobalI
 	IndexSet*	set;
 	IJK		ijk;
 	unsigned	n_i;
-
-	assert( mesh );
-	assert( Mesh_GetDimSize( mesh ) >= 2 );
-
-	grid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, 
-					      ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
-
-	nNodes = Mesh_GetDomainSize( mesh, MT_VERTEX );
-	set = IndexSet_New( nNodes );
-
-	for( n_i = 0; n_i < nNodes; n_i++ ) {
-		RegularMeshUtils_Node_1DTo3D( mesh, Mesh_DomainToGlobal( mesh, MT_VERTEX, n_i ), ijk );
+        int nDims;
+
+	assert( mesh );
+	assert( Mesh_GetDimSize( mesh ) >= 2 );
+
+	grid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, 
+					      ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
+
+        nDims = Mesh_GetDimSize( mesh );
+	nNodes = Mesh_GetDomainSize( mesh, MT_VERTEX );
+	set = IndexSet_New( nNodes );
+
+	for( n_i = 0; n_i < nNodes; n_i++ ) {
+		RegularMeshUtils_Node_1DTo3D( mesh, Mesh_DomainToGlobal( mesh, MT_VERTEX, n_i ), ijk );
+                if( nDims == 2 ) ijk[2] = 0;
 		if( ijk[1] == grid->sizes[1] - 1 && 
 		    (ijk[0] != grid->sizes[0] - 1 || ijk[2] != grid->sizes[2] - 1 ) && 
 		    (ijk[0] != 0 || ijk[2] != grid->sizes[2] - 1 ) && 
@@ -288,18 +291,21 @@ IndexSet* RegularMeshUtils_CreateGlobalI
 	IndexSet*	set;
 	IJK		ijk;
 	unsigned	n_i;
-
-	assert( mesh );
-	assert( Mesh_GetDimSize( mesh ) >= 2 );
-
-	grid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, 
-					      ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
-
-	nNodes = Mesh_GetDomainSize( mesh, MT_VERTEX );
-	set = IndexSet_New( nNodes );
-
-	for( n_i = 0; n_i < nNodes; n_i++ ) {
-		RegularMeshUtils_Node_1DTo3D( mesh, Mesh_DomainToGlobal( mesh, MT_VERTEX, n_i ), ijk );
+        int nDims;
+
+	assert( mesh );
+	assert( Mesh_GetDimSize( mesh ) >= 2 );
+
+	grid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, 
+					      ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
+
+        nDims = Mesh_GetDimSize( mesh );
+	nNodes = Mesh_GetDomainSize( mesh, MT_VERTEX );
+	set = IndexSet_New( nNodes );
+
+	for( n_i = 0; n_i < nNodes; n_i++ ) {
+		RegularMeshUtils_Node_1DTo3D( mesh, Mesh_DomainToGlobal( mesh, MT_VERTEX, n_i ), ijk );
+                if( nDims == 2 ) ijk[2] = 0;
 		if( ijk[1] == 0 && 
 		    (ijk[0] != grid->sizes[0] - 1 || ijk[2] != grid->sizes[2] - 1 ) && 
 		    (ijk[0] != 0 || ijk[2] != grid->sizes[2] - 1 ) && 
@@ -320,18 +326,21 @@ IndexSet* RegularMeshUtils_CreateGlobalI
 	IndexSet*	set;
 	IJK		ijk;
 	unsigned	n_i;
-
-	assert( mesh );
-	assert( Mesh_GetDimSize( mesh ) >= 2 );
-
-	grid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, 
-					      ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
-
-	nNodes = Mesh_GetDomainSize( mesh, MT_VERTEX );
-	set = IndexSet_New( nNodes );
-
-	for( n_i = 0; n_i < nNodes; n_i++ ) {
-		RegularMeshUtils_Node_1DTo3D( mesh, Mesh_DomainToGlobal( mesh, MT_VERTEX, n_i ), ijk );
+        int nDims;
+
+	assert( mesh );
+	assert( Mesh_GetDimSize( mesh ) >= 2 );
+
+	grid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, 
+					      ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
+
+        nDims = Mesh_GetDimSize( mesh );
+	nNodes = Mesh_GetDomainSize( mesh, MT_VERTEX );
+	set = IndexSet_New( nNodes );
+
+	for( n_i = 0; n_i < nNodes; n_i++ ) {
+		RegularMeshUtils_Node_1DTo3D( mesh, Mesh_DomainToGlobal( mesh, MT_VERTEX, n_i ), ijk );
+                if( nDims == 2 ) ijk[2] = 0;
 		if( ijk[0] == 0 && 
 		    (ijk[1] != grid->sizes[1] - 1 || ijk[2] != grid->sizes[2] - 1 ) && 
 		    (ijk[1] != 0 || ijk[2] != grid->sizes[2] - 1 ) && 
@@ -352,18 +361,21 @@ IndexSet* RegularMeshUtils_CreateGlobalI
 	IndexSet*	set;
 	IJK		ijk;
 	unsigned	n_i;
-
-	assert( mesh );
-	assert( Mesh_GetDimSize( mesh ) >= 2 );
-
-	grid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, 
-					      ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
-
-	nNodes = Mesh_GetDomainSize( mesh, MT_VERTEX );
-	set = IndexSet_New( nNodes );
-
-	for( n_i = 0; n_i < nNodes; n_i++ ) {
-		RegularMeshUtils_Node_1DTo3D( mesh, Mesh_DomainToGlobal( mesh, MT_VERTEX, n_i ), ijk );
+        int nDims;
+
+	assert( mesh );
+	assert( Mesh_GetDimSize( mesh ) >= 2 );
+
+	grid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, 
+					      ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
+
+        nDims = Mesh_GetDimSize( mesh );
+	nNodes = Mesh_GetDomainSize( mesh, MT_VERTEX );
+	set = IndexSet_New( nNodes );
+
+	for( n_i = 0; n_i < nNodes; n_i++ ) {
+		RegularMeshUtils_Node_1DTo3D( mesh, Mesh_DomainToGlobal( mesh, MT_VERTEX, n_i ), ijk );
+                if( nDims == 2 ) ijk[2] = 0;
 		if( ijk[0] == grid->sizes[0] - 1 && 
 		    (ijk[1] != grid->sizes[1] - 1 || ijk[2] != grid->sizes[2] - 1 ) && 
 		    (ijk[1] != 0 || ijk[2] != grid->sizes[2] - 1 ) && 



More information about the CIG-COMMITS mailing list