[cig-commits] r11762 - in long/3D/Gale/trunk: . src/StgFEM/plugins/StandardConditionFunctions

walter at geodynamics.org walter at geodynamics.org
Mon Apr 7 15:33:23 PDT 2008


Author: walter
Date: 2008-04-07 15:33:23 -0700 (Mon, 07 Apr 2008)
New Revision: 11762

Modified:
   long/3D/Gale/trunk/
   long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c
Log:
 r2089 at earth:  boo | 2008-04-07 15:33:37 -0700
 Allow specifying lower and upper values for StepFunction



Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
   - 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2087
   + 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2089

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c	2008-04-07 20:10:39 UTC (rev 11761)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c	2008-04-07 22:33:23 UTC (rev 11762)
@@ -855,22 +855,29 @@
 	dim = Dictionary_GetUnsignedInt_WithDefault( dictionary, "StepFunctionDim", 0 );
 	less = Dictionary_GetBool_WithDefault( dictionary, "StepFunctionLessThan", True );
 
+        lower_value = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionLowerValue", 0.0 );
+        upper_value = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionUpperValue", value );
+
 	if( less ) {
           if(coord[dim] > upper_offset) {
-            *result=0;
+            *result=lower_value;
           } else if(coord[dim] > lower_offset) {
-            *result=value*(upper_offset - coord[dim])/(upper_offset-lower_offset);
+            *result=lower_value + 
+              (upper_value-lower_value)
+              *(upper_offset - coord[dim])/(upper_offset-lower_offset);
           } else {
-            *result=value;
+            *result=upper_value;
           }
 	}
 	else {
           if(coord[dim] < lower_offset) {
-            *result=0;
+            *result=lower_value;
           } else if(coord[dim] < upper_offset) {
-            *result=value*(coord[dim] - lower_offset)/(upper_offset-lower_offset);
+            *result=lower_value + 
+              (upper_value-lower_value)
+              *(coord[dim] - lower_offset)/(upper_offset-lower_offset);
           } else {
-            *result=value;
+            *result=upper_value;
           }
 	}
 }



More information about the cig-commits mailing list