[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