⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calc_ust_checkface.f90

📁 国外大名顶顶的“台风”并行计算流体力学CFD软件的早期版本的源代码
💻 F90
字号:
!------------------------------------------------------------------------------!! Procedure : calc_ust_checkface          Auteur : J. Gressier!                                         Date   : Janvier 2003! Fonction                                Modif  : see history!   1. Face->cell connectivity is changed so that cell 1 index is lower than cell 2!   2. Check face normals direction accordingg to the connectivity face->cell!     (normal vector is oriented from cell 1 to cell 2)!! Defauts/Limitations/Divers :!!------------------------------------------------------------------------------!subroutine calc_ust_checkface(facecell, mesh)use TYPHMAKEuse OUTPUTuse USTMESHuse MESHBASEimplicit none! -- Declaration des entrees --type(st_connect)  :: facecell   ! connectivite face->cellules! -- Declaration des entrees/sorties --type(st_mesh)        :: mesh       ! maillages! -- Declaration des sorties --! -- Declaration des variables internes --integer   :: if       ! index de faceinteger   :: ic1, ic2 ! indices de cellulestype(v3d) :: v12      ! vecteur du centre de cellule 1 a centre de cellule 2! -- Debut de la procedure --! -- change of connectivity indexes (except boundary faces where ic2 = 0) --do if = 1, facecell%nbnodes  if ((facecell%fils(if,2) /= 0).and.(facecell%fils(if,1) > facecell%fils(if,2))) then    ic1                 = facecell%fils(if,1)    facecell%fils(if,1) = facecell%fils(if,2)    facecell%fils(if,2) = ic1  endifenddo! -- check normal vector direction --do if = 1, facecell%nbnodes     ! boucle sur les faces  ic1 = facecell%fils(if,1)     ! index de cellules voisines a la face  ic2 = facecell%fils(if,2)     ! par convention, la normale va de ic1 a ic2  ! v12 est le vecteur du centre ic1 au centre ic2.   ! Si la face est limite, v12 est le centre ic1 vers le centre de la face  if (ic2 /= 0) then    v12 = mesh%centre(ic2,1,1) - mesh%centre(ic1,1,1)  else    v12 = mesh%iface(if,1,1)%centre - mesh%centre(ic1,1,1)  endif  ! si v12 et la normale sont inversees, on corrige la normale pour   ! etre en accord avec la convention des connectivites  if ((v12.scal.mesh%iface(if,1,1)%normale) < 0._krp) then    mesh%iface(if,1,1)%normale = - mesh%iface(if,1,1)%normale  endifenddoendsubroutine calc_ust_checkface!------------------------------------------------------------------------------!! Change history!! jan  2003 : creation de la procedure! mai  2003 : correction de l'orientation des normales de faces limites! july 2004 : change of connectivity indexes (from lower to upper)!------------------------------------------------------------------------------!

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -