Cantera's implementation of element potential method for solving for equilibrium
39 views
Skip to first unread message
Nick Wogan
unread,
Dec 10, 2021, 5:45:50 PM12/10/21
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Sign in to report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Cantera Users' Group
I'm trying to understand Cantera's implementation of the element potential method for solving for chemical equilibrium
The part of Cantera's approach I do not understand very well are the "BasisOptimize" and "ElemRearrange" that are called within the initial estimation of the element potentials (i.e. the Lagrange multipliers). See this link
My rough understanding is that these routines are necessary to avoid poorly conditioned matrices later on. In the header file (link) BasisOptimize is described as
"""
//! Choose the optimum basis of species for the equilibrium calculations. /*! * This is done by choosing the species with the largest mole fraction not * currently a linear combination of the previous components. Then, calculate * the stoichiometric coefficient matrix for that basis.
"""
Why is this necessary?
I was wondering if this approach is described in an article or documentation somewhere that is easier to understand than the code.
Thanks, Nick
Shepherd, Joseph E.
unread,
Dec 11, 2021, 12:09:47 PM12/11/21
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Sign in to report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to canter...@googlegroups.com
Nick,
The element potential implementation by Reynolds was the basis of the original Cantera algorithm (others will have to speak to what changes have been made I in the past two decades). I have linked Reynolds original reports to my thermo webpage https://shepherd.caltech.edu/EDL/PublicResources/sdt/thermo.html - these discuss the issues around choosing a basis set and preconditioning.
JES
-----Original Message-----
From: canter...@googlegroups.com <canter...@googlegroups.com> On Behalf Of Nick Wogan
Sent: Friday, December 10, 2021 2:46 PM
To: Cantera Users' Group <canter...@googlegroups.com>
Subject: [cantera-users] Cantera's implementation of element potential method for solving for equilibrium
I'm trying to understand Cantera's implementation of the element potential method for solving for chemical equilibrium
The part of Cantera's approach I do not understand very well are the "BasisOptimize" and "ElemRearrange" that are called within the initial estimation of the element potentials (i.e. the Lagrange multipliers). See this link
"""
//! Choose the optimum basis of species for the equilibrium calculations.
/*!
* This is done by choosing the species with the largest mole fraction not
* currently a linear combination of the previous components. Then, calculate
* the stoichiometric coefficient matrix for that basis.
"""
Why is this necessary?
I was wondering if this approach is described in an article or documentation somewhere that is easier to understand than the code.