Skip to content
aaravvdPublic

About

X59 mogs

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

C608 low-boom CFD and propagation pipeline

This source-only repository contains the final project workflows selected for future refinement and publication: a C608 absolute geometric-pitch sweep (historically named the “AoA” sweep), a refined Spalart–Allmaras (SA) RANS screen advanced through t = 0.65 s, and a research implementation of augmented-Burgers atmospheric propagation and Stevens Mark VII perceived-level (PLdB) evaluation.

The repository name x59_AoA is retained for continuity. The included computational configuration is NASA's Third AIAA Sonic Boom Prediction Workshop (SBPW-3) C608 Low Boom Flight Demonstrator test case, an earlier X-59/LBFD-related workshop configuration—not the as-built X-59 flight geometry. Results produced with this repository should not be described as X-59 flight predictions. See the official C608 case page.

This work began during NASA's STEM Enhancement in Earth Science (SEES) program. The program phase is complete; the repository is now curated for refinement and publication.

Overview

The repository connects three independently useful components:

  1. a maintained OpenFOAM controller for the C608 geometric-pitch screen;
  2. a separate refined SA RANS off-body waveform screen through 0.65 s, initialized from an external coarse-case checkpoint; and
  3. the installable beta-boom package for propagating a near-field pressure trace to ground altitude and evaluating PLdB.

No CFD solution fields, generated meshes, processor directories, extracted traces, logs, plots, reports, or computed tables are included. Accordingly, this repository makes no numerical claim about an optimum pitch, PLdB reduction, or flight-level accuracy.

Methodology

The end-to-end research path has four stages. Each stage points to its maintained entry point and documentation.

1. CFD Simulation

  • Configuration: NASA SBPW-3 C608, M∞ = 1.4, reference length L = 27.432 m (1080 in)
  • Solver: OpenFOAM rhoCentralFoam
  • Pitch screen: target geometric pitch 0.00°–4.95° in 0.05° increments
  • Primary task: plan or run cases with run_c608_aoa.py
  • Inputs: geometric-pitch case template and workflow guide

The source geometry already contains the workshop's +2.15° design incidence and NASA's nominal condition uses the unchanged geometry at zero flow angle of attack. The controller instead applies target_pitch − 2.15°. Existing paths, environment variables, filenames, and the aoa_deg field keep their legacy names for compatibility; within this repository they denote target absolute geometric pitch, not a conventional fixed-geometry flow-AoA sweep.

The independent refined workflow uses the Spalart–Allmaras turbulence model through OpenFOAM's RAS framework. Its final-time check is a temporal waveform-stationarity heuristic based on ParaView samples of reconstructed fields at 0.600, 0.625, and 0.650 s. It is not a mesh-convergence study or a complete physical-validation claim. See run_refine_to_0p65.sh and the RANS workflow guide.

2. Pressure Extraction

  • Geometric-pitch workflow: ParaView sampling at R/L = 0.25, 0.50, 1.00; R/L = 0.25 is the primary propagation input
  • SA RANS workflow: SBPW-3 radial probes and reconstructed-field traces; the time gate uses R/L = 1, 2, 3
  • Tasks: extract final geometric-pitch traces or sample SBPW-3 probes

Here R/L = r/L_body: radial distance from the body axis divided by the C608 body reference length.

3. Atmospheric Propagation

This is not three-dimensional refracted ray tracing, and it does not model finite-impedance ground interaction. Its primary modeled output is the incident waveform at ground altitude.

4. PLdB Evaluation and Regression

  • Metric: Stevens Mark VII PLdB, using the repository implementation that follows NASA/TM-20250003346
  • Primary comparison: incident PLdB
  • Optional comparisons: configurable 1.9× and ideal rigid-plane 2× pressure-scaled series; neither is silently applied as a ground model
  • Task: fit an interpolation model with fit_aoa_pldb_regression.py

nasa_2025 remains in data keys and internal function names for compatibility. It identifies this implementation path; it is not the name of an official NASA software product.

File Structure

.
├── beta_solver/
│   ├── src/beta_boom/             # installable propagation and PLdB package
│   ├── tests/                     # solver and CLI tests
│   ├── examples/                  # synthetic, non-validation example
│   └── docs/                      # formats, method, limits, references
├── workflows/
│   ├── aoa_sweep/
│   │   ├── case_template/         # source OpenFOAM inputs only
│   │   ├── simulation/            # maintained rerun/recovery controller
│   │   ├── analysis/              # extraction, propagation, QA, regression
│   │   └── overlays/              # documented endpoint mesh override
│   └── rans_065/
│       ├── case/                  # source OpenFOAM dictionaries and geometry
│       ├── scripts/               # mesh, mapping, segmented-run driver
│       ├── mesh/                  # corridor-generation source
│       └── postprocessing/        # reconstructed-field and probe samplers
├── docs/                          # project provenance and publication checklist
├── tools/verify_source_repo.py    # generated-data and path-leak guard
├── requirements-workflows.txt
└── .gitignore

The approved C608 STL appears in both independently stageable OpenFOAM templates. Git stores the identical content as a single blob. Generated mesh files and prior result products are intentionally excluded.

Installation

Python Dependencies

Python 3.10 or newer is required.

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-workflows.txt

External Simulation Tools

OpenFOAM and ParaView are external and are not installed by this repository. The retained workflows were developed with:

  • OpenFOAM.com v2606 for the main geometric-pitch family and v2512 for recovery cases;
  • OpenFOAM.com v2506 for the refined SA RANS screen; and
  • ParaView/pvpython 5.13.3 for sampling reconstructed fields.

