Inciter: Integrating the scalar advection equation for a non-smooth problem
This example runs Inciter to integrate the advection equation (see e.g., PDE/Transport/CGTransport.h) configured to solve the Zalesak's slotted cylinder (inciter::
Control file
# vim: filetype=sh: # This is a comment # Keywords are case-sensitive title "Zalesak's slotted cylinder" inciter #nstep 10 # Max number of time steps #term 6.28318530718 # Max time = 2*pi term 1.57079632679 # Max time = pi/2 #term 0.78539816339 # Max time = pi/4 #term 0.39270 # Max time = pi/8 cfl 0.5 ttyi 10 # TTY output interval ctau 1.0 # FCT mass diffusivity transport physics advection problem slot_cyl ncomp 1 end field_output interval 100 end end
Example run on 80 CPUs
./charmrun +p80 Main/inciter -v -c slot_cyl.q -i unitcube_01_6M.exo
Output
Running on 80 processors: Main/inciter -v -c slot_cyl.q -i unitcube_01_6M.exo
charmrun> /usr/bin/setarch x86_64 -R mpirun -np 80 Main/inciter -v -c slot_cyl.q -i unitcube_01_6M.exo
App launch reported: 5 (out of 5) daemons - 16 (out of 80) procs
Charm++> Running on MPI version: 3.1
Charm++> level of thread support used: MPI_THREAD_SINGLE (desired: MPI_THREAD_SINGLE)
Charm++> Running in non-SMP mode: numPes 80
Converse/Charm++ Commit ID:
CharmLB> Load balancer assumes all CPUs are same.
Charm++> Running on 5 unique compute nodes (16-way SMP).
Charm++> cpu topology info is gathered in 0.029 seconds.
,::,` `.
.;;;'';;;: ;;#
;;;@+ +;;; ;;;;;, ;;;;. ;;;;;, ;;;; ;;;; `;;;;;;: ;;;
:;;@` :;;' .;;;@, ,;@, ,;;;@: .;;;' .;+;. ;;;@#:';;; ;;;;'
;;;# ;;;: ;;;' ;: ;;;' ;;;;; ;# ;;;@ ;;; ;+;;'
.;;+ ;;;# ;;;' ;: ;;;' ;#;;;` ;# ;;@ `;;+ .;#;;;.
;;;# :;;' ;;;' ;: ;;;' ;# ;;; ;# ;;;@ ;;; ;# ;;;+
;;;# .;;; ;;;' ;: ;;;' ;# ,;;; ;# ;;;# ;;;: ;@ ;;;
;;;# .;;' ;;;' ;: ;;;' ;# ;;;; ;# ;;;' ;;;+ ;', ;;;@
;;;+ ,;;+ ;;;' ;: ;;;' ;# ;;;' ;# ;;;' ;;;' ;':::;;;;
`;;; ;;;@ ;;;' ;: ;;;' ;# ;;;';# ;;;@ ;;;:,;+++++;;;'
;;;; ;;;@ ;;;# .;. ;;;' ;# ;;;;# `;;+ ;;# ;# ;;;'
.;;; :;;@ ,;;+ ;+ ;;;' ;# ;;;# ;;; ;;;@ ;@ ;;;.
';;; ;;;@, ;;;;``.;;@ ;;;' ;+ .;;# ;;; :;;@ ;;; ;;;+
:;;;;;;;+@` ';;;;;'@ ;;;;;, ;;;; ;;+ +;;;;;;#@ ;;;;. .;;;;;;
.;;#@' `#@@@: ;::::; ;:::: ;@ '@@@+ ;:::; ;::::::
:;;;;;;. .___ .__ __
.;@+@';;;;;;' | | ____ ____ |__|/ |_ ___________
` '#''@` | |/ \_/ ___\| \ __\/ __ \_ __ \
| | | \ \___| || | \ ___/| | \/
|___|___| /\___ >__||__| \___ >__|
\/ \/ \/
< ENVIRONMENT >
------ o ------
* Build environment:
--------------------
Hostname : pi012.localdomain
Executable : inciter
Version : 0.1 (C16015)
Revision SHA1 : Quinoa_v0.1-914-g40abfa9
CMake build type : RELEASE
Asserts : off (turn on: CMAKE_BUILD_TYPE=DEBUG)
Exception trace : off (turn on: CMAKE_BUILD_TYPE=DEBUG)
MPI C++ wrapper : /usr/projects/hpcsoft/toss2/pinto/openmpi/2.0.2-gcc-6.1.0/bin/mpicxx
Underlying C++ compiler : /usr/projects/hpcsoft/toss2/common/gcc/6.1.0/bin/g++
Build date : Sun Jun 4 13:54:29 MDT 2017
* Run-time environment:
-----------------------
Date, time : Mon Jun 5 09:44:41 2017
Work directory : /net/scratch2/jbakosi/code/quinoa/build/gnup
Executable (rel. to work dir) : Main/inciter
Command line arguments : '-v -c slot_cyl.q -i unitcube_01_6M.exo'
Output : verbose (quiet: omit -v)
Control file : slot_cyl.q
Parsed control file : success
< FACTORY >
---- o ----
* Unknowns data layout (CMake: FIELD_DATA_LAYOUT):
--------------------------------------------------
unknown-major
* Registered partial differential equations:
--------------------------------------------
Unique equation types : 2
With all policy combinations : 12
Legend: equation name : supported policies
Policy codes:
* h: physics configuration:
A - Advection
D - Advection + diffusion
L - Laplace
N - Navier-Stokes
E - Euler
* r: problem:
U - User-defined
S - Shear-diffusion
D - Dirichlet & Neumann
V - Vortical flow
V - Nonlinear energy growth
V - Rayleigh-Taylor
Z - Zalesak's slotted cylinder
Compressible flow : h:EN, r:UV
Transport : h:AD, r:SZ
< PROBLEM >
---- o ----
* Title: Zalesak's slotted cylinder
-----------------------------------
* Partial differential equations integrated (1):
------------------------------------------------
< Transport >
problem : Zalesak's slotted cylinder
start offset in unknowns array : 0
number of components : 1
* Discretization parameters:
----------------------------
Number of time steps : 18446744073709551615
Start time : 0
Terminate time : 1.5708
CFL coefficient : 0.5
Mass diffusion coeff : 1
* Output filenames:
-------------------
Field : out.<chareid>
Diagnostics : diag
* Output intervals:
-------------------
TTY : 10
Field : 100
Diagnostics : 1
Quinoa> Reading side sets ... done
Quinoa> Creating linear system mergers
Quinoa> Creating particle writers
Quinoa> Creating partitioners and reading mesh graph ... done
* Input mesh graph statistics:
------------------------------
Number of tetrahedra : 6000000
Number of nodes : 1030301
* Load distribution:
--------------------
Virtualization [0.0...1.0] : 0
Load (number of tetrahedra) : 6000000
Number of processing elements : 80
Number of work units : 80 (79*75000+75000)
* Initial mesh partitioning:
----------------------------
Mesh partitioning algorithm : recursive coordinate bisection
Quinoa> Mesh read time: 0.232970 sec
Quinoa> Partitioning and distributing mesh ... ZOLTAN Load balancing method = 3 (RCB)
Build configuration:
ZOLTAN_ID_TYPE: unsigned int (4 bytes)
ZOLTAN_GNO_TYPE: ssize_t, (8 bytes)
MPI_Datatype for ZOLTAN_ID_TYPE: MPI_UNSIGNED
MPI_Datatype for ZOLTAN_GNO_TYPE: MPI_LONG
ZOLTAN Parameter IMBALANCE_TOL[0] = 1.100000
ZOLTAN Parameter AUTO_MIGRATE = FALSE
ZOLTAN Parameter MIGRATE_ONLY_PROC_CHANGES = 1
ZOLTAN Parameter OBJ_WEIGHT_DIM = 0
ZOLTAN Parameter EDGE_WEIGHT_DIM = 0
ZOLTAN Parameter DEBUG_LEVEL = 1
ZOLTAN Parameter DEBUG_PROCESSOR = 0
ZOLTAN Parameter DETERMINISTIC = TRUE
ZOLTAN Parameter TIMER = 1 (wall)
ZOLTAN Parameter NUM_GID_ENTRIES = 2
ZOLTAN Parameter NUM_LID_ENTRIES = 2
ZOLTAN Parameter RETURN_LISTS = PARTITION ASSIGNMENTS
ZOLTAN Parameter NUM_GLOBAL_PARTS = 80
ZOLTAN Parameter NUM_LOCAL_PARTS = -1
ZOLTAN Parameter REMAP = 1
ZOLTAN Parameter SEED = 123456789 (123456789)
ZOLTAN Parameter LB_APPROACH = repartition
ZOLTAN Parameter RCB_OVERALLOC = 1.200000
ZOLTAN Parameter RCB_REUSE = 0
ZOLTAN Parameter CHECK_GEOM = 1
ZOLTAN Parameter RCB_OUTPUT_LEVEL = 0
ZOLTAN Parameter KEEP_CUTS = 0
ZOLTAN Parameter RCB_LOCK_DIRECTIONS = 0
ZOLTAN Parameter RCB_SET_DIRECTIONS = 0
ZOLTAN Parameter RCB_RECTILINEAR_BLOCKS = 0
ZOLTAN Parameter OBJ_WEIGHTS_COMPARABLE = 0
ZOLTAN Parameter RCB_MULTICRITERIA_NORM = 1
ZOLTAN Parameter RCB_MAX_ASPECT_RATIO = 10.000000
ZOLTAN Parameter AVERAGE_CUTS = 0
ZOLTAN Parameter RANDOM_PIVOTS = 0
ZOLTAN Parameter RCB_RECOMPUTE_BOX = 0
ZOLTAN Parameter REDUCE_DIMENSIONS = 0
ZOLTAN Parameter DEGENERATE_RATIO = 0.000000
ZOLTAN Parameter FINAL_OUTPUT = 0
ZOLTAN Parameter KEEP_CUTS = 0
ZOLTAN Parameter REDUCE_DIMENSIONS = 0
ZOLTAN Parameter DEGENERATE_RATIO = 10.000000
done
Quinoa> Reordering mesh ... done
Quinoa> Creating workers
Quinoa> Linear system communication cost: avg = 0.112230, std = 0.070685
Quinoa> Reading mesh node coordinates, computing nodal volumes
Quinoa> Mesh statistics: min/max/avg(edgelength) = 0.010000 / 0.017321 / 0.012753
Quinoa> Mesh statistics: min/max/avg(V^{1/3}) = 0.005503 / 0.005503 / 0.005503
Quinoa> Computing row IDs, querying BCs, outputting mesh done
Quinoa> Setting and outputting ICs, computing initial dt, computing LHS ... done
Quinoa> Starting time stepping ...
* Time integration: Unstructured-mesh PDE solver testbed
--------------------------------------------------------
Legend: it - iteration count
t - time
dt - time step size
ETE - estimated time elapsed (h:m:s)
ETA - estimated time for accomplishment (h:m:s)
out - output-saved flags (F: field, D: diagnostics)
it t dt ETE ETA out
---------------------------------------------------------------
10 3.891359e-02 3.891359e-03 000:00:04 000:02:42 D
20 7.782717e-02 3.891359e-03 000:00:08 000:02:38 D
30 1.167408e-01 3.891359e-03 000:00:12 000:02:35 D
40 1.556543e-01 3.891359e-03 000:00:16 000:02:32 D
50 1.945679e-01 3.891359e-03 000:00:20 000:02:28 D
60 2.334815e-01 3.891359e-03 000:00:25 000:02:24 D
70 2.723951e-01 3.891359e-03 000:00:29 000:02:20 D
80 3.113087e-01 3.891359e-03 000:00:33 000:02:16 D
90 3.502223e-01 3.891359e-03 000:00:38 000:02:12 D
100 3.891359e-01 3.891359e-03 000:00:59 000:03:01 FD
110 4.280494e-01 3.891359e-03 000:01:04 000:02:51 D
120 4.669630e-01 3.891359e-03 000:01:08 000:02:41 D
130 5.058766e-01 3.891359e-03 000:01:12 000:02:33 D
140 5.447902e-01 3.891359e-03 000:01:17 000:02:25 D
150 5.837038e-01 3.891359e-03 000:01:21 000:02:17 D
160 6.226174e-01 3.891359e-03 000:01:25 000:02:10 D
170 6.615310e-01 3.891359e-03 000:01:30 000:02:04 D
180 7.004445e-01 3.891359e-03 000:01:34 000:01:57 D
190 7.393581e-01 3.891359e-03 000:01:39 000:01:51 D
200 7.782717e-01 3.891359e-03 000:01:54 000:01:56 FD
210 8.171853e-01 3.891359e-03 000:01:58 000:01:49 D
220 8.560989e-01 3.891359e-03 000:02:03 000:01:42 D
230 8.950125e-01 3.891359e-03 000:02:07 000:01:36 D
240 9.339261e-01 3.891359e-03 000:02:12 000:01:30 D
250 9.728396e-01 3.891359e-03 000:02:16 000:01:24 D
260 1.011753e+00 3.891359e-03 000:02:21 000:01:18 D
270 1.050667e+00 3.891359e-03 000:02:26 000:01:12 D
280 1.089580e+00 3.891359e-03 000:02:30 000:01:06 D
290 1.128494e+00 3.891359e-03 000:02:35 000:01:00 D
300 1.167408e+00 3.891359e-03 000:02:41 000:00:55 FD
310 1.206321e+00 3.891359e-03 000:02:46 000:00:50 D
320 1.245235e+00 3.891359e-03 000:02:50 000:00:44 D
330 1.284148e+00 3.891359e-03 000:02:54 000:00:39 D
340 1.323062e+00 3.891359e-03 000:02:59 000:00:33 D
350 1.361976e+00 3.891359e-03 000:03:03 000:00:28 D
360 1.400889e+00 3.891359e-03 000:03:08 000:00:22 D
370 1.439803e+00 3.891359e-03 000:03:12 000:00:17 D
380 1.478716e+00 3.891359e-03 000:03:17 000:00:12 D
390 1.517630e+00 3.891359e-03 000:03:21 000:00:07 D
400 1.556543e+00 3.891359e-03 000:03:39 000:00:02 FD
Normal finish, maximum time reached: 1.570796
* Timers (h:m:s):
-----------------
Migrate global-scope data : 0:0:0
Total runtime : 0:4:23
[Partition 0][Node 0] End of program
Example visualization
Example visualization of the 3D field data result with ParaView.
paraview out.0