[cig-commits] r5619 - in long/3D/Gale/trunk/src/StGermain: . Discretisation/Mesh/src

walter at geodynamics.org walter at geodynamics.org
Fri Dec 22 06:06:25 PST 2006


Author: walter
Date: 2006-12-22 06:06:24 -0800 (Fri, 22 Dec 2006)
New Revision: 5619

Modified:
   long/3D/Gale/trunk/src/StGermain/
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Init.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Mesh.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c
Log:
 r3207 at earth (orig r3905):  LukeHodkinson | 2006-12-13 18:45:54 -0800
 * Modifications as a result of reference counting.
 * Fixed problems in SurfaceAdaptor.
 
 



Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
   - 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:3196
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/branches/decomp3d/StGermain:3904
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3899
   + 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:3196
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/branches/decomp3d/StGermain:3905
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3899

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.c	2006-12-22 14:05:46 UTC (rev 5618)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.c	2006-12-22 14:06:24 UTC (rev 5619)
@@ -94,8 +94,6 @@
 
 	self->arrays = List_New();
 	List_SetItemSize( self->arrays, sizeof(Decomp_Sync_Array*) );
-
-	self->nRefs = 1;
 }
 
 
@@ -737,24 +735,7 @@
 	Decomp_Sync_DestructRemotes( self );
 }
 
-void Decomp_Sync_AddRef( void* sync ) {
-	Decomp_Sync*	self = (Decomp_Sync*)sync;
 
-	assert( self );
-
-	self->nRefs++;
-}
-
-void Decomp_Sync_RemoveRef( void* sync ) {
-	Decomp_Sync*	self = (Decomp_Sync*)sync;
-
-	assert( self );
-
-	if( !(--self->nRefs) )
-		Stg_Class_Delete( self );
-}
-
-
 /*----------------------------------------------------------------------------------------------------------------------------------
 ** Private Functions
 */

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.h	2006-12-22 14:05:46 UTC (rev 5618)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.h	2006-12-22 14:06:24 UTC (rev 5619)
@@ -76,9 +76,7 @@
 		unsigned*		nSnks;		\
 		unsigned**		snks;		\
 							\
-		List*			arrays;		\
-							\
-		unsigned		nRefs;
+		List*			arrays;
 
 	struct Decomp_Sync { __Decomp_Sync };
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Init.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Init.c	2006-12-22 14:05:46 UTC (rev 5618)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Init.c	2006-12-22 14:06:24 UTC (rev 5619)
@@ -60,14 +60,19 @@
 	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), 
 				   Mesh_Type, "0", (Stg_Component_DefaultConstructorFunction*)Mesh_New );
 	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), 
+				   SurfaceAdaptor_Type, "0", (Stg_Component_DefaultConstructorFunction*)SurfaceAdaptor_New );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), 
 				   MeshVariable_Type, "0", (Stg_Component_DefaultConstructorFunction*)MeshVariable_New );
         Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), 
                                    SurfaceAdaptor_Type, "0", (Stg_Component_DefaultConstructorFunction*)SurfaceAdaptor_New );
 
 	RegisterParent( Mesh_Algorithms_Type, Stg_Component_Type );
 	RegisterParent( MeshTopology_Type, Stg_Component_Type );
+	RegisterParent( Mesh_Type, Stg_Component_Type );
+	RegisterParent( MeshGenerator_Type, Stg_Component_Type );
 	RegisterParent( CartesianGenerator_Type, MeshGenerator_Type );
-	RegisterParent( Mesh_Type, Stg_Component_Type );
+	RegisterParent( MeshAdaptor_Type, Stg_Component_Type );
+	RegisterParent( SurfaceAdaptor_Type, MeshAdaptor_Type );
 	RegisterParent( MeshVariable_Type, Variable_Type );
         RegisterParent( SurfaceAdaptor_Type, MeshAdaptor_Type );
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Mesh.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Mesh.h	2006-12-22 14:05:46 UTC (rev 5618)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Mesh.h	2006-12-22 14:06:24 UTC (rev 5619)
@@ -59,6 +59,8 @@
 	#include "MeshClass.h"
 	#include "MeshGenerator.h"
 	#include "CartesianGenerator.h"
+	#include "MeshAdaptor.h"
+	#include "SurfaceAdaptor.h"
 	#include "MeshVariable.h"
         #include "MeshAdaptor.h"
         #include "SurfaceAdaptor.h"

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.c	2006-12-22 14:05:46 UTC (rev 5618)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.c	2006-12-22 14:06:24 UTC (rev 5619)
@@ -106,8 +106,8 @@
 	_MeshGenerator_Construct( self, cf, data );
 
 	/* There could be either a generator or a mesh to use as a template.  Prefer the mesh. */
