Skip to content

Calculate Thermodynamic Columns Analytically #96

Open
@mjohnson541

Description

@mjohnson541

For ParameterizedVDomain jacobiany evaluation we get:

Screen Shot 2020-09-13 at 2 42 11 PM

Note that the little zeros bit on the left won't show up normally since we use in-place evaluation.

Most of our time is spent calculating the dn_i/dT and dn_i/dP columns using ForwardDiff. However it isn't too hard to derive analytic equations down to the dGf/dT, dkf/dT and dkf/dP level. dGf/dT for NASA polynomials is the derivative of the polynomial expressions we already have formulas for. dkf/dT and dkf/dP are trivial for arrhenius reusing kf from the calculation: dkf/dT = kf*((n*Ea)/(RT^3)) and dkf/dP = 0, which represents the vast majority of our rates. The next-most common kf(T) for RMG mechanisms is Chebyshev, which is a bit more tricky, but I think it should be possible to write nice analytic expressions for. This isn't hard to do for 3rd body and even Lindemann forms. PdepArrhenius shouldn't be hard either. Troe is a bit difficult, but doing a few of these numerically shouldn't be a big deal compared to the original calcthermo evaluation. If we add functions associated with calculating dkf/dT and dkf/dP for most kinetics objects and then fallback to something numerical I suspect we can get rid of most of the jacobianytherm! evaluation time and get ~2x speed up from doing this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions