LIBPF 0.9 was released on 2010/06/02, 20 months and about 650 changes after release 0.8 (2008/09/23).

Apart from the usual extensive testing and optimization and bug-fixing the key improvements are:


In the following you can find the complete list of detailed changes from version 0.8 to version 0.9 for the calculation kernel and for the user interface.

List of changes for the calculation kernel

  1. in dummy::calculate, fix test for feed stream not inside flowsheet-in-flowsheet
  2. fix phasesplit outlet stream types in Qwte
  3. fix deltah::calculate in Qco2capture
  4. initialize totalvaporfraction_ and totalliquidfraction_ when estimating flash in stream_two_solid
  5. add _SCL_SECURE_NO_DEPRECATE where required
  6. set VAPORE:Vphase.fraction in in gianluca0::setup
  7. call prepare_residuals for all phases in stream::initializeNonPersistents
  8. echo errors to stderr for UIPF
  9. readtables in reactionYield::reactionYield;
  10. fix modelBase::update
  11. save actual id in database in modelBaseInterface::dbid_
  12. persist normally nErrors and nWarnings
  13. merge implementations of modelBase::insert and update
  14. report_messages, set_error and set_warning are not const
  15. update is const
  16. call readtables from within createObject
  17. fix size of szState char vector on errorODBC::errorODBC
  18. #include multi.h in;
  19. fix stream_VL_ideal constructor in
  20. change eosBase::estimate signature
  21. make pcsaft class concrete by implementing estimate method
  22. remove varValue in link::readValue
  23. clients must free all memory associated with ‘out’ or ‘in/out’ parameters: pValue and pErrors for IOPCSyncIO::Read and pErrors in IOPCSyncIO::Write
  24. call VariantClear when appropriate
  25. set rsa_ to NULL after every call to RSA_free
  26. new message MSG_MINMAX
  27. in bridge::add report event MSG_MINMAX if required
  28. fix in pilot_reactor_new::calculate make s1.Tphase.mdot positive
  29. fill in pcsaft parameters in ServiceStart
  30. pcsaft::setbeta to set the packing based on the molar density
  31. remove pcsaft::estimate_ and integrate in pcsaftphase::estimate, after simplification
  32. clip to max / min in link::SyncWrite
  33. fix pcsaft::density
  34. improve pcsaft::estimate_ to compute an estimate of the vapor-phase density based on ideal-gas law
  35. define NOMINMAX to avoid annoying interference with min and max macros
  36. define link::min_, max_, setmin() and setmax()
  37. clip value between min_ and max_ in link::readValue
  38. improve modelBaseInterface::test_newcalcsaverestore and test_newcalcsaverestorerecalc to call test_recursive
  39. fix and streamline Qopc main loop
  40. bring pc-saft components from 4 to 9
  41. revert ideal_ is true by default;
  42. set ideal_ to false in flash_VL_Tx:flash_VL_Tx;
  43. overload stream::CalculateFeed in stream_two and stream_two_solid to call solveFlash with ideal_=false if required
  44. in flash_VL override flash::estimate to call fillkvl
  45. flash_VL_T::alfaset_ must be protected
  46. remove duplicate alfaset_ in flash_VL_Tx
  47. do not call fillkvl in flash_VL_T::setFlash_
  48. revert ideal_ is true by default;
  49. set ideal_ to false in flash_VL_Tx:flash_VL_Tx;
  50. overload stream::CalculateFeed in stream_two and stream_two_solid to call solveFlash with ideal_=false if required
  51. flash::niter is public;
  52. default flashbase::ideal_ is false
  53. fix calculation of logarithm in pcsaft::preparefugacity
  54. implement test cases 1 and 2 from standalone.f by Joachim Gross
  55. fuelcell::icoord and jcoord;
  56. deactivate newtDuty assignment in ijhe::makeuserassembly (is ineffective !)
  57. improved initialization of electrochemical reaction in fuelcell::setup
  58. fix compressor::calculate to call calculateX in isentropic and myout with massbalancemode:Nx rather than incorrect N
  59. fix stream::operator*= to handle single-phase streams
  60. rename vertexBase::mdot to cmdot to avoid confusion with phase::mdot
  61. in taskgraph::core_calculate_onepass perform checkbalance even for simultaneous steps
  62. fix sign of mdotout
  63. flash_VL_T::setFlash_ do not call fillkvl
  64. zero_zero, many_one, one_many, many_many and many_two::checkbalance
  65. move away mass flow imbalance error / warning from from flowsheet::calculate to xxx_yyy::checkbalance
  66. call checkbalance in taskgraph::core_calculate_onepass
  67. override xxx_yyy::checkbalance in dummy
  68. report messages after calculation in test_xyz
  69. remove testflo from Qmcfc and prepare for test_multistage
  70. verify derivatives only if flowsheet supports the simultaneous solution mode
  71. major improvements to test_multihx
  72. remove testHx from test
  73. add test_gensep
  74. in gensep::calculate force calculation of outlet streams based on massbalancemode::Nx, since in calculateFlows_ we split in terms of ndot, x
  75. do not use default value for addphase 4th parameter since the compiler might get confused and generate the std::logic_error because of NULL string
  76. initialize Tphase, Vphase, Lphase Xphase and Sphase to NULL
  77. call calculateX in gensep::calculate, compressor::calculate
  78. add 9 new unit operation tests test_xxxx
  79. setParent in flowsheet::build and in modelBaseInterface::makeEmbedded_
  80. phase_total::phase_total has to pass over correct value of cid to the modelBaseInterface constructor;
  81. improved stream::addphase to correctly label phases
  82. fix copyscale and add stream::operator=; silence noisy diagnostic about offsetCATALOGID in modelBase::modelBase; fix modelBaseInterface::copynonembedded_ diagnostic during copy of Qdoubles
  83. call Tphase->calculateX in stream::CalculateFeed; exclude pcsaft tests in test_stream
  84. improve diagnostic in of_FADOO::init; label correctly the isentropic substream in compressor::setup_of to provide correct unknown identification
  85. reset nEquilibriumReactions to zero in genflash::maketablesm hx::maketables and in multihx::maketables to avoid adding up and therefore counting twise in case the object is retrieved from persistency
  86. offsetCATALOGID is a list where the offsets between local and database new free index is pushed and popped, to handle situations where the object to be retrieved from persistency has a lower id which conflicts with the catalogRAM; flowsheetBase::build and *modelBaseInterface::makeEmbedded_ set the embbeddedID to the correct value, available AFTER creation; the call to readembedded in flowsheet::flowsheet is useless; nIn and nOut in many_many, many_one, one_many and many_two should not be persisted since they are incremented by the xxx_xxx::attach functions called by flowsheetBase::build, but they should be initted to 0 in the constructor; consequently flowsheet::check_inout can not use reflection to find sink.nIn and source.nOut; modelBaseInterface::prepare_test_recursive and test_recursive() for performing the postcondition check after retrieving an object from database of_FADOO::xfulltag; do not assert xmin <= xmax in NLEauto::test; Output graph in AT&T DOT format as also for calculate runs; readtables and adjust fromID, toID in edgeBase::edgeBase; do not calculateX subphases in single-phase stream::calculateXnoflash
  87. do not overwrite ID of embedded objects (which might have been changed from within modelBase constructor)
  88. initialize I_ in Integer constructor
  89. fix major bug in new phase constructors
  90. only report derivative discrepancies in NLEauto::test if numeric derivative is different from zero
  91. silence diagnostic in modelBaseInterface::operator==, taskgraph::makeDAG_, suggest_cut, find_strong_components
  92. equilibriumReaction::calculateKIstWert protect against very low of negative partial pressures using Ppositive; fix hx::calculate and multihx::calculate to call calculateX for outlet streams both in sequential as well as in simultaneous mode
  93. fix olga_fluid_file; replace reset with setfirstpass(true) in a few spots; rename registrar_phase to registrar_phases; in stream::calculateXnoflash call phase::calculateX
  94. stream_two_solid::X
  95. protect against singularity when Vphase->fraction == Lphase->fraction == Sphase->fraction == 0 stream_two_solid::estimateFlash and estimate_equilibrium
  96. stream_single_solid::Fraction
  97. move calculate_inert-solids from flash_VL to flash; stream_single_solid constructor missing readtables call after makeing embeddedD?phase; no need to initialize remotex_ since will not use flash::X; stream_single_solid call calculate_inertsolids; stream_single_solid::X override flash::X
  98. improve flash_VL::calculate_split and costfunction; normalize dew and bubble point computations in stream_two*::test
  99. pcsaft use eosBase::Tcriticalmechanical
  100. fix tests, add V/L molar volume consistency test, do not request too high vapor fraction for solid-containing phases
  101. fix prepare_residuals
  102. debugging stream_VL_eosM{C2H6;C7H16}non-ideal
  103. fix stream_two::test and stream_two_solid::test to avoid trying vapor fraction = 0.5 for streams with one pure component
  104. phase::impure added
  105. fix dippr:psat and pdippr::psat extrapolation for high temperatures
  106. improve tests
  107. stream::set* are public rather than private
  108. added stream_VS_eos, stream_LS_NRTL1, stream_VLS_eos, stream_VLS_NRTL1
  109. componentList::compnames
  110. fix compressor::calculate
  111. add returmn statement to phase_total::operator=; stream::findphase improve diagnostic; add stream::findphaseindex and use it in copyscale; fix Sphase add statement in stream_single_solid and stream_two_solid
  112. allocate fluidx_ in stream_two_solid
  113. fix phase::mww
  114. move copy constructor phase(const phase &) to phase_total(const phase_total &); completely remove  calculate_rho_nonconst, calculate_H_nonconst, calculate_Cp_nonconst, calculate_S_nonconst
  115. persistent_item(const persistent_item &) operator= are private and not implemented, making class non copyable;
  116. Integer(const Integer &src) and String(const String &src) copy constructors
  117. Integer and String::operator= copy operator
  118. modelBase &operator= is private and not implemented, making class non copyable
  119. update doxygen stuff; remove references to streamIdeal and streamEos.h; stream_one_solid, stream_two_solid interfaces; fix compilation of Qsale_pepe
  120. delete old-style {phase, flash, stream} and enable new style classes;
  121. extract cut.h and;
  122. modelBase::operator=
  123. flowsheet::makeEdge call 1 parameter constructor rather than 2 parameter
  124. multiReaction::phases
  125. rename copy_hetero to copyscale
  126. discard copy_homo
  127. implement idealphase::mu_ and sigma_
  128. phase::sumcomponents and subtractcomponents
  129. rework phasesplit::calculate
  130. eliminate from genflash::calculate redundant code (already in setflash_)
  131. eliminate redundant phase_total::xxx_nonconst functions
  132. stream::operator+=, setphase, ptype, pid, nphases, estimateFlash, operator+=, *=, /=
  133. stream::calculateX and phases are public; remove fastprop
  134. move Qopc to new stream types
  135. add testsuite
  136. modelBaseInterface::setfirstpass is now recursive; modelBaseInterface::reset is redundant and can be replaced by setfirstpass(true);
  137. normalize betac by sumx in pcsaft::betac; add a dummt pcsaft::Tcriticalmechanical
  138. stream::clearcomposition
  139. eosBase::betac is a function of sumx; phase::clearcomposition is public; added phase::operator=
  140. move calculate_P_eos, betac_ and betac() to eosBase;
  141. eosBase::testeos restore previous value of beta; change initial value for pcsaft vapor phase packing fraction
  142. fix gcc 4.3.2 warning friend declaration declares a non-template function
  143. simplify signature of phasebase::fugacity; move actual calculation of the fugacity coefficients to preparefugacity; idealphase::phi_ is a vector; move pseudoroot variables and testeos to eosBase
  144. eosCubic and pcsaft::preparefugacity_eos; move phiideal_ to eosCubic; move pcsaftphase::calculate_P_eos_ to pcsaft
  145. pcsaft and not pcsaftphase is derived from eosBase
  146. r480 | paolog | 2010-04-10 16:40:02 +0200 (sab, 10 apr 2010) | 2 lines
  147. simplify Qphieos_ interface; Qf_eos__, Qphieos_ and prepare_phi are const; preparefugacity calls prepare_phi
  148. rename Pact to Ppositive and expose as public function
  149. add global variables pmin, pmax
  150. simplify Qf_eos__; prepare to implement preparefugacity
  151. streamline stream_xxx::prepare_residuals
  152. merge eosCubicBase::precompute and compute
  153. perform stream_two::test in a significant temperature range
  154. phase::clearcomposition, setequimolar, setequimass, setpure, setimpure
  155. fix alfa incorrectly calculated as 1 at low temperatures
  156. fixed instabilities in stream_VL_eos
  157. add kappa_ to scalingmode::rational; add two-parameter scaler::setup
  158. streamline tests; fix stream_two::estimate_equilibrium for XA flashes
  159. diagnostic improvements; deal with negative pressures in eosphase::preparefugacity
  160. flash_VL::setmidalfa
  161. testing stream_VL_eos
  162. NLEbase::bmpout
  163. remove scaling errors
  164. fix recalc from persistency in stream_VL_eos
  165. pass cid to stream::postconstruct_ to avoid overwriting fraction
  166. improve stream::test by testing also restore from persistency; silence noisy diagnostic; fix stream_two contructor
  167. implement test_newcalcsaverestore and test_newcalcsaverestorerecalc;
  168. improve diagnostic in modelBaseInterface::operator==
  169. update doxygen configuration files, fix documentation
  170. fix to compile on MSVC; increment version string
  171. extract and .h from quantity; extract diagnostic.h from Q.h
  172. factor out; improve doucmentation; include cfloat to gat DBL_EPSILON
  173. add size method
  174. first time stream_V_gerg2004 operational
  175. make duty and mtot visible as results
  176. add Quantity::active
  177. fix aaa:bbb.ccc[999] for Q, S and I; fix aaa:bbb.ccc[888, 999] for Q
  178. gerg-2004 wip
  179. always use newstyle function declarations, not K&R
  180. fix a number of minor doxygen doc inconsistencies; added gerg2004 to newstream
  181. removed useless errorOF constructor with int i
  182. add GERG-2004 implementation
  183. added ibutane, ipentane, nhexane, noctane, nnonane, ndecane, argon, helium, hydrogensulfide components for GERG-2004 and GERG-2004 XT08
  184. O2, N2, CO, CO2, H2 have an option to disable henry-law (asymmetric activity coefficient)
  185. allow phase::calculate also for phasetype::Null; improve diagnostics; include Qesercitazione in Jamfile
  186. rename eosBase to eosCubicBase; add a parent eosBase; class eosphase is virtual public eosCubicBase; remove obsolete pcsaft members init, pertpar_, p_eos__, f_eos__, phieos_; add diagnostic;
  187. merge in pcsaft stuff; get to compile
  188. eosBase
  189. remove obsolete betavmax, betalmin; implement kprss::deosdv; test krs
  190. eosCubic::pseudoroot and Pcalc_; fine tune betalm_=0.8, eee = 3, kappa =
  191. 50; remove PSEUDOROOTS and PSEUDOROOTS2 modes
  192. added relaxed mode for bounds-exclusive
  193. pseudo roots 3
  194. stric range checking for bounds-exlusive scalers
  195. fixed shorten for std::pair<int, int> stream_two<U, V, F>::test() [with U = phase_eos<(phasetype::type)1u>, V = phase_eos<(phasetype::type)2u>, F = flash_VL_Tx]
  196. improve test robustness
  197. prepare flashbase::setup_ to set bounds for beta_; bounds currently still set to zero .. one
  198. rename eosBase to eosCubic
  199. make constants const
  200. fix pr alpha function
  201. fix normalization of beta_, A and B in phase_eos; restore bounds-exclusive scaling (rational) for beta_
  202. added 4 components, hydrocarbons test for stream_VL_ideal
  203. fix fugcacity calculation in NRTL and ideal: fugacity should return the logarithm of the fugacity coefficient
  204. clip alfa in flash_VL
  205. fix pseudoroot code, but keep inactive
  206. loosen tolerance for phase fractions in stream::calculateXnoflash;
  207. stabilize tests; fix stream_two::calculate_equilibrium_residuals
  208. improved documentation in genflash and compressor
  209. support S("A:B.c") synthax; differentiate between valid tag and valid description; trap []:. characters in
  210. non-vector, simple tags
  211. fix stream_two convergence in ideal_ mode; add testcase and testcaselist objects
  212. fix calling fillkvl properly for PT flash
  213. fixing inconsisistencies in enthalpy calculations
  214. improve pretty function formatting on gcc;
  215. flash_VL_Tx::prepare_flash_residuals to override flash_VL so that it
  216. does not write over kVLi_; stream_single::phasetype_, use friendly
  217. typedefs; rename stream_two::firsttype_ and secondtype_ to
  218. firstphasetype_ and secondphasetype_ respectively; stream_VL_NRTL2 and
  219. stream_VL_eos; fix Jamroot
  220. improve diagnostic; fix olga fluid file interface
  221. olga fluid phase fix
  222. do not generate HTML help
  223. olga fluid interface wip
  224. fix link::readValue and SyncWrite to handle case when the connection to OPC server was not successful; set pIOPCItemMgt_ and hServerItem_ to null in bridge::addLink if the connection to OPC server was not successful; allow verbosityGlobal = 10
  225. fox MSG_CONFIGURATION message to display second parameter; remove obsolete linkType enum; remove unused link::TimeStamp; initialize all member variables; bypass reading from datfile if not ope; set goodQuality_ if bm_ == dummyBM in group::read; bypass  group::set_state if inputs_ list is empty; group::SyncWrite print results if bm_ == dummyBM; fix bridge::removeGroup tonot remove an unsetBM group; make sure bridge::addLink returns a valid pointer; use diagtrace in Qopc
  226. remove simulationBM bridgeMode; do not release pErrors when they point to memory not dynamically allocated; in bridge::addLink initialie addedlink and pErrors, check return from AddItems against hr != S_OK, set group's bm_ = unsetBM if ANY item can not be linked to the server
  227. use unsetBM, enabled and isGoodQuality logic to disable calculation; silence modelBase::reset
  228. add link::hr_; pass hr_ in link::readValue and link::SyncWrite; in link::readValue  set quality_ and    value_ if hr != S_OK - increment error count if pValue == NULL or pValue[0].vDataValue.vt == VT_EMPTY; use unsetBM, enabled and isGoodQuality logic to disable activation, deactivation, read, write; improve diagnostic
  229. fix LoO_scm registering itself as service
  230. 2010
  231. reset models of there are errors
  232. group::set_state also sets state for all variables; group has to be friend class to link because it needs to access the server handles
  233. recursive modelBase::reset
  234. move main function from to to make it possible to reuse the other functions on winservice
  235. silence bridge::add; instrument link::isGood; protect link::readValue from reading crap
  236. update with test_newstream
  237. move main function from to to make it possible to reuse the other functions on winservice
  238. utility to Install or remove LIBPFonOPC as a service
  239. fix TRIM synthax for MySQL
  240. fix compilation on Linux
  241. remove default arg in stream_two::setFlash
  242. make DEMO const ints; remove link::isBad; skip group calculation if any link is not good
  243. fix flash_VL_T
  244. make stream::test virtual and declare Tout
  245. of_FADOO::xmin and xmax
  246. in stream_two override stream::test
  247. fixing flash_VL_Tx
  248. remove obsolete flash::fillkvl(void)
  249. add return for dummy flash::calculate_equilibrium_residuals
  250. improve neareps
  251. changed return type of calculate_eos_residuals; strea_V, stream_L, stream_V_eos, stream_L_eos, stream_VL_ideal;
  252. flash_VL_T; flash_VL::firstpid_ and secondpid_; computealfaminmax is protected rather than private; setup_ to override flash;
  253. calculate_equilibrium_residuals; clipbetweenalfaminmax
  254. fix heatVaporDippr::sv derivative with P
  255. changed return type of NLEauto::test and improved accuracy
  256. make sure convergence is not achieved for RH/RT flashes when no vapor is present
  257. RT flash
  258. changed flashbase::calculate_eos_residuals signature; fixed RH flash
  259. moved beta_ from flash to phase; fix bugs
  260. flashbase::Fraction; flash_VL; stream_two::alfac1_, updateFlash (TBD), prepare_residuals and Fraction; move sumx_, sumy_ from flash to flash_VL
  261. phasebase::setpid and pid; phase::pid_;
  262. add smartenum::size and increment
  263. calculate P- and T-dependent properties for all phases
  264. stream::vphases_, lphases_ and sphases_ are protected rather than private; change stream::addphase signature and do not aler Tphase, phases; stream_two draft: does not calculate V and Lphases yet
  265. phasebase::fugacity; make actBase::gamma const
  266. add NRTL2 test
  267. fix derivatives; use Adouble where possible in actBase
  268. merge in NRTL stuff from stream_ac
  269. fix dot path for Windows; add objectfactory.h; new doxygen setting for new{phase, flash, stream}
  270. typo in siteID
  271. check that the phasetype in phase_eos is vapor or liquid
  272. single phase vapor and liquid phases with cubic eos properties
  273. flashbase is virtual parent class of stream; move as much as possible away from stream and stream_single into flash
  274. stream_single
  275. move calculate_residuals to flash; implement flash::clip_ and estimate
  276. stream::test
  277. fix flashmode::RH
  278. enhance __PRETTY_FUNCTION__ shortening on gcc
  279. addphase(type)
  280. phase_ideal is a class template
  281. renamed phase_ideal idealphase; phasebase is virtual abstract; uniform function names i.e. calculate_rho vs. rhomol
  282. fix UOM in stream::calculateXnoflash; move calculate_rho, P, H, S and Cp from stream_V to stream
  283. phase::mwx and mww return Zero when required; call maketables from phase::phase
  284. phase_total::~phase_total; stream::calculate
  285. fix gcc ompilation; rearranged setFlash stuff
  286. compile but not link
  287. implementing new generation phase, stream and flash
  288. opcuaLibpfObject::populate and recursively populate subobjects
  289. errorOF::errorOF 3 params; modelBaseInterface::make{Integer/Qdouble/String]Vector catch n<0 case
  290. compile and run opcua stuff
  291. in multistage2D::multistage2D(-1) propagate nStreams to the T subobjects
  292. in multihx::multihx(-1) set nMultiReactions to 0
  293. ObjectFactory 1 param ::RegisterAbstract and isabstract; ObjectFactory::Create detects the attempt to instantiate an object belonging to an
  294. abstract class
  295. successful compile and link
  296. befriend modelBaseInterface class with NmLibpf
  297. add class ObjectFactory::exists
  298. first draft OPC UA implementation
  299. fix std::ostringstream
  300. make opcuaLibpfObject friend to modelBaseInterface; instantiate static ObjectFactory 1 param member utio_
  301. add unique type identification ordinal to ObjectFactory 1 param
  302. improve diagnostic in logfile_activation
  303. extend demo; fix overwriting of eventlog-related registry entries
  304. add pges and fres as arguments to phieos_; fix memory corruption in phieos_ and in Qphieos_
  305. fix missing fres in pcsaft::prepare_phi; converge PC-SAFT
  306. flash test
  307. stream_pcsaft, stream_VL_pcsaft classes
  308. add genericphase::volume
  309. added constructor to build Qdouble from Adouble
  310. parameterize with NC; make ncomp, param and kij static
  311. use Adouble instead of Qdouble in pcsaft inner calculations
  312. strip const valuetype; fix operator? signatures for MSVC
  313. add Active operators + and - with rhs valuetype; add Active operators + - * and / with lhs valuetype
  314. add fugacity coefficients computation
  315. draft PC-SAFT implementation
  316. fix registry for event log
  317. adde vaporphase and pilot_reactor::Tmin; demo until 20091010; fix activation
  318. re-enable activation, fix compilation with gcc
  319. uniform CURRENT_FUNCTION between gcc and msvc
  320. fix compilation for gcc
  321. restore old algorithm in eosflash::calculate_eos_liquid_root; update version
  322. modelBaseInterface::I handles x.y synthax (dot-separated object-Integer paths)
  323. readPublicKeyFromString and readPrivateKeyFromString have a std::string as argument; use BIO_write instead of BIO_puts and BIO_read instead of BIO_gets; update revision
  324. implement {read,write}{Public,Private}Key{From,To}String
  325. store keys in memory using PEM_read_bio_* and PEM_write_bio_*, but retain option to write keys to file (define USEKEYFILES macro)
  326. rename readPublicKey to readPublicKeyFromFile; rename readPrivateKey ro readPrivateKeyFromFile; rename writePublicKey to writePublicKeyToFile; rename writePrivateKey to writePrivateKeyToFile;
  327. do not write to logfile
  328. call registrar_phases and registrar_streamEos
  329. enhance error message for MSG_UNKNOWN_NAME
  330. improve activation; avoid local static variables since initialization order can screw things up; upgrade Qopc
  331. activation infrastructure
  332. merge in activation stuff
  333. registry_value::open with write_access == true; registry_value::set_value; fix registry_string::operator T(); registry_string < std::basic_string < TCHAR >::operator=
  334. make checyfft and ichegyfft not inline
  335. fix max min macro definitions conflicting with STL (
  336. fix compilation on WIN32
  337. revert change 274: sql coalesce function not supported on MS Access DB
  338. split numeric.* in numeric_NLAE, numeric_DAE, numeric_optimization, numeric_distribution, scaler, spline
  339. fixed genflash::addReaction; fixed persistency_*::insert_object; silenced registrars; added calls to registrars when required
  340. fix compilation for !WIN32
  341. ODBC 3.0 drivers return SQL_NO_DATA when insert does not insert any rows; added code to retrieve MSSQL Serve ODBC driver-specific diagnostic fields
  342. add ifdefs around regisistrar instantiations
  343. rearrange drop tables
  344. simplify persistency_odbc::maxID; add svn properties where required
  345. use singleton for register to avoid initialization dependencies across compilation units (Sutter Alexandrscu Item 21, Stroustrup 10.4.9)
  346. extracted objectfactory classes from models to a separate file; rearranged model_factory as a static member of the registrar class, from which
  347. modelBaseInterface derives
  348. extract fuelcells and userreactions from usermodels, othermodels and Qpsofc; remove Q.h include directive from Q*.cc; remove register_* members and replace with registrar static member; add streamAc.h and to Doxyfile*
  349. stricter object factory error: prevent duplicate registration
  350. update properties and add registrar skeleton
  351. update doxyfiles; change cpp to cc; update dxygen @mainpage in
  352. uncrustify; sort declarations / definitions in Q*
  353. update doxyfiles
  354. improve doxygen files
  355. change extensions from cpp to cc; fixed some sign mismatch and conversions from size_t to int
  356. minror fixes for compilation
  357. convert all sources to strict 7bit ASCII; updated Doxygen files; updated Jamroot
  358. renamed all hpp files to h, cpp to cc; factored from stream: phases, connectivity, reactions, flash; factored from othermodels: dummy; optimized header loading order
  359. long int, short int => long, short
  360. refactoring: rename Ilong to Integer
  361. refactoring: renamed completeTag to fulltag
  362. refactoring: renamed ca
  363. refactoring: rename persistent_item::set_catalogid to set_parentid
  364. support for Sundials 2.4.0
  365. refactoring: rename persistent_item_interface::catalogid to parentid; rename persistent_item::catalogid_ to parentid_
  366. fix certain memory leacks
  367. added modelBaseInterface::removefromI, removefromS and removefromQ
  368. fix int to bool warning message
  369. fix warning for unused variables
  370. fix sign mismatch warning
  371. disable annoying warning C4250 in MSVC
  372. fix erasing enableAssignment in flowsheetBase::~flowsheetBase; fix erasing embeddedIDreactions and embeddedTypeReactions in genflash::~genflash; fix erasing embeddedIDreactions, reactionSides and embeddedTypeReactions in hx::~hx; fix erasing embeddedIDreactions, embeddedIDmultiReactions, reactionSides, embeddedTypeReactions and embeddedTypeMultiReactions in multihx::~multihx; call modelBaseInterface::S and I in flowsheetBase::addcut; genflashN1::initializeNonPersistents; initialize myout_ to mixed in genflashNX::maketables rather than in genflashNX::setup_of; silence compressor::initializeNonPersistents
  373. add comparison operators modelBaseInterface::operator!= and operator==
  374. add modelBaseInterface::existsI, existsS, existsQ and existsO
  375. make Qs, Is, Ss and Os protected in modelBaseInterface
  376. move copynonembedded_and copyembedded_ from modelBase up to modelBaseInterface
  377. in flashbase::flashbase initialize fm_, Pset_,Tset_, Sset_ and rhoset_;  in stream::addphase initialize x_ vector in added genericphase object
  378. in persistency_odbc::insert_object and persistency_sqlite::insert_object set correctly PARENT field if catalogid() returns -1
  379. clip betav_ and betal_ in eosflash::initLiquid and initVapor
  380. ciclohexane
  381. make firstpass_ private to modelBase; add modelBaseInterface::restored; fix restore of genflash from persistency
  382. fix memory leak when called with "purge" command line
  383. enhance modelBase::~modelBase, hx::maketables and flowsheet::~flowsheet by acting correctly on freestore persistent items; do not readtables in
  384. modelBase::maketables, stream_L::maketables, stream_ideal::stream_ideal because these are no concrete classes AND no Qdoubles are defined here;
  385. compressor::initializeNonPersistents estimate also myout_ to avoid T_ and P_ at default values
  386. do not create Qdouble on freestore if not found in Qs while in read or readfast
  387. move freestore member from Ilong up to parent class persistet_item; update String and Pointer constructors
  388. add Qorc
  389. include nheptane; remove TIT; add SPLIT, S00 (makeup) and S99 (purge) to avoid singularity in simultaneous mode; S03 is now stream_VL_ideal rather than stream_VL_eos<kprrs>> for debug purposes; addcut S04; fix sign of EVAP.duty in powerIn
  390. renamed modelBaseInterface::estimateNow to initializeNonPersistents; estimate cut streams in flowsheetBase::restorecuts; group in genflash::setflash_; add CHECKPERSISTENCY option in; make stream::solveFlash virtual to make sure stream_VL_eos::solveFlash etc. get called; compute Tphase->v in stream::calculateX; add stream_VL_ac and stream_VLe_ac::initializeNonPersistents; add eosflash::initVapor and initLiquid; add stream_VL_eos::vv and vl to persist the vapor roots; stream_VL_eos, stream_VLe_eos and stream_V_eos::initializeNonPersistents; stream_VL_ideal, stream_VLS_ideal, stream_VLe_ideal and stream_VLSe_ideal::initializeNonPersistents now call calculate_residuals
  391. add new process library flowsheets
  392. add length*time UOM; register stream_V_eos<kprrs> with object factory; fix verbosity in streamEos
  393. flowsheet::check_inout
  394. minor enhancements to stream::testPTflash and testPHflash
  395. fix handling of boolean parameter passed from C to SQL via SQLBindParameter
  396. revert purging tc and catalog in persistency::purge
  397. fix overwriting unknowns in stream_VLe_eos::calculate_residuals
  398. butane, pentane and benzene
  399. fix Jamroot and qodbc strings for Linux
  400. rename icheap to mcfcigcc
  401. add set_parent as required; various fixes
  402. removed obsolete dummypersistency; renamed ODBC source from retention to peristency; implemented persistency_odbc::insertfast dor Ss and Is
  403. persistency_odbc; still missing the implementation of insertfast stbl and itbl
  404. persistency::tc_onepass_ and tc_firstpass_ are private; added bound, catalog(), qtbl() stbl() itbl and tc() functions
  405. persistency::push_transaction and pop_transaction
  406. "begin exclusive transaction" and "commit transaction" in insertfast(Qdouble), String, Ilong and in update
  407. single_filter
  408. revert back to sqlite3_prepare due to older sqlite3 version on osx tiger
  409. insertfast for String and Ilong
  410. persistence::insertfast; use sqlite3_prepare_v2; call sqlite3_finalize as appropriate to destroy the prepared statement objects
  411. also purge TC table
  412. renamed retention to persistency
  413. fixed for compilation on osx
  414. change prototype for persistency::find in catalog to pass parentid by reference; increased buffers from 64/128 to 512 bytes; add calls to sqlite3_reset where required; modified ReadICallback and persistency_SQLite::read(long, std::map<std::string,Ilong*> &) to return descriptions;
  415. initialize variable before use in modelBase::modelBase; set catalogid_ in modelBase::set_warning and set_error
  416. fix compile on OSX
  417. update to new persistency
  418. removed
  419. SQLITE
  420. various icheap9 fixes
  421. fix diagnostic levels
  422. comment annoying assert in equilibriumReaction::calculate_residual
  423. QTBL::readfast to also retrieve input and output
  424. avoid overwriting coldT and hotT in hx
  425. improved scaling in flashbase::calculate_flashmode_residual
  426. various icheap9 fixes
  427. "save t id d" synthax
  428. setOutput in compressor
  429. CTracer::Connect overload to override server and tracename
  430. fix reportAnEvent constness
  431. use SZAPPNAME rather than hardwired OPC client name; accept settings.xml without UOM field
  432. use SZAPPNAME rather than LOGSOURCE
  433. more UNICODE support
  434. support _UNICODE and _MBCS
  435. Qdgroup::calculate and setvalue; expound service-related stuff to winservice.h and cpp
  436. std::wstring home_path, kernel_path, OPCServer_CLSID, tracePipe and traceServer; call modelBaseInterface::errors and warnings; simplify call to modelBaseInterface::I and Q
  437. modelBaseInterface::errors and warnings const
  438. reportAnEvent wchar_t and char
  439. template<class T, class W> class group and bridge
  440. remove references to Qdouble from opcbridge to
  441. template<class T> class group and bridge
  442. template<class U, class V> class link
  443. support multi-character (ANSI); move vaporflash and pilot_reactor from opcbridge to Qopc
  444. restored betavmax and betalmin based on root of quartic
  445. pseudoproperties adjustments
  446. eostest now performs different tests depending on the first command line argument
  447. eosflash_::logphivi, logphili, prepare_z
  448. simplify  eosflash::calculate_eos_kvl
  449. streamline kprrs::betavmax and betlmin; add factor
  450. removed old-style betavmax and betalmin based on root of quartic
  451. dumpsilo and test flash convergence over a T range
  452. eosflash::Tcl_, pc_, vc_ and stream_VLe_eos::scanbetas; fix pseudoroot extrapolation
  453. include eostest
  454. fix various issues, generic testing
  455. fix compilation with gcc
  456. fixed Tphase::operator+ and operator- UOM error; created vfraction, lfraction and sfraction aliases
  457. new errorSE::errorSE version; modelBaseInterface::Q_; modelBaseInterface::Q handles case of xxx[yyy] if yyy is numeric without calling
  458. componentList.lookup
  459. removed _2 and _NOODBC targets
  460. prototype for model definition with XML
  461. stuff and various tests
  462. scalar_of: scalar objective function with scaling and automatic differentiation for unconstrained optimization; CGbase::test
  464. fix multihx::compute_reaction_conversions_ to call the calculate method of the actual multiReaction-derivative class rather than multiReaction<2>::calculate
  465. initialize sumx_ and sumy_ in flashbase::flashbase
  466. nheptane; fixe ethylene and nhexadecane name
  467. ToUtf8 const wchar_t, fix UTF-8 encoding bug, update revision number
  468. read readOnly and maxErrCount from registry; group:: and link::errorCount is unsigned; write the values of the input variables in the convergence error event
  469. removed eosflash::vvv_and vvl_, added pvmax_, p1v_, p2v_, plmin_, p1l_, p2l_
  470. fill kVL for non present components in flash::fillkvl
  471. vdw::betamaxv and betaminl
  472. acos
  473. eosBase::a0_, b0_, bcrit_ and the virtual functions betamaxv() and betaminl(); init PR constants in kprss::kprss; kprrs::calc_gk(), betamaxv()m betaminl(); auxiliary variables for pseudoroot computations eosflash::Tcv_, Tcl_, betamaxv_ and betaminl_
  474. remove MASSIVE_TEST and insert dummy values for 20090303 settings.xml
  475. fixed compilation on gcc 4.3.2, added smartneum::tostring
  476. ported from codeproject to boost::bimap
  477. Atm -> atm
  478. fix description stuff due to stricter synthax checking (valid)
  479. schema and stylesheet for smartenums.xml
  480. fix warning C4700: uninitialized local variable 'cid' used
  481. MSG_CORE, MSG_CONVERGENCE_MAXERR; group::errorCount_; catch LIBPF CORE and convergence errors
  482. error::message; moved valid from to; force validation of each and all tags / descriptions
  483. quality_ set to bad in link::Read if case of read error; verify demo max run time against timestamp; print newline when tracer is in console mode
  484. added registry support
  485. trace convergence errors
  486. integrate code from Simple Service
  487. moved CTracer stuff to eventlog.*; duplicate event log messages to trace
  488. CTracer::CTracer(sn, pn) and operator<<
  489. initialize link::quality_ in constructor
  490. link::quality, bool readValue, isGood, isBad, qualityString; group::goodQuality_
  491. vaporflash and group::mp_
  493. fix cathegory count in event log, added timestaps to traces; added time limit for demo; group description and enabled attributes
  495. big backup
  496. pilot_reactor and more...
  497. eosflash::estimate_vapor_beta and estimate_liquid_beta; eosflash::set_ideal; stream_eos overrides stream::solveFlash
  498. genericphase::useeos_ and setvolume; fix genericphase::writephase to compute v; flashbase::calculate_singlephase_split now computes sumx_
  499. added t/h unit for mass flow
  500. enhance modelBaseInterface::Q to handle Tphase.T synthax
  501. link::forcevalue; add  constant variabletype and group::constants_; embedded stream in group is now stream_VL_eos<kprrs>; group::linkmap_; initialize values in group::read if bm_ == dummyBM; report Iterations, Warnings, Errors and Vapor fraction at the end of the group::calculate
  502. handle ndotcomps[H2O] synthax in modelBaseInterface::Q
  504. eosflash::set_ideal; fix unknowns / residuals resizing in stream_eos constructor; stream_VL_eos::estimate initializes betav_ and betal_
  505. event logging
  506. moved ObjectFactory::Create from and modelBaseInterface::makeEmbedded from to
  507. update year in banner
  508. ethylene
  509. fcoption
  510. mcfcd3s::option renamed to fcoption
  511. sensitivity analysis
  512. psofc model: isothermal proton solid oxide fuel cell; psofc2, psofc3
  513. setOutput stuff
  514. improvements to fuelcell: nstage_anode_length, nstage_cathode_length, nstage_anode_width, nstage_cathode_width, nx, ny, htoption, TsSet
  515. unbundle fuelcell from mcfc
  516. change prototype of multistage constructor to pass optionIlongList and optionStringList by value rather than by reference: required by psofc
  517. remove useless multiReaction_H2crossover::calculate
  518. multihx::reactionOrder
  519. multiReaction_SOFC use Fabbri2008 for BCY / BCZY resistivity, mixed proton/oxyion conduction, override multiReaction<2>::calculate; psofc1 include multiReaction_H2crossover; sensitivit analysis
  520. multiReaction_electrochemical::PowerDensity; use setOutput where required
  521. W/m2
  522. icheap9_F
  523. include advapi32 with msvc to have GetUserNameA
  524. fix convergence
  525. fix duplicate Pset
  526. icheap9_A to E
  527. CO, Co2 and H2 have unsymmetric activity coefficient
  528. updated jam file for Qicheap9
  529. capstone_c30 and icheap9_A
  530. Add new file for ICHEAP9
  531. heatSolid::gs
  532. fix co2 capture
  533. stoich_ratio; set Thot using assignment; set metal makeup to keep air reactor temperature;
  534. optional sensitivity
  535. default number of streams for multihx set to 2; use {hot/cold}{in/out} synomyms for multihx
  536. ports if
  537. nStreams==2
  538. add metal makeup/purge to avoid singularity
  539. lower multiReaction diagnostic; estimate maxduty in hx also for Thot and Tcold specifications
  540. conversion is a flowsheet<vertex<2,2>>; add clc preliminary implementation
  541. nhexadecane, Fe2O3, improved Fe properties
  542. bkk_group, heatSolid_bkk, solidComponent: constructors based on seven parameter set
  543. Qco2capture target
  544. C16H34; deltah; fixed LHV
  545. stream_VLS::estimateNow; stream_VLSe_ideal::estimateNow; stream_VLS_ideal complete with stream_VLS_ideal::estimateNow
  546. Qco2capture
  547. added UOM for mass per unit work: kg/J
  548. instantiate flowsheet<vertex<3,1>> and flowsheet<vertex<2,1>>
  549. instantiate vertex<3,1>
  550. fix compilation on UNIX
  551. save id d synthax; create transitive closure also when saving;
  552. getusername and update getGID
  553. do not set input=true for coeff / coeffv variables in reactions / multiReactions
  554. test with mysql on Debian Lenny
  555. support mysql 5.0
  556. bypass modelBaseInterface::readtables if CID < 0
  557. stadio and attacco types
  558. instantiate flowsheet <vertex<3,3> >
  559. move instantiation of required templates to end of file; instantiate vertex<3,3>
  560. ported to gcc 4.3.2 and postgresql 8.3 on Debian Lenny
  561. column with liquid-only top-bottom streams and vapor-only bottom-top streams
  562. multistage<T,U,V> allows using different stream type in top-bottom and in bottopm-top connections
  563. silenced NLEauto::test
  564. NRTL1::resizeArrays, NRTL2::resizeArrays; fix stream_VLe_ac::calculate_residuals memory access error; increase assertions in
  565. NRTL1::setA, NRTL1::setB, NRTL2::setTABCD, NRTL2::setAAB
  566. fixed Qethanol convergence; removed column1
  567. flowsheetBase::smiter_precalc and maxit
  568. define tag name for new flowsheet
  569. fix connection of sp to sink in flowsheetBase::addcut
  570. converge column using proper damping in directstep
  571. assignement::directstep(double damping); sequentialassembly::damping_, set_damping and damping; modified sequentialassembly::directstep to use damping; removed boost/lambda stuff
  572. exception trapping in CATALOG::find
  573. recursively restore cut streams for flowsheets-in-flowsheets in flowsheetBase::restorecuts
  574. rearrange sequential and simultaneous computation based on flowsheet::supports_simultaneous
  575. column1
  576. fix flowsheet::calculate to accurately set error and warning for mass flow imbalance
  577. fix dummy::calculate ti calculate mdot* and duty only for non-cut streams
  578. avoid assert in flash::computealfaminmax
  579. edgeBase::cutdest
  580. ijhe<mcfcd3s> and ijhe<mcfc>
  581. phase fraction fix in genflash::calculate
  582. instantiate repeat_unit<mcfcd3s>
  583. moved id_ setting in persistent_item_interface to avoid parent NNN not
  584. present in catalogRAM
  585. fixed multistage<T,U>::streamname; debugging Qethanol
  586. recorder revamp
  587. flowsheet::seqErr

List of changes for the user interface

  1. fix macro name
  2. fix hierarchy for Qethanol
  3. setNumericalPrecisionPolicy as QSql::LowPrecisionDouble to try and fix bug in Vista; fix bug on MYSQL that did not display correctly truncated completetags
  4. use MySQL
  5. fix MainWindow::kernel_path to default for a local types.txt if no setting can be retrieved from QSetting
  6. make SvgNativeView::SvgNativeView more resilient when the svg file name has missing extension
  7. fix UTF-16 caharacter dsicplay in About window
  8. increment release
  9. use ODBC driver
  10. fix MainWindow::finished to display green icon when ignoreReturnCode; do not quote type and description in MainWindow::save_; MainWindow::delete call QProcess::start rather than execute
  11. fix UTF-16 conversion for osx
  12. MainWindow::home_path, kernel_path and kernel_name; changed save_ and purge_ from QProcess::execute to start
  13. fix home and kernel paths
  14. cast wchar_t literal to please gcc/darwin compiler
  15. fix stripping and include the current root objects' items when child_==true
  16. update osx icon
  17. renamed retention to persistency; added default home_path and kernel_path for osx
  18. fix trim synthax
  19. open retention.db from home_path
  20. fix unicode string and update translations
  21. fix sqlite database name
  22. SQLITE
  23. make stream icon transparent; MainWindow::ignoreReturnCode and fix behaviour when returning from failed kernel; quoting in MainWindow::save
  24. updated major version number to 0.9; fix bug that caused save as command to always save current instance as default type; fixed bug that caused save as command to proceed even if user clicked on cancel
  25. update for 2009 and trolltech copyright change
  26. use named connection to QSqlDatabase
  27. get rid of "QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work"; add
  28. username and password for X11
  29. verify flawless compile against Qt 4.5 and update comments and minor stuff in consequence
  30. fix tablew_output filter
  31. update translations and enable japanese
  32. Arabic, Korean and Chinese translations
  33. fix gcc warnings for deprecated conversion from string constant to ‘char*
  34. stream_VLS_ideal
  35. added 14 icons; updated revision; credit to Language Icon and to Tango-icon-theme; Settings->languages SubMenu; updated all translations
  36. included Hebrew translation by Aviv By; updated all other translations
  37. setLayoutDirection to right-to-left for he and ar
  38. support L command; support floating-point coordinates; support space after M, C or L command
  39. fix optional diagnostic prints in hierarchy::hierarchy and add vertex<3,1>, flowsheet<vertex<3,1>> and
  40. flowsheet<vertex<2,1>>
  41. filter in MainWindow::updateLog
  42. improve error messages and add vertex<3,3>, flowsheet<vertex<3,3>>
  43. translations updated
  44. fix SQL error in EditableIntSqlModel::go
  45. pop up "Enter new description" input box when saving
  46. add save as command; add command confimation before purge all; fix setEnabled/setDiasbled for certain commands
  47. use DoubleEditDelegate in Q table
  48. remove obsolete Delegate class
  49. fix annoying Id column in Q and I table; fix table scroll to be reset in row 0 after cell edit in Q and I table
  50. update de, fr, pt, it translations
  51. included russian translation by Anastasya Vlasova
  52. improve on message "Failure to start doods"; update translations
  53. increase diagnostic messages; partial port to mysql on debian lenny
  54. show a message in status bar after a new node has been openedd in treew
  55. add es, ru, ar, he, ko, jp, zh empty translation files
  56. ported to postgresql 8.3 on Debian Lenny; fix multistage type
  57. update types
  58. use default context menu in lower messages pane
  59. fix compilation on Linux; fix About LIBPF UI message



process simulation

Mobile app