Giter Club home page Giter Club logo

nekexamples's Introduction

NekExamples

This repository contains number of examples illustrating different features of Nek5000 CFD solver. All examples are stored in separate sub-directories containing case description (README.md) and all the files necessary to run the simulation.

Example overview

Some examples provide additional pdf files for a more complete description.

  • benard
    • Test name : Benard_Ray9
    • Purpose : Rayleigh-Benard convection.
    • Features : * Customized acceleration term (userf)
  • blasius
    • Test name : Blasius
    • Purpose : Blasius boundary layer test case in 2D.
    • Features :
      • "ON " boundary condition (Outflow, Normal only)
  • cone/cone016, cone/cone064, cone/cone256
    • Test name : Cone16, Cone64, Cone256
    • Purpose : Convecting cone problem
    • Features :
  • conj_ht
    • Test name : ConjHt
    • Purpose : 2D Poiseiulle flow moving between two heated finite thickness plates
    • Features : * Conjugate heat transfer * Scalar solve with CVODE
  • conj_ht_frz
    • Test name : ConjHtFrz
    • Purpose : 2D Poiseiulle flow moving between two heated finite thickness
    • Features : * Temperature solve with frozen velocity
  • eddy_neknek
    • Test name : Eddy_Neknek
    • Purpose : Eddy solutions in doubly-periodic domain domains
    • Features : * Overlapping domains
  • eddy_psi_omega
    • Test name : Eddy_PsiOmega
    • Purpose : Eddy solutions in doubly-periodic domain using the streamfunction-vorticity (psi-omega) formulation
    • Features :
  • eddy_rich
    • Test name : Eddy_Rich
    • Purpose : Eddy solutions with moving boundary conditions
    • Features :
  • eddy_uv
    • Test name : Eddy_Uv
    • Purpose : Eddy solutions in doubly-periodic domain with an additional translational velocity
    • Features :
  • expansion
    • Test name : Expansion
    • Purpose : 3D expanding pipe.
    • Features :
  • ext_cyl
    • Test name : ExtCyl
    • Purpose : Flow past a cylinder in 2D.
    • Features :
      • Evaluating surface integral using objects
      • Saving history points
  • fs_2
    • Test name : Fs2_St1, Fs2_St2, Fs2_StdWv
    • Purpose : Free-Surface Channel Flow.
    • Features :
  • hemi
    • Test name : Hemi
    • Purpose : Particle tracking in flow past a hemispherical roughness.
    • Features : * Particle tracking using interpolation tool
  • kovasznay
    • Test name : Kov
    • Purpose : Kovasznay flow an analytical two-dimensional steady solution
    • Features :
  • lin_channel2D
    • Test name : LinCav_Adj, LinCav_Dir
    • Purpose : Linear direct and adjoint simulation of 2D differentially heated square cavity
    • Features :
  • lin_dfh_cav
    • Test name : LinChn_Adj, LinChn_Dir
    • Purpose : Linear direct and adjoint simulation of 2D Poiseuille flow
    • Features :
  • lowMach_test
    • Test name : LowMachTest
    • Purpose : Low-Mach number benchmark problem
    • Features : * Thermal divergence * Variable (solution depended) properties
  • mhd
    • Test name : Mhd_Gpf
    • Purpose : Helical Forcing Dynamo
    • Features :
  • moffatt
    • Test name : Moffatt, MoffCirc
    • Purpose : Moffatt eddies - Viscous Flow in a Wedge
    • Features :
  • mv_cyl
    • Test name : MvCylCvode
    • Purpose : Isentropic compression/expansion in a cylinder
    • Features : * User specified mesh motion * Varying thermodynamic pressure
  • mv_wall
    • Test name : MvWall
    • Purpose : 2D channel with a moving indentation
    • Features : * ALE * Outflow treatment to prevent backflow
  • ocyl
    • Test name : Ocyl, Ocyl2
    • Purpose : Oscillating cylinder
    • Features : * Linear elasticity solver * ALE
  • os7000
    • Test name : Os7000
    • Purpose : TS waves in plane Poiseuille flow
    • Features :
  • peris
    • Test name : Peris
    • Purpose : Peristaltic flow.
    • Features : * Moving mesh with ALE * Outflow treatment to prevent backflow
  • phill
    • Test name : Phill
    • Purpose : 3D flow over periodic hill
    • Features :
      • Mesh manipluation
  • pipe
    • Test name : Pipe_Helix, Pipe_Stenosis, Pipe_Cyclic
    • Purpose : Pipe flow
    • Features :
      • Mesh manipluation
      • Mesh extrusion
      • Cyclic boundary condition
      • Volume forcing for azimuthal flow
  • RANSChannel
    • Test name : RANSChannel
    • Purpose : Turbulent channel flow
    • Features : * kOmg turbulence model
  • rayleigh
    • Test name : Rayleigh_Ray1, Rayleigh_Ray2
    • Purpose : Rayleigh-Benard convection
    • Features :
  • robin
    • Test name : Robin
    • Purpose : Unsteady conduction with Robin boundary conditions
    • Features :
  • shear4
    • Test name : Shear4_Shear4, Shear4_Thin
    • Purpose : Double shear-layer rollup
    • Features : * Filtering
  • smoother
    • Test name : Smooth
    • Purpose : Mesh smoothing
    • Features :
  • solid
    • Test name : Solid
    • Purpose : Thick-wall hollow sphere under an internal pressure
    • Features : * Steady elastic solver
  • strat
    • Test name : Strat_P0001, Strat_P1000
    • Purpose : Stratified 2D flow
    • Features :
  • taylor
    • Test name : Taylor
    • Purpose : Taylor-Couette flow
    • Features :
  • tgv
    • Test name : Tgv
    • Purpose : Taylor Green Vortex flow
    • Features : * Performing a full restart
  • turbChannel
    • Test name : TurbChannel
    • Purpose : Turbulent channel flow
    • Features : * AMG coarse grid solver * OIFS * High pass filter relaxation term * Computing wall shear stress using objects * Runnig averages computed by avg_all * Planar averaging * Extract 1D statistics using interpolation
  • turbJet
    • Test name : TurbJet
    • Purpose : LES of a round turbulent jet
    • Features : * NEK-NEK to generate fully turbulent inflow boundary * OIFS * High pass filter relaxation term * Outflow treatment to prevent backflow
  • turbPipe
    • Test name : TurbPipe
    • Purpose : Round turbulent pipe flow
    • Features :
  • vortex
    • Test name : Vortex
    • Purpose : Vortex breakdown in a container with a rotating lid
    • Features :
  • vortex2
    • Test name : Vortex2
    • Purpose : Vortex breakdown in a container with a rotating lid
    • Features : * Axissymmetric formulation
  • bp5
    • Test name : bp5
    • Purpose : Ceed benchmark solving a standard Poisson equation
    • Features :
  • e3q
    • Test name : e3q
    • Purpose : Eddy 3D test problem for code valiation
    • Features :

