[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