flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
Loading...
Searching...
No Matches
test_colocated_open_boundary Namespace Reference

Functions

 build ()
 
 test_colocated_open_boundary ()
 
 main ()
 

Variables

 H
 
 L
 
 NZ
 
 U
 
 RE
 
 DT
 
 STEPS
 

Detailed Description

Gate: the COLLOCATED solver stays stable and mass-conserving at an OPEN boundary.

Why this test exists. Nothing in the registered suite exercised the collocated open boundary:
every collocated ctest is either Stokes (no advecting velocity at all) or periodic/walled. So when
the collocated advecting velocity became the projected face field (`doc/uf_advection.md`), the
first version fed the last cell's upwind flux the one face `bcCorrectOutflow` sets from GLOBAL
continuity rather than from the fluid beside it -- a positive feedback loop that took the
developing channel to max|u| = 4.5e+02 by step 50 and NaN by step 69 -- and all 161 ctests passed.
`scripts/verify_colocated_channel.py` and `scripts/verify_colocated_bfs.py` caught it, but they
are ~20-minute full-fidelity studies. This is the cheap version of the same signal: one coarse
channel, one resolution, long enough to develop.

Checks, in the order they would fail:
  1. the field is finite (the failure above was a blow-up, not a bias);
  2. mass in == mass out (the outflow face is the mass-balance closure -- if advection corrupts it,
     this is what goes);
  3. the developed profile is Poiseuille, u_max/U_mean -> 1.5;
  4. the projected face field is still discretely divergence-free.

Run:  OMP_NUM_THREADS=4 OMP_PROC_BIND=false PYTHONPATH=<build> \
          python tests/python/test_colocated_open_boundary.py
Exit 0 pass, 1 fail, 77 skipped (no module).

Function Documentation

◆ build()

test_colocated_open_boundary.build ( )

Definition at line 33 of file test_colocated_open_boundary.py.

Referenced by test_colocated_open_boundary().

◆ test_colocated_open_boundary()

test_colocated_open_boundary.test_colocated_open_boundary ( )
Pytest entry point (tests/python is collected by ctest as pytest too).

Definition at line 51 of file test_colocated_open_boundary.py.

References build().

◆ main()

test_colocated_open_boundary.main ( )

Definition at line 74 of file test_colocated_open_boundary.py.

References main().

Referenced by main().

Variable Documentation

◆ H

test_colocated_open_boundary.H

Definition at line 29 of file test_colocated_open_boundary.py.

◆ L

test_colocated_open_boundary.L

Definition at line 29 of file test_colocated_open_boundary.py.

◆ NZ

test_colocated_open_boundary.NZ

Definition at line 29 of file test_colocated_open_boundary.py.

◆ U

test_colocated_open_boundary.U

Definition at line 30 of file test_colocated_open_boundary.py.

◆ RE

test_colocated_open_boundary.RE

Definition at line 30 of file test_colocated_open_boundary.py.

◆ DT

test_colocated_open_boundary.DT

Definition at line 30 of file test_colocated_open_boundary.py.

◆ STEPS

test_colocated_open_boundary.STEPS

Definition at line 30 of file test_colocated_open_boundary.py.