[cig-commits] r16491 - long/3D/SNAC/trunk/Snac/plugins/temperature

echoi at geodynamics.org echoi at geodynamics.org
Fri Apr 2 09:52:07 PDT 2010


Author: echoi
Date: 2010-04-02 09:52:07 -0700 (Fri, 02 Apr 2010)
New Revision: 16491

Modified:
   long/3D/SNAC/trunk/Snac/plugins/temperature/Heat.c
   long/3D/SNAC/trunk/Snac/plugins/temperature/HeatFlux.c
   long/3D/SNAC/trunk/Snac/plugins/temperature/Node.h
   long/3D/SNAC/trunk/Snac/plugins/temperature/Register.c
   long/3D/SNAC/trunk/Snac/plugins/temperature/Register.h
   long/3D/SNAC/trunk/Snac/plugins/temperature/Remesh.c
   long/3D/SNAC/trunk/Snac/plugins/temperature/VariableConditions.c
Log:

Replaced effectiveDensity() with UpdateAverageTemp_LoopElements(), which are used to update tetrahedron's average temperature.



Modified: long/3D/SNAC/trunk/Snac/plugins/temperature/Heat.c
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/temperature/Heat.c	2010-04-02 16:49:00 UTC (rev 16490)
+++ long/3D/SNAC/trunk/Snac/plugins/temperature/Heat.c	2010-04-02 16:52:07 UTC (rev 16491)
@@ -49,14 +49,15 @@
 	Node_LocalIndex			node_lI;
 
 	Journal_Printf( context->debug, "In %s(): updating temperature of all nodes.\n", __func__ );
+	Journal_Printf( context->snacInfo, "In %s(): updating temperature of all nodes.\n", __func__ );
 
 	for( node_lI = 0; node_lI < context->mesh->nodeLocalCount; node_lI++ )  {
 		Snac_Heat( context, node_lI, 0 );
 	}
-	/* update density using updated temperature */
-	effectiveDensity( context );
-	Journal_Printf( context->snacInfo, "In %s(): updating temperature of all nodes.\n", __func__ );
 
+	/* update tetra average temp to recompute density later in Snac_Stress(). */
+	UpdateAverageTemp_LoopElements( context );
+
 	SnacTemperature_BoundaryConditions( context );
 }
 
@@ -135,6 +136,7 @@
 
 	nodeExt->temperature0 = nodeExt->temperature;
 	nodeExt->temperature += (energy + source) * -1.0f * context->dt / lumpVolume;
+
 }
 
 

