LIBPF 0.7 was released on 2008/02/20, 15 months and about 400 changes after release 0.6 (2006/11/28).

The key improvements are:


This is the complete list of detailed changes:
  1. fixed multiReaction_SOFC to have proton conduction and changed resitivity data from Jamsak2007.pdf to Browning2002;
  2. psofc0 is now 1D distributed parameters;
  3. introduced psofc0::Vset and corresponding makeuserassembly machinery to equalize the potential;
  4. call compute_reaction_equilibria_ in multhx::calculate even if option=="z";
  5. proton-conducting Solid Oxide Fuel Cell: multiReaction_SOFC and psofc0;
  6. factored out multiReaction_electrochemical;
  7. added mm, um and ohm*cm units;
  8. making 2D sensitivity more robust;
  9. silenced calculate_onepass;
  10. fixed pure virtual function being called from many_many constructor;
  11. fix update for oracle database;
  12. enhance assert in dummy::attach to handle in1, in2, out2 ...;
  13. added NTHREADS argument to taskgraph::do_schedule and fixed parallelize;
  14. add move command line argument;
  15. removed taskgraph::operator<<;
  16. extracted taskgraph::acquire_upstream_locks and taskgraph::release_downstream_locks;
  17. to fix for flowsheet-in-flowsheet, pass level to do_schedule and parallelize;
  18. moved call to do_schedule from taskgraph::calculate_onepass to flowsheetBase::calculate;
  19. renamed taskgraoh::doit_ to core_calculate_onepass and simplified diagnostic;
  20. moved supertaskgraph::findnodes_ to taskgraph;
  21. renamed supertaskgraph to flowsheetBase;
  22. updated addcut synthax;
  23. incremented revision in multi;
  24. dummy::attach double checks that no out stream is connected to a sink and no in stream to a source;
  25. added and task.hpp;
  26. edgeBase is also a precedence, vertexBase is also a task;
  27. taskgraph and tasklist;
  28. refactored flowhseet;
  29. updated Doxyfiles ad Jamroot;
  30. moved MAKEILONG(NITER_NLEflash to stream constructor;
  31. fixed stream::testPHflash, testPTflash, testPAflash;
  32. NRTL1 and NRTL2, stream_VL_AC working and tested;
  33. we do not need a dependency on google sparsetables at the moment;
  34. spiralling sensitivity sensitivity_ndot_p;
  35. flowsheet::myof_;
  36. protect flowsheet::calculate_local_residuals from embedded objective function with 0 size;
  37. virtual modelBaseInterface::estimateNowis implemented in flowhseet, stream and compressor only;
  38. compressor::Tis;
  39. typo in hx::calculate_local_residuals;
  40. hx::maxduty default value must be different from zero to avoid division by zero when the dutyhot unknown is initialized the first time in setup_of when restoring from persistency;
  41. in hx and multihx scale according to the actual maxduty or minT,maxT values;
  42. migrate from compute_scaling and compute_scaling_ to setup_of: gensep, compressor,genflash, genflashN1, genflashNX, hx,multihx, flowhseet;
  43. initialize neqs_ and nofs_ in flowsheet::flowsheet;
  44. removed mcfc::compute_scaling; moved repeat_unit from to;
  45. added mcfc::zO2 and zCO2; reduced verbosity in mcfc::calculate;
  46. diagnostic trimming in repeat_unit::calculate;
  47. diagnostic trimming in sequentialassembly::makeassignment and in flowsheet::compute_scaling;
  48. simpler diagnostic in NLEbase::solve;
  49. removed typo in multihx documentation;
  50. modelBaseInterface::unsetInput;
  51. call unsetInput from within flowsheet::addcut to remove torn streams estimates from input variables list;
  52. removed setup.hpp and updated paths;
  53. silence flowsheet::compute_scaling but report variable list;
  54. work around bug #98;
  55. added mcfc error if Javg is out of bounds;
  56. streamlined multiReaction pressure handing = bug #58;
  57. multiReaction_MCFC::kinetic option;
  58. silence jacobian::backslash;
  59. fixed bug in multoReactionMCFC::calceqconst;
  60. silenced printProfile in mcfc::calculate;
  61. repeat_unit::calculate can call stream::copy_homo since inside and outside stream have same type per repeat_unit::attach;
  62. enhanced repeat_unit::attach to give a proper tag to inside stream copy;
  63. made stream::copy_hetero and copy_homo from copyflash;
  64. fix gcc 4.0 error "there are no arguments to 'readtables' that depend on a template parameter";
  65. made repeat_unit::factor persistent;
  66. added repeat_unit::type_ and type();
  67. fixed repeat_unit:: which would bypass the postprocessing;
  68. fix repeat_unit::attach which would not register with the correct port (as modified by the host unit's attach method);
  69. stream::operator/=;
  70. fixed repeat_unit::calculate and removed test stuff;
  71. made cut__in_ and out_ private; provided accessors in() and out(); removed dummy constructor;
  72. cleanup and draft repeat_unit;
  73. redesign to support more targets;
  74. remove setup.hpp; split and setup.hpp stuff into files;
  75. fix gcc 4 compilation;
  76. NLEbase::verifysolution;
  77. genflashNX<stream_VLe_ideal>;
  78. added PSA::option for recovery mode;
  79. icon for gensep where appropriate (gensep2.png does not exist anymore);
  80. make "drive" logic handle negative/positive residuals correctly in flash::calculate_RRG_residual;
  81. reset_errors in stream::calculate;
  82. added Tcold hx::option;
  83. genflashNX<stream_VLe_ideal>;
  84. do not swap cold/hot streams in hx if potential temperature swap detected - just issue warning;
  85. do not reset errors in flowsheet:calculate;
  86. stream_VLSe_ideal::testPT and spanPTflash enhancement;
  87. reshaped drive algorithm in flash::calculateRRGresidual;
  88. removed eosFlash::cost_;
  89. restored diagnostic in NLEbase::solve;
  90. improve dummy error checking;
  91. moved fluidx_ from stream_VLSe_ideal to stream_VLS;
  92. flash::clip_, drive_ and clipbetweenalfaminmax;
  93. enhancements to stream_VLS::estimate;
  94. improve mcfc convergence in J mode;
  95. scale mre->z in mcfc::makeuserassignments;
  96. flowsheet::compute_scaling also prints scaling mode;
  97. do not print flowpattern in multistage2D::maketables;
  98. scaler::tostring;
  99. modelBaseInterface::runtime_;
  100. moved flowsheet stuff from to;
  101. moved reactionC2H6_Ref and reactionC2H6_Ref_Eq from to;
  102. moved testJacobian from to;
  103. included CSparse library;
  104. fixed automatic cutting of streams;
  105. fixed several leaks in jacobian;
  106. automatic sequencing;
  107. support sparse jacobians;
  108. clearderivatives does not destroy sparsity structure;
  109. edgeBase::weight;
  110. implementing smarter initialization strategy for mcfc;
  111. call mcfcd3s::resampleprofile from main;
  112. VJp mode in mcfc::option;
  113. mcfc option = Jp;
  114. implemented multiReaction_MCFC::option = J in multihx;
  115. multiReaction_MCFC::Jset and J option;
  116. mcfcd3s::duty0 and duty1;
  117. Jresprocol and generalized mcfcd3s::resampleprofile;
  118. added mA/cm2 unit of measurement;
  119. read mcfcd3s output even if executable not found (help testing under Linux);
  120. mcfcd3s::readvector_ to read in the current density profile; profile resampling prototype;
  121. spline;
  122. fixed randomdouble;
  123. changed tolerances and maximum iterations in NLEbase::lsqrdriver;
  124. changed behaviour when maximum iterations are exceeded in NLEbase::solve;
  125. limit elements of residual vector printed for diagnostic purposes to 10;
  126. added buffer to normalize Jacobian columns in NLEbase;
  127. fix column normalization;
  128. fix error reporting for exceeded number of iterations in lsqrdriver;
  129. scale jacobian;
  130. avoid lsqrdriver to overwrite F;
  131. set the initial guess for LSQR to zero;
  132. improved NLEbase::mat_vec_prod to exploit sparsity for mode == 1;
  133. update of_FADOO::operator() implementations;
  134. NLEbase::Jsparse and LSQR;
  135. of_FADOO::operator() interface changed to support Jsparse;
  136. fixed option=VJ in mcfc;
  137. matrix_inversion_in_place_Jacobi_ and associated vectors sol_ and y_;
  138. fixed mcfcd3s massbal;
  139. changed kinetic expression in multiReaction_MCFC;
  140. added upFlowPattern and rightFlowPattern <2,1> <2,2> <4,2> <8,3> <8,4> <8,8>;
  141. added VJ mcfc::option;
  142. moved stuff from mcfc::setup to calculate;
  143. fixed mcfcd3s::calculate;
  144. ST1x1 ST4x3 ST8x6 ST16x12;
  145. mcfcd3s will run in dummy mode if no executable is found rather than bouncing out;
  146. flowsheet::makeVertex and makeEdge check for duplicate names;
  147. errorIC update in components;
  148. rightFlowPattern and upFlowPattern for 4x3, 8x6, 16x12;
  149. errorIC improvement;
  150. enhance convergence in mcfc when option=J;
  151. fixed spawn::calculate to call copyflash;
  152. mcfcd3s enhancements: does not call readoutmcfc_ if MCFC D3S executable failed, fixed conv2, made more silent, if option=J reads actual Javg from outmcfc.dat;
  153. highlight nested sequential modular iterations;
  154. reactionC2H6_Ref and reactionC2H6_ref_Eq;
  155. mcfcd3s::filename String;
  156. added portable (POSIX) test of existance of MCFC D3S executable; MCFC D3S executable must be in current path;
  157. added call to _searchenv in mcfcd3s::calculate;
  158. errorRT;
  159. flowsheet::seqTol;
  160. mcfcd3s reads z and I results from outmcfc.dat;
  161. modelBase::tag_xml completeTag_xml;
  162. mcfc::Voffset;
  163. NLEbase::solve does not call jacobian2bmp;
  164. removed printprofile commands from multiStage2D::calculate;
  165. fixed flaw in mcfc::setup that would invalidate pressure drops;
  166. moved ObjectFactory from graph.hpp to models.hpp;
  167. moved compressor from multi to othermodels;
  168. compressor::Wb to Wm and cleaned up descriptions;
  169. gather to look at ndot and not at mdot;
  170. calling copyflash for multistage1D outlets;
  171. reaction mass unbalance warning message in multix only triggered when overall mass balance is broken, not when broken for individual streams (to allow for mass transfer or electrochemical reactions);
  172. calling copyflash for multistage2D outlets;
  173. fixed keycomponent in reaction reactionC2H6_TC;
  174. silence bmp_io::jacobian2bmp;
  175. added mass unbalance check after computing reaction conversions in genflash, hx and multihx;
  176. renamed modelBase::print_html_new to print_html;
  177. restored minimal solver diagnostic during simultaneous flowsheet resolution;
  178. global LIBPFversion string;
  179. fixed bug #69 by modifying modelBase::print_html_new;
  180. registered stream_LSe_ideal in register_models;
  181. fixed "member "multiReaction<N>::type_ [with N=2]" cannot be instantiated -- it has been explicitly specialized" warnings from intel compiler;
  182. removed stream:.setFlash with 5 arguments;
  183. fixed error message in of_FADOO::packResults_;
  184. fixed bug #95;
  185. fixed doxygen comments in modelBaseInterface::MakeQdouble etc;
  186. fix bug #94; fix retruning temporary warning in strem_VL and stream_VLS::fraction;
  187. plateau and convergence on deltax issue warning and not error in stream and genflash;
  188. fixed typo in NLEbase message;
  189. restored correct sign for the WGS equilibrium constant;
  190. fix stream::calculateX that would overwrite P when fm == PA;
  191. added diagnostic in of_FADOO1::packResults_ to check if the sum of the absolute values of the derivatives of an equation is nonzero;
  192. flash::Fraction interface changed;
  193. fixed "singular matrix, type 2" and "flash convergence failure" error messages in PA flash;
  194. added new stream::getphaseid; stream_{V_,L_,S_,VL,VLS,VS,LS}::Fraction;
  195. fixed phasesplit;
  196. split off stream::calculateXnoflash;
  197. renamed multimixer to mixer; renamed multisplitter to splitter;
  198. multistage::stage renamed to stagename;
  199. multistage::stream renamed to streamname;
  200. multistage2D::stage renamed to stagename;
  201. multistage2D::stream renamed to streamname;
  202. stream:: copyflash;
  203. multistage2D::calculate and multisplitter::calculate to call stream::copyflash;
  204. removed splitter and migrated to multisplitter;
  205. fixed genflash::estimate_;
  206. changed interface to hx::calculate_approaches;
  207. various fixes to hx and multihx;
  208. improve error reporting from NLE_base::matrix_inversion_in_place and solve;
  209. try not to calculate_local_residuals once more in of_FADOO1::unscalex;
  210. skip RRG residual computation when the fluid phases are missing in stream_VLSe_ideal;
  211. improved diagnostic in stream::calculateX and in flowsheet::calculate_local_residual;
  212. properly set the local flash variables in stream::setFlash;
  213. do not discard errors encountered in Jacobian computation in flowsheet::calculate;
  214. detect and try to fix degenerate equations in flowsheet::calculate_local_residual;
  215. try to not scale pressure equations by diving by P0;
  216. removed Active::nonzero; Active::dernorm;
  217. avoid building massbalancemode and flashmode from string in stream::CalculateFeed;
  218. active::inactivated;
  219. in splitter::calculate and multisplitter::calculate, setFlash and estimate outlet streams;
  220. in genflashNX::maketables set parent and tag of embedded splitter;
  221. rearranged flash private variables;
  222. renamed stream::setStreamFlash setFlash; flash::setFlash_ sets fm_, pid_, Tset_ ...;
  223. stream::setFlash family of member functions set P, T .. then call flash::setFlash_;
  224. in stream::calculateX, set phases[0].fraction only if VL flash is underway;
  225. in stream::CalculateFeed_ and FlashFeed_ account for flashmode::SA;
  226. in stream::Fraction return alfa_ only if VL flash is underway;
  227. don't use val() in flash::calculate_flashmode_residual and calculate_pressure_residual;
  228. avoid flashing outlets in phasesplit - setFlash and estimate instead;
  229. improved diagnostic in of_FADOO::prepare_ and packResults_;
  230. default argument for stream_VL, stream_VLS, stream_VS, stream_LS constructors;
  231. merged flashsolver into stream;
  232. moved solveFlash to stream; use Pres and Temp as local arguments variables in flash members;
  233. added leaner fillkvl interfaces; added Flash::Fraction to access the current estimates of the flash fractions during flash convergence;
  234. flash::estimate takes Pres and Temp and is virtual so that it can be overridden by stream_VL and stream_VLS;
  235. stream_V_, stream_L_, stream_S_, stream_VL, stream_VLe, stream_VLS, stream_VLSe, stream_VS, stream_VSe, stream_LS, stream_LSe inherit virtually from stream;
  236. of_FADOO::settagof; flowsheet::addcut sets parent property for added stream;
  237. flash phasesplit outlets; check duty and deltas convergence in genflash;
  238. fixed bug #91;
  239. enhanced modelBase::reset_errors to recursively reset errors in embedded models;
  240. enhanced of_FADOO::prepare_ diagnostic;
  241. initialize to NULL parent_ in Quantity, Ilong, String;
  242. fixed stream_VLSe_ideal: :solveFlash;
  243. revamped of_FADOO::print;
  244. Qdouble:: String:: and Ilong:: parent_ and completeTag;
  245. initialize fluidvaporfraction_ in stream_VLSe_ideal;
  246. added strict check on setActive;
  247. removed spurious setInactive call in amix and bmix;
  248. modelBase::printFull;
  249. enhanced error return codes from NLEbase::solve; NLEbase::message and convergence error reporting;
  250. return derivative info in enthalpy-related properties;
  251. model::copynonembedded_ and copyembedded_ are public;
  252. model::errors and warnings;
  253. splitter resets errors on entry;
  254. splitter and multisplitter check compatibility of phases;
  255. reactionYield issues better error messages when the conversion is bound;
  256. stream::calculateX checks boundedness of phase fractions, and its sum;
  257. stream::CalculateFeed_ supports flashmode PA;
  258. genericphase::id_ and id(); stream_VLSe_ideal uses fluidvaporfraction_ as unknown;
  259. stream_VLSe_ideal::spanPTflash; fixed reactionC_WG and reactionCHNO_9;
  260. fixed errorFC message; NLEbase::print_settings; NLEauto::test(j);
  261. gather by-passes empty streams;
  262. gensep::calculate, multimixer::calculate appropriately set error if the outlet stream convergence fails;
  263. reactionC_WG;
  264. stream:LS, stream_LSe, stream_LS_ideal, stream_LSe_ideal;
  265. fixed Bug#: 89 "can not set PA flash for feed stream";
  266. reactionC_TC; reactionC2H6_TC;
  267. genflashNX<stream_VLSe_ideal>;
  268. constructor for reactive hx with reaction list;
  269. register & instantiate genflashNX<stream_VLSe_ideal>;
  270. reengineered and moved compressor from and othermodels.hpp to and multi.hpp;
  271. added support for compressor in simultaneous mode;
  272. added a dynamically allocated compressor::isentropic stream object;
  273. consolidated genflashN_VL and genflashN_VS into genflashNX;
  274. compressor::Wfis
  275. moved compressor from and usermodels.hpp to and othermodels.hpp
  276. genflashN_VS
  277. stripped away from and quantity.hpp any dependence on boost
  278. stream_VS_ideal
  279. stream_S_ and stream_S
  280. fixed bug with phasesplit::calculate and explicit phases
  281. baseComponent and pure::Vc and Zc
  282. enhanced estimation of fractional conversion in genflash
  283. singled out a reactionYield::estimate;
  284. fixed equilibriumReaction::calculateKIstWert against zero molar flows;
  285. fixed equilibriumReaction::calculate_residual
  286. moved code from genflash, hx and nultihx to equilibriumReaction::calculate_residual
  287. fixed bug #67
  288. fixed gcc error: object missing in reference to 'of_FADOO::xp_' or error: 'xp_' was not declared in this scope
  289. fixed highest temperature limit for bkk_parameter;
  290. expose NLEbase &solver() from all models derived from or embedding an NLEbase: flowsheet, flashsolver, genflash, hx, multihx;
  291. support constructing a genflashN1 with the list of reaction names;
  292. created appropriate makeVertex overload; catch errors in modelBaseInterface::makeEmbedded;
  293. made NLEbase::ALF, TOLX, MAXITS, TOLF, TOLMIN, STPMX and DECAY protected;
  294. allow user to tweak and query convergence parameters: NLEbase::set_tolerances, set_maximum_iterations, set_maximum_stepsize, set_decay, maxits;
  295. moved calculateKSollwert from g() in equilbriumReaction; reactionNH3_synthesis, reactionNH3_synthesis_Eq, reactionN2_oxidation, reactionN2_oxidation_Eq
  296. add doxygen configuration file to obtain user-distributable documentation
  297. moved phases, findphase, addphase, ptot, calculate_pressure_residual, vphases_, lphases_, sphases_ from flash to stream;
  298. equilibriumReaction::calculateKIstWert and calculate_equilibrium take a stream pointer/reference;
  299. changed arguments to flash::estimate, calculate_singlephase, calculate_split, calculate_RRG_residual, calculate_flashmode_residual - fixed eosFlah accordingly
  300. added printout of revision
  301. stream_VLSe_ideal;
  302. moved error:.error and ::append from to;
  303. fixed errorMB doxygen comments;
  304. global Zero and One;
  305. flash::calculate_inertsolids;
  306. cleaned up error handling, got rid of most std::cerr and exit calls
  307. fixed const char problem with gcc
  308. enhanced error handling: errorMB, errorNC, errorIC, errorMB, errorDC enhancements, errorUOM extended to unsupported units, errorOF
  309. fixed bug with stream::calculateX which would surface with explicit phases;
  310. reactionCH4_TC_Eq
  311. equilibriumReaction::calculateKIstWert skips solid components
  312. pass reference to phase to equilibriumReaction::calculateKIstWert;
  313. hence pass pointer to flash to equilibriumReaction::calculate_equilibrium;
  314. updated correspondingly calls in genflash, hx and multihx;
  315. equilibriumReaction::calculateKIstWert and calculateKSollwert are private;
  316. split genflash:: hx:: multihx:: compute_reactions_ in compute_reaction_conversions_ and compute_reaction_equilibria_
  317. equilibriumReaction::calculate_equilibrium is now within equilibriumReaction, preprocess and postprocess are gone;
  318. concrete classes derived from equilibriumReaction should implement calculateKSollwert
  319. registered stream_VSe_ideal with Object Factory;
  320. stream_VSe_ideal::maketables initializes xp_ and scaler_;
  321. adapted stream_VSe_ideal::calculate_residuals originally based stream_VL_ideal;
  322. added simple constructor for baseComponent;
  323. added isSolid pure virtual method in genericComponent and implemented in concrete classes derived thereof;
  324. heatSolid_bkk class for UOM aware version of bkk_group
  325. bkk_parameter: Barin-Knacke-Kubachewski single parameter set;
  326. bkk_group: assembly of adjacent Barin-Knacke-Kubachewski parameter sets
  327. fixed UOM in phase::clearcomposition for massbalancemode::N and M
  328. register_models and register_usermodels instead of register_all;
  329. multi.hpp does not need to include setup.hpp;
  330. moved global variables from usermodels to multi
  331. patch tear streams within flowsheets-in-flowsheet failure in simultaneous mode
  332. simplified moved sol stuff from to setup.hpp and
  333. write Tphase.h=Htot;
  334. swap setStreamFlash and calculateX in stream::CalculateFeed_;
  335. force calculation of outlet stream in compressor::calculate;
  336. do not flash feed streams to flowsheet-in-flowsheet while in simultaneous mode from within dummy:calculate: they get flashed the other way around
  337. revert order in multistage2D::printprofile
  338. in modelBase::copynonembedded_ do not skip active variables
  339. in simultaneous mode, flash feed streams in flowsheet-in-flowsheet only if they are recycles
  340. avoid including objective functions for feedstreams to flowsheets-in-flowsheet in the parent flowsheet composite objective function
  341. fixed smartenum copy constructor, made values() a virtual member function of base class and values_ a static member of the derived classes
  342. gensep pressureDrop fix;
  343. genflash pressureDrop fix;
  344. genflashN_VL fix;
  345. stream::setphase fix;
  346. implemented genericphase::operator<<;
  347. relaxed asserts in stream::calculateX;
  348. tweaked stream::Htot, Stot, HtotN, Rhotot, Cptot to skip a phase with fraction == 0.0
  349. gather function;
  350. documented pressureDrop;
  351. documented duty sign convention in gensep and genflash;
  352. removed gensep_::gather_;
  353. created gensep::compute_scaling_;
  354. cleaned up gensep::calculate, multimixer::calculate and genflash::calculate;
  355. removed genflashN1::sum_inlets_;
  356. Improvements to multistage2D::printprofile
  357. modelBaseInterface::Qs and catalogRAM point to modelBaseInterface - this fixes problem with overwriting parentID while copying outlet streams in multistage2D::calculate; removed mixer;
  358. made reset visible from modelBaseInterface;
  359. adapted cut constructor arguments
  360. it is not allowed to call print_connectivity from within the multistage2D constructor because it invokes completeTag on the vertexes, but this in turn recusrively calls completeTag on the multistage2D itself which due to the yet incomplete construction process is a pure virtual member function
  361. streamline mcfc::calculate and mcfc::setup
  362. fixed multimixer::calculate;
  363. fixed multimixer::calculate to avoid owerwriting outlet streams' P: sum phases and not streams
  364. fixed multistage2D::maketables to avoid split product and feed streams homonimity
  365. moved print_xml from modelBase to modelBaseInterface, bug #75;
  366. improved diagnostic in flowsheet::print_xml
  367. "If deletion through a pointer to a base Base should be allowed, then Base's destructor should be public and virtual" Sutter, Alexandrescu "C++ Coding Standards" #50
  368. delete flop on exit;
  369. gensep<N> now supports simultaneous resolution;
  370. genflash now supports PA flash and sets correctly alfa in other cases;
  371. several diagnostics enhancements
  372. avoid Mixing in/out messages fro sale_pepe and mcfcsystem1;
  373. included Ts in reults shown in UI for mcfcsystem;
  374. added UI results for mcfcsystem1;
  375. avoid stream_VL_ideal and ifix outSplit[00] synthax in sale_pepe;
  376. enhanced many_many::attach error message;
  377. enhanced modelBaseInterface::Q, I, S, O error messages;
  378. avoid stream_VL_ideal in mcfcsystem1
  379. accepts small deviations for fraction in stream::calculateX;
  380. remove any reference to stream_VL_ideal in mcfcsystem
  381. pressureDrop does not set the outlet stream pressure (outP) - this is set manually in genflash, hx, multihx only if we are in sequential mode;
  382. consequently setFlash(flashmode::PX, P, X) and not out->P;
  383. protect against overwriting active variables in stream::calculateX and modelBase::copynonembedded_
  384. fixed mixer::calculate and multimixer::calculate: require a stream::calculate after SolveFlash;
  385. avoid annoying "Mixing in/out with inXX/outXX mode" warnings in mcfcsystem
  386. phase::operator*= implemented, scales flows and leaves specific or adimensional quantities unchanged;
  387. phase:operator* does not call calculate but rather operator*=;
  388. stream::operator*= calls phase::operator*= on Tphase and on any embedded explicit phase object;
  389. fixed stream::HtotN;
  390. initialize phases[0].fraction to 1 in single phase stream types such as stream_V_ and stream_L_
  391. factored out flash::estimate from flash::setFlash of types 1 and 2, to avoid overwriting active variables when solving simultaneous - streamXY::solveFlash should call flash::estimate before flashsolver:solve_;
  392. pure virtual flash::HtotN and StotN, implemented in stream;
  393. moved operator= from modelBase to modelBaseInterface;
  394. exposed copyembedded_ and copynonembedded_ in modelBaseInterface;
  395. stream_V and stream_L::calculate_residuals set the fraction in phases[0]
  396. flash::calculate_singlephase
  397. enhanced diagnostic in genericphase::hv_;
  398. fixed bug in flash::calculate_split, not using correctly clipped alfa_;
  399. fixed sign of y in flash::calculate_RRG_residual;
  400. renamed flashsolver::solve to solve_;
  401. flashsolver::computealfaminmax enhanced;
  402. coded stream_ideal::dumpsilo
  403. ideal::computealfaminmax;
  404. stream::testFlashes, testPAflash, testPHflash,testPTflash
  405. fixed construction sequence of stream_VL_ideal, stream_VLe_ideal and stream_VL_eos;
  406. removed more pure virtuals
  407. avoid calls to pure virtual functions during construction/destruction if mixins
  408. setparent;
  409. removed modelBase::PATH;
  410. modelBase::completeTag now builds dynamically response
  411. fixed linking problem due to pure virtual functions being called from the constructors of the mixins
  412. major rework of modelBaseInterface derivatives' construction mechanism
  413. got rid of valgrind message "Conditional jump or move depends on uninitialised value(s)"
  414. cleaned up MakeEmbedded;
  415. removed default constructor where possible (htuntu, reaction...);
  416. moved phasesplit before genflash in othermodels.hpp;
  417. genflashN1 and genflashN_VL testconnect_, inletstreams_, outletstream?_ stuff
  418. instantiate stream_VL_eos <kprrs>; qualify stream_eos<E> in stream_VL_eos constructor
  419. factored out stream_V_; stream_V and stream_L are concrete;
  420. implemented stream_V
  421. added flash::ptot, eosvap, calculate_pressure_residual to support RX flashes;
  422. added support for RH RT and SA in setFlash;
  423. renamed stream_XYZ_explicit to stream_XYZe;
  424. factored out streamIdeal;
  425. factored out stream_eos;
  426. compiles
  427. added flashmode RT and SA
  428. avoid MSVC issuing: Q.hpp(98) : warning C4244: 'return' : conversion from 'time_t' to 'long', possible loss of data
  429. new stream architecture
  430. replaces stream * with edgeBase * in many_one, one_many, many_two; removed stream stuff
  431. added this-> as required for compiling under gcc
  432. factored out flashsolver from stream_VL_ideal; coded stream_VL_eos::calculate_residuals
  433. moved T P and setFlash from stream to flash; created a new version of flash::fillkvl without access to the Tphase->x
  434. fixed for gcc according to
  435. fixed UOM in heatSolid_dummy::hs, ss, cps
  436. removed heatexchanger;
  437. added hx::option = "Thot";
  438. calling nonconverged rather than repeatedly delta;
  439. genericphase:.setamw;
  440. removed stream::Nphases and phase_type;
  441. scaler constructor and ::setup take scalingmode by const reference;
  442. objective_function::nonconverged
  443. bumps out when an UOM error is trapped
  444. one_three, two_two, two_one with vertex<N,M>
  445. replaced gensep2 and gesep3 with gensep<N>
  446. improved genericphase;
  447. phases vector in stream;
  448. removed phfrac and replaced with phases[].fraction;
  449. simplified stream::calculateX interface;
  450. moved setphase to stream;
  451. newstream prototype interface
  452. added flashmode::RH and streamid smartenum
  453. renamed genericphase::pt to type
  454. genericphase::writephase, amw, rho, .. setp, operator->
  455. gensep testconnect_, normalize_, hfluxin_, gather_, calculateFlows_, calculateSplits_
  456. gensep<N>
  457. added pointer to phase in genericphase
  458. genericphases_ vector in streamX and streamVL
  459. no need for stream::PAset(P, a)
  460. removed 3rd parameter in stream::PHset function call
  461. class genericphase
  462. streamlined PHflash(void), PSflash(void), RHflash(void)
  463. stripped Tbp and Tdp stuff
  464. fixed calling phase::calculate(mb) instead calculateX(mb)
  465. got rid of 3-args PHflash
  466. migrated stream::flashmode and flowmode to smartenums;
  467. moved FlashFeed_, CalculateFeed_ and SetFlashFeed_ to the private section of stream
  468. removed calculateNx stuff from stream, made private (calculateNx_ in phase)
  469. moved CalculateFeed from stream to edgeBase; inlets_ and outlets_ vectors in many_many are edgeBase *; added inletstreams_ and outletstreams_ stream* vectors in hx and multihx
  470. vertex<M,N> construct, vertex<2,2> tested in hx
  471. support smartenums values documentation in doxygen
  472. smart enumerators
  473. removed heatexchanger_zones; moved vertexbase to from
  474. merged idealflash_single into streamX
  475. renamed streamVLkprrs to streamVLeos and parameterized with eosBase-type template
  476. renamed and streamV.hpp to streamX; introduced streamX class between stream and streamV; added streamL class; switched sale_pepe over to streamL
  477. stream::SetFlashFeed is private; moved streamVL and streamVLkprrs::PXset to streamVLbase
  478. moved fromTAG, toTAG, fromID, toID, fromPort, toPort, cutsource from stream to edgeBase; removed superfluous flowsheet:.attachinside; phase derives from modelBase and not edgeBase; streamlined flowsheet::makeEdge
  479. registered vapor and liquid synonyms for genflash12 and genflashN2
  480. improvement to modelBase::print_xml
  481. improvements to flowsheet::print_xml
  482. restored backwards compatibility with gcc 3.4-1
  483. port to SUNDIALS 2.3.0 - IDA 2.5.0
  484. compiles with Intel C Compiler 9.0 under Linux
  485. moved streamVL::calculateGamma from to
  486. refactored part of usermodels into and



process simulation

Mobile app