[cig-commits] r5680 - in long/3D/Gale/trunk/src/StgFEM: . Discretisation/src

walter at geodynamics.org walter at geodynamics.org
Fri Jan 5 11:37:39 PST 2007


Author: walter
Date: 2007-01-05 11:37:38 -0800 (Fri, 05 Jan 2007)
New Revision: 5680

Removed:
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.meta
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.meta
Modified:
   long/3D/Gale/trunk/src/StgFEM/
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/C0Generator.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/C0Generator.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Discretisation.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Init.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/types.h
Log:
 r912 at earth (orig r692):  LukeHodkinson | 2007-01-03 22:48:35 -0800
 Swapping some functionality to StGermain.
 



Property changes on: long/3D/Gale/trunk/src/StgFEM
___________________________________________________________________
Name: svk:merge
   - 38867592-cf10-0410-9e16-a142ea72ac34:/cig:880
db209038-57f2-0310-97fa-b160e0ae9d04:/branches/decomp3d:691
db209038-57f2-0310-97fa-b160e0ae9d04:/trunk:669
   + 38867592-cf10-0410-9e16-a142ea72ac34:/cig:880
db209038-57f2-0310-97fa-b160e0ae9d04:/branches/decomp3d:692
db209038-57f2-0310-97fa-b160e0ae9d04:/trunk:669

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/C0Generator.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/C0Generator.c	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/C0Generator.c	2007-01-05 19:37:38 UTC (rev 5680)
@@ -80,6 +80,9 @@
 }
 
 void _C0Generator_Init( C0Generator* self ) {
+	assert( self && Stg_CheckType( self, C0Generator ) );
+
+	self->elMesh = NULL;
 }
 
 
