[cig-commits] commit: Adding a StandardConditionFunctions_Destroy function, that deletes all conditions functions off the conditions functions register.
Mercurial
hg at geodynamics.org
Tue Mar 23 10:35:37 PDT 2010
changeset: 753:89788c35ec9e
branch: 1.4.x
tag: 1.4.0
user: JulianGiordani
date: Tue Feb 02 16:43:18 2010 +1100
files: plugins/StandardConditionFunctions/StandardConditionFunctions.c plugins/StandardConditionFunctions/StandardConditionFunctions.h
description:
Adding a StandardConditionFunctions_Destroy function, that deletes all conditions functions off the conditions functions register.
Also cleaning some warnings.
diff -r d1abceb1a5b0 -r 89788c35ec9e plugins/StandardConditionFunctions/StandardConditionFunctions.c
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.c Tue Feb 02 14:46:04 2010 +1100
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.c Tue Feb 02 16:43:18 2010 +1100
@@ -178,6 +178,26 @@ void _StgFEM_StandardConditionFunctions_
ConditionFunction_Register_Add( condFunc_Register, condFunc );
}
+void _StgFEM_StandardConditionFunctions_Destroy( void* _self, void* data ) {
+ /* This function will totally clean the condFunc_Register
+ *
+ * This could be trouble some if other code adds or deletes condition functions on this register
+ */
+
+ unsigned *refCount = &(condFunc_Register->count);
+
+ /* first check if there are things still on the condFunc_Register, if so .... */
+ if( *refCount != 0 ) {
+ while( *refCount != 0 ) {
+
+ _ConditionFunction_Delete( condFunc_Register->_cf[ *refCount-1 ] );
+ condFunc_Register->_cf[ *refCount-1 ] = NULL;
+
+ *refCount = *refCount - 1;
+ }
+ }
+ _Codelet_Destroy( _self, data );
+}
void* _StgFEM_StandardConditionFunctions_DefaultNew( Name name ) {
return Codelet_New(
StgFEM_StandardConditionFunctions_Type,
@@ -186,7 +206,7 @@ void* _StgFEM_StandardConditionFunctions
_Codelet_Build,
_Codelet_Initialise,
_Codelet_Execute,
- _Codelet_Destroy,
+ _StgFEM_StandardConditionFunctions_Destroy,
name );
}
@@ -967,7 +987,7 @@ void StgFEM_StandardConditionFunctions_S
/* } */
}
-void StgFEM_StandardConditionFunctions_MovingStepFunction( int nodeInd, int varInd, void* _ctx, void* _result ) {
+void StgFEM_StandardConditionFunctions_MovingStepFunction( Node_LocalIndex nodeInd, Variable_Index varInd, void* _ctx, void* _result ) {
FiniteElementContext* ctx = (FiniteElementContext*)_ctx;
FeVariable* velField;
FeMesh* mesh;
@@ -975,7 +995,8 @@ void StgFEM_StandardConditionFunctions_M
double* result = (double*)_result;
double* coord, offsetLower, offsetUpper, left, right;
double *wallCrd, pos;
- int dim, wallDepth, ijk[3];
+ int dim, wallDepth;
+ unsigned ijk[3];
char* movingWall;
Grid* grid;
@@ -1004,7 +1025,7 @@ void StgFEM_StandardConditionFunctions_M
** from where the offset should be applied. */
grid = *(Grid**)Mesh_GetExtension( mesh, Grid**, "vertexGrid" );
assert( grid );
- memset( ijk, 0, 3 * sizeof(int) );
+ memset( ijk, 0, 3 * sizeof(unsigned) );
if( !strcmp( movingWall, "lower" ) ) {
ijk[dim] = wallDepth;
wallCrd = Mesh_GetVertex( mesh, Grid_Project( grid, ijk ) );
diff -r d1abceb1a5b0 -r 89788c35ec9e plugins/StandardConditionFunctions/StandardConditionFunctions.h
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.h Tue Feb 02 14:46:04 2010 +1100
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.h Tue Feb 02 16:43:18 2010 +1100
@@ -82,7 +82,7 @@ void StgFEM_StandardConditionFunctions_E
void StgFEM_StandardConditionFunctions_EdgeDriveConvectionIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
void StgFEM_StandardConditionFunctions_ThermalEdgeDriveConvectionIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
void StgFEM_StandardConditionFunctions_StepFunction( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_MovingStepFunction( int nodeInd, int varInd, void* _ctx, void* _result );
+void StgFEM_StandardConditionFunctions_MovingStepFunction( Node_LocalIndex nodeInd, Variable_Index varInd, void* _ctx, void* _result );
void StgFEM_StandardConditionFunctions_SpecRidge3D( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StgFEM_StandardConditionFunctions_SpectralBCX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StgFEM_StandardConditionFunctions_SpectralBCY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
More information about the CIG-COMMITS
mailing list