[cig-commits] commit: Now allow up to 10 different equations
Mercurial
hg at geodynamics.org
Wed May 11 14:50:39 PDT 2011
changeset: 783:bd633e2a3a35
tag: tip
user: Walter Landry <wlandry at caltech.edu>
date: Wed May 11 14:43:33 2011 -0700
files: plugins/StandardConditionFunctions/StandardConditionFunctions.c plugins/StandardConditionFunctions/StandardConditionFunctions.h
description:
Now allow up to 10 different equations
diff -r 15722add3d11 -r bd633e2a3a35 plugins/StandardConditionFunctions/StandardConditionFunctions.c
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.c Wed May 11 14:09:51 2011 -0700
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.c Wed May 11 14:43:33 2011 -0700
@@ -254,8 +254,35 @@ void _StgFEM_StandardConditionFunctions_
condFunc = ConditionFunction_New(StgFEM_StandardConditionFunctions_File10,
"File10");
ConditionFunction_Register_Add(condFunc_Register,condFunc);
- condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation,
- "Equation");
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation1,
+ "Equation1");
+ ConditionFunction_Register_Add(condFunc_Register,condFunc);
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation2,
+ "Equation2");
+ ConditionFunction_Register_Add(condFunc_Register,condFunc);
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation3,
+ "Equation3");
+ ConditionFunction_Register_Add(condFunc_Register,condFunc);
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation4,
+ "Equation4");
+ ConditionFunction_Register_Add(condFunc_Register,condFunc);
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation5,
+ "Equation5");
+ ConditionFunction_Register_Add(condFunc_Register,condFunc);
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation6,
+ "Equation6");
+ ConditionFunction_Register_Add(condFunc_Register,condFunc);
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation7,
+ "Equation7");
+ ConditionFunction_Register_Add(condFunc_Register,condFunc);
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation8,
+ "Equation8");
+ ConditionFunction_Register_Add(condFunc_Register,condFunc);
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation9,
+ "Equation9");
+ ConditionFunction_Register_Add(condFunc_Register,condFunc);
+ condFunc=ConditionFunction_New(StgFEM_StandardConditionFunctions_Equation10,
+ "Equation10");
ConditionFunction_Register_Add(condFunc_Register,condFunc);
}
@@ -2661,7 +2688,119 @@ int Binary_Search(double *data, int s, i
return start;
}
-void StgFEM_StandardConditionFunctions_Equation( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_EquationN(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result,
+ std::string equation_string,
+ const int equation_number);
+
+void StgFEM_StandardConditionFunctions_Equation1(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,1);
+}
+
+void StgFEM_StandardConditionFunctions_Equation2(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,2);
+}
+
+void StgFEM_StandardConditionFunctions_Equation3(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,3);
+}
+
+void StgFEM_StandardConditionFunctions_Equation4(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,4);
+}
+
+void StgFEM_StandardConditionFunctions_Equation5(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,5);
+}
+
+void StgFEM_StandardConditionFunctions_Equation6(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,6);
+}
+
+void StgFEM_StandardConditionFunctions_Equation7(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,7);
+}
+
+void StgFEM_StandardConditionFunctions_Equation8(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,8);
+}
+
+void StgFEM_StandardConditionFunctions_Equation9(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,9);
+}
+
+void StgFEM_StandardConditionFunctions_Equation10(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result)
+{
+ static std::string equation_string;
+ StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ equation_string,10);
+}
+
+void StgFEM_StandardConditionFunctions_EquationN(Node_LocalIndex node_lI,
+ Variable_Index var_I,
+ void* _context,
+ void* _result,
+ std::string equation_string,
+ const int equation_number)
{
FiniteElementContext *context=(FiniteElementContext*)_context;
FeVariable *feVariable=(FeVariable*)FieldVariable_Register_GetByName
@@ -2669,9 +2808,19 @@ void StgFEM_StandardConditionFunctions_E
FeMesh *mesh(feVariable->feMesh);
Dictionary *dictionary=context->dictionary;
double *coord=Mesh_GetVertex(mesh,node_lI);
- char *equation_string=Dictionary_GetString(dictionary,"Equation");
double *result=(double*)_result;
+ if(equation_string.empty())
+ {
+ std::stringstream ss;
+ ss << "Equation" << equation_number;
+ equation_string=std::string(Dictionary_GetString(dictionary,
+ ss.str().c_str()));
+ Journal_Firewall(!equation_string.empty(),
+ Journal_Register( Error_Type,"StgFEM_StandardConditionFunctions_EquationN"),
+ "The equation given for %s is empty.",
+ ss.str().c_str());
+ }
try
{
mu::Parser p;
@@ -2687,8 +2836,6 @@ void StgFEM_StandardConditionFunctions_E
{
Journal_Firewall(false,
Journal_Register( Error_Type,"StgFEM_StandardConditionFunctions_Equation"),
- "%s\n",e.GetMsg().c_str());
+ "Error when parsing equation: %s\n",e.GetMsg().c_str());
}
-
-
}
diff -r 15722add3d11 -r bd633e2a3a35 plugins/StandardConditionFunctions/StandardConditionFunctions.h
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.h Wed May 11 14:09:51 2011 -0700
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.h Wed May 11 14:43:33 2011 -0700
@@ -132,7 +132,16 @@ void StgFEM_StandardConditionFunctions_F
void StgFEM_StandardConditionFunctions_File8( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
void StgFEM_StandardConditionFunctions_File9( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
void StgFEM_StandardConditionFunctions_File10( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation1( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation2( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation3( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation4( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation5( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation6( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation7( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation8( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation9( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation10( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
#endif
More information about the CIG-COMMITS
mailing list