-
Notifications
You must be signed in to change notification settings - Fork 128
Immersed boundaries integration with IGR #1095
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
af75f84
1340497
b07045b
489bc7c
d914ba3
3e92773
4be08cc
27ea826
845c9b5
a8c9629
01e6492
e28a2c9
a914653
a29bac8
b31dd3a
5a6a5a8
bcce655
31fce2a
6c756a0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # Forward Facing Step With IGR (2D) | ||
|
|
||
| Reference: See Section IV, b. | ||
| > Woodward, P. *(1984). The numerical simulation of two-dimensional fluid flow with strong shocks. Journal of Computational Physics, 54(1), 115–173. https://doi.org/10.1016/0021-9991(84)90140-2* | ||
|
|
||
| ### Evolved State | ||
| <img src="figure.png" height="MAX_HEIGHT"/> | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,97 @@ | ||||||
| import json | ||||||
| import math | ||||||
|
|
||||||
| h = 0.2 | ||||||
|
|
||||||
| # Radius as a percentage of height (h) | ||||||
| rc = 0.2 | ||||||
|
|
||||||
| gam_a = 1.4 | ||||||
| p0 = 1 | ||||||
| rho0 = 1.4 | ||||||
| c0 = math.sqrt(gam_a * p0 / rho0) | ||||||
| v0 = 3 * c0 | ||||||
| mu = rho0 * v0 * h / 2e5 | ||||||
|
|
||||||
| # Configuring case dictionary | ||||||
| print( | ||||||
| json.dumps( | ||||||
| { | ||||||
| # Logistics | ||||||
| "run_time_info": "T", | ||||||
| "x_domain%beg": 0, | ||||||
| "x_domain%end": 15 * h, | ||||||
| "y_domain%beg": 0, | ||||||
| "y_domain%end": 5 * h, | ||||||
| "cyl_coord": "F", | ||||||
| "m": 1499, | ||||||
| "n": 499, | ||||||
| "p": 0, | ||||||
| "cfl_adap_dt": "T", | ||||||
| "cfl_target": 0.6, | ||||||
| "n_start": 0, | ||||||
| "t_save": 0.04, | ||||||
| "t_stop": 4, | ||||||
| # Simulation Algorithm Parameters | ||||||
| "num_patches": 1, | ||||||
| "model_eqns": 2, | ||||||
| "alt_soundspeed": "F", | ||||||
| "num_fluids": 1, | ||||||
| "mpp_lim": "F", | ||||||
| "mixture_err": "F", | ||||||
| "time_stepper": 3, | ||||||
| "igr": "T", | ||||||
| "igr_pres_lim": "T", | ||||||
| "igr_order": 3, | ||||||
| "igr_iter_solver": 1, | ||||||
| "num_igr_iters": 5, | ||||||
| "num_igr_warm_start_iters": 50, | ||||||
| "bc_x%beg": -3, | ||||||
| "bc_x%end": -3, | ||||||
| "bc_y%beg": -2, | ||||||
| "bc_y%end": -2, | ||||||
| "ib": "T", | ||||||
| "num_ibs": 3, | ||||||
| # Formatted Database Files Structure Parameters | ||||||
| "format": 1, | ||||||
| "precision": 2, | ||||||
| "prim_vars_wrt": "T", | ||||||
| "parallel_io": "T", | ||||||
| # Patch 1 Background | ||||||
| "patch_icpp(1)%geometry": 3, | ||||||
| "patch_icpp(1)%x_centroid": 7.5 * h, | ||||||
| "patch_icpp(1)%y_centroid": 2.5 * h, | ||||||
| "patch_icpp(1)%length_x": 15 * h, | ||||||
| "patch_icpp(1)%length_y": 5 * h, | ||||||
| "patch_icpp(1)%vel(1)": v0, | ||||||
| "patch_icpp(1)%vel(2)": 0.0, | ||||||
| "patch_icpp(1)%pres": p0, | ||||||
| "patch_icpp(1)%alpha_rho(1)": rho0, | ||||||
| "patch_icpp(1)%alpha(1)": 1.0, | ||||||
| # Patch: Slip rectangle with rounded corner | ||||||
| "patch_ib(1)%geometry": 3, | ||||||
| "patch_ib(1)%x_centroid": (9 + rc / 2) * h, | ||||||
| "patch_ib(1)%y_centroid": 0.5 * h, | ||||||
| "patch_ib(1)%length_x": (12 - rc) * h, | ||||||
| "patch_ib(1)%length_y": h, | ||||||
| "patch_ib(1)%slip": "T", | ||||||
| "patch_ib(2)%geometry": 3, | ||||||
| "patch_ib(2)%x_centroid": (3 + rc / 2) * h, | ||||||
| "patch_ib(2)%y_centroid": (0.5 - rc / 2) * h, | ||||||
| "patch_ib(2)%length_x": rc * h, | ||||||
| "patch_ib(2)%length_y": (1 - rc) * h, | ||||||
| "patch_ib(2)%slip": "T", | ||||||
| "patch_ib(3)%geometry": 2, | ||||||
| "patch_ib(3)%x_centroid": (3 + rc) * h, | ||||||
| "patch_ib(3)%y_centroid": (1 - rc) * h, | ||||||
| "patch_ib(3)%radius": rc * h, | ||||||
| "patch_ib(3)%slip": "T", | ||||||
| # Fluids Physical Parameters | ||||||
| "fluid_pp(1)%gamma": 1.0 / (gam_a - 1.0), | ||||||
| "fluid_pp(1)%pi_inf": 0.0, | ||||||
| "viscous": "T", | ||||||
| "fluid_pp(1)%Re(1)": 1 / mu, | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Suggestion: Incorrect Reynolds-number assignment: Severity Level: Critical 🚨- ❌ Viscous-flow setup uses wrong Reynolds number.
- ⚠️ Example validation against IGR/WENO mismatches.
- ⚠️ Performance/timestep choices may be inconsistent.
Suggested change
Steps of Reproduction ✅1. Inspect examples/2D_IGR_forward_facing_step/case.py: mu is computed at line 14 (`mu =
rho0 * v0 * h / 2e5`) and the Reynolds entry is set at line 93 (`"fluid_pp(1)%Re(1)": 1 /
mu,`).
2. Run `python examples/2D_IGR_forward_facing_step/case.py` to emit the JSON (print at
line 17). The emitted JSON contains `"fluid_pp(1)%Re(1)"` equal to the numeric value of `1
/ mu`.
3. Calculate expected Re for this example: since mu was set as `rho0 * v0 * h / 2e5` (line
14), the intended nondimensional Re should be `rho0 * v0 * h / mu == 2e5`. The current
printed value `1 / mu` does not equal 2e5 and therefore demonstrates the incorrect formula
in-place.
4. Any solver or validation harness consuming this JSON will use the wrong Reynolds number
for this example, as demonstrated by inspecting the printed JSON.Prompt for AI Agent 🤖This is a comment left during a code review.
**Path:** examples/2D_IGR_forward_facing_step/case.py
**Line:** 93:93
**Comment:**
*Logic Error: Incorrect Reynolds-number assignment: `fluid_pp(1)%Re(1)` is set to `1 / mu`, but given `mu = rho0 * v0 * h / 2e5` the correct Reynolds number should be `rho0 * v0 * h / mu` (which yields 2e5 as intended), not `1 / mu`. Assign the physically-correct expression so `Re` is dimensionless and consistent.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. |
||||||
| }, | ||||||
| indent=4, | ||||||
| ) | ||||||
| ) | ||||||
Uh oh!
There was an error while loading. Please reload this page.