[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