nekexamples's People

Contributors

adampep avatar aobabko avatar dshaver-anl avatar fischer1 avatar ggiannako avatar hackljf avatar kent0 avatar klheisey avatar kmittal2 avatar konerr avatar maxhutch avatar nicooff avatar oana-marin-codes avatar ronrahaman avatar stgeke avatar ypeet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nekexamples's Issues

ExtCyl, PnPn-2 failure

The ExtCyl, PnPn-2 test case fails with the following message:

1:     FAILURE: 1dragx: Test value 1.21392285787 exceeds target value 1.2138878 +/- 1e-05

The first broken commit is:
Nek5000/Nek5000@9bf13ae

Renaming test case methods

@oanaoana requested that we rename the test case methods. The capitalization scheme is admittedly a little confusing. I named the methods:

  • test_PnPn_Serial
  • test_PnPn_Parallel
  • test_PnPn2_Serial
  • test_PnPn2_Parallel
    And I propose changing them to
  • test_pnpn_serial
  • test_pnpn_parallel
  • test_pnpn2_serial
  • test_pnpn2_parallel

Hemi, PnPn-2

The Hemi, PnPn-2 test case fails at link time with the following error:

mpif77 -o nek5000 obj/hemi.o obj/drive.o obj/drive1.o obj/drive2.o obj/plan4.o obj/bdry.o obj/coef.o obj/conduct.o obj/connect1.o obj/connect2.o obj/dssum.o obj/edgec.o obj/eigsolv.o obj/gauss.o obj/genxyz.o obj/navier1.o obj/makeq.o obj/navier0.o obj/navier2.o obj/navier3.o obj/navier4.o obj/prepost.o obj/speclib.o obj/map2.o obj/turb.o obj/mvmesh.o obj/ic.o obj/gfldr.o obj/ssolv.o obj/planx.o obj/math.o obj/mxm_wrapper.o obj/hmholtz.o obj/gfdm_par.o obj/gfdm_op.o obj/gfdm_solve.o obj/subs1.o obj/subs2.o obj/genbox.o obj/gmres.o obj/hsmg.o obj/convect.o obj/induct.o obj/perturb.o obj/navier5.o obj/navier6.o obj/navier7.o obj/navier8.o obj/fast3d.o obj/fasts.o obj/calcz.o obj/byte.o obj/chelpers.o obj/byte_mpi.o obj/postpro.o obj/intp_usr.o obj/cvode_driver.o obj/nek_comm.o obj/vprops.o obj/makeq_aux.o obj/papi.o obj/nek_in_situ.o obj/readat_new.o obj/reader_re2.o obj/finiparser.o obj/iniparser.o obj/dictionary.o obj/mxm_std.o obj/comm_mpi.o obj/singlmesh.o obj/blas.o obj/dsygv.o -L/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/3rd_party/gslib/src -lgs 
obj/hemi.o: In function `particle_out_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/NekExamples/hemi/hemi.f:469:(.text+0x14f): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/NekExamples/hemi/hemi.f:470:(.text+0x16d): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/NekExamples/hemi/hemi.f:475:(.text+0x227): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
obj/drive2.o: In function `dofcnt_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/drive2.f:1585:(.text+0x9314): relocation truncated to fit: R_X86_64_PC32 against symbol `scrns_' defined in COMMON section in obj/convect.o
obj/plan4.o: In function `crespsp_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/plan4.f:237:(.text+0xc65): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/plan4.f:252:(.text+0xd18): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/plan4.f:263:(.text+0xdab): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/plan4.f:246:(.text+0x10fb): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
obj/bdry.o: In function `trst3d_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/bdry.f:1662:(.text+0x387): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
obj/coef.o: In function `area3_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/coef.f:1221:(.text+0x3ce): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/coef.f:1221:(.text+0x3d5): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
make: *** [nek5000] Error 1