Before simulation, verify rhoCentralFoam, snappyHexMesh, reconstructPar, mpirun, and pvpython are on PATH. Detailed requirements are recorded in each workflow README.

Usage

Quick Start (Repository Checks)

python tools/verify_source_repo.py
python -m pytest

The verification task rejects generated CFD/results patterns, caches, local absolute paths, and unapproved large files.

Plan the Geometric-Pitch Sweep

C608_PLAN_ONLY=1 \
python workflows/aoa_sweep/simulation/run_c608_aoa.py

To run selected cases, configure the paths documented in workflows/aoa_sweep/README.md and use the legacy-compatible C608_TRIAL_INDICES environment variable. This maintained controller is suitable for future reruns; it is not claimed to be the byte-exact controller that produced every historical program result.

Run the Refined SA RANS Screen

workflows/rans_065/scripts/run_refine_to_0p65.sh \
  --source-case /path/to/coarse/case \
  --source-time 0.6

The external checkpoint is required because it is simulation result data and is not distributed here. The refined mesh does not have a validated uniform cold-start route, so the driver does not silently substitute one.

Propagate a Trace and Evaluate PLdB

beta-boom propagate \
  --trace /path/to/near_field_trace.csv \
  --output-dir /path/to/output

See Beta's README for the complete CLI and output conventions.

Fit the Geometric-Pitch Relationship

python workflows/aoa_sweep/analysis/fit_aoa_pldb_regression.py \
  --input /path/to/propagation_summary.csv \
  --output-dir /path/to/regression_output

The regression task performs interpolation only within observed geometric pitch values. It does not infer a flight-optimal angle.

Key Parameters

Parameter Repository value Meaning
C608 body reference length 27.432 m 1080 in
Freestream Mach number 1.40 C608 workshop condition
Embedded design incidence +2.15° already present in source geometry
Geometric-pitch grid 0.00°–4.95°, step 0.05° legacy aoa_deg coordinate
Geometric-pitch-screen freestream pressure 10,520 Pa template/controller default
Beta starting altitude 16,000 m configurable propagation default
Refined SA RANS endpoint 0.650 s final scheduled CFD time
Time-gate radii R/L = 1, 2, 3 reconstructed-field comparisons
Primary Beta input radius R/L = 0.25 geometric-pitch workflow convention

These are case and software defaults, not universal flight conditions.

Results

This publication branch contains no simulation or regression results. Previously tracked generated meshes, metadata, figures, and tables are removed from the current source tree and blocked by .gitignore. Because the shared repository history is preserved, files published in earlier commits remain part of that history; this reorganization does not rewrite it.

Historical outputs are not evidence for the former README's claims of 150 simulations, a 1.75° optimum, 3–5 dB reduction, surrogate-model accuracy, or X-59 flight validation. Those claims are not retained.

Physics Notes

Geometric Pitch versus Flow Angle of Attack

Rotating the C608 geometry changes its absolute geometric orientation. It is not equivalent to changing the incoming-flow angle around a fixed workshop geometry. Retaining legacy “AoA” identifiers prevents broken data and automation interfaces; reports should use target geometric pitch.

CFD Scope

The geometric-pitch family is a screening workflow. The refined SA RANS case uses a derived watertight two-component C608 approximation, one generic wall, no propulsion patches, and no validation-quality prism-layer stack. Neither workflow should be described as a powered, wall-resolved, flight-validated X-59 computation.

Augmented-Burgers Scope

Beta models nonlinear waveform evolution along a prescribed straight slant path. It does not solve three-dimensional atmospheric refraction, neighboring ray-tube spreading, terrain, or finite ground impedance. Use the incident waveform and incident PLdB for like-for-like solver comparisons.

Citation

Project citation metadata is not final. Until authorship and licensing are resolved, cite the repository URL and exact Git commit SHA, and cite the methods and NASA references listed in beta_solver/docs/REFERENCES.md and THIRD_PARTY_NOTICES.md.

Before a formal release, complete docs/PUBLICATION_CHECKLIST.md, including author order, contributor permission, code license, geometry attribution, and archival DOI.

Future Work

  • reproduce the complete geometric-pitch grid with one documented OpenFOAM release and convergence policy;
  • develop and validate a source-only cold-start route for the refined SA RANS mesh;
  • compare propagated incident signatures with an independent solver and authorized reference data;
  • add atmospheric refraction and ray-tube spreading if the research question requires them;
  • add a validated finite-impedance ground model before interpreting reflected waveforms; and
  • publish result datasets separately with provenance, checksums, and licenses.

Troubleshooting

OpenFOAM or ParaView Not Found

Source the intended OpenFOAM environment and set the configurable executable paths described in the workflow README. Use PVPYTHON=/path/to/pvpython when pvpython is not on PATH.

RANS Initialization Stops

Pass a readable coarse case and time to run_refine_to_0p65.sh --source-case ... --source-time .... No coarse checkpoint is bundled.

Beta Input Rejected

Check the CSV schema, units, pressure convention, and orientation metadata against beta_solver/docs/INPUT_FORMAT.md. Do not mix incident, 1.9×, rigid 2×, or legacy PLdB conventions.

Contact & Contributions

Open a GitHub issue for reproducibility defects, portability fixes, or source-backed method corrections. Before contributing, review beta_solver/CONTRIBUTING.md and the publication checklist.


Last Updated: August 2026

Status: Program phase complete; source workflows curated for publication

License: No open-source license selected; see LICENSE.md

About

X59 mogs

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages