[cig-commits] commit: Add a Quadratic function

Mercurial hg at geodynamics.org
Fri Jul 23 13:44:00 PDT 2010


changeset:   766:5a0f5812df1d
tag:         tip
user:        Walter Landry <wlandry at caltech.edu>
date:        Fri Jul 23 13:41:18 2010 -0700
files:       plugins/StandardConditionFunctions/StandardConditionFunctions.c plugins/StandardConditionFunctions/StandardConditionFunctions.h
description:
Add a Quadratic function


diff -r 0b536b605daf -r 5a0f5812df1d plugins/StandardConditionFunctions/StandardConditionFunctions.c
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.c	Fri Jul 23 12:59:04 2010 -0700
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.c	Fri Jul 23 13:41:18 2010 -0700
@@ -217,6 +217,10 @@ void _StgFEM_StandardConditionFunctions_
 
 	condFunc = ConditionFunction_New(StgFEM_StandardConditionFunctions_WarsTemperature,
                                          (Name)"WarsTemperature");
+	ConditionFunction_Register_Add( condFunc_Register, condFunc );
+
+	condFunc = ConditionFunction_New(StgFEM_StandardConditionFunctions_Quadratic,
+                                         (Name)"Quadratic");
 	ConditionFunction_Register_Add( condFunc_Register, condFunc );
 
 }
@@ -2324,5 +2328,28 @@ void StgFEM_StandardConditionFunctions_W
   *result=WarsTBottom + ((coord[1]-h)/(maxY-h))*(WarsTTop-WarsTBottom);
 }
 
+void StgFEM_StandardConditionFunctions_Quadratic( 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;
+  int                     dim;
+  double                  a, b, c;
+  
+  feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
+  mesh       = feVariable->feMesh;
+  coord      = Mesh_GetVertex( mesh, node_lI );
+  
+  dim = Dictionary_GetInt( dictionary, "Quadratic_Dim");
+  a = Dictionary_GetDouble( dictionary, "Quadratic_Constant");
+  b = Dictionary_GetDouble( dictionary, "Quadratic_Linear");
+  c = Dictionary_GetDouble( dictionary, "Quadratic_Quadratic");
 
+  *result= a + coord[dim]*(b + c*coord[dim]);
+}
 
+
+
diff -r 0b536b605daf -r 5a0f5812df1d plugins/StandardConditionFunctions/StandardConditionFunctions.h
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.h	Fri Jul 23 12:59:04 2010 -0700
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.h	Fri Jul 23 13:41:18 2010 -0700
@@ -121,6 +121,7 @@ void StgFEM_StandardConditionFunctions_I
 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 );
+void StgFEM_StandardConditionFunctions_Quadratic( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
 
 
 #endif	



More information about the CIG-COMMITS mailing list