Skip to content

Flexible setup of flamelet boundary conditions#2814

Open
bigfooted wants to merge 10 commits into
developfrom
feature_flamelet_bc
Open

Flexible setup of flamelet boundary conditions#2814
bigfooted wants to merge 10 commits into
developfrom
feature_flamelet_bc

Conversation

@bigfooted
Copy link
Copy Markdown
Contributor

@bigfooted bigfooted commented May 14, 2026

Proposed Changes

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

Enthalpy boundary conditions for the flamelet equation can now be set to use either the BC's coming from the flow solver (defined in terms of temperature) or the species BC's
This was a bit confusing before because we did a mix of both.

We now have

FLAMELET_ENTHALPY_BC=FLOW_MARKERS
FLAMELET_ENTHALPY_BC=SPECIES_MARKERS

To either use temperature or heat flux from the flow solver (MARKER_INLET, MARKER_ISOTHERMAL/MARKER_HEATFLUX) , or use enthalpy directly from the species solver (MARKER_INLET_SPECIES, MARKER_WALL_SPECIES).

There will be a tutorial + regression coupled to this.

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 bigfooted changed the title Feature flamelet bc Flexible setup of flamelet boundary conditions May 14, 2026
@joshkellyjak
Copy link
Copy Markdown
Contributor

joshkellyjak commented May 16, 2026

If this is also intended to impact inlet bc's do you also have to modify the inlet implementation in CSpeciesFlameletSolver also? The enthalpy here is calculated from temperature and PV which regardless of whether species or flow is selected in this option?

void CSpeciesFlameletSolver::BC_Inlet(CGeometry* geometry, CSolver** solver_container, CNumerics* conv_numerics,
                                      CNumerics* visc_numerics, CConfig* config, unsigned short val_marker) {
  SU2_ZONE_SCOPED
  string Marker_Tag = config->GetMarker_All_TagBound(val_marker);

  su2double temp_inlet = config->GetInletTtotal(Marker_Tag);

  /*--- We compute inlet enthalpy from the temperature and progress variable. ---*/
  su2double enth_inlet;
  GetEnthFromTemp(solver_container[FLOW_SOL]->GetFluidModel(), temp_inlet, config->GetInlet_SpeciesVal(Marker_Tag),
                  &enth_inlet);
  SU2_OMP_FOR_STAT(OMP_MIN_SIZE)
  for (auto iVertex = 0u; iVertex < geometry->nVertex[val_marker]; iVertex++) {
    Inlet_SpeciesVars[val_marker][iVertex][I_ENTH] = enth_inlet;
  }
  END_SU2_OMP_FOR

  /*--- Call the general inlet boundary condition implementation. ---*/
  CSpeciesSolver::BC_Inlet(geometry, solver_container, conv_numerics, visc_numerics, config, val_marker);
}

Here the enthalpy is overwritten regardless of whether you specify flow or species markers.

@bigfooted
Copy link
Copy Markdown
Contributor Author

Hi @joshkellyjak! Yes, you are right, I forgot to update this routine. I have added it to the PR.

Comment thread Common/src/CConfig.cpp Outdated
Comment on lines +1412 to +1414
addEnumOption("FLAME_INIT_METHOD", flamelet_ParsedOptions.ignition_method, Flamelet_Init_Map, FLAMELET_INIT_TYPE::NONE);
/*!\brief FLAMELET_ENTHALPY_BC \n DESCRIPTION: enthalpy BC from species markers (default, backward-compatible) or flow markers \n DEFAULT: SPECIES_MARKERS \ingroup Config */
addEnumOption("FLAMELET_ENTHALPY_BC", flamelet_ParsedOptions.enthalpy_bc, Flamelet_Enthalpy_BC_Map, FLAMELET_ENTHALPY_BC::SPECIES_MARKERS);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the difference between FLAME and FLAMELET?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We were quite sloppy in the past in the use of FLAME vs FLAMELET.
Flamelet is (should be) a specific model, flame is (should be) a physics concept that works for more than the flamelet model. so FLAME_INIT_METHOD should also initialize for instance the detailed chemistry model. FLAMELET_ENTHALPY_BC should only work for the flamelet model. We can already anticipate that we would like FLAMELET_ENTHALPY_BC to work for detailed chemistry and call it FLAME_ENTHALPY_BC. Should I rename it FLAME_ENTHALPY_MODEL?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It it can be consistent I think it should.

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.

3 participants