Modified: long/3D/SNAC/trunk/Snac/plugins/temperature/HeatFlux.c
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/temperature/HeatFlux.c	2010-04-02 16:49:00 UTC (rev 16490)
+++ long/3D/SNAC/trunk/Snac/plugins/temperature/HeatFlux.c	2010-04-02 16:52:07 UTC (rev 16491)
@@ -60,10 +60,6 @@
 
 void Snac_HeatFlux( void* _context, Element_LocalIndex element_lI ) {
 	Snac_Context*					context = (Snac_Context*)_context;
-	SnacTemperature_Context*		contextExt = ExtensionManager_Get(
-			context->extensionMgr,
-			context,
-			SnacTemperature_ContextHandle );
 	Tetrahedra_Index				tetra_I;
 	Snac_Element*					element = Snac_Element_At( context, element_lI );
 	SnacTemperature_Element*		elementExt = ExtensionManager_Get(

Modified: long/3D/SNAC/trunk/Snac/plugins/temperature/Node.h
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/temperature/Node.h	2010-04-02 16:49:00 UTC (rev 16490)
+++ long/3D/SNAC/trunk/Snac/plugins/temperature/Node.h	2010-04-02 16:52:07 UTC (rev 16491)
@@ -42,7 +42,7 @@
 	
 	/* Node Information */
 	struct _SnacTemperature_Node {
-		double			temperature; \
+		double			temperature;
 		double			temperature0;
 	};
 	

Modified: long/3D/SNAC/trunk/Snac/plugins/temperature/Register.c
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/temperature/Register.c	2010-04-02 16:49:00 UTC (rev 16490)
+++ long/3D/SNAC/trunk/Snac/plugins/temperature/Register.c	2010-04-02 16:52:07 UTC (rev 16491)
@@ -52,9 +52,9 @@
 /* Textual name of this class */
 const Type SnacTemperature_Type = "SnacTemperature";
 
-ExtensionInfo_Index SnacTemperature_ContextHandle = -1;
-ExtensionInfo_Index SnacTemperature_ElementHandle = -1;
-ExtensionInfo_Index SnacTemperature_NodeHandle = -1;
+ExtensionInfo_Index SnacTemperature_ContextHandle;
+ExtensionInfo_Index SnacTemperature_ElementHandle;
+ExtensionInfo_Index SnacTemperature_NodeHandle;
 
 
 Index _SnacTemperature_Register( PluginsManager* pluginsMgr ) {
@@ -93,18 +93,9 @@
 	#endif
 
 	/* Add extensions to nodes, elements and the context */
-	SnacTemperature_ContextHandle = ExtensionManager_Add(
-		context->extensionMgr,
-		SnacTemperature_Type,
-		sizeof(SnacTemperature_Context) );
-	SnacTemperature_ElementHandle = ExtensionManager_Add(
-		context->mesh->elementExtensionMgr,
-		SnacTemperature_Type,
-		sizeof(SnacTemperature_Element) );
-	SnacTemperature_NodeHandle = ExtensionManager_Add(
-		context->mesh->nodeExtensionMgr,
-		SnacTemperature_Type,
-		sizeof(SnacTemperature_Node) );
+	SnacTemperature_NodeHandle = ExtensionManager_Add( context->mesh->nodeExtensionMgr, SnacTemperature_Type, sizeof(SnacTemperature_Node) );
+	SnacTemperature_ElementHandle = ExtensionManager_Add( context->mesh->elementExtensionMgr, SnacTemperature_Type, sizeof(SnacTemperature_Element) );
+	SnacTemperature_ContextHandle = ExtensionManager_Add( context->extensionMgr, SnacTemperature_Type, sizeof(SnacTemperature_Context) );
 
 	#ifdef DEBUG
 		printf( "\tcontext extension handle: %u\n", SnacTemperature_ContextHandle );

Modified: long/3D/SNAC/trunk/Snac/plugins/temperature/Register.h
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/temperature/Register.h	2010-04-02 16:49:00 UTC (rev 16490)
+++ long/3D/SNAC/trunk/Snac/plugins/temperature/Register.h	2010-04-02 16:52:07 UTC (rev 16491)
@@ -45,7 +45,11 @@
 	
 	/* Handles to extensions for quicker access */
 	extern ExtensionInfo_Index SnacTemperature_ContextHandle;
+
 	extern ExtensionInfo_Index SnacTemperature_ElementHandle;
+
+	extern ExtensionInfo_Index SnacViscoPlastic_MeshHandle;
+
 	extern ExtensionInfo_Index SnacTemperature_NodeHandle;
 	
 	Index _SnacTemperature_Register( PluginsManager* pluginsMgr );

Modified: long/3D/SNAC/trunk/Snac/plugins/temperature/Remesh.c
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/temperature/Remesh.c	2010-04-02 16:49:00 UTC (rev 16490)
+++ long/3D/SNAC/trunk/Snac/plugins/temperature/Remesh.c	2010-04-02 16:52:07 UTC (rev 16491)
@@ -55,8 +55,6 @@
 	SnacTemperature_Node*		dstNodeExt = ExtensionManager_Get( mesh->nodeExtensionMgr, 
 									dstNode, 
 									SnacTemperature_NodeHandle );
-	Snac_Node*			srcNode;
-	SnacTemperature_Node*		srcNodeExt;
 	unsigned			tetNode_i;
 	
 #ifdef DEBUG
@@ -88,14 +86,14 @@
 	dstNodeExt->temperature = 0;
 
 	for( tetNode_i = 0; tetNode_i < 4; tetNode_i++ ) {
-		srcNode = Snac_Node_At( context, eltNodes[tetNodeInds[tetNode_i]] );
-		srcNodeExt = ExtensionManager_Get( mesh->nodeExtensionMgr, 
-										   srcNode, 
-										   SnacTemperature_NodeHandle );
+		Snac_Node*					srcNode = Snac_Node_At( context, eltNodes[tetNodeInds[tetNode_i]] );;
+		SnacTemperature_Node*		srcNodeExt =  ExtensionManager_Get( mesh->nodeExtensionMgr, 
+																		srcNode, 
+																		SnacTemperature_NodeHandle );
 
 		dstNodeExt->temperature += srcNodeExt->temperature * weights[tetNode_i];
 	}
 /* 	fprintf(stderr,"%e (%e %e %e %e)\t",srcNodeExt->temperature, */
-/* 		weights[0],weights[1],weights[2],weights[3]); */
+/* 			weights[0],weights[1],weights[2],weights[3]); */
 /* 	fprintf(stderr,"after T=%e \n",dstNodeExt->temperature); */
 }

Modified: long/3D/SNAC/trunk/Snac/plugins/temperature/VariableConditions.c
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/temperature/VariableConditions.c	2010-04-02 16:49:00 UTC (rev 16490)
+++ long/3D/SNAC/trunk/Snac/plugins/temperature/VariableConditions.c	2010-04-02 16:52:07 UTC (rev 16491)
@@ -135,7 +135,7 @@
 	const double                    R = 6371000.0;
 	const double                    kappa = 1.0e-06;
 	double                          scalet = R*R/kappa/(1.0e+06*365.25*24.0*3600.0);
-	double                          age = 5.01f, temp=0.0f;
+	double                          age = 2.01f, temp=0.0f;
 
 	double*                         temperature = (double*)result;
 	Dictionary*                     meshStruct= Dictionary_Entry_Value_AsDictionary(
@@ -165,7 +165,9 @@
 		age = 0.01f + 1.0f*abs(ijk[0]-midI)/5.0*5.01;
 	}
 #endif
+#if 0
 	age = 0.5 - 0.2*ijk[2]/(decomp->nodeGlobal3DCounts[2]-1);
+#endif
 
 	temp = (rMax-r) * 0.5f / sqrt(age/scalet);
 	*temperature = rTemp * erf(temp);
@@ -248,7 +250,7 @@
 		memset( elementExt->heatFlux, 0, sizeof(elementExt->heatFlux) );
 	}
 
-	effectiveDensity( context );
+	/* effectiveDensity( context ); */
 
 }
 
@@ -272,7 +274,7 @@
 
 	Journal_Printf( context->debug, "In %s(): re-applying temp BCs\n", __func__ );
 
-	VariableCondition_Apply( contextExt->temperatureBCs, context );
+ 	VariableCondition_Apply( contextExt->temperatureBCs, context );
 }
 
 void SnacTemperature_HeatFluxBC( void* _context ) {



More information about the CIG-COMMITS mailing list