diff --git a/Cantera/python/src/methods.h b/Cantera/python/src/methods.h index ce7560f21..026e974ec 100644 --- a/Cantera/python/src/methods.h +++ b/Cantera/python/src/methods.h @@ -85,46 +85,8 @@ static PyMethodDef ct_methods[] = { {"ct_print", ct_print, METH_VARARGS}, {"ct_refcnt", ct_refcnt, METH_VARARGS}, {"readlog", ct_readlog, METH_VARARGS}, - //{"ck2cti", ct_ck2cti, METH_VARARGS}, {"buildSolutionFromXML", ct_buildSolutionFromXML, METH_VARARGS}, -// {"Flow", py_flow_new, METH_VARARGS}, -// {"flow_delete", py_flow_delete, METH_VARARGS}, -// {"flow_setupgrid", py_flow_setupgrid, METH_VARARGS}, -// {"flow_setthermo", py_flow_setthermo, METH_VARARGS}, -// {"flow_setkinetics", py_flow_setkinetics, METH_VARARGS}, -// {"flow_settransport", py_flow_settransport, METH_VARARGS}, -// {"flow_setpressure", py_flow_setpressure, METH_VARARGS}, -// {"flow_solvespecies", py_flow_solvespecies, METH_VARARGS}, -// {"flow_settemperature", py_flow_settemperature, METH_VARARGS}, -// {"flow_setenergyfactor", py_flow_setenergyfactor, METH_VARARGS}, -// {"flow_setmassfraction", py_flow_setmassfraction, METH_VARARGS}, -// {"flow_settolerances", py_flow_settolerances, METH_VARARGS}, -// {"flow_energy", py_flow_energy, METH_VARARGS}, -// {"flow_showsolution", py_flow_showsolution, METH_VARARGS}, -// {"flow_resize", py_flow_resize, METH_VARARGS}, -// {"flow_outputtec", py_flow_outputtec, METH_VARARGS}, -// {"flow_restore", py_flow_restore, METH_VARARGS}, -// {"flow_setfixedpoint", py_flow_setfixedpoint, METH_VARARGS}, -// {"flow_setboundaries", py_flow_setboundaries, METH_VARARGS}, -// {"copy", py_copy, METH_VARARGS}, -// {"bdry_new", py_bdry_new, METH_VARARGS}, -// {"bdry_del", py_bdry_delete, METH_VARARGS}, -// {"bdry_set", py_bdry_set, METH_VARARGS}, -// {"onedim_solve", py_onedim_solve, METH_VARARGS}, -// {"onedim_new", py_onedim_new, METH_VARARGS}, -// {"onedim_del", py_onedim_delete, METH_VARARGS}, -// {"onedim_setnewtonoptions", py_onedim_setnewtonoptions, METH_VARARGS}, -// {"onedim_ssnorm", py_onedim_ssnorm, METH_VARARGS}, -// {"onedim_setsteadymode", py_onedim_setsteadymode, METH_VARARGS}, -// {"onedim_settransientmode", py_onedim_settransientmode, METH_VARARGS}, -// {"onedim_eval", py_onedim_eval, METH_VARARGS}, -// {"onedim_addflow", py_onedim_addflow, METH_VARARGS}, -// {"onedim_resize", py_onedim_resize, METH_VARARGS}, -// {"onedim_writestats", py_onedim_writestats, METH_VARARGS}, -// {"onedim_timestep", py_onedim_timestep, METH_VARARGS}, -// {"onedim_save", py_onedim_save, METH_VARARGS}, - {"domain_clear", py_domain_clear, METH_VARARGS}, {"domain_del", py_domain_del, METH_VARARGS}, {"domain_type", py_domain_type, METH_VARARGS}, diff --git a/Cantera/src/InterfaceKinetics.cpp b/Cantera/src/InterfaceKinetics.cpp index 80fc65640..f82181106 100644 --- a/Cantera/src/InterfaceKinetics.cpp +++ b/Cantera/src/InterfaceKinetics.cpp @@ -27,183 +27,6 @@ using namespace std; namespace Cantera { - - /////////////////////////////////////////////////////////// - // - // class SurfPhase methods - // - /////////////////////////////////////////////////////////// - - SurfPhase:: - SurfPhase(doublereal n0): - ThermoPhase(), - m_n0(n0), - m_logn0(0.0), - m_tmin(0.0), - m_tmax(0.0), - m_press(OneAtm), - m_tlast(0.0) - { - if (n0 > 0.0) m_logn0 = log(n0); - setNDim(2); - } - - doublereal SurfPhase:: - enthalpy_mole() const { - if (m_n0 <= 0.0) return 0.0; - _updateThermo(); - return mean_X(m_h0.begin()); - } - - SurfPhase:: - ~SurfPhase() { } - - /** - * For a surface phase, the pressure is not a relevant - * thermodynamic variable, and so the enthalpy is equal to the - * internal energy. - */ - doublereal SurfPhase:: - intEnergy_mole() const { return enthalpy_mole(); } - - void SurfPhase:: - getStandardChemPotentials(doublereal* mu0) const { - _updateThermo(); - copy(m_mu0.begin(), m_mu0.end(), mu0); - } - - void SurfPhase:: - getActivityConcentrations(doublereal* c) const { - getConcentrations(c); - } - - doublereal SurfPhase:: - standardConcentration(int k) const { - return m_n0/size(k); - } - - doublereal SurfPhase:: - logStandardConc(int k) const { - return m_logn0 - m_logsize[k]; - } - - void SurfPhase:: - setParameters(int n, doublereal* c) { - m_n0 = c[0]; - if (m_n0 <= 0.0) { - throw CanteraError("SurfPhase::setParameters", - "Bad value for parameter"); - } - m_logn0 = log(m_n0); - } - - void SurfPhase:: - initThermo() { - m_h0.resize(m_kk); - m_s0.resize(m_kk); - m_cp0.resize(m_kk); - m_mu0.resize(m_kk); - m_work.resize(m_kk); - m_pe.resize(m_kk, 0.0); - vector_fp cov(m_kk, 0.0); - cov[0] = 1.0; - setCoverages(cov.begin()); - m_logsize.resize(m_kk); - for (int k = 0; k < m_kk; k++) - m_logsize[k] = log(size(k)); - } - - void SurfPhase:: - setPotentialEnergy(int k, doublereal pe) { - m_pe[k] = pe; - _updateThermo(true); - } - - void SurfPhase:: - setSiteDensity(doublereal n0) { - doublereal x = n0; - setParameters(1, &x); - } - - - //void SurfPhase:: - //setElectricPotential(doublereal V) { - // for (int k = 0; k < m_kk; k++) { - // m_pe[k] = charge(k)*Faraday*V; - // } - // _updateThermo(true); - //} - - /** - * Set the coverage fractions to a specified - * state. This routine converts to concentrations - * in kmol/m2, using m_n0, the surface site density, - * and size(k), which is defined to be the number of - * surface sites occupied by the kth molecule. - * It then calls State::setConcentrations to set the - * internal concentration in the object. - */ - void SurfPhase:: - setCoverages(const doublereal* theta) { - for (int k = 0; k < m_kk; k++) { - m_work[k] = m_n0*theta[k]/size(k); - } - /* - * Call the State:: class function - * setConcentrations. - */ - setConcentrations(m_work.begin()); - } - - void SurfPhase:: - getCoverages(doublereal* theta) const { - getConcentrations(theta); - for (int k = 0; k < m_kk; k++) { - theta[k] *= size(k)/m_n0; - } - } - - void SurfPhase:: - setCoveragesByName(string cov) { - int kk = nSpecies(); - int k; - compositionMap cc; - for (k = 0; k < kk; k++) { - cc[speciesName(k)] = -1.0; - } - parseCompString(cov, cc); - doublereal c; - vector_fp cv(kk, 0.0); - for (k = 0; k < kk; k++) { - c = cc[speciesName(k)]; - if (c > 0.0) cv[k] = c; - } - setCoverages(cv.begin()); - } - - - void SurfPhase:: - _updateThermo(bool force) const { - doublereal tnow = temperature(); - if (m_tlast != tnow || force) { - m_spthermo->update(tnow, m_cp0.begin(), m_h0.begin(), - m_s0.begin()); - m_tlast = tnow; - doublereal rt = GasConstant * tnow; - int k; - //doublereal deltaE; - for (k = 0; k < m_kk; k++) { - m_h0[k] *= rt; - m_s0[k] *= GasConstant; - m_cp0[k] *= GasConstant; - //deltaE = m_pe[k]; - //m_h0[k] += deltaE; - m_mu0[k] = m_h0[k] - tnow*m_s0[k]; - } - m_tlast = tnow; - } - } - ////////////////////////////////////////////////////////////////// /** @@ -314,34 +137,35 @@ namespace Cantera { void InterfaceKinetics::updateKc() { int i, irxn; vector_fp& m_rkc = m_kdata->m_rkcn; - - int n, nsp, k, ik=0; - doublereal rt = GasConstant*thermo(0).temperature(); - doublereal rrt = 1.0/rt; - int np = nPhases(); - for (n = 0; n < np; n++) { - thermo(n).getStandardChemPotentials(m_mu0.begin() + m_start[n]); - nsp = thermo(n).nSpecies(); - for (k = 0; k < nsp; k++) { - m_mu0[ik] -= rt*thermo(n).logStandardConc(k); - m_mu0[ik] += Faraday * m_phi[n] * thermo(n).charge(k); - ik++; - } - } - fill(m_rkc.begin(), m_rkc.end(), 0.0); - // compute Delta mu^0 for all reversible reactions - m_reactantStoich.decrementReactions(m_mu0.begin(), m_rkc.begin()); - m_revProductStoich.incrementReactions(m_mu0.begin(), m_rkc.begin()); + if (m_nrev > 0) { - for (i = 0; i < m_nrev; i++) { - irxn = m_revindex[i]; - m_rkc[irxn] = exp(m_rkc[irxn]*rrt); - } + int n, nsp, k, ik=0; + doublereal rt = GasConstant*thermo(0).temperature(); + doublereal rrt = 1.0/rt; + int np = nPhases(); + for (n = 0; n < np; n++) { + thermo(n).getStandardChemPotentials(m_mu0.begin() + m_start[n]); + nsp = thermo(n).nSpecies(); + for (k = 0; k < nsp; k++) { + m_mu0[ik] -= rt*thermo(n).logStandardConc(k); + m_mu0[ik] += Faraday * m_phi[n] * thermo(n).charge(k); + ik++; + } + } - for (i = 0; i != m_nirrev; ++i) { - m_rkc[ m_irrev[i] ] = 0.0; + // compute Delta mu^0 for all reversible reactions + m_reactantStoich.decrementReactions(m_mu0.begin(), m_rkc.begin()); + m_revProductStoich.incrementReactions(m_mu0.begin(), m_rkc.begin()); + + for (i = 0; i < m_nrev; i++) { + irxn = m_revindex[i]; + m_rkc[irxn] = exp(m_rkc[irxn]*rrt); + } + for (i = 0; i != m_nirrev; ++i) { + m_rkc[ m_irrev[i] ] = 0.0; + } } } @@ -491,6 +315,10 @@ namespace Cantera { addReaction(const ReactionData& r) { int nr = r.reactants.size(); + + // a global reaction is idnetified as one with + // a reactant stoichiometric coefficient not equal + // to the molecularity for some reactant bool isglobal = false; for (int n = 0; n < nr; n++) { if (r.rstoich[n] != int(r.order[n])) { diff --git a/Cantera/src/Makefile.in b/Cantera/src/Makefile.in index ee96d2dd9..492369a8e 100755 --- a/Cantera/src/Makefile.in +++ b/Cantera/src/Makefile.in @@ -33,7 +33,7 @@ KINETICS = GRI_30_Kinetics.o KineticsFactory.o GasKinetics.o FalloffFactory.o ReactionStoichMgr.o $(THERMO) # heterogeneous kinetics -HETEROKIN = InterfaceKinetics.o ImplicitSurfChem.o $(THERMO) +HETEROKIN = InterfaceKinetics.o ImplicitSurfChem.o SurfPhase.o $(THERMO) # support for importing from Chemkin-compatible reaction mechanisms CK = $(KINETICS) @@ -51,8 +51,8 @@ SOLVERS = CVode.o BandMatrix.o FLOW1D = $(KINETICS) $(SOLVERS) -EVERYTHING = $(KINETICS) $(HETEROKIN) $(EQUIL) $(CK) $(TRANSPORT) $(REACTOR) $(RPATH) \ - $(SOLVERS) $(FLOW1D) +EVERYTHING = $(KINETICS) $(HETEROKIN) $(ELECTROCHEM) $(EQUIL) $(CK) \ + $(TRANSPORT) $(REACTOR) $(RPATH) $(SOLVERS) $(FLOW1D) all: @KERNEL@ lib diff --git a/Cantera/src/NasaPoly1.h b/Cantera/src/NasaPoly1.h index 9cc9ff0e7..12309ebc3 100755 --- a/Cantera/src/NasaPoly1.h +++ b/Cantera/src/NasaPoly1.h @@ -31,7 +31,7 @@ namespace Cantera { * \f] * \f[ * \frac{h^0(T)}{RT} = a_0 + \frac{a_1}{2} T + \frac{a_2}{3} T^2 - + \frac{a_3}{4} T^3 + \frac{a_4}{5} T^4 + a_5. + * + \frac{a_3}{4} T^3 + \frac{a_4}{5} T^4 + \frac{a_5}{T}. * \f] * \f[ * \frac{s^0(T)}{R} = a_0\ln T + a_1 T + \frac{a_2}{2} T^2 @@ -61,26 +61,34 @@ namespace Cantera { virtual ~NasaPoly1(){} - doublereal minTemp() const { return m_lowT;} - doublereal maxTemp() const { return m_highT;} + doublereal minTemp() const { return m_lowT;} + doublereal maxTemp() const { return m_highT;} doublereal refPressure() const { return m_Pref; } + /** + * Update the properties for this species. This method is called + * with a pointer to an array containing the functions of temperature needed by this + * parameterization, and three pointers to arrays where the computed property values + * should be written. This method updates only one value in each array. + */ void updateProperties(const doublereal* tt, doublereal* cp_R, doublereal* h_RT, doublereal* s_R) const { - doublereal ct0 = m_coeff[2]; - doublereal ct1 = m_coeff[3]*tt[0]; - doublereal ct2 = m_coeff[4]*tt[1]; - doublereal ct3 = m_coeff[5]*tt[2]; - doublereal ct4 = m_coeff[6]*tt[3]; + doublereal ct0 = m_coeff[2]; // a0 + doublereal ct1 = m_coeff[3]*tt[0]; // a1 * T + doublereal ct2 = m_coeff[4]*tt[1]; // a2 * T^2 + doublereal ct3 = m_coeff[5]*tt[2]; // a3 * T^3 + doublereal ct4 = m_coeff[6]*tt[3]; // a4 * T^4 doublereal cp, h, s; cp = ct0 + ct1 + ct2 + ct3 + ct4; h = ct0 + 0.5*ct1 + OneThird*ct2 + 0.25*ct3 + 0.2*ct4 - + m_coeff[0]*tt[4]; + + m_coeff[0]*tt[4]; // last term is a5/T s = ct0*tt[5] + ct1 + 0.5*ct2 + OneThird*ct3 - +0.25*ct4 + m_coeff[1]; + +0.25*ct4 + m_coeff[1]; // last term is a6 + // return the computed properties in the location in the output + // arrays for this species cp_R[m_index] = cp; h_RT[m_index] = h; s_R[m_index] = s; @@ -88,9 +96,11 @@ namespace Cantera { protected: - doublereal m_lowT, m_highT, m_Pref; - int m_index; - array_fp m_coeff; + doublereal m_lowT; // lowest valid temperature + doublereal m_highT; // highest valid temperature + doublereal m_Pref; // standard-state pressure + int m_index; // species index + array_fp m_coeff; // array of polynomial coefficients private: diff --git a/Cantera/src/NasaThermo.h b/Cantera/src/NasaThermo.h index 63c4cae13..d706c7fbe 100755 --- a/Cantera/src/NasaThermo.h +++ b/Cantera/src/NasaThermo.h @@ -3,9 +3,9 @@ */ /* - * $author$ - * $revision$ - * $date$ + * $Author$ + * $Revision$ + * $Date$ */ @@ -57,12 +57,12 @@ namespace Cantera { /** * Install parameterization for a species. - * @param index Species index - * @param type ignored, since only NASA type is supported - * @param c coefficients. These are - * - c[0] midpoint temperature - * - c[1] - c[7] coefficients for low T range - * - c[8] - c[14] coefficients for high T range + * @param index Species index + * @param type ignored, since only NASA type is supported + * @param c coefficients. These are + * - c[0] midpoint temperature + * - c[1] - c[7] coefficients for low T range + * - c[8] - c[14] coefficients for high T range */ virtual void install(int index, int type, const doublereal* c, doublereal minTemp, doublereal maxTemp, doublereal refPressure) { @@ -105,6 +105,10 @@ namespace Cantera { m_low_map[index] = &m_low[igrp-1].back(); } + + /** + * update the properties for only one species. + */ virtual void update_one(int k, doublereal t, doublereal* cp_R, doublereal* h_RT, doublereal* s_R) const { @@ -127,6 +131,7 @@ namespace Cantera { doublereal* h_RT, doublereal* s_R) const { int i; + // load functions of temperature into m_t vector m_t[0] = t; m_t[1] = t*t; m_t[2] = m_t[1]*t; @@ -134,6 +139,7 @@ namespace Cantera { m_t[4] = 1.0/t; m_t[5] = log(t); + // iterate over the groups vector::const_iterator _begin, _end; for (i = 0; i != m_ngroups; i++) { if (t > m_tmid[i]) { @@ -149,6 +155,13 @@ namespace Cantera { } } + /** + * Return the lowest temperature at which the thermodynamic + * parameterization is valid. If no argument is supplied, the + * value is the one for which all species parameterizations + * are valid. Otherwise, if an integer argument is given, the + * value applies only to the species with that index. + */ virtual doublereal minTemp(int k=-1) const { if (k < 0) return m_tlow_max; @@ -187,8 +200,11 @@ namespace Cantera { #endif // $Log$ -// Revision 1.1 2003-04-14 17:57:51 dggoodwin -// Initial revision +// Revision 1.2 2003-11-01 04:50:35 dggoodwin +// *** empty log message *** +// +// Revision 1.1.1.1 2003/04/14 17:57:51 dggoodwin +// Initial import. // // Revision 1.16 2003/01/13 10:14:32 dgg // *** empty log message *** diff --git a/Cantera/src/SpeciesThermo.h b/Cantera/src/SpeciesThermo.h index e4c671170..0a1d73ca7 100755 --- a/Cantera/src/SpeciesThermo.h +++ b/Cantera/src/SpeciesThermo.h @@ -34,10 +34,9 @@ namespace Cantera { //////////////////////// class SpeciesThermo //////////////////// /** - * Virtual base class for the species thermo - * manager classes. This class defines the interface which all - * subclasses must implement. - * @ingroup spthermo + * Virtual base class for the species thermo manager classes. This + * class defines the interface which all subclasses must + * implement. @ingroup spthermo */ class SpeciesThermo { diff --git a/Cantera/src/ct2ctml.cpp b/Cantera/src/ct2ctml.cpp index ed9c5e6ad..33c513585 100644 --- a/Cantera/src/ct2ctml.cpp +++ b/Cantera/src/ct2ctml.cpp @@ -111,7 +111,7 @@ namespace ctml { //char line[90]; //if (ierr != 0) { try { - char ch; + char ch=0; string s = ""; ifstream ferr("ct2ctml.log"); if (ferr) { diff --git a/Cantera/src/importCTML.cpp b/Cantera/src/importCTML.cpp index 97cdf54fe..f326591b8 100755 --- a/Cantera/src/importCTML.cpp +++ b/Cantera/src/importCTML.cpp @@ -103,12 +103,13 @@ namespace Cantera { XML_Node *db, *doc; split(file_ID, fname, idstr); if (fname == "") { - if (!root) return 0; - db = root->findID(idstr, 3); + if (!root) throw CanteraError("get_XML_Node","no file name given. file_ID = "+file_ID); + db = root->findID(idstr, 3); } else { doc = get_XML_File(fname); - if (!doc) return 0; + if (!doc) throw CanteraError("get_XML_Node", "get_XML_File failed trying to open "+fname); db = doc->findID(idstr, 3); + if (!db) throw CanteraError("get_XML_Node", "id tag "+idstr+" not found."); } return db; } diff --git a/Cantera/src/mix_defs.h b/Cantera/src/mix_defs.h index 832e46b82..e829a5bd8 100755 --- a/Cantera/src/mix_defs.h +++ b/Cantera/src/mix_defs.h @@ -35,11 +35,13 @@ namespace Cantera { const int cSurf = 3; // SurfPhase in SurfPhase.h const int cMetal = 4; // MetalPhase in MetalPhase.h const int cSolidCompound = 5; // SolidCompound in SolidCompound.h + const int cEdge = 6; // kinetic manager types const int cGasKinetics = 2; const int cGRI30 = 3; const int cInterfaceKinetics = 4; + const int cLineKinetics = 5; } #endif diff --git a/Cantera/src/oneD/Domain1D.h b/Cantera/src/oneD/Domain1D.h index 191a39ee4..16ecbb226 100644 --- a/Cantera/src/oneD/Domain1D.h +++ b/Cantera/src/oneD/Domain1D.h @@ -398,11 +398,12 @@ namespace Cantera { virtual void setupGrid(int n, const doublereal* z) {} /** - * Writes some or all initial solution values into array x, - * which is the solution vector for this domain. This allows - * initial values that have been set prior to installing this - * domain into the container to be written to the global - * solution vector. + * Writes some or all initial solution values into the global + * solution array, beginning at the location pointed to by + * x. This method is called by the Sim1D constructor, and + * allows default values or ones that have been set locally + * prior to installing this domain into the container to be + * written to the global solution vector. */ virtual void _getInitialSoln(doublereal* x) { throw CanteraError("Domain1D::_getInitialSoln", @@ -410,13 +411,19 @@ namespace Cantera { } /** - * Perform any necessary domain-specific initialization using - * local solution vector x. + * In some cases, a domain may need to set parameters that + * depend on the initial solution estimate. In such cases, the + * parameters may be set in method _finalize. This method is + * called just before the Newton solver is called, and the x + * array is guaranteed to be the local solution vector for + * this domain that will be used as the initial guess. If no + * such parameters need to be set, then method _finalize does + * not need to be overloaded. */ - virtual void _finalize(const doublereal* x) { - throw CanteraError("Domain1D::_finalize", - "base class method _finalize called!"); - } + virtual void _finalize(const doublereal* x) {} + //throw CanteraError("Domain1D::_finalize", + // "base class method _finalize called!"); + //} protected: diff --git a/Cantera/src/oneD/MultiJac.cpp b/Cantera/src/oneD/MultiJac.cpp index 07faecfd1..1a4123a02 100644 --- a/Cantera/src/oneD/MultiJac.cpp +++ b/Cantera/src/oneD/MultiJac.cpp @@ -20,6 +20,8 @@ #endif #include +#include + using namespace std; #include "MultiJac.h" @@ -93,10 +95,12 @@ namespace Cantera { for (m = 0; m < mv; m++) { value(m+iloc,ipt) = (m_r1[m+iloc] - resid0[m+iloc])*rdx; - //if (m == 15) { - // cout << "perturbed " << n << " " << value(m+iloc,ipt) << " " << m_r1[m+iloc] - // << " " << resid0[m+iloc] << " " << rdx << endl; - //} + if (__isnand(value(m+iloc,ipt))) { + cout << "NaN detected at i, j, n, m: " << i + << " " << j << " " << n << " " << m << + " " << m_r1[m+iloc] << " " << resid0[m+iloc] + << " " << rdx << endl; + } } } } diff --git a/Cantera/src/oneD/MultiNewton.cpp b/Cantera/src/oneD/MultiNewton.cpp index 27b521550..f57bdd061 100644 --- a/Cantera/src/oneD/MultiNewton.cpp +++ b/Cantera/src/oneD/MultiNewton.cpp @@ -145,7 +145,7 @@ namespace Cantera { "Jacobian is singular for domain "+ dom.id() + ", component " +dom.componentName(comp)+" at point " - +int2str(pt)); + +int2str(pt)+"\nsee file bandmatrix.csv\n"); } else if (iok < 0) throw CanteraError("MultiNewton::step", diff --git a/Cantera/src/transport/MixTransport.cpp b/Cantera/src/transport/MixTransport.cpp index 09e29e4c1..b1550a144 100755 --- a/Cantera/src/transport/MixTransport.cpp +++ b/Cantera/src/transport/MixTransport.cpp @@ -52,7 +52,6 @@ namespace Cantera { bool MixTransport::init(TransportParams& tr) { // constant substance attributes - //m_phase = tr.mix; m_thermo = tr.thermo; m_nsp = m_thermo->nSpecies(); m_tmin = m_thermo->minTemp(); diff --git a/Cantera/src/transport/TransportBase.h b/Cantera/src/transport/TransportBase.h index a8a8998ec..0feacb2c8 100755 --- a/Cantera/src/transport/TransportBase.h +++ b/Cantera/src/transport/TransportBase.h @@ -24,11 +24,12 @@ #include "../ctexceptions.h" #include "../Array.h" #include "../stringUtils.h" -//#include "Phase.h" #include "../ThermoPhase.h" namespace Cantera { + // exception class + class NotImplemented : public CanteraError { public: NotImplemented(string method) : CanteraError("Transport", @@ -53,24 +54,21 @@ namespace Cantera { /** - * Base class for transport property managers. - * All classes that compute transport properties derive from this - * class. Class Transport is meant to be used as a base class - * only. It is possible to instantiate it, but its methods throw - * exceptions if called. - * @see MultiTransport - * @see MixTransport + * Base class for transport property managers. All classes that + * compute transport properties derive from this class. Class + * Transport is meant to be used as a base class only. It is + * possible to instantiate it, but its methods throw exceptions if + * called. */ class Transport { public: /** - * Transport model. Each transport manager may implement a - * different transport model, defined as the set of equations - * used to compute the transport properties. This virtual - * method returns an integer flag that identifies the - * transport model implemented. + * Transport model. The transport model is the set of + * equations used to compute the transport properties. This + * virtual method returns an integer flag that identifies the + * transport model implemented. The base class returns 0. */ virtual int model() {return 0;} @@ -86,7 +84,6 @@ namespace Cantera { /** * Returns true if the transport manager is ready for use. - * When first created, ready() returns false, since */ bool ready() { return m_ready; } @@ -107,8 +104,7 @@ namespace Cantera { /** - * The mixture viscosity in Pa-s. - * @see \ref viscositySection + * The viscosity in Pa-s. */ virtual doublereal viscosity() { return err("viscosity"); } @@ -128,7 +124,6 @@ namespace Cantera { * applications where bulk viscosity is important, it is * possible to create a transport manager that computes it by * overloading this method. - * @see bulkViscositySection */ virtual doublereal bulkViscosity() { return err("bulkViscosity"); } @@ -136,13 +131,12 @@ namespace Cantera { /** * The thermal conductivity in W/m/K. - * @see thermalConductivitySection */ virtual doublereal thermalConductivity() { return err("thermalConductivity"); } /** - * The electrical conductivity (mho/m). + * The electrical conductivity (Siemens/m). */ virtual doublereal electricalConductivity() { return err("electricalConductivity"); } @@ -150,14 +144,10 @@ namespace Cantera { /** * Electrical mobilities. Units: [m^2/V/s]. */ - void getMobilities(vector_fp& mobil) { - if (mobil.size() < m_nmin) sizeError(mobil.size(), m_nmin); - getMobilities(mobil.begin()); - } - virtual void getMobilities(doublereal* mobil) { err("getMobilities"); } + //@} @@ -168,16 +158,6 @@ namespace Cantera { doublereal* grad_T, int ldx, const doublereal* grad_X, int ldf, doublereal* fluxes) { err("getSpeciesFluxes"); } - /** - * Get the species mass fluxes, given the gradients. - */ - void getSpeciesFluxes(int ndim, vector_fp& grad_T, const Array2D& grad_X, - Array2D& fluxes) { - getSpeciesFluxes(ndim, grad_T.begin(), grad_X.nRows(), grad_X.begin(), - fluxes.nRows(), fluxes.begin()); - } - - /** * Thermal diffusion coefficients. Units: [kg/m/sec]. @@ -191,10 +171,6 @@ namespace Cantera { * diffusion coefficients. Dimension dt at least as large as * the number of species. */ - void getThermalDiffCoeffs(vector_fp& dt) { - if (dt.size() < m_nmin) sizeError(dt.size(),m_nmin); - getThermalDiffCoeffs(dt.begin()); - } virtual void getThermalDiffCoeffs(doublereal* dt) { err("getThermalDiffCoeffs"); } @@ -202,11 +178,6 @@ namespace Cantera { /** * Binary diffusion coefficients. Units: [m^2/s]. */ - void getBinaryDiffCoeffs(Array2D& d) { - if (d.nRows() < m_nmin || d.nColumns() < m_nmin) - sizeError(d.nRows(), m_nmin, d.nColumns(), m_nmin); - getBinaryDiffCoeffs(d.nRows(), d.begin()); - } virtual void getBinaryDiffCoeffs(int ld, doublereal* d) { err("getBinaryDiffCoeffs"); } @@ -217,11 +188,6 @@ namespace Cantera { * model, then this method returns the array of multicomponent * diffusion coefficients. */ - void getMultiDiffCoeffs(Array2D& d) { - if (d.nRows() < m_nmin || d.nColumns() < m_nmin) - sizeError(d.nRows(), m_nmin, d.nColumns(), m_nmin); - getMultiDiffCoeffs(d.nRows(), d.begin()); - } virtual void getMultiDiffCoeffs(int ld, doublereal* d) { err("getMultiDiffCoeffs"); } @@ -232,20 +198,21 @@ namespace Cantera { * diffusion model, then this method returns the array of * mixture-averaged diffusion coefficients. */ - void getMixDiffCoeffs(vector_fp& d) { - if (d.size() < m_nmin) - sizeError(d.size(), m_nmin); - getMixDiffCoeffs(d.begin()); - } virtual void getMixDiffCoeffs(doublereal* d) { err("getMixDiffCoeffs"); } +#ifdef INCL_CBAR doublereal meanThermalSpeed(int k) const { doublereal t = m_thermo->temperature(); doublereal mw = m_thermo->molecularWeight(k); return sqrt(8.0 * GasConstant * t /(Pi * mw)); } +#endif + /** + * Set transport model parameters. This method may be + * overloaded in subclasses to set model-specific parameters. + */ virtual void setParameters(int type, int k, doublereal* p) { err("setParameters"); } @@ -262,6 +229,7 @@ namespace Cantera { Transport(thermo_t* thermo=0) : m_thermo(thermo), m_ready(false), m_nmin(0), m_index(-1) {} + protected: /** @@ -286,7 +254,7 @@ namespace Cantera { m_nmin = m_thermo->nSpecies(); } else - throw CanteraError("Transport::setPhase", + throw CanteraError("Transport::setThermo", "the phase object cannot be changed after " "the transport manager has been constructed."); } @@ -307,12 +275,12 @@ namespace Cantera { //@} - //phase_t* m_phase; ///< pointer to the object representing the phase thermo_t* m_thermo; ///< pointer to the object representing the phase - bool m_ready; ///< false initially, true if ready to use + bool m_ready; ///< true if finalize has been called size_t m_nmin; ///< number of species int m_index; + private: /** @@ -321,27 +289,17 @@ namespace Cantera { * is being used that does not implement all virtual methods, * and one of those methods was called by the application * program. For example, a transport manager that computes the - * thermal conductivity of a solid may not overload the - * viscosity() method, since the viscosity is meaningless. If the - * application invokes the viscosity() method, the base class - * method will be called, resulting in an exception being - * thrown. + * thermal conductivity of a solid may not define the + * viscosity() method, since the viscosity is in this case + * meaningless. If the application invokes the viscosity() + * method, the base class method will be called, resulting in + * an exception being thrown. */ doublereal err(string msg) const { throw NotImplemented(msg); return 0.0; } - void sizeError(int nr, int nrmin, int nc=-1, int ncmin=-1) { - string msg; - msg = "Array size (" + int2str(nr); - if (nc > 0) msg += "," + int2str(nc); - msg += ") is too small. Dimension at least (" + int2str(nrmin); - if (nc > 0) msg += "," + int2str(ncmin); - msg += ")."; - throw CanteraError("Transport", msg); - } - }; typedef Transport transport_t; diff --git a/Makefile.in b/Makefile.in index 59669e0b4..017359eae 100755 --- a/Makefile.in +++ b/Makefile.in @@ -14,10 +14,11 @@ build_clib = @BUILD_CLIB@ build_python = @BUILD_PYTHON@ build_matlab = @BUILD_MATLAB@ os_is_win = @OS_IS_WIN@ +incl_user_code = @INCL_USER_CODE@ LIBDIR=@LIB_DIR@ -all: kernel cxxlib hdr-collect clib python matlab utils +all: kernel user cxxlib hdr-collect clib python matlab utils win: python matlab @@ -34,6 +35,11 @@ kernel: info cd ext; @MAKE@ cd Cantera/src; @MAKE@ +user: +ifeq ($(incl_user_code),1) + cd Cantera/user; @MAKE@ +endif + clib: cd Cantera/clib/src; @MAKE@ ranlib @buildlib@/*.a diff --git a/config/configure b/config/configure index 35e8f7fe4..a2a92fa6d 100755 --- a/config/configure +++ b/config/configure @@ -1084,6 +1084,13 @@ if test -z "$PIC"; then PIC='-fPIC'; fi #if test -z "$LCXX_END_LIBS"; then LCXX_END_LIBS='-lm'; fi +######################################################### +# User Code +######################################################### +USERDIR="" +INCL_USER_CODE=0 +if test -n "$USER_SRC_DIR"; then USERDIR=$USER_SRC_DIR; INCL_USER_CODE=1; fi + ######################################################### # The Cantera Kernel ######################################################### @@ -1247,7 +1254,7 @@ if test -z "$PYTHON_CMD"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:1250: checking for $ac_word" >&5 +echo "$as_me:1257: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_PYTHON_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1264,7 +1271,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_PYTHON_CMD="$ac_dir/$ac_word" - echo "$as_me:1267: found $ac_dir/$ac_word" >&5 + echo "$as_me:1274: found $ac_dir/$ac_word" >&5 break fi done @@ -1275,10 +1282,10 @@ fi PYTHON_CMD=$ac_cv_path_PYTHON_CMD if test -n "$PYTHON_CMD"; then - echo "$as_me:1278: result: $PYTHON_CMD" >&5 + echo "$as_me:1285: result: $PYTHON_CMD" >&5 echo "${ECHO_T}$PYTHON_CMD" >&6 else - echo "$as_me:1281: result: no" >&5 + echo "$as_me:1288: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1309,7 +1316,7 @@ if test "$BUILD_MATLAB_TOOLBOX" != "n"; then if test -z "$MATLAB_CMD"; then # Extract the first word of "matlab", so it can be a program name with args. set dummy matlab; ac_word=$2 -echo "$as_me:1312: checking for $ac_word" >&5 +echo "$as_me:1319: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_MATLAB_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1326,7 +1333,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_MATLAB_CMD="$ac_dir/$ac_word" - echo "$as_me:1329: found $ac_dir/$ac_word" >&5 + echo "$as_me:1336: found $ac_dir/$ac_word" >&5 break fi done @@ -1338,10 +1345,10 @@ fi MATLAB_CMD=$ac_cv_path_MATLAB_CMD if test -n "$MATLAB_CMD"; then - echo "$as_me:1341: result: $MATLAB_CMD" >&5 + echo "$as_me:1348: result: $MATLAB_CMD" >&5 echo "${ECHO_T}$MATLAB_CMD" >&6 else - echo "$as_me:1344: result: no" >&5 + echo "$as_me:1351: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1363,7 +1370,7 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:1366: checking for $ac_word" >&5 +echo "$as_me:1373: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1378,7 +1385,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" -echo "$as_me:1381: found $ac_dir/$ac_word" >&5 +echo "$as_me:1388: found $ac_dir/$ac_word" >&5 break done @@ -1386,10 +1393,10 @@ fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - echo "$as_me:1389: result: $CXX" >&5 + echo "$as_me:1396: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else - echo "$as_me:1392: result: no" >&5 + echo "$as_me:1399: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1402,7 +1409,7 @@ if test -z "$CXX"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:1405: checking for $ac_word" >&5 +echo "$as_me:1412: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1417,7 +1424,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_CXX="$ac_prog" -echo "$as_me:1420: found $ac_dir/$ac_word" >&5 +echo "$as_me:1427: found $ac_dir/$ac_word" >&5 break done @@ -1425,10 +1432,10 @@ fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then - echo "$as_me:1428: result: $ac_ct_CXX" >&5 + echo "$as_me:1435: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else - echo "$as_me:1431: result: no" >&5 + echo "$as_me:1438: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1440,27 +1447,27 @@ test -n "$ac_ct_CXX" || ac_ct_CXX="g++" fi # Provide some information about the compiler. -echo "$as_me:1443:" \ +echo "$as_me:1450:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:1446: \"$ac_compiler --version &5\"") >&5 +{ (eval echo "$as_me:1453: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? - echo "$as_me:1449: \$? = $ac_status" >&5 + echo "$as_me:1456: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:1451: \"$ac_compiler -v &5\"") >&5 +{ (eval echo "$as_me:1458: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? - echo "$as_me:1454: \$? = $ac_status" >&5 + echo "$as_me:1461: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:1456: \"$ac_compiler -V &5\"") >&5 +{ (eval echo "$as_me:1463: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? - echo "$as_me:1459: \$? = $ac_status" >&5 + echo "$as_me:1466: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF -#line 1463 "configure" +#line 1470 "configure" #include "confdefs.h" int @@ -1476,13 +1483,13 @@ ac_clean_files="$ac_clean_files a.out a.exe" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -echo "$as_me:1479: checking for C++ compiler default output" >&5 +echo "$as_me:1486: checking for C++ compiler default output" >&5 echo $ECHO_N "checking for C++ compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:1482: \"$ac_link_default\"") >&5 +if { (eval echo "$as_me:1489: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? - echo "$as_me:1485: \$? = $ac_status" >&5 + echo "$as_me:1492: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last @@ -1505,34 +1512,34 @@ done else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -{ { echo "$as_me:1508: error: C++ compiler cannot create executables" >&5 +{ { echo "$as_me:1515: error: C++ compiler cannot create executables" >&5 echo "$as_me: error: C++ compiler cannot create executables" >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext -echo "$as_me:1514: result: $ac_file" >&5 +echo "$as_me:1521: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -echo "$as_me:1519: checking whether the C++ compiler works" >&5 +echo "$as_me:1526: checking whether the C++ compiler works" >&5 echo $ECHO_N "checking whether the C++ compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' - { (eval echo "$as_me:1525: \"$ac_try\"") >&5 + { (eval echo "$as_me:1532: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1528: \$? = $ac_status" >&5 + echo "$as_me:1535: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { echo "$as_me:1535: error: cannot run C++ compiled programs. + { { echo "$as_me:1542: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'." >&5 echo "$as_me: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'." >&2;} @@ -1540,24 +1547,24 @@ If you meant to cross compile, use \`--host'." >&2;} fi fi fi -echo "$as_me:1543: result: yes" >&5 +echo "$as_me:1550: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -echo "$as_me:1550: checking whether we are cross compiling" >&5 +echo "$as_me:1557: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:1552: result: $cross_compiling" >&5 +echo "$as_me:1559: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 -echo "$as_me:1555: checking for executable suffix" >&5 +echo "$as_me:1562: checking for executable suffix" >&5 echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 -if { (eval echo "$as_me:1557: \"$ac_link\"") >&5 +if { (eval echo "$as_me:1564: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:1560: \$? = $ac_status" >&5 + echo "$as_me:1567: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will @@ -1573,25 +1580,25 @@ for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do esac done else - { { echo "$as_me:1576: error: cannot compute EXEEXT: cannot compile and link" >&5 + { { echo "$as_me:1583: error: cannot compute EXEEXT: cannot compile and link" >&5 echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext -echo "$as_me:1582: result: $ac_cv_exeext" >&5 +echo "$as_me:1589: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -echo "$as_me:1588: checking for object suffix" >&5 +echo "$as_me:1595: checking for object suffix" >&5 echo $ECHO_N "checking for object suffix... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 1594 "configure" +#line 1601 "configure" #include "confdefs.h" int @@ -1603,10 +1610,10 @@ main () } _ACEOF rm -f conftest.o conftest.obj -if { (eval echo "$as_me:1606: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1613: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1609: \$? = $ac_status" >&5 + echo "$as_me:1616: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in @@ -1618,24 +1625,24 @@ done else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -{ { echo "$as_me:1621: error: cannot compute OBJEXT: cannot compile" >&5 +{ { echo "$as_me:1628: error: cannot compute OBJEXT: cannot compile" >&5 echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -echo "$as_me:1628: result: $ac_cv_objext" >&5 +echo "$as_me:1635: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -echo "$as_me:1632: checking whether we are using the GNU C++ compiler" >&5 +echo "$as_me:1639: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 1638 "configure" +#line 1645 "configure" #include "confdefs.h" int @@ -1650,16 +1657,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:1653: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1660: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1656: \$? = $ac_status" >&5 + echo "$as_me:1663: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1659: \"$ac_try\"") >&5 + { (eval echo "$as_me:1666: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1662: \$? = $ac_status" >&5 + echo "$as_me:1669: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else @@ -1671,19 +1678,19 @@ rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:1674: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "$as_me:1681: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" -echo "$as_me:1680: checking whether $CXX accepts -g" >&5 +echo "$as_me:1687: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 1686 "configure" +#line 1693 "configure" #include "confdefs.h" int @@ -1695,16 +1702,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:1698: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1705: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1701: \$? = $ac_status" >&5 + echo "$as_me:1708: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1704: \"$ac_try\"") >&5 + { (eval echo "$as_me:1711: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1707: \$? = $ac_status" >&5 + echo "$as_me:1714: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else @@ -1714,7 +1721,7 @@ ac_cv_prog_cxx_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:1717: result: $ac_cv_prog_cxx_g" >&5 +echo "$as_me:1724: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS @@ -1741,7 +1748,7 @@ for ac_declaration in \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF -#line 1744 "configure" +#line 1751 "configure" #include "confdefs.h" #include $ac_declaration @@ -1754,16 +1761,16 @@ exit (42); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:1757: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1764: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1760: \$? = $ac_status" >&5 + echo "$as_me:1767: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1763: \"$ac_try\"") >&5 + { (eval echo "$as_me:1770: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1766: \$? = $ac_status" >&5 + echo "$as_me:1773: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -1773,7 +1780,7 @@ continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 1776 "configure" +#line 1783 "configure" #include "confdefs.h" $ac_declaration int @@ -1785,16 +1792,16 @@ exit (42); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:1788: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1795: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1791: \$? = $ac_status" >&5 + echo "$as_me:1798: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1794: \"$ac_try\"") >&5 + { (eval echo "$as_me:1801: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1797: \$? = $ac_status" >&5 + echo "$as_me:1804: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -1824,7 +1831,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:1827: checking for $ac_word" >&5 +echo "$as_me:1834: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1839,7 +1846,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CC="${ac_tool_prefix}gcc" -echo "$as_me:1842: found $ac_dir/$ac_word" >&5 +echo "$as_me:1849: found $ac_dir/$ac_word" >&5 break done @@ -1847,10 +1854,10 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:1850: result: $CC" >&5 + echo "$as_me:1857: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else - echo "$as_me:1853: result: no" >&5 + echo "$as_me:1860: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1859,7 +1866,7 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -echo "$as_me:1862: checking for $ac_word" >&5 +echo "$as_me:1869: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1874,7 +1881,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_CC="gcc" -echo "$as_me:1877: found $ac_dir/$ac_word" >&5 +echo "$as_me:1884: found $ac_dir/$ac_word" >&5 break done @@ -1882,10 +1889,10 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:1885: result: $ac_ct_CC" >&5 + echo "$as_me:1892: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else - echo "$as_me:1888: result: no" >&5 + echo "$as_me:1895: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1898,7 +1905,7 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:1901: checking for $ac_word" >&5 +echo "$as_me:1908: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1913,7 +1920,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CC="${ac_tool_prefix}cc" -echo "$as_me:1916: found $ac_dir/$ac_word" >&5 +echo "$as_me:1923: found $ac_dir/$ac_word" >&5 break done @@ -1921,10 +1928,10 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:1924: result: $CC" >&5 + echo "$as_me:1931: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else - echo "$as_me:1927: result: no" >&5 + echo "$as_me:1934: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1933,7 +1940,7 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -echo "$as_me:1936: checking for $ac_word" >&5 +echo "$as_me:1943: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1948,7 +1955,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_CC="cc" -echo "$as_me:1951: found $ac_dir/$ac_word" >&5 +echo "$as_me:1958: found $ac_dir/$ac_word" >&5 break done @@ -1956,10 +1963,10 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:1959: result: $ac_ct_CC" >&5 + echo "$as_me:1966: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else - echo "$as_me:1962: result: no" >&5 + echo "$as_me:1969: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1972,7 +1979,7 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -echo "$as_me:1975: checking for $ac_word" >&5 +echo "$as_me:1982: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1992,7 +1999,7 @@ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then continue fi ac_cv_prog_CC="cc" -echo "$as_me:1995: found $ac_dir/$ac_word" >&5 +echo "$as_me:2002: found $ac_dir/$ac_word" >&5 break done @@ -2014,10 +2021,10 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:2017: result: $CC" >&5 + echo "$as_me:2024: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else - echo "$as_me:2020: result: no" >&5 + echo "$as_me:2027: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2028,7 +2035,7 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:2031: checking for $ac_word" >&5 +echo "$as_me:2038: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2043,7 +2050,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CC="$ac_tool_prefix$ac_prog" -echo "$as_me:2046: found $ac_dir/$ac_word" >&5 +echo "$as_me:2053: found $ac_dir/$ac_word" >&5 break done @@ -2051,10 +2058,10 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:2054: result: $CC" >&5 + echo "$as_me:2061: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else - echo "$as_me:2057: result: no" >&5 + echo "$as_me:2064: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2067,7 +2074,7 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:2070: checking for $ac_word" >&5 +echo "$as_me:2077: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2082,7 +2089,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_CC="$ac_prog" -echo "$as_me:2085: found $ac_dir/$ac_word" >&5 +echo "$as_me:2092: found $ac_dir/$ac_word" >&5 break done @@ -2090,10 +2097,10 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:2093: result: $ac_ct_CC" >&5 + echo "$as_me:2100: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else - echo "$as_me:2096: result: no" >&5 + echo "$as_me:2103: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2105,37 +2112,37 @@ fi fi -test -z "$CC" && { { echo "$as_me:2108: error: no acceptable cc found in \$PATH" >&5 +test -z "$CC" && { { echo "$as_me:2115: error: no acceptable cc found in \$PATH" >&5 echo "$as_me: error: no acceptable cc found in \$PATH" >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. -echo "$as_me:2113:" \ +echo "$as_me:2120:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:2116: \"$ac_compiler --version &5\"") >&5 +{ (eval echo "$as_me:2123: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? - echo "$as_me:2119: \$? = $ac_status" >&5 + echo "$as_me:2126: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:2121: \"$ac_compiler -v &5\"") >&5 +{ (eval echo "$as_me:2128: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? - echo "$as_me:2124: \$? = $ac_status" >&5 + echo "$as_me:2131: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:2126: \"$ac_compiler -V &5\"") >&5 +{ (eval echo "$as_me:2133: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? - echo "$as_me:2129: \$? = $ac_status" >&5 + echo "$as_me:2136: \$? = $ac_status" >&5 (exit $ac_status); } -echo "$as_me:2132: checking whether we are using the GNU C compiler" >&5 +echo "$as_me:2139: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 2138 "configure" +#line 2145 "configure" #include "confdefs.h" int @@ -2150,16 +2157,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2153: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2160: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2156: \$? = $ac_status" >&5 + echo "$as_me:2163: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2159: \"$ac_try\"") >&5 + { (eval echo "$as_me:2166: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2162: \$? = $ac_status" >&5 + echo "$as_me:2169: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else @@ -2171,19 +2178,19 @@ rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:2174: result: $ac_cv_c_compiler_gnu" >&5 +echo "$as_me:2181: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" -echo "$as_me:2180: checking whether $CC accepts -g" >&5 +echo "$as_me:2187: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 2186 "configure" +#line 2193 "configure" #include "confdefs.h" int @@ -2195,16 +2202,16 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2198: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2205: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2201: \$? = $ac_status" >&5 + echo "$as_me:2208: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2204: \"$ac_try\"") >&5 + { (eval echo "$as_me:2211: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2207: \$? = $ac_status" >&5 + echo "$as_me:2214: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else @@ -2214,7 +2221,7 @@ ac_cv_prog_cc_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:2217: result: $ac_cv_prog_cc_g" >&5 +echo "$as_me:2224: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS @@ -2241,16 +2248,16 @@ cat >conftest.$ac_ext <<_ACEOF #endif _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2244: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2251: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2247: \$? = $ac_status" >&5 + echo "$as_me:2254: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2250: \"$ac_try\"") >&5 + { (eval echo "$as_me:2257: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2253: \$? = $ac_status" >&5 + echo "$as_me:2260: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ ''\ @@ -2262,7 +2269,7 @@ if { (eval echo "$as_me:2244: \"$ac_compile\"") >&5 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF -#line 2265 "configure" +#line 2272 "configure" #include "confdefs.h" #include $ac_declaration @@ -2275,16 +2282,16 @@ exit (42); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2278: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2285: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2281: \$? = $ac_status" >&5 + echo "$as_me:2288: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2284: \"$ac_try\"") >&5 + { (eval echo "$as_me:2291: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2287: \$? = $ac_status" >&5 + echo "$as_me:2294: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -2294,7 +2301,7 @@ continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 2297 "configure" +#line 2304 "configure" #include "confdefs.h" $ac_declaration int @@ -2306,16 +2313,16 @@ exit (42); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2309: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2316: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2312: \$? = $ac_status" >&5 + echo "$as_me:2319: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2315: \"$ac_try\"") >&5 + { (eval echo "$as_me:2322: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2318: \$? = $ac_status" >&5 + echo "$as_me:2325: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -2354,7 +2361,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:2357: checking for a BSD compatible install" >&5 +echo "$as_me:2364: checking for a BSD compatible install" >&5 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then @@ -2403,7 +2410,7 @@ fi INSTALL=$ac_install_sh fi fi -echo "$as_me:2406: result: $INSTALL" >&5 +echo "$as_me:2413: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. @@ -2427,7 +2434,7 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:2430: checking for $ac_word" >&5 +echo "$as_me:2437: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2442,7 +2449,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_F77="$ac_tool_prefix$ac_prog" -echo "$as_me:2445: found $ac_dir/$ac_word" >&5 +echo "$as_me:2452: found $ac_dir/$ac_word" >&5 break done @@ -2450,10 +2457,10 @@ fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then - echo "$as_me:2453: result: $F77" >&5 + echo "$as_me:2460: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else - echo "$as_me:2456: result: no" >&5 + echo "$as_me:2463: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2466,7 +2473,7 @@ if test -z "$F77"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:2469: checking for $ac_word" >&5 +echo "$as_me:2476: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2481,7 +2488,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_F77="$ac_prog" -echo "$as_me:2484: found $ac_dir/$ac_word" >&5 +echo "$as_me:2491: found $ac_dir/$ac_word" >&5 break done @@ -2489,10 +2496,10 @@ fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then - echo "$as_me:2492: result: $ac_ct_F77" >&5 + echo "$as_me:2499: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else - echo "$as_me:2495: result: no" >&5 + echo "$as_me:2502: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2503,30 +2510,30 @@ done fi # Provide some information about the compiler. -echo "$as_me:2506:" \ +echo "$as_me:2513:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:2509: \"$ac_compiler --version &5\"") >&5 +{ (eval echo "$as_me:2516: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? - echo "$as_me:2512: \$? = $ac_status" >&5 + echo "$as_me:2519: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:2514: \"$ac_compiler -v &5\"") >&5 +{ (eval echo "$as_me:2521: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? - echo "$as_me:2517: \$? = $ac_status" >&5 + echo "$as_me:2524: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:2519: \"$ac_compiler -V &5\"") >&5 +{ (eval echo "$as_me:2526: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? - echo "$as_me:2522: \$? = $ac_status" >&5 + echo "$as_me:2529: \$? = $ac_status" >&5 (exit $ac_status); } # If we don't use `.F' as extension, the preprocessor is not run on the # input file. ac_save_ext=$ac_ext ac_ext=F -echo "$as_me:2529: checking whether we are using the GNU Fortran 77 compiler" >&5 +echo "$as_me:2536: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2540,16 +2547,16 @@ else end _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2543: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2550: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2546: \$? = $ac_status" >&5 + echo "$as_me:2553: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2549: \"$ac_try\"") >&5 + { (eval echo "$as_me:2556: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2552: \$? = $ac_status" >&5 + echo "$as_me:2559: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else @@ -2561,14 +2568,14 @@ rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:2564: result: $ac_cv_f77_compiler_gnu" >&5 +echo "$as_me:2571: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext G77=`test $ac_compiler_gnu = yes && echo yes` ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= -echo "$as_me:2571: checking whether $F77 accepts -g" >&5 +echo "$as_me:2578: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2580,16 +2587,16 @@ cat >conftest.$ac_ext <<_ACEOF end _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2583: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2590: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2586: \$? = $ac_status" >&5 + echo "$as_me:2593: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2589: \"$ac_try\"") >&5 + { (eval echo "$as_me:2596: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2592: \$? = $ac_status" >&5 + echo "$as_me:2599: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else @@ -2600,7 +2607,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:2603: result: $ac_cv_prog_f77_g" >&5 +echo "$as_me:2610: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS @@ -2638,7 +2645,7 @@ ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu -echo "$as_me:2641: checking how to get verbose linking output from $F77" >&5 +echo "$as_me:2648: checking how to get verbose linking output from $F77" >&5 echo $ECHO_N "checking how to get verbose linking output from $F77... $ECHO_C" >&6 if test "${ac_cv_prog_f77_v+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2650,16 +2657,16 @@ cat >conftest.$ac_ext <<_ACEOF end _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2653: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2660: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2656: \$? = $ac_status" >&5 + echo "$as_me:2663: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2659: \"$ac_try\"") >&5 + { (eval echo "$as_me:2666: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2662: \$? = $ac_status" >&5 + echo "$as_me:2669: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_v= # Try some options frequently used verbose output @@ -2681,7 +2688,7 @@ _ACEOF # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" -(eval echo $as_me:2684: \"$ac_link\") >&5 +(eval echo $as_me:2691: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS @@ -2713,21 +2720,21 @@ fi done done if test -z "$ac_cv_prog_f77_v"; then - { echo "$as_me:2716: WARNING: cannot determine how to obtain linking information from $F77" >&5 + { echo "$as_me:2723: WARNING: cannot determine how to obtain linking information from $F77" >&5 echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -{ echo "$as_me:2722: WARNING: compilation failed" >&5 +{ echo "$as_me:2729: WARNING: compilation failed" >&5 echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:2728: result: $ac_cv_prog_f77_v" >&5 +echo "$as_me:2735: result: $ac_cv_prog_f77_v" >&5 echo "${ECHO_T}$ac_cv_prog_f77_v" >&6 -echo "$as_me:2730: checking for Fortran 77 libraries" >&5 +echo "$as_me:2737: checking for Fortran 77 libraries" >&5 echo $ECHO_N "checking for Fortran 77 libraries... $ECHO_C" >&6 if test "${ac_cv_flibs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2753,7 +2760,7 @@ _ACEOF # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" -(eval echo $as_me:2756: \"$ac_link\") >&5 +(eval echo $as_me:2763: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS @@ -2908,7 +2915,7 @@ esac fi # test "x$FLIBS" = "x" fi -echo "$as_me:2911: result: $ac_cv_flibs" >&5 +echo "$as_me:2918: result: $ac_cv_flibs" >&5 echo "${ECHO_T}$ac_cv_flibs" >&6 FLIBS="$ac_cv_flibs" @@ -2969,7 +2976,7 @@ fi # SO is the extension of shared libraries `(including the dot!) # -- usually .so, .sl on HP-UX, .dll on Cygwin -echo "$as_me:2972: checking SO" >&5 +echo "$as_me:2979: checking SO" >&5 echo $ECHO_N "checking SO... $ECHO_C" >&6 if test -z "$SO" then @@ -2980,7 +2987,7 @@ then *) SO=.so;; esac fi -echo "$as_me:2983: result: $SO" >&5 +echo "$as_me:2990: result: $SO" >&5 echo "${ECHO_T}$SO" >&6 ac_ext=cc @@ -2989,7 +2996,7 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -ac_config_files="$ac_config_files ../Cantera/Makefile ../Cantera/src/Makefile ../Cantera/src/zeroD/Makefile ../Cantera/src/oneD/Makefile ../Cantera/src/converters/Makefile ../Cantera/src/transport/Makefile ../Cantera/clib/src/Makefile ../Cantera/fortran/src/Makefile ../Cantera/fortran/f77demos/f77demos.mak ../Cantera/matlab/Makefile ../Cantera/python/Makefile ../Cantera/python/setup.py ../Cantera/cxx/Makefile ../Cantera/python/src/Makefile ../ext/lapack/Makefile ../ext/blas/Makefile ../ext/cvode/Makefile ../ext/math/Makefile ../ext/tpx/Makefile ../ext/Makefile ../ext/recipes/Makefile ../examples/Makefile ../examples/cxx/Makefile ../Makefile ../tools/Makefile ../tools/src/Makefile ../tools/src/sample.mak ../tools/templates/f77/demo.mak ../tools/templates/cxx/demo.mak ../tools/testtools/Makefile ../data/inputs/Makefile ../test_problems/Makefile ../test_problems/cxx_ex/Makefile ../test_problems/silane_equil/Makefile ../test_problems/surfkin/Makefile ../test_problems/diamondSurf/Makefile" +ac_config_files="$ac_config_files ../Cantera/Makefile ../Cantera/src/Makefile ../Cantera/src/zeroD/Makefile ../Cantera/src/oneD/Makefile ../Cantera/src/converters/Makefile ../Cantera/src/transport/Makefile ../Cantera/clib/src/Makefile ../Cantera/fortran/src/Makefile ../Cantera/fortran/f77demos/f77demos.mak ../Cantera/matlab/Makefile ../Cantera/python/Makefile ../Cantera/python/setup.py ../Cantera/cxx/Makefile ../Cantera/user/Makefile ../Cantera/python/src/Makefile ../ext/lapack/Makefile ../ext/blas/Makefile ../ext/cvode/Makefile ../ext/math/Makefile ../ext/tpx/Makefile ../ext/Makefile ../ext/recipes/Makefile ../examples/Makefile ../examples/cxx/Makefile ../Makefile ../tools/Makefile ../tools/src/Makefile ../tools/src/sample.mak ../tools/templates/f77/demo.mak ../tools/templates/cxx/demo.mak ../tools/testtools/Makefile ../data/inputs/Makefile ../test_problems/Makefile ../test_problems/cxx_ex/Makefile ../test_problems/silane_equil/Makefile ../test_problems/surfkin/Makefile ../test_problems/diamondSurf/Makefile" test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. @@ -3015,7 +3022,7 @@ DEFS=-DHAVE_CONFIG_H : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:3018: creating $CONFIG_STATUS" >&5 +{ echo "$as_me:3025: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL @@ -3188,7 +3195,7 @@ cat >>$CONFIG_STATUS <<\EOF echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header - { { echo "$as_me:3191: error: ambiguous option: $1 + { { echo "$as_me:3198: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} @@ -3207,7 +3214,7 @@ Try \`$0 --help' for more information." >&2;} ac_need_defaults=false;; # This is an error. - -*) { { echo "$as_me:3210: error: unrecognized option: $1 + -*) { { echo "$as_me:3217: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} @@ -3255,6 +3262,7 @@ do "../Cantera/python/Makefile" ) CONFIG_FILES="$CONFIG_FILES ../Cantera/python/Makefile" ;; "../Cantera/python/setup.py" ) CONFIG_FILES="$CONFIG_FILES ../Cantera/python/setup.py" ;; "../Cantera/cxx/Makefile" ) CONFIG_FILES="$CONFIG_FILES ../Cantera/cxx/Makefile" ;; + "../Cantera/user/Makefile" ) CONFIG_FILES="$CONFIG_FILES ../Cantera/user/Makefile" ;; "../Cantera/python/src/Makefile" ) CONFIG_FILES="$CONFIG_FILES ../Cantera/python/src/Makefile" ;; "../ext/lapack/Makefile" ) CONFIG_FILES="$CONFIG_FILES ../ext/lapack/Makefile" ;; "../ext/blas/Makefile" ) CONFIG_FILES="$CONFIG_FILES ../ext/blas/Makefile" ;; @@ -3279,7 +3287,7 @@ do "../test_problems/surfkin/Makefile" ) CONFIG_FILES="$CONFIG_FILES ../test_problems/surfkin/Makefile" ;; "../test_problems/diamondSurf/Makefile" ) CONFIG_FILES="$CONFIG_FILES ../test_problems/diamondSurf/Makefile" ;; "../config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ../config.h" ;; - *) { { echo "$as_me:3282: error: invalid argument: $ac_config_target" >&5 + *) { { echo "$as_me:3290: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac @@ -3383,6 +3391,8 @@ s,@SHARED@,$SHARED,;t t s,@PIC@,$PIC,;t t s,@LCXX_FLAGS@,$LCXX_FLAGS,;t t s,@LCXX_END_LIBS@,$LCXX_END_LIBS,;t t +s,@USERDIR@,$USERDIR,;t t +s,@INCL_USER_CODE@,$INCL_USER_CODE,;t t s,@KERNEL@,$KERNEL,;t t s,@BUILD_CK@,$BUILD_CK,;t t s,@LIB_DIR@,$LIB_DIR,;t t @@ -3549,7 +3559,7 @@ done; } esac if test x"$ac_file" != x-; then - { echo "$as_me:3552: creating $ac_file" >&5 + { echo "$as_me:3562: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi @@ -3567,7 +3577,7 @@ echo "$as_me: creating $ac_file" >&6;} -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:3570: error: cannot find input file: $f" >&5 + test -f "$f" || { { echo "$as_me:3580: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; @@ -3580,7 +3590,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;} echo $srcdir/$f else # /dev/null tree - { { echo "$as_me:3583: error: cannot find input file: $f" >&5 + { { echo "$as_me:3593: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; @@ -3641,7 +3651,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue * ) ac_file_in=$ac_file.in ;; esac - test x"$ac_file" != x- && { echo "$as_me:3644: creating $ac_file" >&5 + test x"$ac_file" != x- && { echo "$as_me:3654: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the @@ -3652,7 +3662,7 @@ echo "$as_me: creating $ac_file" >&6;} -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:3655: error: cannot find input file: $f" >&5 + test -f "$f" || { { echo "$as_me:3665: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; @@ -3665,7 +3675,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;} echo $srcdir/$f else # /dev/null tree - { { echo "$as_me:3668: error: cannot find input file: $f" >&5 + { { echo "$as_me:3678: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; @@ -3782,7 +3792,7 @@ cat >>$CONFIG_STATUS <<\EOF rm -f $tmp/in if test x"$ac_file" != x-; then if cmp -s $ac_file $tmp/config.h 2>/dev/null; then - { echo "$as_me:3785: $ac_file is unchanged" >&5 + { echo "$as_me:3795: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ diff --git a/config/configure.in b/config/configure.in index 33d7e3da6..041862eb1 100755 --- a/config/configure.in +++ b/config/configure.in @@ -75,6 +75,15 @@ AC_SUBST(LCXX_FLAGS) #if test -z "$LCXX_END_LIBS"; then LCXX_END_LIBS='-lm'; fi AC_SUBST(LCXX_END_LIBS) +######################################################### +# User Code +######################################################### +USERDIR="" +INCL_USER_CODE=0 +if test -n "$USER_SRC_DIR"; then USERDIR=$USER_SRC_DIR; INCL_USER_CODE=1; fi +AC_SUBST(USERDIR) +AC_SUBST(INCL_USER_CODE) + ######################################################### # The Cantera Kernel ######################################################### @@ -407,6 +416,7 @@ AC_OUTPUT(../Cantera/Makefile \ ../Cantera/python/Makefile \ ../Cantera/python/setup.py \ ../Cantera/cxx/Makefile \ + ../Cantera/user/Makefile \ ../Cantera/python/src/Makefile \ ../ext/lapack/Makefile \ ../ext/blas/Makefile \ diff --git a/configure b/configure index 46d9b32c8..8c0a1029a 100755 --- a/configure +++ b/configure @@ -61,6 +61,17 @@ BUILD_PYTHON_INTERFACE=${BUILD_PYTHON_INTERFACE:="y"} PYTHON_CMD=${PYTHON_CMD:="python"} BUILD_MATLAB_TOOLBOX=${BUILD_MATLAB_TOOLBOX:="y"} + +#---------------------------------------------------------------------- +# Customizations / Extensions +# +# You can build your own libraries as part of the Cantera build process. +# This allows you to derive your own classes from those provided by +# Cantera and build them automatically along with the rest of Cantera. +# All you need to do is specify the directory where your source code is +# located. +USER_SRC_DIR="Cantera/user" + #---------------------------------------------------------------------- # Kernel Configuration #---------------------------------------------------------------------- @@ -146,7 +157,7 @@ LAPACK_FTN_STRING_LEN_AT_END='y' CXX=${CXX:=g++} # C++ compiler flags -CXXFLAGS=${CXXFLAGS:="-O2 -Wall"} +CXXFLAGS=${CXXFLAGS:="-O2 -g -Wall"} # the C++ flags required for linking #LCXX_FLAGS= @@ -217,6 +228,7 @@ CT_SHARED_LIB=${CT_SHARED_LIB:=clib} #------------------- don't change anything below!! --------------------- #----------------------------------------------------------------------- +export USER_SRC_DIR export ARCHIVE export BLAS_LIBRARY export BUILD_F90 diff --git a/tools/doc/Cantera.cfg b/tools/doc/Cantera.cfg index 78bea1f18..27dcc307f 100755 --- a/tools/doc/Cantera.cfg +++ b/tools/doc/Cantera.cfg @@ -1,4 +1,4 @@ -# Doxyfile 1.2.14 +# Doxyfile 1.3.4 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project @@ -11,7 +11,7 @@ # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- -# General configuration options +# Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded @@ -29,21 +29,152 @@ PROJECT_NUMBER = 1.5 # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. -# -# HKM -> use current directory -# + OUTPUT_DIRECTORY = # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: -# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, -# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, -# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, +# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en +# (Japanese with English messages), Korean, Norwegian, Polish, Portuguese, +# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = YES + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. It is allowed to use relative paths in the argument list. + +STRIP_FROM_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explict @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# reimplements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless @@ -53,10 +184,7 @@ EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. -# -# HKM -> Changed this to yes, as I want to use documentation as -# a development tool, and thus need private info as well -# + EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file @@ -80,53 +208,24 @@ HIDE_UNDOC_MEMBERS = YES # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these class will be included in the various +# If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = YES -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. -BRIEF_MEMBER_DESC = YES +HIDE_FRIEND_COMPOUNDS = NO -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. -REPEAT_BRIEF = YES - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. -# -# HKM turned to true -> was getting confused at not seeing the presence -# of some members in the detailed members section -# -ALWAYS_DETAILED_SEC = YES - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited -# members of a class in the documentation of that class as if those members were -# ordinary class members. Constructors, destructors and assignment operators of -# the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = NO - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. It is allowed to use relative paths in the argument list. - -STRIP_FROM_PATH = +HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set @@ -135,60 +234,26 @@ STRIP_FROM_PATH = INTERNAL_DOCS = NO -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. -# -# HKM turned this off -> that way the files will look the same in doxygen -# -STRIP_CODE_COMMENTS = NO - # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower case letters. If set to YES upper case letters are also +# file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows -# users are adviced to set this option to NO. +# users are advised to set this option to NO. CASE_SENSE_NAMES = YES -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = YES -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put list of the files that are included by a file in the documentation +# will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explict @brief command for a brief description. - -JAVADOC_AUTOBRIEF = YES - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# reimplements. - -INHERIT_DOCS = YES - # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. @@ -201,18 +266,6 @@ INLINE_INFO = YES SORT_MEMBER_DOCS = YES -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. @@ -231,14 +284,11 @@ GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. -ALIASES = +GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. @@ -246,7 +296,7 @@ ALIASES = ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consist of for it to appear in +# the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the @@ -255,13 +305,6 @@ ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. -# For instance some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = NO - # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. @@ -289,6 +332,13 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = NO +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the @@ -318,10 +368,12 @@ INPUT = ../../Cantera/src # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp -# *.h++ *.idl *.odl - -FILE_PATTERNS = *.h *.cpp *.c *.txt +# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc +FILE_PATTERNS = *.h \ + *.cpp \ + *.c \ + *.txt # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. @@ -334,7 +386,7 @@ RECURSIVE = YES # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = CVS \ - examples + examples converters # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. @@ -351,7 +403,7 @@ EXCLUDE_PATTERNS = *old/* \ *CVS/* \ *examples/* \ *test/* \ - *tests/* + *tests/* # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see @@ -391,7 +443,7 @@ INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source -# files to browse. +# files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO @@ -409,6 +461,12 @@ SOURCE_BROWSER = YES INLINE_SOURCES = NO +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = NO + # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. @@ -421,6 +479,12 @@ REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- @@ -477,7 +541,7 @@ HTML_HEADER = header.html HTML_FOOTER = footer.html -# The HTML_STYLESHEET tag can be used to specify a user defined cascading +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet @@ -497,6 +561,20 @@ HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = YES +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output dir. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). @@ -510,7 +588,7 @@ GENERATE_CHI = NO BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the Html help documentation and to the tree view. +# to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO @@ -528,10 +606,9 @@ ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports -# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, -# or Internet explorer 4.0+). Note that for large projects the tree generation -# can take a very long time. In such cases it is better to disable this feature. -# Windows users are probably better off using the HTML help feature. +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. GENERATE_TREEVIEW = YES @@ -556,6 +633,17 @@ GENERATE_LATEX = YES LATEX_OUTPUT = latex +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. @@ -600,6 +688,12 @@ USE_PDFLATEX = NO LATEX_BATCHMODE = NO +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- @@ -682,6 +776,24 @@ MAN_LINKS = NO GENERATE_XML = NO +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -694,6 +806,39 @@ GENERATE_XML = NO GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- @@ -743,7 +888,7 @@ INCLUDE_FILE_PATTERNS = PREDEFINED = -# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. @@ -752,8 +897,9 @@ EXPAND_AS_DEFINED = YES # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone -# on a line and do not end with a semicolon. Such function macros are typically -# used for boiler-plate code, and will confuse the parser if not removed. +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse the +# parser if not removed. SKIP_FUNCTION_MACROS = YES @@ -761,7 +907,20 @@ SKIP_FUNCTION_MACROS = YES # Configuration::addtions related to external references #--------------------------------------------------------------------------- -# The TAGFILES tag can be used to specify one or more tagfiles. +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. TAGFILES = @@ -792,13 +951,19 @@ PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is -# recommended to install and use dot, since it yield more powerful graphs. +# recommended to install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section @@ -820,17 +985,17 @@ CLASS_GRAPH = YES COLLABORATION_GRAPH = YES +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similiar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with @@ -845,14 +1010,22 @@ INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are gif, jpg, and png -# If left blank gif will be used. +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. DOT_IMAGE_FORMAT = gif @@ -883,6 +1056,17 @@ MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes that +# lay further from the root node will be omitted. Note that setting this option to +# 1 or 2 may greatly reduce the computation time needed for large code bases. Also +# note that a graph may be further truncated if the graph's image dimensions are +# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). +# If 0 is used for the depth value (the default), the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. @@ -890,7 +1074,7 @@ MAX_DOT_GRAPH_HEIGHT = 1024 GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermedate dot files that are used to generate +# remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES @@ -903,38 +1087,3 @@ DOT_CLEANUP = YES # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO - -# The CGI_NAME tag should be the name of the CGI script that -# starts the search engine (doxysearch) with the correct parameters. -# A script with this name will be generated by doxygen. - -CGI_NAME = search.cgi - -# The CGI_URL tag should be the absolute URL to the directory where the -# cgi binaries are located. See the documentation of your http daemon for -# details. - -CGI_URL = http://blue.caltech.edu/cgi-bin - -# The DOC_URL tag should be the absolute URL to the directory where the -# documentation is located. If left blank the absolute path to the -# documentation, with file:// prepended to it, will be used. - -DOC_URL = http://blue.caltech.edu/cantera/ref/ - -# The DOC_ABSPATH tag should be the absolute path to the directory where the -# documentation is located. If left blank the directory on the local machine -# will be used. - -DOC_ABSPATH = - -# The BIN_ABSPATH tag must point to the directory where the doxysearch binary -# is installed. - -BIN_ABSPATH = /usr/bin - -# The EXT_DOC_PATHS tag can be used to specify one or more paths to -# documentation generated for other projects. This allows doxysearch to search -# the documentation for these projects as well. - -EXT_DOC_PATHS = diff --git a/tools/doc/footer.html b/tools/doc/footer.html index 4f184ddda..fd594b115 100755 --- a/tools/doc/footer.html +++ b/tools/doc/footer.html @@ -3,7 +3,7 @@ -
Copyright (c) 2001 California Institute of Technology
+
Copyright (c) 2003 California Institute of Technology