[cig-commits] r12004 - in long/3D/Gale/trunk: . src/Gale/Utils/src
walter at geodynamics.org
walter at geodynamics.org
Thu May 22 13:04:08 PDT 2008
Author: walter
Date: 2008-05-22 13:04:08 -0700 (Thu, 22 May 2008)
New Revision: 12004
Modified:
long/3D/Gale/trunk/
long/3D/Gale/trunk/src/Gale/Utils/src/KineticFriction.c
Log:
r2179 at earth: boo | 2008-05-22 13:04:05 -0700
Use kinetic friction when v_diff!=0, rather than >1e-20. Also rename v_norm to v_diff_norm.
Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
- 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2176
+ 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2179
Modified: long/3D/Gale/trunk/src/Gale/Utils/src/KineticFriction.c
===================================================================
--- long/3D/Gale/trunk/src/Gale/Utils/src/KineticFriction.c 2008-05-22 19:07:20 UTC (rev 12003)
+++ long/3D/Gale/trunk/src/Gale/Utils/src/KineticFriction.c 2008-05-22 20:04:08 UTC (rev 12004)
@@ -337,7 +337,7 @@
ElementType* elementType;
Dof_Index nodeDofCount;
double stress, area, n[3], v_diff[3], v_boundary[3], v_dot_n,
- v_perpendicular[3], v_norm, friction_force;
+ v_perpendicular[3], v_diff_norm, friction_force;
IJK ijk;
unsigned direction, boundary, basis[2], d;
FeVariable *pressure, *deviatoric_stress, *velocity;
@@ -463,7 +463,7 @@
v_dot_n=Vec_Dot2D(v_diff,n);
Vec_Scale2D(v_perpendicular,n,v_dot_n);
Vec_Sub2D(v_surface_diff,v_diff,v_perpendicular);
- v_norm=Vec_Mag2D(v_surface_diff);
+ v_diff_norm=Vec_Mag2D(v_surface_diff);
}
else
{
@@ -471,14 +471,14 @@
v_dot_n=Vec_Dot3D(v,n);
Vec_Scale3D(v_perpendicular,n,v_dot_n);
Vec_Sub3D(v_surface_diff,v,v_perpendicular);
- v_norm=Vec_Mag3D(v_surface_diff);
+ v_diff_norm=Vec_Mag3D(v_surface_diff);
}
StaticFrictionVC_get_force_vector(force_vector);
friction_force=friction_coefficient*normal_stress*area/overcount;
- if(friction_force>0 && v_norm>1.0e-20)
+ if(friction_force>0 && v_diff_norm!=0.0)
{
for(d=0;d<dim;++d)
{
@@ -486,11 +486,11 @@
double old_force=
force_vector[(lElement_I*elementNodeCount+eNode_I)*nodeDofCount+d];
force_vector[(lElement_I*elementNodeCount+eNode_I)*nodeDofCount+d]=
- friction_force*v_surface_diff[d]/v_norm;
+ friction_force*v_surface_diff[d]/v_diff_norm;
if(old_force==0)
alpha=1.0;
force_vector[(lElement_I*elementNodeCount+eNode_I)*nodeDofCount+d]=
- (friction_force*v_surface_diff[d]/v_norm)*alpha
+ (friction_force*v_surface_diff[d]/v_diff_norm)*alpha
+ old_force*(1-alpha);
if(force_vector[(lElement_I*elementNodeCount+eNode_I)*nodeDofCount+d]*old_force<0)
More information about the cig-commits
mailing list