Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Minimization of Helmholtz free energy in equilibrium solver

Aperta
#17 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
backend

Direzione di ricerca

Start with MultiPhaseEquilSolver.* and StateModel.h to trace how the current Gibbs minimization handles TP and HP problems. The issue proposes moving HP handling into the equilibrium solver, then adding constant-volume cases through Helmholtz free energy minimization, but says the required algorithm changes still need investigation. Done means the implementation supports the specified equilibrium conditions and has the normal test suite plus dedicated constant-volume tests.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement

General description

This is a feature request for adding the minimization of Helmholtz free energy which would allow the solution of equilibrium problems at constant volume (ie: TV, UV, SV, ...).

Detailed description

Currently, the equilibrium solver is based on the Multiphase Gibbs Function Continuation (MPGFC) method which minimizes the Gibbs energy. Gibbs energy minimization allows to solve problems at constant pressure (ie: TP, HP, SP, ...). However, constant volume equilibrium problems are also of great interest to the combustion community and therefore would be a useful feature to include in M++.

Modifications to current behavior

I suggest to make two modifications, in stages. In the first stage, move the implementation of the constant HP problem from the state model into the equilibrium solver and provide an additional parameter to the equilibrate() function in the form of an enum which specifices the type of problem being solved (and thus which parameters are being input). So far, this would be only TP and HP.

In the second stage, the constant volume problems could be implemented through the minimization of the Helmholtz free energy. At present, I'm not sure what exactly this entails, however I think it might be possible to do this with only some minor changes to the algorithm. AFAIK, only the definition of the chemical potential needs to be changed, and the algorithm itself can be relatively untouched. This needs to be verified and a more rigorous list of implementation details should be written down here before proceeding with this stage.

Example to use for testing

In the first stage, simply running the normal test suite should cover it. The second stage will require some dedicate unit tests, perhaps based on results from CEA or Chemkin.

Files to be affected by the new feature
  • MultiPhaseEquilSolver.*
  • StateModel.h
Lingua principale
C++
Stelle
145
Fork
79
Merge medio
1g 15h
PR unite (30g)
2

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di mutationpp/Mutationpp

Tutte le issue di mutationpp/Mutationpp

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.