@@ -108,11 +111,15 @@
 
 void _C0Generator_Construct( void* generator, Stg_ComponentFactory* cf, void* data ) {
 	C0Generator*	self = (C0Generator*)generator;
+	Mesh*		elMesh;
 
 	assert( self );
 	assert( cf );
 
 	_MeshGenerator_Construct( self, cf, data );
+
+	elMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "elementMesh", Mesh, True, data );
+	C0Generator_SetElementMesh( self, elMesh );
 }
 
 void _C0Generator_Build( void* generator, void* data ) {
@@ -129,33 +136,29 @@
 void _C0Generator_Destroy( void* generator, void* data ) {
 }
 
+void C0Generator_Generate( void* generator, void* _mesh ) {
+	C0Generator*	self = (C0Generator*)generator;
+	FeMesh*		mesh = (FeMesh*)_mesh;
 
+	assert( self && Stg_CheckType( self, C0Generator ) );
+	assert( mesh && Stg_CheckType( mesh, FeMesh ) );
+
+	C0Generator_BuildTopology( self, mesh );
+	C0Generator_BuildGeometry( self, mesh );
+	C0Generator_BuildElementTypes( self, mesh );
+}
+
+
 /*--------------------------------------------------------------------------------------------------------------------------
 ** Public Functions
 */
 
-void C0Generator_Generate( void* generator, void* _mesh ) {
-	Stream*		errorStream = Journal_Register( ErrorStream_Type, "C0Generator::Generate" );
+void C0Generator_SetElementMesh( void* generator, void* mesh ) {
 	C0Generator*	self = (C0Generator*)generator;
-	FeMesh*		mesh = (FeMesh*)_mesh;
-	Mesh*		elMesh;
 
 	assert( self && Stg_CheckType( self, C0Generator ) );
-	assert( mesh && Stg_CheckType( mesh, FeMesh ) );
 
-	elMesh = FeMesh_GetElementMesh( mesh );
-	Journal_Firewall( (FeMesh*)elMesh != mesh, errorStream, 
-			  "\n" \
-			  "******************************************************\n" \
-			  "* Error: Cannot generate a C0 finite element mesh    *\n" \
-			  "*        without an independant discretisation mesh. *\n" \
-			  "******************************************************\n" \
-			  "\n" );
-	Build( elMesh, NULL, False );
-
-	C0Generator_BuildTopology( self, mesh, elMesh );
-	C0Generator_BuildGeometry( self, mesh, elMesh );
-	C0Generator_BuildElementTypes( self, mesh, elMesh );
+	self->elMesh = mesh;
 }
 
 
@@ -163,7 +166,8 @@
 ** Private Functions
 */
 
-void C0Generator_BuildTopology( C0Generator* self, FeMesh* mesh, Mesh* elMesh ) {
+void C0Generator_BuildTopology( C0Generator* self, FeMesh* mesh ) {
+	Mesh*		elMesh;
 	MeshTopology	*topo, *elTopo;
 	Decomp_Sync*	elSync;
 	unsigned	nDims;
@@ -173,8 +177,8 @@
 
 	assert( self );
 	assert( mesh );
-	assert( elMesh );
 
+	elMesh = self->elMesh;
 	nDims = Mesh_GetDimSize( elMesh );
 	elTopo = Mesh_GetTopology( elMesh );
 	elSync = MeshTopology_GetSync( elTopo, nDims );
@@ -199,7 +203,8 @@
 	MeshTopology_Invert( topo, MT_VERTEX, nDims );
 }
 
-void C0Generator_BuildGeometry( C0Generator* self, FeMesh* mesh, Mesh* elMesh ) {
+void C0Generator_BuildGeometry( C0Generator* self, FeMesh* mesh ) {
+	Mesh*			elMesh;
 	double			*centroid, *vert;
 	unsigned		nDims;
 	unsigned		nDomainEls;
@@ -208,8 +213,8 @@
 
 	assert( self );
 	assert( mesh );
-	assert( elMesh );
 
+	elMesh = self->elMesh;
 	nDims = Mesh_GetDimSize( elMesh );
 	nDomainEls = Mesh_GetDomainSize( elMesh, nDims );
 	mesh->verts = AllocArray2D( double, nDomainEls, nDims );
@@ -223,21 +228,24 @@
 	FreeArray( centroid );
 }
 
-void C0Generator_BuildElementTypes( C0Generator* self, FeMesh* mesh, Mesh* elMesh ) {
-	unsigned	nDomainEls;
-	unsigned	e_i;
+void C0Generator_BuildElementTypes( C0Generator* self, FeMesh* mesh ) {
+	unsigned		nDomainEls;
+	Mesh_Algorithms*	algs;
+	unsigned		e_i;
 
 	assert( self );
 	assert( mesh );
-	assert( elMesh );
 
 	mesh->nElTypes = 1;
 	mesh->elTypes = AllocNamedArray( Mesh_ElementType*, mesh->nElTypes, "Mesh::elTypes" );
-	mesh->elTypes[0] = (Mesh_ElementType*)FeMesh_ElementType_New();
+	mesh->elTypes[0] = (Mesh_ElementType*)Mesh_CentroidType_New();
+	Mesh_CentroidType_SetElementMesh( mesh->elTypes[0], self->elMesh );
 	nDomainEls = Mesh_GetDomainSize( mesh, Mesh_GetDimSize( mesh ) );
 	mesh->elTypeMap = AllocNamedArray( unsigned, nDomainEls, "Mesh::elTypeMap" );
 	for( e_i = 0; e_i < nDomainEls; e_i++ )
 		mesh->elTypeMap[e_i] = 0;
 
-	Mesh_SetAlgorithms( mesh, FeMesh_Algorithms_New( "" ) );
+	algs = Mesh_CentroidAlgorithms_New( "" );
+	Mesh_CentroidAlgorithms_SetElementMesh( algs, self->elMesh );
+	Mesh_SetAlgorithms( mesh, algs );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/C0Generator.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/C0Generator.h	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/C0Generator.h	2007-01-05 19:37:38 UTC (rev 5680)
@@ -53,7 +53,8 @@
 						\
 		/* Virtual info */		\
 						\
-		/* C0Generator info */
+		/* C0Generator info */		\
+		Mesh*		elMesh;
 
 	struct C0Generator { __C0Generator };
 
@@ -89,12 +90,14 @@
 	** Public functions
 	*/
 
+	void C0Generator_SetElementMesh( void* generator, void* mesh );
+
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Private Member functions
 	*/
 
-	void C0Generator_BuildTopology( C0Generator* self, FeMesh* mesh, Mesh* elMesh );
-	void C0Generator_BuildGeometry( C0Generator* self, FeMesh* mesh, Mesh* elMesh );
-	void C0Generator_BuildElementTypes( C0Generator* self, FeMesh* mesh, Mesh* elMesh );
+	void C0Generator_BuildTopology( C0Generator* self, FeMesh* mesh );
+	void C0Generator_BuildGeometry( C0Generator* self, FeMesh* mesh );
+	void C0Generator_BuildElementTypes( C0Generator* self, FeMesh* mesh );
 
 #endif /* __Discretisaton_Mesh_C0Generator_h__ */

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Discretisation.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Discretisation.h	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Discretisation.h	2007-01-05 19:37:38 UTC (rev 5680)
@@ -65,8 +65,6 @@
 
 	#include "Element.h"
 	#include "FeMesh.h"
-	#include "FeMesh_ElementType.h"
-	#include "FeMesh_Algorithms.h"
 	#include "C0Generator.h"
 	#include "LinkedDofInfo.h"
 	#include "FeEquationNumber.h"

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh.c	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh.c	2007-01-05 19:37:38 UTC (rev 5680)
@@ -78,7 +78,6 @@
 }
 
 void _FeMesh_Init( FeMesh* self ) {
-	self->elMesh = (Mesh*)self;
 	self->feElType = NULL;
 	self->feElFamily = NULL;
 }
@@ -111,22 +110,13 @@
 
 void _FeMesh_Construct( void* feMesh, Stg_ComponentFactory* cf, void* data ) {
 	FeMesh*		self = (FeMesh*)feMesh;
-	char*		elMeshName;
-	Mesh*		elMesh;
 	char*		family;
 
 	assert( self );
 
 	_Mesh_Construct( self, cf, data );
 
-	elMeshName = Stg_ComponentFactory_GetString( cf, self->name, "elementMesh", "" );
-	if( !elMeshName || !strcmp( elMeshName, "" ) )
-		elMesh = NULL;
-	else
-		elMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "elementMesh", Mesh, True, data );
 	family = Stg_ComponentFactory_GetString( cf, self->name, "elementType", "linear" );
-
-	FeMesh_SetElementMesh( self, elMesh );
 	FeMesh_SetElementFamily( self, family );
 }
 
@@ -138,9 +128,6 @@
 
 	_Mesh_Build( self, data );
 
-	if( self->elMesh && self->elMesh != (Mesh*)self )
-		Build( self->elMesh, data, False );
-
 	if( !strcmp( self->feElFamily, "linear" ) ) {
 		unsigned	nDims;
 
@@ -169,8 +156,6 @@
 
 	_Mesh_Initialise( self, data );
 
-	if( self->elMesh && self->elMesh != (Mesh*)self )
-		Stg_Component_Initialise( self->elMesh, data, False );
 	if( self->feElType )
 		Stg_Component_Initialise( self->feElType, data, False );
 }
@@ -186,19 +171,6 @@
 ** Public Functions
 */
 
-void FeMesh_SetElementMesh( void* feMesh, Mesh* elementMesh ) {
-	FeMesh*	self = (FeMesh*)feMesh;
-
-	assert( self );
-
-	if( self->elMesh != (Mesh*)self )
-		Mesh_Destruct( (Mesh*)self );
-	FeMesh_Destruct( self );
-
-	if( elementMesh )
-		self->elMesh = elementMesh;
-}
-
 void FeMesh_SetElementType( void* feMesh, ElementType* elType ) {
 	FeMesh*	self = (FeMesh*)feMesh;
 
@@ -216,14 +188,6 @@
 	self->feElFamily = (char*)family;
 }
 
-Mesh* FeMesh_GetElementMesh( void* feMesh ) {
-	FeMesh*	self = (FeMesh*)feMesh;
-
-	assert( self );
-
-	return self->elMesh;
-}
-
 ElementType* FeMesh_GetElementType( void* feMesh, unsigned element ) {
 	FeMesh*	self = (FeMesh*)feMesh;
 
@@ -388,7 +352,6 @@
 */
 
 void FeMesh_Destruct( FeMesh* self ) {
-	self->elMesh = (Mesh*)self;
 	self->feElFamily = NULL;
 	KillObject( self->feElType );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh.h	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh.h	2007-01-05 19:37:38 UTC (rev 5680)
@@ -54,7 +54,6 @@
 		/* Virtual info */			\
 							\
 		/* FeMesh info */			\
-		Mesh*			elMesh;		\
 		char*			feElFamily;	\
 		ElementType*		feElType;
 
@@ -90,11 +89,9 @@
 	** Public functions
 	*/
 
-	void FeMesh_SetElementMesh( void* feMesh, Mesh* mesh );
 	void FeMesh_SetElementFamily( void* feMesh, const char* family );
 	void FeMesh_SetElementType( void* feMesh, ElementType* elType );
 
-	Mesh* FeMesh_GetElementMesh( void* feMesh );
 	ElementType* FeMesh_GetElementType( void* feMesh, unsigned element );
 
 	unsigned FeMesh_GetNodeLocalSize( void* feMesh );

Deleted: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.c	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.c	2007-01-05 19:37:38 UTC (rev 5680)
@@ -1,241 +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: FeMesh_Algorithms.c 3584 2006-05-16 11:11:07Z PatrickSunter $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <mpi.h>
-
-#include "StGermain/StGermain.h"
-#include "Discretisation.h"
-
-
-/* Textual name of this class */
-const Type FeMesh_Algorithms_Type = "FeMesh_Algorithms";
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-FeMesh_Algorithms* FeMesh_Algorithms_New( Name name ) {
-	return _FeMesh_Algorithms_New( sizeof(FeMesh_Algorithms), 
-				       FeMesh_Algorithms_Type, 
-				       _FeMesh_Algorithms_Delete, 
-				       _FeMesh_Algorithms_Print, 
-				       NULL, 
-				       (void* (*)(Name))_FeMesh_Algorithms_New, 
-				       _FeMesh_Algorithms_Construct, 
-				       _FeMesh_Algorithms_Build, 
-				       _FeMesh_Algorithms_Initialise, 
-				       _FeMesh_Algorithms_Execute, 
-				       _FeMesh_Algorithms_Destroy, 
-				       name, 
-				       NON_GLOBAL, 
-				       _Mesh_Algorithms_SetMesh, 
-				       _Mesh_Algorithms_Update, 
-				       FeMesh_Algorithms_NearestVertex, 
-				       FeMesh_Algorithms_Search, 
-				       FeMesh_Algorithms_SearchElements, 
-				       FeMesh_Algorithms_GetMinimumSeparation, 
-				       FeMesh_Algorithms_GetLocalCoordRange, 
-				       FeMesh_Algorithms_GetDomainCoordRange, 
-				       FeMesh_Algorithms_GetGlobalCoordRange );
-}
-
-FeMesh_Algorithms* _FeMesh_Algorithms_New( MESH_ALGORITHMS_DEFARGS ) {
-	FeMesh_Algorithms*	self;
-
-	/* Allocate memory */
-	assert( sizeOfSelf >= sizeof(FeMesh_Algorithms) );
-	self = (FeMesh_Algorithms*)_Mesh_Algorithms_New( MESH_ALGORITHMS_PASSARGS );
-
-	/* Virtual info */
-
-	/* FeMesh_Algorithms info */
-	_FeMesh_Algorithms_Init( self );
-
-	return self;
-}
-
-void _FeMesh_Algorithms_Init( FeMesh_Algorithms* self ) {
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _FeMesh_Algorithms_Delete( void* algorithms ) {
-	FeMesh_Algorithms*	self = (FeMesh_Algorithms*)algorithms;
-
-	/* Delete the parent. */
-	_Mesh_Algorithms_Delete( self );
-}
-
-void _FeMesh_Algorithms_Print( void* algorithms, Stream* stream ) {
-	FeMesh_Algorithms*	self = (FeMesh_Algorithms*)algorithms;
-	
-	/* Set the Journal for printing informations */
-	Stream* algorithmsStream;
-	algorithmsStream = Journal_Register( InfoStream_Type, "FeMesh_AlgorithmsStream" );
-
-	/* Print parent */
-	Journal_Printf( stream, "FeMesh_Algorithms (ptr): (%p)\n", self );
-	_Mesh_Algorithms_Print( self, stream );
-}
-
-void _FeMesh_Algorithms_Construct( void* algorithms, Stg_ComponentFactory* cf, void* data ) {
-}
-
-void _FeMesh_Algorithms_Build( void* algorithms, void* data ) {
-}
-
-void _FeMesh_Algorithms_Initialise( void* algorithms, void* data ) {
-}
-
-void _FeMesh_Algorithms_Execute( void* algorithms, void* data ) {
-}
-
-void _FeMesh_Algorithms_Destroy( void* algorithms, void* data ) {
-}
-
-unsigned FeMesh_Algorithms_NearestVertex( void* algorithms, double* point ) {
-	FeMesh_Algorithms*	self = (FeMesh_Algorithms*)algorithms;
-	FeMesh*			mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_Algorithms ) );
-	assert( self->mesh && Stg_CheckType( self->mesh, FeMesh ) );
-
-	mesh = (FeMesh*)self->mesh;
-	if( mesh->elMesh != (Mesh*)self )
-		return Mesh_Algorithms_NearestVertex( mesh->elMesh->algorithms, point );
-	else
-		return _Mesh_Algorithms_NearestVertex( self, point );
-}
-
-Bool FeMesh_Algorithms_Search( void* algorithms, double* point, 
-			       MeshTopology_Dim* dim, unsigned* ind )
-{
-	FeMesh_Algorithms*	self = (FeMesh_Algorithms*)algorithms;
-	FeMesh*			mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_Algorithms ) );
-	assert( self->mesh && Stg_CheckType( self->mesh, FeMesh ) );
-
-	mesh = (FeMesh*)self->mesh;
-	if( mesh->elMesh != (Mesh*)self )
-		return Mesh_Algorithms_Search( mesh->elMesh->algorithms, point, dim, ind );
-	else
-		return _Mesh_Algorithms_Search( self, point, dim, ind );
-}
-
-Bool FeMesh_Algorithms_SearchElements( void* algorithms, double* point, 
-				       unsigned* elInd )
-{
-	FeMesh_Algorithms*	self = (FeMesh_Algorithms*)algorithms;
-	FeMesh*			mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_Algorithms ) );
-	assert( self->mesh && Stg_CheckType( self->mesh, FeMesh ) );
-
-	mesh = (FeMesh*)self->mesh;
-	if( mesh->elMesh != (Mesh*)self )
-		return Mesh_Algorithms_SearchElements( mesh->elMesh->algorithms, point, elInd );
-	else
-		return _Mesh_Algorithms_SearchElements( self, point, elInd );
-}
-
-double FeMesh_Algorithms_GetMinimumSeparation( void* algorithms, double* perDim ) {
-	FeMesh_Algorithms*	self = (FeMesh_Algorithms*)algorithms;
-	FeMesh*			mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_Algorithms ) );
-	assert( self->mesh && Stg_CheckType( self->mesh, FeMesh ) );
-
-	mesh = (FeMesh*)self->mesh;
-	if( mesh->elMesh != (Mesh*)self )
-		return Mesh_Algorithms_GetMinimumSeparation( mesh->elMesh->algorithms, perDim );
-	else
-		return _Mesh_Algorithms_GetMinimumSeparation( self, perDim );
-}
-
-void FeMesh_Algorithms_GetLocalCoordRange( void* algorithms, double* min, double* max ) {
-	FeMesh_Algorithms*	self = (FeMesh_Algorithms*)algorithms;
-	FeMesh*			mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_Algorithms ) );
-	assert( self->mesh && Stg_CheckType( self->mesh, FeMesh ) );
-
-	mesh = (FeMesh*)self->mesh;
-	if( mesh->elMesh != (Mesh*)self )
-		Mesh_Algorithms_GetLocalCoordRange( mesh->elMesh->algorithms, min, max );
-	else
-		_Mesh_Algorithms_GetLocalCoordRange( self, min, max );
-}
-
-void FeMesh_Algorithms_GetDomainCoordRange( void* algorithms, double* min, double* max ) {
-	FeMesh_Algorithms*	self = (FeMesh_Algorithms*)algorithms;
-	FeMesh*			mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_Algorithms ) );
-	assert( self->mesh && Stg_CheckType( self->mesh, FeMesh ) );
-
-	mesh = (FeMesh*)self->mesh;
-	if( mesh->elMesh != (Mesh*)self )
-		Mesh_Algorithms_GetDomainCoordRange( mesh->elMesh->algorithms, min, max );
-	else
-		_Mesh_Algorithms_GetDomainCoordRange( self, min, max );
-}
-
-void FeMesh_Algorithms_GetGlobalCoordRange( void* algorithms, double* min, double* max ) {
-	FeMesh_Algorithms*	self = (FeMesh_Algorithms*)algorithms;
-	FeMesh*			mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_Algorithms ) );
-	assert( self->mesh && Stg_CheckType( self->mesh, FeMesh ) );
-
-	mesh = (FeMesh*)self->mesh;
-	if( mesh->elMesh != (Mesh*)self )
-		Mesh_Algorithms_GetGlobalCoordRange( mesh->elMesh->algorithms, min, max );
-	else
-		_Mesh_Algorithms_GetGlobalCoordRange( self, min, max );
-}
-
-
-/*--------------------------------------------------------------------------------------------------------------------------
-** Public Functions
-*/
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Private Functions
-*/

