[Nek5000-users] Interpolation between two meshes

nek5000-users at lists.mcs.anl.gov nek5000-users at lists.mcs.anl.gov
Tue Mar 28 15:59:18 CDT 2017


We have tested glfdr() using different cases/machines and it worked fine. With the information below I cannot say what's going wrong. 

- Is your source fld in double precision?
- Do have any additional information where it hangs or crashes?
- Can you please test gfldr() say with turbChannel (NekExamples).

Stefan
 
-----Original message-----
> From:nek5000-users at lists.mcs.anl.gov <nek5000-users at lists.mcs.anl.gov>
> Sent: Tuesday 28th March 2017 22:46
> To: nek5000-users at lists.mcs.anl.gov
> Subject: Re: [Nek5000-users] Interpolation between two meshes
> 
> Hi Stefan,
> 
> In case the attachments didn't go through, please see below for the .usr file and log file.
> I only used 'userchk' and 'usrdat' in the .usr file for interpolation. The other subroutines are empty.
> (I added several print lines in 'gfldr.f' to see where the interpolation halted.)
> 
> Best regards,
> Tony
> 
> .USR FILE:
> c-----------------------------------------------------------------------
>       subroutine userchk()
>       include 'SIZE'
>       include 'TOTAL'
>       include 'ZPER'
>       include 'CTIMER'
>       include 'RESTART'
> 
>       character*132 sourcefld
> 
>       sourcefld='source.f00001'
>       call gfldr(sourcefld)
>       call outpost(vx,vy,vz,pr,t,'rst')
>       call exitt()
> 
>       return
>       end
> c-----------------------------------------------------------------------
>       subroutine usrdat()   ! This routine to modify element vertices
>       include 'SIZE'
>       include 'TOTAL'
> 
>       parameter (ielx=150)
>       parameter (iely=22)
>       parameter (ielz=142)
>       integer i,e,eg,ex,ey,ez
>       real cony
> 
>       cony = 2.36d0
> 
>       do e=1,nelv
>         eg = lglel(e)
>        if(eg<=ielx*iely*ielz) then
>         call get_exyz(ex,ey,ez,eg,ielx,iely,ielz)
> 
>         do i=1,8
>          if(i<=2 .or. i==5 .or. i==6) then
>           if((yc(i,e)>0.0e0.and.yc(i,e)<1.0e0).OR.
>      &      (yc(i,e)>1.0e0.and.yc(i,e)<2.0e0)) then
>            yc(i,e) = 2.0e0*Real(ey-1)/Real(iely)
>           end if
>          else if(i==3 .or. i==4 .or. i>=7) then
>           if((yc(i,e)>0.0e0.and.yc(i,e)<1.0e0).OR.
>      &      (yc(i,e)>1.0e0.and.yc(i,e)<2.0e0)) then
>            yc(i,e) = 2.0e0*Real(ey)/Real(iely)
>           end if
>          end if
>         end do
> 
>        end if
>       end do
> 
>       do e=1,nelv
>         eg = lglel(e)
>         if(eg==1) print*,yc(1,e),yc(2,e),yc(5,e),yc(6,e)
>         if(eg==1) print*,yc(3,e),yc(4,e),yc(7,e),yc(8,e)
>         do i=1,8
>          if(yc(i,e)>0.0e0 .AND. yc(i,e)<1.0e0) then
>            yc(i,e) = yc(i,e)-1.0e0
>            yc(i,e) = tanh(cony*yc(i,e))/tanh(cony)
>            yc(i,e) = yc(i,e)1.0e0
>          else if(yc(i,e)>1.0e0 .AND. yc(i,e)<2.0e0) then
>            yc(i,e) = yc(i,e)-1.0e0
>            yc(i,e) = tanh(cony*yc(i,e))/tanh(cony)
>            yc(i,e) = yc(i,e)1.0e0
>          end if
>         end do
>       end do
> 
>       return
>       end
> c-----------------------------------------------------------------------
> 
> 
> LOG FILE:
> 
> /----------------------------------------------------------\\
> |      _   __ ______ __ __  ______  ____   ____   ____     |
> |     / | / // ____// //_/ / ____/ / __ \\/ __ \\/ __ \\   |
> |    /  |/ // __/  / ,<   /___ \\ / / / // / / // / / /    |
> |   / /|  // /___ / /| | ____/ / / /_/ // /_/ // /_/ /     |
> |  /_/ |_//_____//_/ |_|/_____/  \\___/ \\___/ \\___/      |
> |                                                          |
> |----------------------------------------------------------|
> |                                                          |
> | NEK5000:  Open Source Spectral Element Solver            |
> | COPYRIGHT (c) 2008-2017 UCHICAGO ARGONNE, LLC            |
> | Version:  17.0.0                                         |
> | Web:      http://nek5000.mcs.anl.gov                     |
> |                                                          |
> \\----------------------------------------------------------/
> 
> 
>  Number of processors:         720
>  REAL    wdsize      :           8
>  INTEGER wdsize      :           4
>  Timer accuracy      : 9.54E-08
>  Reading /work/e01/e01/tony/geometry_nonosci_cavity/interp.rea
> 
>  mapping elements to processors
>  Reading /work/e01/e01/tony/geometry_nonosci_cavity/interp.map
>  element load imbalance:            1         652         653
>  done :: mapping elements to processors
> 
>            0  objects found
>  118   Parameters from file:
>    1      1.00000     p001 DENSITY
>    2     -3150.00     p002 VISCOS
>   12     -0.11750E-01 p012 DT
>   15      500.000     p015 IOSTEP
>   21     0.100000E-07 p021 DIVERGENCE
>   22     0.100000E-07 p022 HELMHOLTZ
>   26      2.00000     p026 COURANT/NTAU
>   27      3.00000     p027 TORDER
>   59      0.00000     p059 !=0 --> full Jac. eval. for each el.
>   63      8.00000     p063 =8 --> force 8-byte output
>   65      1.00000     p065 #iofiles (eg, 0 or 64); <0 --> sep. dirs
>   66      6.00000     p066 output : <0=ascii, else binary
>   67      6.00000     p067 restart: <0=ascii, else binary
>   93      20.0000     p093 Number of previous pressure solns saved
>   94      5.00000     p094 start projecting velocity after p94 step
>   95      5.00000     p095 start projecting pressure after p95 step
>   99      3.00000     p099 dealiasing: <0--> off/3--> old/4--> new
>  103      0.10000E-01 p103 weight of stabilizing filter (.01)
> 
>  nelgt/nelgv/lelt:      469500      469500         653
>  lx1  /lx2  /lx3 :           8           8           8
>  done :: read .rea file    45.222     sec
> 
>  setup mesh topology
>    Right-handed check complete for  469500 elements. OK.
>    setvert3d:   8    60855000   162267000    60855000    60855000
>  call usrsetvert
>  done :: usrsetvert
> 
> gs_setup: 10325502 unique labels shared
>    pairwise times (avg, min, max): 0.00044986 0.00033021 0.000500798
>    crystal router                : 0.00145524 0.00143301 0.0014781
>    used all_to_all method: pairwise
>    handle bytes (avg, min, max): 2.64212e06 2463020 2796252
>    buffer bytes (avg, min, max): 491593 352288 632640
>    setupds time 5.3504E-01 seconds   0  8    60855000      469500
>            8  max multiplicity
>  done :: setup mesh topology
> 
>   0.000000000000000E000  0.000000000000000E000  0.000000000000000E000
>   0.000000000000000E000
>   9.090909090909091E-002  9.090909090909091E-002  9.090909090909091E-002
>   9.090909090909091E-002
>  call usrdat
>  done :: usrdat
> 
>  generate geometry data
>  NOTE: All elements deformed , param(59) ^=0
>  done :: generate geometry data
> 
>  call usrdat2
>  done :: usrdat2
> 
>  regenerate geometry data           1
>  NOTE: All elements deformed , param(59) ^=0
>  done :: regenerate geometry data           1
> 
>  verify mesh topology
>   0.000000000000000E000   6.00000000000000       Xrange
>  -0.120000000000000        2.00000000000000       Yrange
>   0.000000000000000E000   49.7000000000000       Zrange
>  done :: verify mesh topology
> 
>  IFTRAN   = T
>  IFFLOW   = T
>  IFHEAT   = F
>  IFSPLIT  = T
>  IFLOMACH = F
>  IFUSERVP = F
>  IFUSERMV = F
>  IFSTRS   = F
>  IFCHAR   = T
>  IFCYCLIC = F
>  IFAXIS   = F
>  IFMVBD   = F
>  IFMELT   = F
>  IFMODEL  = F
>  IFKEPS   = F
>  IFMOAB   = F
>  IFNEKNEK = F
>  IFSYNC   = T
> 
>  IFVCOR   = F
>  IFINTQ   = F
>  IFCWUZ   = F
>  IFSWALL  = F
>  IFGEOM   = F
>  IFSURT   = F
>  IFWCNO   = F
> 
>  IFTMSH for field           1    =  F
>  IFADVC for field           1    =  T
>  IFNONL for field           1    =  F
> 
>  Dealiasing enabled, lxd=          12
>  verify mesh topology
>   0.000000000000000E000   6.00000000000000       Xrange
>  -0.120000000000000        2.00000000000000       Yrange
>   0.000000000000000E000   49.7000000000000       Zrange
>  done :: verify mesh topology
> 
>  call usrdat3
>  done :: usrdat3
> 
>  set initial conditions
>  nekuic (1) for ifld            1
>  call nekuic for vel
>  xyz min     0.0000     -0.12000       0.0000
>  uvwpt min   0.0000       0.0000       0.0000       0.0000       0.0000
>  xyz max     6.0000       2.0000       49.700
>  uvwpt max   0.0000       0.0000       0.0000       0.0000       0.0000
>  done :: set initial conditions
> 
> gridpoints unique/tot:     162267000    240384000
>   dofs:             159972750             162104250
> 
>  Initialization successfully completed    46.588     sec
> 
>  nsteps=0 -> skip time loop
>  running solver in post processing mode
> 
>  call userchk
>  call gfldr
>  byte swap: F   6.543210     -2.9312772E35
>  sourcefld X  0.000000000000000E000   6.00000000000000
>  sourcefld Y -0.120000000000000        2.00000000000000
>  sourcefld Z  0.000000000000000E000   49.7000000000000
>  CHECK interp prepare
>  CHECK interp read
> 
> -----------
> From: nek5000-users-bounces at lists.mcs.anl.gov <nek5000-users-bounces at lists.mcs.anl.gov> on behalf of nek5000-users-request at lists.mcs.anl.gov <nek5000-users-request at lists.mcs.anl.gov>
> Sent: 28 March 2017 20:51
> To: nek5000-users at lists.mcs.anl.gov
> Subject: Nek5000-users Digest, Vol 97, Issue 33 
> 
> Message: 3
> Date: Tue, 28 Mar 2017 19:51:04 0000
> From: nek5000-users at lists.mcs.anl.gov
> To: "nek5000-users at lists.mcs.anl.gov"
>         <nek5000-users at lists.mcs.anl.gov>
> Subject: Re: [Nek5000-users] Interpolation between two meshes
> Message-ID:
>         <mailman.3915.1490730701.2967.nek5000-users at lists.mcs.anl.gov>
> Content-Type: text/plain; charset="iso-8859-1"
> 
> Hi Stefan,
> 
> 
> Many thanks for your reply. I'm running my simulations on ARCHER (Cray XC30 supercomputer) and I'm using the Intel compiler.
> 
> 
> The current simulation has 469500 elements with polynomial order of 7. The source field I used for interpolation has 383700 elements with the same polynomial order. The size of the source field is about 10GB. I'm not sure if it can be easily transferred. But
>  I have attached my .usr and log files herewith (also the gfldr.f with few added checking lines). I ran the interpolation using 720 processors.
> 
> 
> Please have a look and let me know if you need further information about the case. Thank you very much for you help.
> 
> 
> Best regards,
> 
> Tony
> _______________________________________________
> Nek5000-users mailing list
> Nek5000-users at lists.mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users


More information about the Nek5000-users mailing list