Fortran API¶
The Fortran API provides a subroutine interface to the functionality of the library. This serves as the basis for all other language bindings, such as C and Python. The sections below are generated directly from the Fortran source files so the complete set of procedures remains searchable.
Core Library¶
- cea
Inputs and Units¶
- cea_input
Functions
- type(problemdb) function, dimension(:), allocatable cea_input::read_input(filename filename)
- type(problemdb) function cea_input::read_problem(fin fin, ierr ierr)
- type(problemdataset) function cea_input::parse_prob(buffer buffer)
- type(reactantinput) function, dimension(:), allocatable cea_input::parse_reac(buffer buffer)
- character(sn) function, dimension(:), allocatable cea_input::parse_species(buffer buffer)
- type(outputdataset) function cea_input::parse_outp(buffer buffer)
- type(schedule) function cea_input::parse_schedule(scanner scanner, token token)
- type(formula) function cea_input::parse_formula(scanner scanner, token token)
- subroutine cea_input::parse_embedded(token token, name name, units units)
- logical function cea_input::is_empty(line line)
- logical function cea_input::is_keyword(line line)
- character(:) function, allocatable cea_input::replace_delimiters(line line, replace_commas replace_commas)
- cea_input::schedule
Public Members
- character(:), allocatable name
- character(:), allocatable units
- real(dp), dimension(:), allocatable values
- cea_input::formula
Public Members
- character(en), dimension(:), allocatable elements
- real(dp), dimension(:), allocatable coefficients
- cea_input::reactantinput
Public Members
- character(:), allocatable type
- character(:), allocatable name
- type(schedule), allocatable amount
- type(formula), allocatable formula
- real(dp), allocatable molecular_weight
- type(schedule), allocatable temperature
- type(schedule), allocatable enthalpy
- type(schedule), allocatable density
- cea_input::problemdataset
Public Members
- character(:), allocatable name
- character(:), allocatable type
- logical debug = .false.
- logical frozen = .false.
- logical equilibrium = .false.
- logical include_ions = .false.
- logical rkt_finite_area = .false.
- integer rkt_nfrozen = 1
- real(dp), allocatable ac_at
- real(dp), allocatable mdot
- real(dp), allocatable tc_est
- logical shk_incident = .false.
- logical shk_reflected = .false.
- type(schedule), allocatable of_schedule
- type(schedule), allocatable t_schedule
- type(schedule), allocatable h_schedule
- type(schedule), allocatable u_schedule
- type(schedule), allocatable s_schedule
- type(schedule), allocatable p_schedule
- type(schedule), allocatable v_schedule
- type(schedule), allocatable u1_schedule
- type(schedule), allocatable mach1_schedule
- type(schedule), allocatable pcp_schedule
- type(schedule), allocatable subar_schedule
- type(schedule), allocatable supar_schedule
- cea_input::outputdataset
Public Members
- real(dp), allocatable trace
- logical transport = .false.
- logical mass_fractions = .false.
- logical debug = .false.
- logical siunit = .true.
- cea_input::problemdb
Public Members
- type(problemdataset) problem
- type(outputdataset) output
- type(reactantinput), dimension(:), allocatable reactants
- character(sn), dimension(:), allocatable omit
- character(sn), dimension(:), allocatable only
- character(sn), dimension(:), allocatable insert
- fb_string_scanner
- cea_units
Functions
- real(dp) function cea_units::celcius_to_kelvin(celcius celcius)
- real(dp) function cea_units::fahrenheit_to_kelvin(fahrenheit fahrenheit)
- real(dp) function cea_units::rankine_to_kelvin(rankine rankine)
- real(dp) function cea_units::atm_to_bar(atm atm)
- real(dp) function cea_units::psi_to_bar(psi psi)
- real(dp) function cea_units::mmhg_to_bar(mmhg mmhg)
- real(dp) function cea_units::kilojoules_to_joules(kilojoules kilojoules)
- real(dp) function cea_units::kilocal_to_joules(kilocal kilocal)
- real(dp) function cea_units::cal_to_joules(cal cal)
- real(dp) function cea_units::g_per_cm3_to_kg_per_m3(g_per_cm3 g_per_cm3)
- real(dp) function cea_units::cm3_per_g_to_m3_per_kg(cm3_per_g cm3_per_g)
- real(dp) function cea_units::convert_units_to_si(val val, units units)
- cea_param
- cea_fits
Functions
- elemental real(dp) function cea_fits::calc_cv(self self, T T)
- elemental real(dp) function cea_fits::calc_cp(self self, T T)
- elemental real(dp) function cea_fits::calc_energy(self self, T T, logT logT)
- elemental real(dp) function cea_fits::calc_enthalpy(self self, T T, logT logT)
- elemental real(dp) function cea_fits::calc_entropy(self self, T T, logT logT)
- elemental real(dp) function cea_fits::calc_gibbs_energy(self self, T T, logT logT)
- elemental real(dp) function cea_fits::calc_transport_value(self self, T T)
- cea_fits::thermofit
Public Functions
- procedure cea_fits::thermofit::calc_cv()
- procedure cea_fits::thermofit::calc_cp()
- procedure cea_fits::thermofit::calc_energy()
- procedure cea_fits::thermofit::calc_enthalpy()
- procedure cea_fits::thermofit::calc_entropy()
- procedure cea_fits::thermofit::calc_gibbs_energy()
Public Members
- real(dp) a1
- real(dp) a2
- real(dp) a3
- real(dp) a4
- real(dp) a5
- real(dp) a6
- real(dp) a7
- real(dp) b1
- real(dp) b2
- cea_fits::transportfit
Public Functions
- procedure cea_fits::transportfit::calc_transport_value()
Public Members
- real(dp) a
- real(dp) b
- real(dp) c
- real(dp) d
Mixture and Property Evaluation¶
- cea_atomic_data
Functions
- type(atomic) function cea_atomic_data::get_atom(symbol symbol)
- real(dp) function cea_atomic_data::get_atom_weight(symbol symbol)
- real(dp) function cea_atomic_data::get_atom_valence(symbol symbol)
Variables
- type(atomic), dimension(106), parameter atomicdata = [ Atomic("H ", 1.00794d0 , 1.), Atomic("IH", 1.00794d0 , 1.), Atomic("D ", 2.014102d0 , 1.), Atomic("HE", 4.002602d0 , 0.), Atomic("LI", 6.941d0 , 1.), Atomic("BE", 9.012182d0 , 2.), Atomic("B ", 10.811d0 , 3.), Atomic("C ", 12.0107d0 , 4.), Atomic("IC", 12.0107d0 , 4.), Atomic("N ", 14.0067d0 , 0.), Atomic("O ", 15.9994d0 , -2.), Atomic("IO", 15.9994d0 , -2.), Atomic("F ", 18.9984032d0, -1.), Atomic("NE", 20.1797d0 , 0.), Atomic("NA", 22.989770d0 , 1.), Atomic("MG", 24.305d0 , 2.), Atomic("AL", 26.981538d0 , 3.), Atomic("SI", 28.0855d0 , 4.), Atomic("P ", 30.973761d0 , 5.), Atomic("S ", 32.065d0 , 4.), Atomic("CL", 35.453d0 , -1.), Atomic("AR", 39.948d0 , 0.), Atomic("K ", 39.0983d0 , 1.), Atomic("CA", 40.078d0 , 2.), Atomic("SC", 44.95591d0 , 3.), Atomic("TI", 47.867d0 , 4.), Atomic("V ", 50.9415d0 , 5.), Atomic("CR", 51.9961d0 , 3.), Atomic("MN", 54.938049d0 , 2.), Atomic("FE", 55.845d0 , 3.), Atomic("CO", 58.933200d0 , 2.), Atomic("NI", 58.6934d0 , 2.), Atomic("CU", 63.546d0 , 2.), Atomic("ZN", 65.39d0 , 2.), Atomic("GA", 69.723d0 , 3.), Atomic("GE", 72.64d0 , 4.), Atomic("AS", 74.92160d0 , 3.), Atomic("SE", 78.96d0 , 4.), Atomic("BR", 79.904d0 , -1.), Atomic("KR", 83.80d0 , 0.), Atomic("RB", 85.4678d0 , 1.), Atomic("SR", 87.62d0 , 2.), Atomic("Y ", 88.90585d0 , 3.), Atomic("ZR", 91.224d0 , 4.), Atomic("NB", 92.90638d0 , 5.), Atomic("MO", 95.94d0 , 6.), Atomic("TC", 97.9072d0 , 7.), Atomic("RU", 101.07d0 , 3.), Atomic("RH", 102.9055d0 , 3.), Atomic("PD", 106.42d0 , 2.), Atomic("AG", 107.8682d0 , 1.), Atomic("CD", 112.411d0 , 2.), Atomic("IN", 114.818d0 , 3.), Atomic("SN", 118.710d0 , 4.), Atomic("SB", 121.760d0 , 3.), Atomic("TE", 127.6d0 , 4.), Atomic("I ", 126.90447d0 , -1.), Atomic("XE", 131.293d0 , 0.), Atomic("CS", 132.90545d0 , 1.), Atomic("BA", 137.327d0 , 2.), Atomic("LA", 138.9055d0 , 3.), Atomic("CE", 140.116d0 , 3.), Atomic("PR", 140.90765d0 , 3.), Atomic("ND", 144.9127d0 , 3.), Atomic("PM", 145.d0 , 3.), Atomic("SM", 150.36d0 , 3.), Atomic("EU", 151.964d0 , 3.), Atomic("GD", 157.25d0 , 3.), Atomic("TB", 158.92534d0 , 3.), Atomic("DY", 162.50d0 , 3.), Atomic("HO", 164.93032d0 , 3.), Atomic("ER", 167.259d0 , 3.), Atomic("TM", 168.93421d0 , 3.), Atomic("YB", 173.04d0 , 3.), Atomic("LU", 174.967d0 , 3.), Atomic("HF", 178.49d0 , 4.), Atomic("TA", 180.9479d0 , 5.), Atomic("W ", 183.84d0 , 6.), Atomic("RE", 186.207d0 , 7.), Atomic("OS", 190.23d0 , 4.), Atomic("IR", 192.217d0 , 4.), Atomic("PT", 195.078d0 , 4.), Atomic("AU", 196.96655d0 , 3.), Atomic("HG", 200.59d0 , 2.), Atomic("TL", 204.3833d0 , 1.), Atomic("PB", 207.2d0 , 2.), Atomic("BI", 208.98038d0 , 3.), Atomic("PO", 208.9824d0 , 2.), Atomic("AT", 209.9871d0 , -1.), Atomic("RN", 222.0176d0 , 0.), Atomic("FR", 223.0197d0 , 1.), Atomic("RA", 226.0254d0 , 2.), Atomic("AC", 227.0278d0 , 3.), Atomic("TH", 232.0381d0 , 4.), Atomic("PA", 231.03588d0 , 5.), Atomic("U ", 238.02891d0 , 6.), Atomic("NP", 237.0482d0 , 5.), Atomic("PU", 244.0642d0 , 4.), Atomic("AM", 243.0614d0 , 3.), Atomic("CM", 247.0703d0 , 3.), Atomic("BK", 247.0703d0 , 3.), Atomic("CF", 251.0587d0 , 3.), Atomic("ES", 252.083d0 , 3.), Atomic("IH", 1.00794d0 , 1.), Atomic("IC", 12.0107d0 , 4.), Atomic("IO", 15.9994d0 , -2.) ]
- cea_atomic_data::atomic
Public Members
- character(enl) name
- real(dp) atomic_weight = empty_dp
- real(dp) valence = empty_dp
- enl
- cea_mixture
Functions
- recursive type(mixture) function cea_mixture::mixture_init(thermo thermo, species_names species_names, element_names element_names, reactant_names reactant_names, input_reactants input_reactants, omitted_product_names omitted_product_names, sort_condensed sort_condensed, ions ions)
- real(dp) function, dimension(self%num_elements) cea_mixture::mixture_elements_from_species(self self, n_species n_species)
- subroutine cea_mixture::mixture_calc_thermo(self self, thermo thermo, temperature temperature, condensed condensed)
- character(snl) function, dimension(:), allocatable cea_mixture::mixture_get_products(self self, thermo thermo, omit omit)
- real(dp) function, dimension(size(oxidant_weights)) cea_mixture::mixture_weights_from_of(self self, oxidant_weights oxidant_weights, fuel_weights fuel_weights, of_ratio of_ratio)
- real(dp) function cea_mixture::mixture_chem_eq_ratio_to_of_ratio(self self, oxidant_weights oxidant_weights, fuel_weights fuel_weights, eq_ratio eq_ratio)
- real(dp) function cea_mixture::mixture_of_ratio_to_chem_eq_ratio(self self, oxidant_weights oxidant_weights, fuel_weights fuel_weights, of_ratio of_ratio)
- real(dp) function cea_mixture::mixture_weight_eq_ratio_to_of_ratio(self self, oxidant_weights oxidant_weights, fuel_weights fuel_weights, phi phi)
- real(dp) function cea_mixture::mixture_of_ratio_to_weight_eq_ratio(self self, oxidant_weights oxidant_weights, fuel_weights fuel_weights, of_ratio of_ratio)
- real(dp) function, dimension(size(weights)) cea_mixture::mixture_weights_to_moles(self self, weights weights)
- real(dp) function, dimension(self%num_species) cea_mixture::mixture_weights_from_moles(self self, moles moles)
- real(dp) function, dimension(self%num_species) cea_mixture::mixture_moles_from_weights(self self, weights weights)
- real(dp) function, dimension(self%num_species) cea_mixture::mixture_per_weight_from_per_mole(self self, per_mole per_mole)
- real(dp) function, dimension(self%num_species) cea_mixture::mixture_per_mole_from_per_weight(self self, per_weight per_weight)
- subroutine cea_mixture::mixture_get_valence(self self, vm vm, vp vp)
- real(dp) function cea_mixture::mixture_calc_enthalpy_single(self self, weights weights, temperature temperature)
- real(dp) function cea_mixture::mixture_calc_enthalpy_multi(self self, weights weights, temperatures temperatures)
- real(dp) function cea_mixture::mixture_calc_energy_single(self self, weights weights, temperature temperature)
- real(dp) function cea_mixture::mixture_calc_energy_multi(self self, weights weights, temperatures temperatures)
- real(dp) function cea_mixture::mixture_calc_entropy_single(self self, weights weights, temperature temperature, pressure pressure)
- real(dp) function cea_mixture::mixture_calc_entropy_multi(self self, weights weights, temperatures temperatures, pressures pressures)
- real(dp) function cea_mixture::mixture_calc_gibbs_energy_single(self self, weights weights, temperature temperature, pressure pressure)
- real(dp) function cea_mixture::mixture_calc_gibbs_energy_multi(self self, weights weights, temperatures temperatures, pressures pressures)
- real(dp) function cea_mixture::mixture_calc_frozen_cp_single(self self, weights weights, temperature temperature)
- real(dp) function cea_mixture::mixture_calc_frozen_cp_multi(self self, weights weights, temperatures temperatures)
- real(dp) function cea_mixture::mixture_calc_frozen_cv_single(self self, weights weights, temperature temperature)
- real(dp) function cea_mixture::mixture_calc_frozen_cv_multi(self self, weights weights, temperatures temperatures)
- real(dp) function cea_mixture::mixture_calc_pressure_single(self self, densities densities, temperature temperature)
- real(dp) function cea_mixture::mixture_calc_pressure_multi(self self, densities densities, temperatures temperatures)
- real(dp) function, dimension(self%num_elements) cea_mixture::mixture_element_amounts_from_weights(self self, weights weights)
- real(dp) function cea_mixture::molecular_weight_from_formula(fm fm)
- type(mixturethermo) function cea_mixture::mixturethermo_init(num_species num_species)
- type(speciesthermo) function cea_mixture::get_species(thermo thermo, name name)
- logical function cea_mixture::names_match(name name, dbname dbname)
- mixture
Public Functions
- procedure cea_mixture::mixture::elements_from_species()
- procedure cea_mixture::mixture::calc_thermo()
- procedure cea_mixture::mixture::get_products()
- procedure cea_mixture::mixture::weights_from_of()
- procedure cea_mixture::mixture::of_from_equivalence()
- procedure cea_mixture::mixture::equivalence_from_of()
- procedure cea_mixture::mixture::of_from_phi()
- procedure cea_mixture::mixture::phi_from_of()
- procedure cea_mixture::mixture::weights_from_moles()
- procedure cea_mixture::mixture::moles_from_weights()
- procedure cea_mixture::mixture::per_weight_from_per_mole()
- procedure cea_mixture::mixture::per_mole_from_per_weight()
- procedure cea_mixture::mixture::get_valence()
- procedure cea_mixture::mixture::element_amounts_from_weights()
- generic cea_mixture::mixture::calc_enthalpy()
- generic cea_mixture::mixture::calc_energy()
- generic cea_mixture::mixture::calc_entropy()
- generic cea_mixture::mixture::calc_gibbs_energy()
- generic cea_mixture::mixture::calc_frozen_cp()
- generic cea_mixture::mixture::calc_frozen_cv()
- generic cea_mixture::mixture::calc_pressure()
- procedure cea_mixture::mixture::mixture_calc_enthalpy_single()
- cea_mixture::mixture::mixture_calc_enthalpy_multi()
- procedure cea_mixture::mixture::mixture_calc_energy_single()
- cea_mixture::mixture::mixture_calc_energy_multi()
- procedure cea_mixture::mixture::mixture_calc_entropy_single()
- cea_mixture::mixture::mixture_calc_entropy_multi()
- procedure cea_mixture::mixture::mixture_calc_gibbs_energy_single()
- cea_mixture::mixture::mixture_calc_gibbs_energy_multi()
- procedure cea_mixture::mixture::mixture_calc_frozen_cp_single()
- cea_mixture::mixture::mixture_calc_frozen_cp_multi()
- procedure cea_mixture::mixture::mixture_calc_frozen_cv_single()
- cea_mixture::mixture::mixture_calc_frozen_cv_multi()
- procedure cea_mixture::mixture::mixture_calc_pressure_single()
- cea_mixture::mixture::mixture_calc_pressure_multi()
- recursive type(mixture) function cea_mixture::mixture::mixture_init(thermo thermo, species_names species_names, element_names element_names, reactant_names reactant_names, input_reactants input_reactants, omitted_product_names omitted_product_names, sort_condensed sort_condensed, ions ions)
Public Members
- integer num_species = empty_int
- integer num_elements = empty_int
- integer num_gas = empty_int
- integer num_condensed = empty_int
- type(speciesthermo), dimension(:), allocatable species
- logical, dimension(:), allocatable is_condensed
- real(dp), dimension(:,:), allocatable stoich_matrix
- character(snl), dimension(:), allocatable species_names
- character(enl), dimension(:), allocatable element_names
- logical ions = .false.
- mixturethermo
Public Functions
- type(mixturethermo) function cea_mixture::mixturethermo::mixturethermo_init(num_species num_species)
Public Members
- integer num_species = empty_int
- real(dp), dimension(:), allocatable cp
- real(dp), dimension(:), allocatable cv
- real(dp), dimension(:), allocatable enthalpy
- real(dp), dimension(:), allocatable entropy
- real(dp), dimension(:), allocatable energy
- iso_c_binding
- cea_thermo
Functions
- type(thermodb) function cea_thermo::tdb_init(ng ng, nc nc, nr nr, np np, ne ne)
- elemental logical function cea_thermo::st_is_condensed(self self)
- elemental real(dp) function cea_thermo::st_calc_cv(self self, T T)
- elemental real(dp) function cea_thermo::st_calc_cp(self self, T T)
- elemental real(dp) function cea_thermo::st_calc_energy(self self, T T)
- elemental real(dp) function cea_thermo::st_calc_enthalpy(self self, T T)
- elemental real(dp) function cea_thermo::st_calc_entropy(self self, T T)
- elemental real(dp) function cea_thermo::st_calc_gibbs_energy(self self, T T)
- elemental real(dp) function cea_thermo::st_calc_potential(self self, T T, log_nj log_nj, P P, n n)
- subroutine cea_thermo::build_product_list(names names, ng ng, nc nc, species species, name_map name_map)
- subroutine cea_thermo::build_reactant_list(names names, species species, name_map name_map)
- subroutine cea_thermo::build_elem_list(sym sym, elem elem, sym_map sym_map)
- subroutine cea_thermo::build_formulas(species_thermo species_thermo, name_map name_map, sym sym, fno fno)
- subroutine cea_thermo::build_thermo_coeffs(species_thermo species_thermo, num_species num_species, name_map name_map, tl tl, thermo thermo, ntl ntl)
- type(thermodb) function cea_thermo::read_thermo(filename filename)
Variables
- integer, parameter num_coefs = 9
- integer, parameter num_fit_g = 3
- integer, parameter max_elem_per_species = 5
- cea_thermo::speciesthermo
Public Functions
- procedure cea_thermo::speciesthermo::is_condensed()
- procedure cea_thermo::speciesthermo::calc_cv()
- procedure cea_thermo::speciesthermo::calc_cp()
- procedure cea_thermo::speciesthermo::calc_energy()
- procedure cea_thermo::speciesthermo::calc_enthalpy()
- procedure cea_thermo::speciesthermo::calc_entropy()
- procedure cea_thermo::speciesthermo::calc_gibbs_energy()
- procedure cea_thermo::speciesthermo::calc_potential()
Public Members
- character(sn) name
- type(formula), allocatable formula
- integer i_phase
- integer num_intervals
- real(dp) molecular_weight
- real(dp), dimension(:, :), allocatable t_fit
- type(thermofit), dimension(:), allocatable fits
- real(dp) enthalpy_ref = 0.0
- real(dp) t_ref = 0.0
- thermodb
Public Functions
- type(thermodb) function cea_thermo::thermodb::tdb_init(ng ng, nc nc, nr nr, np np, ne ne)
Public Members
- integer num_gas
- integer num_condensed
- integer num_reactants
- integer num_products
- integer num_elems
- character(sn), dimension(:), allocatable product_name_list
- character(sn), dimension(:), allocatable reactant_name_list
- character(en), dimension(:), allocatable element_name_list
- type(speciesthermo), dimension(:), allocatable product_thermo
- type(speciesthermo), dimension(:), allocatable reactant_thermo
- cea_transport
Functions
- elemental real(dp) function cea_transport::st_calc_eta(self self, T T)
- elemental real(dp) function cea_transport::st_calc_lambda(self self, T T)
- elemental real(dp) function cea_transport::bt_calc_eta(self self, T T)
- type(transportdb) function cea_transport::read_transport(filename filename)
- type(transportdb) function cea_transport::get_mixture_transport(all_transport all_transport, products products, ions ions)
- cea_transport::speciestransport
Public Functions
- procedure cea_transport::speciestransport::calc_eta()
- procedure cea_transport::speciestransport::calc_lambda()
Public Members
- character(16) name
- integer num_intervals
- real(dp), dimension(:, :), allocatable t_fit
- type(transportfit), dimension(:), allocatable eta_coef
- type(transportfit), dimension(:), allocatable lambda_coef
- cea_transport::binarytransport
Public Functions
- procedure cea_transport::binarytransport::calc_eta()
Public Members
- character(16), dimension(2) name
- integer num_intervals
- real(dp), dimension(:, :), allocatable t_fit
- type(transportfit), dimension(:), allocatable eta_coef
- cea_transport::transportdb
Public Members
- integer num_pure
- integer num_binary
- character(16), dimension(:), allocatable pure_species
- character(16), dimension(:, :), allocatable binary_species
- type(speciestransport), dimension(:), allocatable pure_transport
- type(binarytransport), dimension(:), allocatable binary_transport
Solvers¶
- cea_equilibrium
Functions
- type(eqsolver) function cea_equilibrium::eqsolver_init(products products, reactants reactants, trace trace, ions ions, all_transport all_transport, insert insert)
- real(dp) function cea_equilibrium::eqsolver_compute_damped_update_factor(self self, soln soln)
- subroutine cea_equilibrium::eqsolver_get_solution_vars(self self, soln soln)
- subroutine cea_equilibrium::eqsolver_update_solution(self self, soln soln)
- subroutine cea_equilibrium::eqsolver_check_convergence(self self, soln soln)
- subroutine cea_equilibrium::eqsolver_assemble_matrix(self self, soln soln)
- subroutine cea_equilibrium::eqsolver_check_condensed_phases(self self, soln soln, iter iter, made_change made_change)
- subroutine cea_equilibrium::eqsolver_test_condensed(self self, soln soln, iter iter, singular_index singular_index)
- subroutine cea_equilibrium::eqsolver_correct_singular(self self, soln soln, iter iter, ierr ierr)
- subroutine cea_equilibrium::eqsolver_post_process(self self, soln soln, computed_partials computed_partials)
- subroutine cea_equilibrium::eqsolver_solve(self self, soln soln, type type, state1 state1, state2 state2, reactant_weights reactant_weights, partials partials)
- type(eqconstraints) function cea_equilibrium::eqconstraints_init(type type, state1 state1, state2 state2, element_moles element_moles)
- type(eqconstraints) function cea_equilibrium::eqconstraints_alloc(num_elements num_elements)
- subroutine cea_equilibrium::eqconstraints_set(self self, type type, state1 state1, state2 state2, element_moles element_moles)
- logical function cea_equilibrium::eqconstraints_is_constant_temperature(self self)
- logical function cea_equilibrium::eqconstraints_is_constant_enthalpy(self self)
- logical function cea_equilibrium::eqconstraints_is_constant_energy(self self)
- logical function cea_equilibrium::eqconstraints_is_constant_entropy(self self)
- logical function cea_equilibrium::eqconstraints_is_constant_pressure(self self)
- logical function cea_equilibrium::eqconstraints_is_constant_volume(self self)
- type(eqsolution) function cea_equilibrium::eqsolution_init(solver solver, T_init T_init, nj_init nj_init)
- subroutine cea_equilibrium::eqsolution_set_nj(self self, solver solver, nj_init nj_init)
- integer function cea_equilibrium::eqsolution_num_equations(self self, solver solver)
- real(dp) function cea_equilibrium::eqsolution_calc_pressure(self self)
- real(dp) function cea_equilibrium::eqsolution_calc_volume(self self)
- real(dp) function cea_equilibrium::eqsolution_calc_entropy_sum(self self, solver solver)
- type(eqpartials) function cea_equilibrium::eqpartials_init(num_elements num_elements, num_active num_active)
- subroutine cea_equilibrium::eqpartials_assemble_partials_matrix_const_p(self self, solver solver, soln soln, J J)
- subroutine cea_equilibrium::eqpartials_assemble_partials_matrix_const_t(self self, solver solver, soln soln, J J)
- subroutine cea_equilibrium::eqpartials_compute_partials(self self, solver solver, soln soln)
- subroutine cea_equilibrium::gauss(G G, ierr ierr)
- integer function cea_equilibrium::find_pivot(G G, n n)
- character(:) function, allocatable cea_equilibrium::trim_phase(name name)
- integer function, dimension(:), allocatable cea_equilibrium::get_species_other_phases(name name, products products)
- subroutine cea_equilibrium::compute_transport_properties(eq_solver eq_solver, eq_soln eq_soln, frozen_shock frozen_shock)
- eqsolver
Public Functions
- procedure cea_equilibrium::eqsolver::compute_damped_update_factor()
- procedure cea_equilibrium::eqsolver::get_solution_vars()
- procedure cea_equilibrium::eqsolver::update_solution()
- procedure cea_equilibrium::eqsolver::check_convergence()
- procedure cea_equilibrium::eqsolver::check_condensed_phases()
- procedure cea_equilibrium::eqsolver::test_condensed()
- procedure cea_equilibrium::eqsolver::correct_singular()
- procedure cea_equilibrium::eqsolver::assemble_matrix()
- procedure cea_equilibrium::eqsolver::post_process()
- procedure cea_equilibrium::eqsolver::solve()
- type(eqsolver) function cea_equilibrium::eqsolver::eqsolver_init(products products, reactants reactants, trace trace, ions ions, all_transport all_transport, insert insert)
Public Members
- integer num_reactants = 0
- integer num_products = 0
- integer num_gas = 0
- integer num_condensed = 0
- integer num_elements = 0
- integer max_equations = 0
- type(mixture) reactants
- type(mixture) products
- type(mixturethermo) thermo
- type(transportdb) transport_db
- logical ions = .false.
- logical active_ions = .true.
- logical transport = .false.
- character(snl), dimension(:), allocatable insert
- real(dp) size = 18.420681d0
- real(dp) xsize = 25.328436d0
- real(dp) esize = 32.236191d0
- real(dp) tsize = 18.420681d0
- real(dp) trace = 0.0d0
- real(dp) log_min = -87.0d0
- integer max_iterations = 50
- integer max_converged = 10
- real(dp) t_min = 160.0d0
- real(dp) t_max = 6600.0d0
- eqconstraints
Public Functions
- procedure cea_equilibrium::eqconstraints::set()
- procedure cea_equilibrium::eqconstraints::is_constant_temperature()
- procedure cea_equilibrium::eqconstraints::is_constant_enthalpy()
- procedure cea_equilibrium::eqconstraints::is_constant_energy()
- procedure cea_equilibrium::eqconstraints::is_constant_entropy()
- procedure cea_equilibrium::eqconstraints::is_constant_pressure()
- procedure cea_equilibrium::eqconstraints::is_constant_volume()
- type(eqconstraints) function cea_equilibrium::eqconstraints::eqconstraints_init(type type, state1 state1, state2 state2, element_moles element_moles)
- type(eqconstraints) function cea_equilibrium::eqconstraints::eqconstraints_alloc(num_elements num_elements)
Public Members
- character(2) type
- real(dp) state1
- real(dp) state2
- real(dp), dimension(:), allocatable b0
- eqsolution
Public Functions
- procedure cea_equilibrium::eqsolution::set_nj()
- procedure cea_equilibrium::eqsolution::num_equations()
- procedure cea_equilibrium::eqsolution::calc_pressure()
- procedure cea_equilibrium::eqsolution::calc_volume()
- procedure cea_equilibrium::eqsolution::calc_entropy_sum()
- type(eqsolution) function cea_equilibrium::eqsolution::eqsolution_init(solver solver, T_init T_init, nj_init nj_init)
Public Members
- real(dp) t
- real(dp), dimension(:), allocatable nj
- real(dp) n
- type(mixturethermo) thermo
- real(dp), dimension(:), allocatable ln_nj
- real(dp), dimension(:), allocatable pi
- real(dp), dimension(:), allocatable pi_prev
- real(dp) pi_e = 0.0d0
- real(dp) dpi_e = 0.0d0
- real(dp), dimension(:), allocatable dln_nj
- real(dp), dimension(:), allocatable dnj_c
- real(dp) dln_n
- real(dp) dln_t
- real(dp), dimension(:,:), allocatable g
- type(eqconstraints) constraints
- logical, dimension(:), allocatable is_active
- integer j_liq = 0
- integer j_sol = 0
- integer j_switch = 0
- integer last_cond_idx = 0
- logical gas_converged = .false.
- logical condensed_converged = .false.
- logical moles_converged = .false.
- logical element_converged = .false.
- logical temperature_converged = .false.
- logical entropy_converged = .false.
- logical pi_converged = .false.
- logical ions_converged = .false.
- logical converged = .false.
- integer times_converged = 0
- real(dp), dimension(:), allocatable mole_fractions
- real(dp), dimension(:), allocatable mass_fractions
- real(dp) density = 0.0d0
- real(dp) pressure = 0.0d0
- real(dp) volume = 0.0d0
- real(dp) m = 0.0d0
- real(dp) mw = 0.0d0
- real(dp) enthalpy = 0.0d0
- real(dp) energy = 0.0d0
- real(dp) gibbs_energy = 0.0d0
- real(dp) entropy = 0.0d0
- real(dp) gamma_s = 0.0d0
- real(dp) viscosity = 0.0d0
- real(dp) cp_fr = 0.0d0
- real(dp) cp_eq = 0.0d0
- real(dp) cv_fr = 0.0d0
- real(dp) cv_eq = 0.0d0
- real(dp) conductivity_fr = 0.0d0
- real(dp) conductivity_eq = 0.0d0
- real(dp) pr_fr = 0.0d0
- real(dp) pr_eq = 0.0d0
- eqpartials
Public Functions
- procedure cea_equilibrium::eqpartials::assemble_partials_matrix_const_p()
- procedure cea_equilibrium::eqpartials::assemble_partials_matrix_const_t()
- procedure cea_equilibrium::eqpartials::compute_partials()
- type(eqpartials) function cea_equilibrium::eqpartials::eqpartials_init(num_elements num_elements, num_active num_active)
Public Members
- real(dp), dimension(:), allocatable dpi_dlnt
- real(dp), dimension(:), allocatable dnc_dlnt
- real(dp) dn_dlnt
- real(dp) dlnv_dlnt
- real(dp), dimension(:), allocatable dpi_dlnp
- real(dp), dimension(:), allocatable dnc_dlnp
- real(dp) dn_dlnp
- real(dp) dlnv_dlnp
- real(dp) cp_eq
- real(dp) gamma_s
- cea_rocket
Functions
- type(rocketsolver) function cea_rocket::rocketsolver_init(products products, reactants reactants, trace trace, ions ions, all_transport all_transport, insert insert)
- subroutine cea_rocket::rocketsolver_frozen(self self, soln soln, idx idx, n_frz n_frz)
- subroutine cea_rocket::rocketsolver_solve_throat(self self, soln soln, idx idx, pc pc, h_inf h_inf, s0 s0, weights weights, awt awt)
- subroutine cea_rocket::rocketsolver_solve_throat_frozen(self self, soln soln, idx idx, n_frz n_frz, pc pc, h_inf h_inf, s0 s0, weights weights, awt awt)
- subroutine cea_rocket::rocketsolver_solve_pi_p(self self, soln soln, idx idx, pc pc, pi_p pi_p, h_inf h_inf, s0 s0, weights weights, T_idx T_idx, nj_idx nj_idx)
- subroutine cea_rocket::rocketsolver_solve_pi_p_frozen(self self, soln soln, idx idx, n_frz n_frz, pc pc, pi_p pi_p, h_inf h_inf, s0 s0, weights weights, T_idx T_idx)
- subroutine cea_rocket::rocketsolver_solve_subar(self self, soln soln, idx idx, pc pc, subar subar, h_inf h_inf, s0 s0, weights weights, T_idx T_idx, nj_idx nj_idx, ln_pinf_pt ln_pinf_pt, awt awt)
- subroutine cea_rocket::rocketsolver_solve_supar(self self, soln soln, idx idx, pc pc, supar supar, h_inf h_inf, s0 s0, weights weights, T_idx T_idx, nj_idx nj_idx, ln_pinf_pt ln_pinf_pt, awt awt)
- subroutine cea_rocket::rocketsolver_solve_supar_frozen(self self, soln soln, idx idx, n_frz n_frz, pc pc, supar supar, h_inf h_inf, s0 s0, weights weights, T_idx T_idx, ln_pinf_pt ln_pinf_pt, awt awt)
- subroutine cea_rocket::rocketsolver_solve_iac(self self, soln soln, reactant_weights reactant_weights, pc pc, pi_p pi_p, subar subar, supar supar, n_frz n_frz, tc_est tc_est, hc hc, tc tc)
- subroutine cea_rocket::rocketsolver_solve_fac(self self, soln soln, reactant_weights reactant_weights, pc pc, pi_p pi_p, subar subar, supar supar, ac_at ac_at, mdot mdot, n_frz n_frz, tc_est tc_est, hc hc, tc tc)
- type(rocketsolution) function cea_rocket::rocketsolver_solve(self self, reactant_weights reactant_weights, pc pc, pi_p pi_p, fac fac, subar subar, supar supar, mdot mdot, ac_at ac_at, n_frz n_frz, tc_est tc_est, hc hc, tc tc)
- subroutine cea_rocket::rocketsolver_post_process(self self, soln soln, fac fac)
- subroutine cea_rocket::rocketsolver_set_init_state(self self, soln soln, idx idx)
- type(rocketsolution) function cea_rocket::rocketsolution_init(solver solver, num_pts num_pts)
- rocketsolver
Public Functions
- procedure cea_rocket::rocketsolver::solve()
- procedure cea_rocket::rocketsolver::solve_iac()
- procedure cea_rocket::rocketsolver::solve_fac()
- procedure cea_rocket::rocketsolver::solve_throat()
- procedure cea_rocket::rocketsolver::solve_throat_frozen()
- procedure cea_rocket::rocketsolver::solve_pi_p()
- procedure cea_rocket::rocketsolver::solve_pi_p_frozen()
- procedure cea_rocket::rocketsolver::solve_subar()
- procedure cea_rocket::rocketsolver::solve_supar()
- procedure cea_rocket::rocketsolver::solve_supar_frozen()
- procedure cea_rocket::rocketsolver::frozen()
- procedure cea_rocket::rocketsolver::post_process()
- procedure cea_rocket::rocketsolver::set_init_state()
- type(rocketsolver) function cea_rocket::rocketsolver::rocketsolver_init(products products, reactants reactants, trace trace, ions ions, all_transport all_transport, insert insert)
Public Members
- type(eqsolver) eq_solver
- rocketsolution
Public Functions
- type(rocketsolution) function cea_rocket::rocketsolution::rocketsolution_init(solver solver, num_pts num_pts)
Public Members
- integer num_pts
- character(8), dimension(:), allocatable station
- integer throat_idx
- integer i_save
- type(eqsolution) eq_soln_save
- type(eqsolution), dimension(:), allocatable eq_soln
- type(eqpartials), dimension(:), allocatable eq_partials
- real(dp), dimension(:), allocatable pressure
- real(dp), dimension(:), allocatable mach
- real(dp), dimension(:), allocatable gamma_s
- real(dp), dimension(:), allocatable v_sonic
- real(dp), dimension(:), allocatable ae_at
- real(dp), dimension(:), allocatable c_star
- real(dp), dimension(:), allocatable cf
- real(dp), dimension(:), allocatable i_vac
- real(dp), dimension(:), allocatable i_sp
- logical converged = .false.
- cea_shock
Functions
- type(shocksolver) function cea_shock::shocksolver_init(products products, reactants reactants, trace trace, ions ions, all_transport all_transport, insert insert)
- subroutine cea_shock::shocksolver_update_solution(self self, soln soln, X1 X1, X2 X2, p21 p21, t21 t21, iter iter)
- subroutine cea_shock::shocksolver_solve_incident(self self, soln soln, weights weights, T0 T0, P0 P0)
- subroutine cea_shock::shocksolver_solve_incident_frozen(self self, soln soln, weights weights, T0 T0, P0 P0)
- subroutine cea_shock::shocksolver_solve_reflected(self self, soln soln, weights weights, T0 T0, P0 P0)
- subroutine cea_shock::shocksolver_solve_reflected_frozen(self self, soln soln, weights weights, T0 T0, P0 P0)
- type(shocksolution) function cea_shock::shocksolver_solve(self self, reactant_weights reactant_weights, T0 T0, P0 P0, u1 u1, mach1 mach1, reflected reflected, incident_frozen incident_frozen, reflected_frozen reflected_frozen)
- type(shocksolution) function cea_shock::shocksolution_init(num_pts num_pts)
- shocksolver
Public Functions
- procedure cea_shock::shocksolver::solve()
- procedure cea_shock::shocksolver::solve_incident()
- procedure cea_shock::shocksolver::solve_incident_frozen()
- procedure cea_shock::shocksolver::solve_reflected()
- procedure cea_shock::shocksolver::solve_reflected_frozen()
- procedure cea_shock::shocksolver::update_solution()
- type(shocksolver) function cea_shock::shocksolver::shocksolver_init(products products, reactants reactants, trace trace, ions ions, all_transport all_transport, insert insert)
Public Members
- type(eqsolver) eq_solver
- shocksolution
Public Functions
- type(shocksolution) function cea_shock::shocksolution::shocksolution_init(num_pts num_pts)
Public Members
- integer num_pts
- type(eqsolution), dimension(:), allocatable eq_soln
- type(eqpartials), dimension(:), allocatable eq_partials
- real(dp), dimension(:), allocatable pressure
- real(dp), dimension(:), allocatable mach
- real(dp), dimension(:), allocatable u
- real(dp), dimension(:), allocatable v_sonic
- real(dp) rho12
- real(dp) rho52 = 0.0d0
- real(dp) p21
- real(dp) p52 = 0.0d0
- real(dp) t21
- real(dp) t52 = 0.0d0
- real(dp) m21
- real(dp) m52 = 0.0d0
- real(dp) v2 = 0.0d0
- real(dp) u5_p_v2 = 0.0d0
- logical converged = .false.
- cea_detonation
Functions
- type(detonsolver) function cea_detonation::detonsolver_init(products products, reactants reactants, trace trace, ions ions, all_transport all_transport, insert insert)
- subroutine cea_detonation::detonsolver_solve_eq(self self, soln soln, weights weights, t1 t1, p1 p1)
- type(detonsolution) function cea_detonation::detonsolver_solve(self self, reactant_weights reactant_weights, t1 t1, p1 p1, frozen frozen)
- type(detonsolution) function cea_detonation::detonsolution_init()
- detonsolver
Public Functions
- procedure cea_detonation::detonsolver::solve_eq()
- procedure cea_detonation::detonsolver::solve()
- type(detonsolver) function cea_detonation::detonsolver::detonsolver_init(products products, reactants reactants, trace trace, ions ions, all_transport all_transport, insert insert)
Public Members
- type(eqsolver) eq_solver
- detonsolution
Public Functions
- type(detonsolution) function cea_detonation::detonsolution::detonsolution_init()
Public Members
- type(eqsolution) eq_soln
- type(eqpartials) eq_partials
- real(dp) p1
- real(dp) t1
- real(dp) h1
- real(dp) m1
- real(dp) gamma1
- real(dp) v_sonic1
- real(dp) pressure
- real(dp) sonic_velocity
- real(dp) velocity
- real(dp) mach
- real(dp) gamma
- real(dp) enthalpy
- real(dp) p_p1
- real(dp) t_t1
- real(dp) m_m1
- real(dp) rho_rho1
- logical converged = .false.
- fb_utils