diff --git a/Source/func.f90 b/Source/func.f90 index 0cc29f62ea8..77078675f51 100644 --- a/Source/func.f90 +++ b/Source/func.f90 @@ -9406,7 +9406,20 @@ REAL(EB) FUNCTION CONE_MESH_INTERSECTION_VOLUME(NM,X0,Y0,Z0,RR0,RRI,HH0,G_FACTOR Z_MIN = MAX(M%ZS,Z0) Z_MAX = MIN(M%ZF,Z0+HH0) IF (X_MAX<=X_MIN .OR. Y_MAX<=Y_MIN .OR. Z_MAX<=Z_MIN) RETURN +IF ((X_MIN-M%XS)>TWO_EPSILON_EB .AND. (M%XF-X_MAX)>TWO_EPSILON_EB & + .AND. (Y_MIN-M%YS)>TWO_EPSILON_EB .AND. (M%YF-Y_MAX)>TWO_EPSILON_EB & + .AND. (Z_MIN-M%ZS)>TWO_EPSILON_EB .AND. (M%ZF-Z_MAX)>TWO_EPSILON_EB) THEN + IF (G_FACTOR==0) THEN + CONE_MESH_INTERSECTION_VOLUME = PI*(RR0**2._EB-RRI**2._EB)*HH0 + ELSEIF (G_FACTOR==1) THEN + CONE_MESH_INTERSECTION_VOLUME = PI*(RR0**2._EB-RRI**2._EB)*HH0/3._EB + ENDIF + RETURN +ENDIF + SHORT_DIMENSION = MIN(X_MAX-X_MIN,Y_MAX-Y_MIN,Z_MAX-Z_MIN) +! Limit resolution length scale +SHORT_DIMENSION = MAX(SHORT_DIMENSION, 0.1_EB*MIN(M%DXMIN,M%DYMIN,M%DZMIN)) NX = CEILING(50*(X_MAX-X_MIN)/SHORT_DIMENSION) NY = CEILING(50*(Y_MAX-Y_MIN)/SHORT_DIMENSION) NZ = CEILING(50*(Z_MAX-Z_MIN)/SHORT_DIMENSION)