Deleted: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.h	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.h	2007-01-05 19:37:38 UTC (rev 5680)
@@ -1,104 +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:
-**
-** Invariants:
-**
-** Comments:
-**
-** $Id: FeMesh_Algorithms.h 3584 2006-05-16 11:11:07Z PatrickSunter $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Discretisaton_Mesh_FeMesh_Algorithms_h__
-#define __Discretisaton_Mesh_FeMesh_Algorithms_h__
-
-	/** Textual name of this class */
-	extern const Type FeMesh_Algorithms_Type;
-
-	/** Virtual function types */
-
-	/** Class contents */
-	#define __FeMesh_Algorithms		\
-		/* General info */		\
-		__Mesh_Algorithms		\
-						\
-		/* Virtual info */		\
-						\
-		/* FeMesh_Algorithms info */
-
-	struct FeMesh_Algorithms { __FeMesh_Algorithms };
-
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-
-	#define FEMESH_ALGORITHMS_DEFARGS	\
-		MESH_ALGORITHMS_DEFARGS
-
-	#define FEMESH_ALGORITHMS_PASSARGS	\
-		MESH_ALGORITHMS_PASSARGS
-
-	FeMesh_Algorithms* FeMesh_Algorithms_New( Name name );
-	FeMesh_Algorithms* _FeMesh_Algorithms_New( FEMESH_ALGORITHMS_DEFARGS );
-	void _FeMesh_Algorithms_Init( FeMesh_Algorithms* self );
-
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-
-	void _FeMesh_Algorithms_Delete( void* algorithms );
-	void _FeMesh_Algorithms_Print( void* algorithms, Stream* stream );
-	void _FeMesh_Algorithms_Construct( void* algorithms, Stg_ComponentFactory* cf, void* data );
-	void _FeMesh_Algorithms_Build( void* algorithms, void* data );
-	void _FeMesh_Algorithms_Initialise( void* algorithms, void* data );
-	void _FeMesh_Algorithms_Execute( void* algorithms, void* data );
-	void _FeMesh_Algorithms_Destroy( void* algorithms, void* data );
-
-	unsigned FeMesh_Algorithms_NearestVertex( void* algorithms, double* point );
-	Bool FeMesh_Algorithms_Search( void* algorithms, double* point, 
-				       MeshTopology_Dim* dim, unsigned* ind );
-	Bool FeMesh_Algorithms_SearchElements( void* algorithms, double* point, 
-					       unsigned* elInd );
-	double FeMesh_Algorithms_GetMinimumSeparation( void* algorithms, double* perDim );
-	void FeMesh_Algorithms_GetLocalCoordRange( void* algorithms, double* min, double* max );
-	void FeMesh_Algorithms_GetDomainCoordRange( void* algorithms, double* min, double* max );
-	void FeMesh_Algorithms_GetGlobalCoordRange( void* algorithms, double* min, double* max );
-
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Public functions
-	*/
-
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-
-#endif /* __Discretisaton_Mesh_FeMesh_Algorithms_h__ */

Deleted: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.meta
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.meta	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_Algorithms.meta	2007-01-05 19:37:38 UTC (rev 5680)
@@ -1,15 +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">FeMesh_Algorithms</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StgFEM/Discretisation/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="Description">...</param>
-
-</StGermainData>

Deleted: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.c	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.c	2007-01-05 19:37:38 UTC (rev 5680)
@@ -1,146 +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: FeMesh_ElementType.c 3584 2006-05-16 11:11:07Z PatrickSunter $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <mpi.h>
-
-#include "StGermain/StGermain.h"
-#include "Discretisation.h"
-
-
-/* Textual name of this class */
-const Type FeMesh_ElementType_Type = "FeMesh_ElementType";
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Constructors
-*/
-
-FeMesh_ElementType* FeMesh_ElementType_New( Name name ) {
-	return _FeMesh_ElementType_New( sizeof(FeMesh_ElementType), 
-					FeMesh_ElementType_Type, 
-					_FeMesh_ElementType_Delete, 
-					_FeMesh_ElementType_Print, 
-					NULL, 
-					FeMesh_ElementType_ElementHasPoint, 
-					FeMesh_ElementType_GetMinimumSeparation, 
-					FeMesh_ElementType_GetCentroid );
-}
-
-FeMesh_ElementType* _FeMesh_ElementType_New( MESH_ELEMENTTYPE_DEFARGS ) {
-	FeMesh_ElementType*	self;
-
-	/* Allocate memory */
-	assert( sizeOfSelf >= sizeof(Mesh_ElementType) );
-	self = (FeMesh_ElementType*)_Mesh_ElementType_New( MESH_ELEMENTTYPE_PASSARGS );
-
-	/* Virtual info */
-
-	/* FeMesh_ElementType info */
-	_FeMesh_ElementType_Init( self );
-
-	return self;
-}
-
-void _FeMesh_ElementType_Init( FeMesh_ElementType* self ) {
-}
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Virtual functions
-*/
-
-void _FeMesh_ElementType_Delete( void* elementType ) {
-	FeMesh_ElementType*	self = (FeMesh_ElementType*)elementType;
-
-	/* Delete the parent. */
-	_Mesh_ElementType_Delete( self );
-}
-
-void _FeMesh_ElementType_Print( void* elementType, Stream* stream ) {
-	FeMesh_ElementType*	self = (FeMesh_ElementType*)elementType;
-	Stream*			elementTypeStream;
-
-	elementTypeStream = Journal_Register( InfoStream_Type, "FeMesh_ElementTypeStream" );
-
-	/* Print parent */
-	Journal_Printf( stream, "FeMesh_ElementType (ptr): (%p)\n", self );
-	_Mesh_ElementType_Print( self, stream );
-}
-
-Bool FeMesh_ElementType_ElementHasPoint( void* elementType, void* _mesh, unsigned elInd, double* point, 
-					 MeshTopology_Dim* dim, unsigned* ind )
-{
-	FeMesh_ElementType*	self = (FeMesh_ElementType*)elementType;
-	FeMesh*			mesh = (FeMesh*)_mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_ElementType ) );
-	assert( mesh && Stg_CheckType( mesh, FeMesh ) );
-	assert( mesh != (FeMesh*)mesh->elMesh );
-
-	return Mesh_ElementType_ElementHasPoint( mesh->elMesh->algorithms, mesh->elMesh, elInd, point, 
-						 dim, ind );
-}
-
-double FeMesh_ElementType_GetMinimumSeparation( void* elementType, void* _mesh, unsigned elInd, double* perDim ) {
-	FeMesh_ElementType*	self = (FeMesh_ElementType*)elementType;
-	FeMesh*			mesh = (FeMesh*)_mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_ElementType ) );
-	assert( mesh && Stg_CheckType( mesh, FeMesh ) );
-	assert( mesh != (FeMesh*)mesh->elMesh );
-
-	return Mesh_ElementType_GetMinimumSeparation( mesh->elMesh->algorithms, mesh->elMesh, elInd, perDim );
-}
-
-void FeMesh_ElementType_GetCentroid( void* elementType, void* _mesh, unsigned element, double* centroid ) {
-	FeMesh_ElementType*	self = (FeMesh_ElementType*)elementType;
-	FeMesh*			mesh = (FeMesh*)_mesh;
-
-	assert( self && Stg_CheckType( self, FeMesh_ElementType ) );
-	assert( mesh && Stg_CheckType( mesh, FeMesh ) );
-
-	if( mesh->elMesh != (Mesh*)self )
-		Mesh_ElementType_GetCentroid( mesh->elMesh->algorithms, mesh->elMesh, element, centroid );
-	else
-		_Mesh_ElementType_GetCentroid( self, mesh, element, centroid );
-}
-
-
-/*--------------------------------------------------------------------------------------------------------------------------
-** Public Functions
-*/
-
-
-/*----------------------------------------------------------------------------------------------------------------------------------
-** Private Functions
-*/

Deleted: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.h	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.h	2007-01-05 19:37:38 UTC (rev 5680)
@@ -1,94 +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:
-**
-** Invariants:
-**
-** Comments:
-**
-** $Id: FeMesh_ElementType.h 3584 2006-05-16 11:11:07Z PatrickSunter $
-**
-**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-#ifndef __Discretisaton_Mesh_FeMesh_ElementType_h__
-#define __Discretisaton_Mesh_FeMesh_ElementType_h__
-
-	/** Textual name of this class */
-	extern const Type FeMesh_ElementType_Type;
-
-	/** Virtual function types */
-
-	/** Class contents */
-	#define __FeMesh_ElementType		\
-		/* General info */		\
-		__Mesh_ElementType		\
-						\
-		/* Virtual info */		\
-						\
-		/* FeMesh_ElementType info */
-
-	struct FeMesh_ElementType { __FeMesh_ElementType };
-
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Constructors
-	*/
-
-	#define FEMESH_ELEMENTTYPE_DEFARGS	\
-		MESH_ELEMENTTYPE_DEFARGS
-
-	#define FEMESH_ELEMENTTYPE_PASSARGS	\
-		MESH_ELEMENTTYPE_PASSARGS
-
-	FeMesh_ElementType* FeMesh_ElementType_New();
-	FeMesh_ElementType* _FeMesh_ElementType_New( FEMESH_ELEMENTTYPE_DEFARGS );
-	void _FeMesh_ElementType_Init( FeMesh_ElementType* self );
-
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Virtual functions
-	*/
-
-	void _FeMesh_ElementType_Delete( void* elementType );
-	void _FeMesh_ElementType_Print( void* elementType, Stream* stream );
-
-	Bool FeMesh_ElementType_ElementHasPoint( void* elementType, void* mesh, unsigned elInd, double* point, 
-						 MeshTopology_Dim* dim, unsigned* ind );
-	double FeMesh_ElementType_GetMinimumSeparation( void* elementType, void* mesh, unsigned elInd, double* perDim );
-	void FeMesh_ElementType_GetCentroid( void* elementType, void* mesh, unsigned element, double* centroid );
-
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Public functions
-	*/
-
-	/*--------------------------------------------------------------------------------------------------------------------------
-	** Private Member functions
-	*/
-
-#endif /* __Discretisaton_Mesh_FeMesh_ElementType_h__ */

