wall_friction.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac2d\wall_friction.f
00002 !
00058                      SUBROUTINE WALL_FRICTION
00059 !                    ************************
00060 !
00061      &(UETUTA,AUBOR,CFBOR,DISBOR,UN,VN,LIMPRO,NBOR,NPTFR,
00062      & KARMAN,PROPNU,LISRUG,KNEU,KDIR,KENT,KENTU,KADH,KLOG,IELMU,IKLBOR,
00063      & NELEB,NELEBX)
00064 !
00065 !***********************************************************************
00066 ! TELEMAC2D   V7P0                                   27/03/2014
00067 !***********************************************************************
00068 !
00069 !
00070 !
00071 !
00072 !
00073 !
00074 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00075 !| AUBOR          |<--| LAW OF FRICTION ON BOUNDARIES
00076 !|                |   | NUT*DU/DN=AUBOR*U+BUBOR
00077 !| CFBOR          |-->| ADIMENSIONAL FRICTION COEFFICIENT ON BOUNDARIES
00078 !| DISBOR         |-->| DISTANCE BETWEEN BOUNDARY AND NEAREST POINTS INSIDE
00079 !| IKLBOR         |-->| CONNECTIVITY OF BOUNDARY SEGMENTS
00080 !| KADH           |-->| CONVENTION FOR NO SLIP BOUNDARY CONDITION
00081 !| KARMAN         |-->| VON KARMAN CONSTANT
00082 !| KDIR           |-->| CONVENTION FOR DIRICHLET POINT
00083 !| KENT           |-->| CONVENTION FOR LIQUID INPUT WITH PRESCRIBED VALUE
00084 !| KENTU          |-->| CONVENTION FOR LIQUID INPUT WITH PRESCRIBED VELOCITY
00085 !| KLOG           |-->| CONVENTION FOR SOLID BOUNDARY
00086 !| KNEU           |-->| CONVENTION FOR NEUMANN CONDITION
00087 !| LIMPRO         |-->| BOUNDARY CONDITIONS FOR PROPAGATION (SEE PROPIN)
00088 !| LISRUG         |-->| TURBULENCE REGIME (1: SMOOTH 2: ROUGH)
00089 !| NBOR           |-->| GLOBAL NUMBER OF BOUNDARY POINTS
00090 !| NELEB          |-->| NUMBER OF BOUNDARY SEGMENTS
00091 !| NELEBX         |-->| MAXIMUM NUMBER OF BOUNDARY SEGMENTS
00092 !| NPTFR          |-->| NUMBER OF BOUNDARY POINTS
00093 !| PROPNU         |-->| LAMINAR DIFFUSION
00094 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00095 !
00096       IMPLICIT NONE
00097       INTEGER LNG,LU
00098       COMMON/INFO/LNG,LU
00099 !
00100 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00101 !
00102       INTEGER, INTENT(IN) :: NPTFR,LISRUG,KNEU,KDIR,KENT,KADH,KLOG,KENTU
00103       INTEGER, INTENT(IN) :: IELMU,NELEB,NELEBX
00104       INTEGER, INTENT(IN) :: LIMPRO(NPTFR,6),NBOR(NPTFR)
00105       INTEGER, INTENT(IN) :: IKLBOR(NELEBX,2)
00106       DOUBLE PRECISION, INTENT(IN)    :: CFBOR(*),UN(*),VN(*),DISBOR(*)
00107       DOUBLE PRECISION, INTENT(INOUT) :: AUBOR(*),UETUTA(*)
00108       DOUBLE PRECISION, INTENT(IN)    :: KARMAN,PROPNU
00109 !
00110 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00111 !
00112       INTEGER N,K,KP1,IT,IELEB
00113 !
00114       DOUBLE PRECISION UTANG,DIST
00115 !
00116 !-----------------------------------------------------------------------
00117 !
00118       INTRINSIC SQRT,LOG
00119 !
00120 !=======================================================================
00121 !
00122 !  LOOP ON THE BOUNDARY NODES
00123 !
00124 !  COMPUTES THE FRICTION VELOCITY ON THE WALL, AND AUBOR
00125 !
00126 !=======================================================================
00127 !
00128 !     ********************
00129       IF(LISRUG.EQ.1) THEN
00130 !     ********************
00131 !
00132         DO K=1,NPTFR
00133           N     = NBOR(K)
00134           UTANG = SQRT(UN(N)**2+VN(N)**2)
00135 !         BEWARE : MODIFIED FROM PRINCIPLE NOTE
00136 !         DIST  = DISBOR(K)*0.1D0
00137           DIST  = DISBOR(K)*0.33D0
00138 !         COMPUTES UETOIL FOR SOLID BOUNDARIES
00139 !         ----------------------------------------
00140 !
00141 !                            UETOIL
00142 !         UETUTA REPRESENTS  ------ EVERYWHERE
00143 !                            UTANG
00144 !
00145 !         UETUTA HAS THE ADVANTAGE OF BEING MEANINGFUL EVEN IF UTANG=0
00146 !
00147 !         INITIAL GUESS; THEN 5 ITERATIONS
00148           UETUTA(K) = 6.D-2
00149           DO IT=1,5
00150             IF(DIST*UETUTA(K)*UTANG/PROPNU .LT. 30.D0) THEN
00151               UETUTA(K) = 7.25D-2
00152             ELSE
00153               UETUTA(K)=1.D0/
00154      &                (5.5D0+LOG(DIST*UETUTA(K)*UTANG/PROPNU)/KARMAN)
00155             ENDIF
00156           ENDDO
00157         ENDDO
00158 !
00159 !     ************************
00160       ELSEIF(LISRUG.EQ.2) THEN
00161 !     ************************
00162 !
00163         DO K=1,NPTFR
00164           UETUTA(K) = SQRT( 0.5D0 * CFBOR(K) )
00165         ENDDO
00166 !
00167 !     ****
00168       ELSE
00169 !     ****
00170 !
00171         IF(LNG.EQ.1) WRITE(LU,400) LISRUG
00172         IF(LNG.EQ.2) WRITE(LU,401) LISRUG
00173 400     FORMAT(1X,'WALL_FRICTION : REGIME DE TURBULENCE INCONNU :',1I6)
00174 401     FORMAT(1X,'WALL_FRICTION: UNKNOWN TURBULENCE MODEL : ',1I6)
00175         CALL PLANTE(1)
00176         STOP
00177 !
00178 !     *****
00179       ENDIF
00180 !     *****
00181 !
00182 ! COMPUTES AUBOR
00183 ! --------------
00184 !
00185 !  AUBOR COUNTS FOR THE SEGMENT BETWEEN K AND THE FOLLOWING BOUNDARY POINT
00186 !
00187 !  LAW        : NUT * DU/DN = UETOIL**2 = -AUBOR*U(N+1)
00188 !  CHANGED TO : NUT * DU/DN = UETOIL**2  *  U(N+1) / U(N)
00189 !                           = UETOIL * (UETOIL/UTANG) * U(N+1)
00190 !
00191       DO K=1,NPTFR
00192         IF(LIMPRO(K,5).EQ.KNEU) THEN
00193           N     = NBOR(K)
00194           UTANG = SQRT(UN(N)**2+VN(N)**2)
00195           AUBOR(K) = - UTANG * UETUTA(K)**2
00196         ELSE
00197           AUBOR(K) = 0.D0
00198         ENDIF
00199       ENDDO
00200 !
00201 !-----------------------------------------------------------------------
00202 !
00203 !     QUADRATIC ELEMENT HAS EXTRA POINTS ON THE BOUNDARY
00204 !
00205       IF(IELMU.EQ.13) THEN
00206         DO IELEB=1,NELEB
00207           K  =IKLBOR(IELEB,1)
00208           KP1=IKLBOR(IELEB,2)
00209           AUBOR(K+NPTFR) = (AUBOR(K)+AUBOR(KP1))*0.5D0
00210         ENDDO
00211       ENDIF
00212 !
00213 !=======================================================================
00214 !
00215 !                   /* END OF LOOP ON BOUNDARY NODES */
00216 !
00217 !=======================================================================
00218 !
00219       RETURN
00220       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0