Cantera Outline: Difference between revisions
From charlesreid1
| Line 74: | Line 74: | ||
** Viscosity | ** Viscosity | ||
* General discussion: non-dimensional analysis, how it relates to | * General discussion: non-dimensional analysis, how it relates to Cantera | ||
=Numerics= | |||
* Division of "numerics" layer and "constitutive equations" layer | |||
* Topics | |||
** Newton's method | |||
** Linear algebra | |||
** Jacobians | |||
** ODEs | |||
* Zero-dimensional ordinary differential equations | |||
** Problem type | |||
** Problem solution techniques | |||
* One-dimensional ordinary differential equations | |||
** Simplification of a more complex problem (PDE) with assumptions like axisymmetric flow | |||
* Initial value problems | |||
* Boundary value problems | |||
* Advanced boundary conditions | |||
* Surface coverage equations | |||
** Surface species treated as control volume properties | |||
** Packaged up into the Reactor's solution vector | |||
** The hack that makes a boundary condition into part of the domain | |||
* Strategies for coupling Cantera with CFD | |||
** Interfacing with Chemkin-like programs (Fluent) | |||
** Constructing your own numerical ODE/PDE solver | |||
** Scipy: simple kinetic equation integration using Scipy | |||
** Fipy: simple diffusion problem, coupling with Cantera | |||
** Fipy: more complex reactor equation(s) and coupling with Cantera | |||
=Optimization= | |||
* Not going into too much depth | |||
* Optimizing kinetic parameters to fit data | |||
* Optimizing other variables to maximize reactor performance | |||
=Mechanics= | |||
* Debugging | |||
** Diving in | |||
** Picking apart | |||
* Hacking | |||
Revision as of 19:10, 10 January 2014
Overview of Cantera
- Capabilities
- High level division of Cantera's capabilities
- Zero-D, One-D, phase objects, numerics
- Division of capabilities should roughly follow how Cantera source code is divided
- Apps - utilities for converting between Chemkin and Cantera file formats, parsing input files, comparing output files, etc.
- Base - more utilities for array storage, printing and logging, XML file parsing, Cantera errors/exceptions,
- Clib - code for C API
- Converters
- Equil
- Fortran - code for Fortran API
- Kinetics - classes for getting/setting/calculating reaction network quantities (net production rate source terms, reaction rate parameters, etc.)
- Matlab - code for Matlab API
- Numerics - classes for solving ordinary differential equations, evaluating Jacobians, Newton methods, constructing and solving matrices, etc.
- OneD - classes relating to one-dimensional simulations (domains, stacks, one-dimensional flame simulations, etc.)
- Python - code for Python API
- Spectra
- Thermo
- TPX
- Transport
- ZeroD - classes relating to zero-dimensional Reactors (Reactor, Wall, etc.)
Kinetics
- Discussion of kinetics
- Separate from reactors themselves
- Reaction rate source terms
- Kinetic mechanisms
- Single phase kinetics
- Source code abstraction
- Examples of obtaining reaction rates
- Graphene - how to really USE this information
- Multiphase surface kientics
- Surface coverage, site density, formulation of approach
- Source code abstraction - Walls vs. SurfPhase vs. (etc.)
- Kinetics for reactor design
- Integral reactors (canonical CHE reactors)
- Differential reactors (initial value problems, marching in time)
- Integral catalytic reactors
- Differential catalytic reactors
Thermodynamics
- Somewhere in our algorithm, looping over domain (or for the single reactor control volume), and we're saying, "update thermo and transport parameters" - focus on how this is being done, what classes its using, what capabilities are available
- Single phase
- Mixtures
- Equations of state
- Equilibrium
- Piston-cylinder systems
- Multiphase
- What thermodynamics is there for multiphase systems?
- Heat transfer to-from surface
Transport
- Follow BSL a bit on this one...
- Mass transfer
- Diffusion
- Mixture vs. multicomponent diffusion
- Diffusion coefficient models
- Mass transfer coefficients
- Diffusion
- Heat transfer
- Heat diffusivity
- Heat transfer coefficients
- Momentum transfer
- Viscosity
- General discussion: non-dimensional analysis, how it relates to Cantera
Numerics
- Division of "numerics" layer and "constitutive equations" layer
- Topics
- Newton's method
- Linear algebra
- Jacobians
- ODEs
- Zero-dimensional ordinary differential equations
- Problem type
- Problem solution techniques
- One-dimensional ordinary differential equations
- Simplification of a more complex problem (PDE) with assumptions like axisymmetric flow
- Initial value problems
- Boundary value problems
- Advanced boundary conditions
- Surface coverage equations
- Surface species treated as control volume properties
- Packaged up into the Reactor's solution vector
- The hack that makes a boundary condition into part of the domain
- Strategies for coupling Cantera with CFD
- Interfacing with Chemkin-like programs (Fluent)
- Constructing your own numerical ODE/PDE solver
- Scipy: simple kinetic equation integration using Scipy
- Fipy: simple diffusion problem, coupling with Cantera
- Fipy: more complex reactor equation(s) and coupling with Cantera
Optimization
- Not going into too much depth
- Optimizing kinetic parameters to fit data
- Optimizing other variables to maximize reactor performance
Mechanics
- Debugging
- Diving in
- Picking apart
- Hacking