port all SIZE files

In Nek5000/short_tests/, we have already ported all the SIZE files over to the new format (which includes a longer SIZE.inc file). We should do the same with NekExamples/*

IFCHAR = T ??

I notice that several examples have ifchar=T.

Some don't even use a dt big enough to warrant such usage (e.g., cyl_restart case).

I think all examples (except for short tests designed to test Characteristics) should have IFCHAR F unless we really want to show off CFL >> 1.

Otherwise, jobs will run twice as slow. People often start with one of the examples and modify it to suit their needs without realizing that IFCHAR=T.

(This happened in one of the large KTH runs that George did for pipe flow. He was running with CFL=0.5 and IFCHAR T. Turning that to F sped the code up by 2X and would have saved a million core hours---it was my fault for not paying attention earlier that time.)

Can we / should we switch all the examples to have default IFCHAR F (since the decision
to use Characteristics is typically a more advanced-user decision) ?

Fs2_StdWv, PnPn-2

The Fs2_StdWv, PnPn test case fails with the following error:

1:     FAILURE: amp: Test value 0.1403051 exceeds target value 0.1403287 +/- 1e-06

Nek5000/Nek5000@f0266aa is the first bad commit

modification of CylRestart tests

I would like to reorganize CylRestart tests. Right now we have 4 test ca, cb, pa, pb running independently pn-pn and pn-pn-2. It is not what one could expect, as ca should prepare restart files for cb, and pn-pn restart files differ with pn-pn-2 ones. So I would like to merge ca with cb and pa with pb. Is it ok?

Hemi, PnPn

The Hemi, PnPn test case fails at link time with the following error:

mpif77 -o nek5000 obj/hemi.o obj/drive.o obj/drive1.o obj/drive2.o obj/plan4.o obj/bdry.o obj/coef.o obj/conduct.o obj/connect1.o obj/connect2.o obj/dssum.o obj/edgec.o obj/eigsolv.o obj/gauss.o obj/genxyz.o obj/navier1.o obj/makeq.o obj/navier0.o obj/navier2.o obj/navier3.o obj/navier4.o obj/prepost.o obj/speclib.o obj/map2.o obj/turb.o obj/mvmesh.o obj/ic.o obj/gfldr.o obj/ssolv.o obj/planx.o obj/math.o obj/mxm_wrapper.o obj/hmholtz.o obj/gfdm_par.o obj/gfdm_op.o obj/gfdm_solve.o obj/subs1.o obj/subs2.o obj/genbox.o obj/gmres.o obj/hsmg.o obj/convect.o obj/induct.o obj/perturb.o obj/navier5.o obj/navier6.o obj/navier7.o obj/navier8.o obj/fast3d.o obj/fasts.o obj/calcz.o obj/byte.o obj/chelpers.o obj/byte_mpi.o obj/postpro.o obj/intp_usr.o obj/cvode_driver.o obj/nek_comm.o obj/vprops.o obj/makeq_aux.o obj/papi.o obj/nek_in_situ.o obj/readat_new.o obj/reader_re2.o obj/finiparser.o obj/iniparser.o obj/dictionary.o obj/mxm_std.o obj/comm_mpi.o obj/singlmesh.o obj/blas.o obj/dsygv.o -L/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/3rd_party/gslib/src -lgs 
obj/hemi.o: In function `particle_out_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/NekExamples/hemi/hemi.f:469:(.text+0x14f): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/NekExamples/hemi/hemi.f:470:(.text+0x16d): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/NekExamples/hemi/hemi.f:475:(.text+0x227): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
obj/drive2.o: In function `dofcnt_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/drive2.f:1585:(.text+0x9314): relocation truncated to fit: R_X86_64_PC32 against symbol `scrns_' defined in COMMON section in obj/convect.o
obj/plan4.o: In function `crespsp_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/plan4.f:237:(.text+0xc65): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/plan4.f:252:(.text+0xd18): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/plan4.f:263:(.text+0xdab): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/plan4.f:246:(.text+0x10fb): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
obj/plan4.o: In function `plan4_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/plan4.f:80:(.text+0x17f1): relocation truncated to fit: R_X86_64_32S against symbol `orthov_' defined in COMMON section in obj/induct.o
obj/bdry.o: In function `trst3d_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/bdry.f:1662:(.text+0x387): relocation truncated to fit: R_X86_64_32S against symbol `scrns_' defined in COMMON section in obj/convect.o
obj/coef.o: In function `area3_':
/sandbox/jenkins-ci/workspace/Nek5000/COMPILER/gnu/TEST_CASE/Hemi/Nek5000/core/coef.f:1221:(.text+0x3ce): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
make: *** [nek5000] Error 1

Add overview to README

We should add an overview of all examples to the README.

Example Description Used Features
lowMach
eddy
...

new SIZE for mhd tests Mhd_GpfB and Mhd_GpfM

mhd tests Mhd_GpfB and Mhd_GpfM use fast diagonalization method that require lfdm to be set to 1. Right now it is set to 0 by default in SIZE.inc, which be default should not be changed. We should move lfdm to SIZE for this tests

FsHydro, PnPn failure

The FsHydro, PnPn example fails with the following error:

1:     FAILURE: gmres: Test value 520.0 exceeds target value 0.0 +/- 108.0
2:     FAILURE: AMP: Test value -75.894666 exceeds target value -6.4616452e-05 +/- 0.002

Note that these reference values for have not been established. See #22 for further discussion.

Compiling prenek fails

Hi all,

I'm not sure if NekTools has any regression testing, but I tried cloning Nek5000 to find that prenek won't compile. I'm running on Ubuntu 16.10. Here is what the problem seems to be:

gfortran -o /home/gavin/code/Nek5000/bin/prex prenek.o curve.o edit.o build.o build1.o build2.o bound.o plot.o xinterface.o glomod.o legend.o vprops.o iolib.o subs.o zipper2.o postnek6.o screen.o revert.o crs.o mxm.o xdriver.o  -L/usr/lib/X11 -lX11 -lm
curve.o: In function `hex_transition_3d_e_':
curve.f:(.text+0x6f07): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x6f0e): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x6f15): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x6f2f): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x6fb0): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x6fef): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x702e): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x706d): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x7074): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x70c0): relocation truncated to fit: R_X86_64_PC32 against symbol `ctmp2_' defined in COMMON section in zipper2.o
curve.f:(.text+0x70c7): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
makefile:34: recipe for target 'prex' failed

Can anyone provide some guidance on this? It would be much appreciated.

Have a nice day,

Gavin Ridley

online documentation - small correction

In the instructions -- it says type "ethier" ... but I guess it should be type "turbChannel" ?

cd ~
tar -xvzf Nek5000_17.0.0.tar.gz
export PATH=$HOME/Nek5000/bin:$PATH
cd ~/Nek5000/tools; ./maketools genmap
cd ~/Nek5000/run
cp -r ../examples/turbChannel .
cd turbChannel
genmap # run partioner, on input type ethier
makenek turbChannel # build case, edit script to change settings
nekbmpi turbChannel 2 # run Nek5000 on 2 ranks in the background
echo -2 >ioinfo # stop Nek5000 run and dump checkpoint
visnek turbChannel; visit -o turbChannel.nek5000 # requires a VisIt installation

Reference solutions for PnPn test cases

In the legacy test suite, the following test cases were expected to ABORT.

  • fs_2/st1.rea, PnPn
  • fs_2/std_wv.rea, PnPn
  • `fs_hydro/fs_hydro.rea``, PnPn
  • peris/peris.rea, PnPn
  • solid/solid.rea, PnPn
  • var_vis/var_vis.rea, PnPn

The PnPn solver has since been updated, and those test cases are not expected to ABORT. Hence, we should establish reference solutions and add them to the NekTests.py

Fs2_St1, PnPn failure

The Fs2_St1, PnPn test fails with the following messages:

1:     FAILURE: gmres: Test value 520.0 exceeds target value 0.0 +/- 38.0
2:     FAILURE: amp: Test value 0.6977515 exceeds target value 0.6382414 +/- 1e-06

Note that these reference values for have not been established. See #22 for further discussion.

Describe workflow for manually running examples

The README exclusively describes the usage of NekTests.py. This is an artifact of the development process. There was never a proper README for the NekExamples repo, but there was a README for the deprecated NekTests repo. When I moved the relevant bits of NekTests to NekExamples, I just copied the NekTests' README, too.

As it is, users might mistakenly believe that NekTests.py is the intended way to run examples, rather than a tool for software testing. This was certainly the case in a recent post to the mailing list.

We should describe how to manually run the examples, and we should do so before we describe the usage of NekTests.py.

lowMach_test.rea misnamed

The test case for lowMach_test is looking for an .rea file misnamed "lowmach_test.rea" (note capitalization). The test case fails when it can't find the misnamed .rea file.

Rayleigh_Ray1, PnPn-2

The Rayleigh_Ray1, PnPn-2 test case fails with the following error:

1:     FAILURE: umax: Test value 0.004814308 exceeds target value 0.004831113 +/- 1e-05

Nek5000/Nek5000@ab95320 is the first bad commit

problems tweaking mhd/SIZE

In lib/nekFileConfig.py, we tweak lx2, ly2, and lz2 in the SIZE file by doing regex substitutions:

 re.sub(r'(^ {6}parameter *\( *lx2 *= *)\S+?( *\))', r'\g<1>{0}\g<2>'.format(lx2), l)

However, in mhd/SIZE, the declarations of lx2 and ly2 are capitalized differently from normal:

      PARAMETER (lx2=lx1-2) 
      PARAMETER (ly2=ly1-2)

So these values don't get tweaked correctly.

I think we can change the regex substitution to a case-insensitive one. (Might want to do this for all substitutions in the NekTests library?)

Fs2_StdWv, PnPn failure

The Fs2_StdWv, PnPn test case fails with the following error:

1:     FAILURE: gmres: Test value 520.0 exceeds target value 0.0 +/- 20.0
2:     FAILURE: amp: Test value 0.6533972 exceeds target value 0.1403287 +/- 1e-06

Note that these reference values for have not been established. See #22 for further discussion.

Hemi failure

The Hemi PnPn and PnPn-2 tests fail at link-time with these errors:

mpif77 -o nek5000 obj/hemi.o obj/drive.o obj/drive1.o obj/drive2.o obj/plan4.o obj/bdry.o obj/coef.o obj/conduct.o obj/connect1.o obj/connect2.o obj/dssum.o obj/edgec.o obj/eigsolv.o obj/gauss.o obj/genxyz.o obj/navier1.o obj/makeq.o obj/navier0.o obj/navier2.o obj/navier3.o obj/navier4.o obj/prepost.o obj/speclib.o obj/map2.o obj/turb.o obj/mvmesh.o obj/ic.o obj/gfldr.o obj/ssolv.o obj/planx.o obj/math.o obj/mxm_wrapper.o obj/hmholtz.o obj/gfdm_par.o obj/gfdm_op.o obj/gfdm_solve.o obj/subs1.o obj/subs2.o obj/genbox.o obj/gmres.o obj/hsmg.o obj/convect.o obj/induct.o obj/perturb.o obj/navier5.o obj/navier6.o obj/navier7.o obj/navier8.o obj/fast3d.o obj/fasts.o obj/calcz.o obj/byte.o obj/chelpers.o obj/byte_mpi.o obj/postpro.o obj/cvode_driver.o obj/nek_comm.o obj/vprops.o obj/makeq_aux.o obj/papi.o obj/nek_in_situ.o obj/readat_new.o obj/reader_re2.o obj/finiparser.o obj/iniparser.o obj/dictionary.o obj/mxm_std.o obj/comm_mpi.o obj/singlmesh.o obj/blas.o obj/dsygv.o obj/ssygv.o obj/jl_gs.o obj/jl_sort.o obj/jl_sarray_transfer.o obj/jl_sarray_sort.o obj/jl_gs_local.o obj/jl_crystal.o obj/jl_comm.o obj/jl_tensor.o obj/jl_fail.o obj/jl_fcrystal.o obj/jl_findpts.o obj/jl_findpts_local.o obj/jl_obbox.o obj/jl_poly.o obj/jl_lob_bnd.o obj/jl_findpts_el_3.o obj/jl_findpts_el_2.o obj/jl_sparse_cholesky.o obj/jl_xxt.o obj/jl_fcrs.o 
obj/hemi.o: In function `interp_v_':
/sandbox/jenkins-ci/workspace/Nek5000-PGI/NekExamples/hemi/hemi.f:356: undefined reference to `intpts_setup_'
/sandbox/jenkins-ci/workspace/Nek5000-PGI/NekExamples/hemi/hemi.f:359: undefined reference to `intpts_'
make: *** [nek5000] Error 2

Peris, PnPn

The Peris, PnPn test case fails with the following error:

1:     FAILURE: gmres: Test value 25.0 exceeds target value 0.0 +/- 18.0

CylRestart_P

There is a problem with projection in this case. I cannot reproduce it on my machine, but I've got other case that bows up with projection turned on

Fs2_St2, PnPn failure

The Fs2_St2, PnPn test fails with this error:

1:     FAILURE: gmres: Test value 520.0 exceeds target value 0.0 +/- 38.0
2:     FAILURE: amp: Test value 0.6981582 exceeds target value 0.6376171 +/- 1e-06

Nek5000/Nek5000@843a5f8 is the first bad commit

Trapping Fortran errors in subprocesses

In lib/nekBinRun.py, the functions run_meshgen`` andrun_nekdon't trap the Fortran runtime errors in the called subprocesses. This should be fixed; otherwise,NekTests.py``` will incorrectly report that subprocesses (esp. genmap and genbox) have succeeded.

Add remaining test cases

We still need to implement some test cases from the legacy test suite. These are trickier than the others, so I've been procrastinating. :)

  • 2d_eigtest/eig1.rea
  • benard/ray9.rea
  • benard/ray_dn.rea
  • benard/ray_nn.rea
  • cone/cone.rea
  • cone/cone016.rea
  • cone/cone064.rea
  • cone/cone256.rea
  • eddy/amg_eddy.rea
  • eddy/htps_ed.rea
  • eddy_neknek/eddy_neknek.rea
  • expansion/expansion.rea

ExtCyl: Could not find label "gmres: "

I tried to run the automatic test for the ext_cyl case with the 'release/v16.0.0' branch. While it seems that the runs work fine, the tests fail and I get the following error message:

ValueError: Could not find label "gmres: " in logfile ".../NekExamples/ext_cyl/ext_cyl.log.1.pn_pn.parallel". The run may have failed.

After a short investigation, it turns out that the label "gmres: " has been replaced by "gmres " (without the colon) in the logfile produced with the branch 'release/v16.0.0'.
This is not a big issue but if I fix the problem for the branch 'release/v16.0.0', the test might not work any more with the branches 'master' or 'develop'. How would you recommend to solve this issue?

Renaming TestCase subclasses

@oanaoana requested that we rename the TestCase subclasses to exactly match the example subdirectories. For example, we would rename the "FsHydro" subclass to "fs_hyrdo".

This change would disobey naming conventions (not syntax rules) for class names. However, this would make things easier for users who don't care about the internals.

For example, right now, you would run a test case like:

python -m 'unittest' NekTests.FsHydro 

and with the proposed change, you would run a test case like this:

python -m 'unittest' NekTests.fs_hydro

That is, you don't need to remember separate class names and directory names.

Eddy_PsiOmega

The Eddy_PsiOmega PnPn and PnPn-2 tests fail at runtime with an apparent segfault during or after userchk:

done :: set initial conditions
  
 call userchk

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 15410 RUNNING AT churn
=   EXIT CODE: 139
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions
Finished running nek5000!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.