Deleted: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.meta
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.meta	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeMesh_ElementType.meta	2007-01-05 19:37:38 UTC (rev 5680)
@@ -1,15 +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">FeMesh_ElementType</param>
-<param name="Organisation">VPAC</param>
-<param name="Project">StGermain</param>
-<param name="Location">./StGermain/Discretisation/Utils/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="Description">...</param>
-
-</StGermainData>

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.c	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.c	2007-01-05 19:37:38 UTC (rev 5680)
@@ -1495,7 +1495,10 @@
 	integral = 0.0;
 
 	/* Use feVariable's mesh as geometry mesh if one isn't passed in */
-	mesh = (feMesh->elMesh ? (FeMesh*)feMesh->elMesh : feMesh);
+	if( Stg_Class_IsInstance( feMesh->algorithms, Mesh_CentroidAlgorithms_Type ) )
+		mesh = ((Mesh_CentroidAlgorithms*)feMesh->algorithms)->elMesh;
+	else
+		mesh = feMesh;
 	elementType = FeMesh_GetElementType( mesh, dElement_I );
 
 	/* Determine number of particles in element */

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Init.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Init.c	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Init.c	2007-01-05 19:37:38 UTC (rev 5680)
@@ -77,7 +77,6 @@
 	Stg_ComponentRegister_Add( componentRegister, OperatorFeVariable_Type, "0", OperatorFeVariable_DefaultNew );
 	Stg_ComponentRegister_Add( componentRegister, ShapeFeVariable_Type,    "0", ShapeFeVariable_DefaultNew );
 	Stg_ComponentRegister_Add( componentRegister, FeSwarmVariable_Type,    "0", _FeSwarmVariable_DefaultNew );
-	Stg_ComponentRegister_Add( componentRegister, FeMesh_Algorithms_Type, "0", FeMesh_Algorithms_New );
 	Stg_ComponentRegister_Add( componentRegister, FeMesh_Type, "0", FeMesh_New );
 	Stg_ComponentRegister_Add( componentRegister, C0Generator_Type, "0", C0Generator_New );
 
@@ -91,7 +90,6 @@
 
 	RegisterParent( FeEquationNumber_Type,             Stg_Component_Type );
 	RegisterParent( LinkedDofInfo_Type,                Stg_Component_Type );
-	RegisterParent( FeMesh_Algorithms_Type, Mesh_Algorithms_Type );
 	RegisterParent( FeMesh_Type, Mesh_Type );
 	RegisterParent( C0Generator_Type, MeshGenerator_Type );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/types.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/types.h	2007-01-05 19:37:36 UTC (rev 5679)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/types.h	2007-01-05 19:37:38 UTC (rev 5680)
@@ -61,7 +61,6 @@
 	typedef struct FiniteElement_Element     FiniteElement_Element;
 	typedef struct FeMesh			FeMesh;
 	typedef struct FeMesh_ElementType	FeMesh_ElementType;
-	typedef struct FeMesh_Algorithms	FeMesh_Algorithms;
 	typedef struct C0Generator		C0Generator;
 	typedef struct LinkedDofInfo             LinkedDofInfo;
 	typedef struct FeEquationNumber          FeEquationNumber;



More information about the cig-commits mailing list