[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