[Nek5000-users] Interpolation between two meshes

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


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.64212e+06 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.000000000000000E+000  0.000000000000000E+000  0.000000000000000E+000
  0.000000000000000E+000
  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.000000000000000E+000   6.00000000000000       Xrange
 -0.120000000000000        2.00000000000000       Yrange
  0.000000000000000E+000   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.000000000000000E+000   6.00000000000000       Xrange
 -0.120000000000000        2.00000000000000       Yrange
  0.000000000000000E+000   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.9312772E+35
 sourcefld X  0.000000000000000E+000   6.00000000000000
 sourcefld Y -0.120000000000000        2.00000000000000
 sourcefld Z  0.000000000000000E+000   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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20170328/4adae692/attachment-0001.html>


More information about the Nek5000-users mailing list