Skip to content

[WIP] Assumed shape beta pdf - #3000

Open
bigfooted wants to merge 5 commits into
developfrom
feature_flamelet_assumed_shape
Open

bigfooted wants to merge 5 commits into
developfrom
feature_flamelet_assumed_shape

Conversation

@bigfooted

Copy link
Copy Markdown
Contributor

Proposed Changes

Give a brief overview of your contribution here in a few sentences.

Assumed shape beta pdf approach for turbulent combustion

Related Work

Resolve any issues (bug fix or feature request), note any related PRs, or mention interactions with the work of others, if any.

PR Checklist

Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.

  • I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
  • My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
  • I used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.

bigfooted and others added 4 commits October 31, 2026 23:23
The names in CONTROLLING_VARIABLE_NAMES (ProgressVariable, EnthalpyTot,
MixtureFraction) now set the role of each transported scalar, replacing
the fixed positions I_PROGVAR, I_ENTH and I_MIXFRAC. EnthalpyTot is
required together with ProgressVariable, MixtureFraction or both, so pure
non-premixed (MixtureFraction, EnthalpyTot) manifolds are supported.

- Table axes follow the order of the names; the third name is the level.
- Without a progress variable the thickened flame correction is off and
  FLAME_FRONT initializes the mixture fraction, as before.
- Preferential diffusion looks up only the beta terms of present variables.
- The inlet profile template writes one column per controlling variable.

Results are identical to develop for flamelet cases 01, 03, 05, 06, 07,
09 and the laminar diffusion flame tutorial.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ProgressVariableVariance and MixtureFractionVariance in
CONTROLLING_VARIABLE_NAMES are transported scalars that the manifold uses
as a controlling variable, typically the table level of an assumed PDF
table. Their source is the table entry in CONTROLLING_VARIABLE_SOURCE_NAMES
plus the turbulent production 2 mu_t/Sc_t |grad(mean)|^2 and the
dissipation C_d rho beta* omega var of the SST model, the latter implicit.

- A variance requires its mean and KIND_TURB_MODEL= SST, is clipped at
  zero, and switches off the thickened flame correction; preferential
  diffusion is not available with it.
- FLAMELET_VARIANCE_DISSIPATION_COEFF sets C_d (default 2.0).
- The look-up table rejects more than three controlling variables.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Jacobian

A transported variance is limited to (mean - min)(max - mean), the variance of
a two-point distribution on the range of its mean. The range is [0, 1] for the
mixture fraction and the range of the table axis (or of the network input
scaling) for the progress variable.

The species solver solves for the increment of rho*Y, so the implicit Jacobian
of the auxiliary-species source is source_cons / rho, not source_cons. The
reference value of cfd_flamelet_ch4_cht changes in one residual by 4e-5.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ce, restart by name

The look-up table and the networks take each variance normalized by its upper
limit (mean - min)(max - mean). The mixture fraction is bounded by 0 and 1, the
progress variable by the manifold variables ProgressVariableMin and
ProgressVariableMax. The conversion is done in CFluidFlamelet before every
look-up, and the variance clip uses the same limit. This replaces the global
table and network input ranges.

The source of a variance is formed from the manifold variable mean(phi*S_phi)
as 2 (mean(phi*S_phi) - mean(phi) mean(S_phi)); a NULL name gives no source.

The flamelet restart is read by field name, and a variance missing from the
restart file starts from its initial value. The MLP look-up query is paired
also for a single look-up variable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bigfooted bigfooted changed the title Feature assumed shape pdf [WIP] Assumed shape beta pdf Nov 2, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant