[cig-commits] r6524 - in long/3D/Gale/trunk: .
src/StgFEM/plugins/StandardConditionFunctions
walter at geodynamics.org
walter at geodynamics.org
Sat Apr 7 22:20:37 PDT 2007
Author: walter
Date: 2007-04-07 22:20:37 -0700 (Sat, 07 Apr 2007)
New Revision: 6524
Modified:
long/3D/Gale/trunk/
long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c
long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.h
Log:
r1788 at earth: boo | 2007-04-07 22:18:09 -0700
Add ShearZ to StandardConditionFunctions
Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
- 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:1785
+ 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:1788
Modified: long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c 2007-04-08 03:32:09 UTC (rev 6523)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c 2007-04-08 05:20:37 UTC (rev 6524)
@@ -70,6 +70,8 @@
condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SimpleShear, "Velocity_SimpleShear" );
ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
+ condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ShearZ, "ShearZ" );
+ ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_Extension, "Velocity_Extension" );
ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
@@ -361,6 +363,29 @@
*result = factor * (coord[ J_AXIS ] - centre);
}
+void StgFEM_StandardConditionFunctions_ShearZ( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+ DiscretisationContext* context = (DiscretisationContext*)_context;
+ Dictionary* dictionary = context->dictionary;
+ FeVariable* feVariable = NULL;
+ FeMesh* mesh = NULL;
+ double* result = (double*) _result;
+ double* coord;
+ double centre;
+ double factor;
+
+ feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
+ mesh = feVariable->feMesh;
+
+ /* Find Centre of Solid Body Rotation */
+ centre = Dictionary_GetDouble_WithDefault( dictionary, "ShearZCentre", 0.0 );
+ factor = Dictionary_GetDouble_WithDefault( dictionary, "ShearZFactor", 1.0 );
+
+ /* Find coordinate of node */
+ coord = Mesh_GetVertex( mesh, node_lI );
+
+ *result = factor * (coord[ K_AXIS ] - centre);
+}
+
void StgFEM_StandardConditionFunctions_Extension( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
DiscretisationContext* context = (DiscretisationContext*)_context;
Dictionary* dictionary = context->dictionary;
Modified: long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.h 2007-04-08 03:32:09 UTC (rev 6523)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.h 2007-04-08 05:20:37 UTC (rev 6524)
@@ -65,6 +65,7 @@
void StgFEM_StandardConditionFunctions_TaperedRotationX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StgFEM_StandardConditionFunctions_TaperedRotationY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StgFEM_StandardConditionFunctions_SimpleShear( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_ShearZ( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StgFEM_StandardConditionFunctions_Extension( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StgFEM_StandardConditionFunctions_PartialLid_TopLayer( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) ;
void StgFEM_StandardConditionFunctions_LinearInterpolationLid( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) ;
More information about the cig-commits
mailing list