[cig-commits] commit: Add WarsTemperature

Mercurial hg at geodynamics.org
Fri Jul 23 13:43:58 PDT 2010


changeset:   765:0b536b605daf
user:        Walter Landry <wlandry at caltech.edu>
date:        Fri Jul 23 12:59:04 2010 -0700
files:       plugins/StandardConditionFunctions/StandardConditionFunctions.c plugins/StandardConditionFunctions/StandardConditionFunctions.h
description:
Add WarsTemperature


diff -r 6348f218c937 -r 0b536b605daf plugins/StandardConditionFunctions/StandardConditionFunctions.c
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.c	Fri Apr 23 13:03:09 2010 -0700
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.c	Fri Jul 23 12:59:04 2010 -0700
@@ -214,6 +214,11 @@ void _StgFEM_StandardConditionFunctions_
 
         condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_GravitationalPotential, (Name)"GravitationalPotential" );
         ConditionFunction_Register_Add( condFunc_Register, condFunc );
+
+	condFunc = ConditionFunction_New(StgFEM_StandardConditionFunctions_WarsTemperature,
+                                         (Name)"WarsTemperature");
+	ConditionFunction_Register_Add( condFunc_Register, condFunc );
+
 }
 
 void _StgFEM_StandardConditionFunctions_Destroy( void* _self, void* data ) {
@@ -2288,4 +2293,36 @@ void StgFEM_StandardConditionFunctions_G
 }
 
 
+void StgFEM_StandardConditionFunctions_WarsTemperature( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) 
+{
+  FiniteElementContext *	context            = (FiniteElementContext*)_context;
+  FeVariable*             feVariable         = NULL;
+  FeMesh*     mesh               = NULL;
+  Dictionary*             dictionary         = context->dictionary;
+  double*                 result             = (double*) _result;
+  double*                 coord;
+  double                  EAEnd, WarsStart, WarsHeight, WarsTTop,
+    WarsTBottom, h, maxY;
+  
+  feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
+  mesh       = feVariable->feMesh;
+  coord      = Mesh_GetVertex( mesh, node_lI );
+  
+  EAEnd = Dictionary_GetDouble( dictionary, "EAEnd");
+  WarsStart = Dictionary_GetDouble( dictionary, "WarsStart");
+  WarsHeight = Dictionary_GetDouble( dictionary, "WarsHeight");
+  WarsTTop = Dictionary_GetDouble( dictionary, "WarsTTop");
+  WarsTBottom = Dictionary_GetDouble( dictionary, "WarsTBottom");     
+  maxY=Dictionary_GetDouble( dictionary, "maxY");
 
+
+  h=WarsHeight*(coord[0]-EAEnd)/(WarsStart-EAEnd);
+  if(coord[0]<EAEnd)
+    h=0;
+  if(coord[0]>WarsStart)
+    h=WarsHeight;
+  *result=WarsTBottom + ((coord[1]-h)/(maxY-h))*(WarsTTop-WarsTBottom);
+}
+
+
+
diff -r 6348f218c937 -r 0b536b605daf plugins/StandardConditionFunctions/StandardConditionFunctions.h
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.h	Fri Apr 23 13:03:09 2010 -0700
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.h	Fri Jul 23 12:59:04 2010 -0700
@@ -120,5 +120,7 @@ void StgFEM_StandardConditionFunctions_D
 
 void StgFEM_StandardConditionFunctions_InflowBottom( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
 void StgFEM_StandardConditionFunctions_GaussianTube( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_WarsTemperature( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+
 
 #endif	



More information about the CIG-COMMITS mailing list