Minimization of Helmholtz free energy in equilibrium solver
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
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
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
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di mutationpp/Mutationpp
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
mutationpp/Mutationpp#337 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 74/100
mutationpp/Mutationpp#302 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 51/100
mutationpp/Mutationpp#335 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 42/100
mutationpp/Mutationpp#332 ·
-
Possible upper/lower triangle storage inconsistency in rates() in multi-phase equilibrium solverAperta
Difficoltà 3/5 Mezza giornata Idoneità per principianti 50/100
mutationpp/Mutationpp#331 ·
Tutte le issue di mutationpp/Mutationpp
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
scp-fs2open/fs2open.github.com#7953 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
SteveMacenski/slam_toolbox#907 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
HansKristian-Work/dxil-spirv#341 ·
I maintainer di solito rispondono entro 1 giorno