-/* 	self->mesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "sourceMesh", Mesh, False, data ); */
-/* 	if( !self->mesh ) { */
+	self->srcMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "sourceMesh", Mesh, False, data );
+	if( !self->srcMesh ) {
 		/* Read the source generator. */
 		self->generator = Stg_ComponentFactory_ConstructByKey( cf, self->name, "sourceGenerator", 
 								       MeshGenerator, True, data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.c	2006-12-22 14:05:46 UTC (rev 5618)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.c	2006-12-22 14:06:24 UTC (rev 5619)
@@ -283,7 +283,7 @@
 	MeshTopology_ClearElements( self, dim );
 	self->domains[dim] = sync;
 	if( sync )
-		Decomp_Sync_AddRef( sync );
+		Stg_Class_AddRef( sync );
 }
 
 void MeshTopology_Complete( void* topo ) {
@@ -731,7 +731,7 @@
 
 	if( self->domains[dim] ) {
 		MeshTopology_ClearIncidence( self, dim );
-		Decomp_Sync_RemoveRef( self->domains[dim] );
+		Stg_Class_RemoveRef( self->domains[dim] );
 		self->domains[dim] = NULL;
 	}
 
@@ -1640,7 +1640,7 @@
 		unsigned	d_j;
 
 		if( self->domains && self->domains[d_i] ) {
-			Decomp_Sync_RemoveRef( self->domains[d_i] );
+			Stg_Class_RemoveRef( self->domains[d_i] );
 			self->domains[d_i] = NULL;
 		}
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c	2006-12-22 14:05:46 UTC (rev 5618)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c	2006-12-22 14:06:24 UTC (rev 5619)
@@ -199,10 +199,9 @@
 	SurfaceAdaptor*			self = (SurfaceAdaptor*)adaptor;
 	Mesh*				mesh = (Mesh*)_mesh;
 	SurfaceAdaptor_DeformFunc*	deformFunc;
-	Grid**                          current_grid;
-	Grid*				grid;
+	Grid				*grid;
 	unsigned*			inds;
-	unsigned			d_i, n_i;
+	unsigned			n_i;
 
 	/* Build base mesh, which is assumed to be cartesian. */
 	MeshGenerator_Generate( self->generator, mesh );
@@ -227,38 +226,26 @@
 	};
 
 	/* Extract the cartesian information. */
-	current_grid = (Grid**)ExtensionManager_Get( mesh->info, mesh, 
-                                                     ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
+	grid = *(Grid**)ExtensionManager_Get( mesh->info, mesh, 
+					      ExtensionManager_GetHandle( mesh->info, "vertexGrid" ) );
+	inds = AllocArray( unsigned, Mesh_GetDimSize( mesh ) );
 
-	/* Build grid and space for indices. */
-	grid = Grid_New();
-	Grid_SetNDims( grid, mesh->topo->nDims );
-	for( d_i = 0; d_i < mesh->topo->nDims; d_i++ )
-          (*current_grid)->sizes[d_i]++;
-	Grid_SetSizes( grid, (*current_grid)->sizes );
-	for( d_i = 0; d_i < mesh->topo->nDims; d_i++ )
-          (*current_grid)->sizes[d_i]--;
-	inds = Memory_Alloc_Array_Unnamed( unsigned, mesh->topo->nDims );
-
 	/* Loop over domain nodes. */
 	for( n_i = 0; n_i < MeshTopology_GetDomainSize( mesh->topo, MT_VERTEX ); n_i++ ) {
           double scale_factor;
+		double		height;
 
           RegularMeshUtils_Node_1DTo3D( mesh, Mesh_DomainToGlobal(mesh, MT_VERTEX, n_i), inds );      
 
-          /* We have to do all of the nodes, because we might end up
-             with the height of the node going below other, non-moved
-             nodes. */
+		/* Calculate a height percentage. */
+		height = (double)inds[1] / (double)(grid->sizes[1] - 1);
 
-          scale_factor=inds[1]/((*current_grid)->sizes[1] - 1.0);
-
-          /* Deform this node. */
-          Mesh_GetVertex(mesh, n_i)[1] += scale_factor*deformFunc( self, mesh, (*current_grid)->sizes, n_i, inds );
+		/* Deform this node. */
+		mesh->verts[n_i][1] += height * deformFunc( self, mesh, grid->sizes, n_i, inds );
 	}
 
 	/* Free resources. */
 	FreeArray( inds );
-	FreeObject( grid );
 }
 
 



More information about the cig-commits mailing list