LIBPF 0.9
was released on 2010/06/02,
20 months
and about
650 changes
after release 0.8 (2008/09/22).
Apart from the usual extensive testing and optimization and bug-fixing the key improvements are:
Calculation kernel
:
Unit operation modeling
: support for Proton-SOFC fuel cells;
Physical properties
: major refactoring of phase- and stream-related classes, handling of root extrapolation (pseudoproperties) in cubic equations of state, PC-SAFT equation of state, prototype GERG-2004 and IAPWS-95 equations of state;
Systems
: Classic OPC interface revamp, OPC Unified Architecture prototype interface, online software activation;
Internationalization
: the User Interface is now available seven additional languages, for a total of twelve languages:
Modern Standard Arabic
,
simplified Chinese
,
English
,
French
,
German
,
Hebrew
,
Italian
,
Japanese
,
Korean
,
Portuguese
,
Russian
and
Spanish
;
Usability
: added a Save As command.
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
in dummy::calculate, fix test for feed stream not inside flowsheet-in-flowsheet
fix phasesplit outlet stream types in Qwte
fix deltah::calculate in Qco2capture
initialize totalvaporfraction_ and totalliquidfraction_ when estimating flash in stream_two_solid
add _SCL_SECURE_NO_DEPRECATE where required
set VAPORE:Vphase.fraction in in gianluca0::setup
call prepare_residuals for all phases in stream::initializeNonPersistents
echo errors to stderr for UIPF
readtables in reactionYield::reactionYield;
fix modelBase::update
save actual id in database in modelBaseInterface::dbid_
persist normally nErrors and nWarnings
merge implementations of modelBase::insert and update
report_messages, set_error and set_warning are not const
update is const
call readtables from within createObject
fix size of szState char vector on errorODBC::errorODBC
#include multi.h in test_multistage.cc;
fix stream_VL_ideal constructor in Qhello_world.cc
change eosBase::estimate signature
make pcsaft class concrete by implementing estimate method
remove varValue in link::readValue
clients must free all memory associated with ‘out’ or ‘in/out’ parameters: pValue and pErrors for IOPCSyncIO::Read and pErrors in IOPCSyncIO::Write
call VariantClear when appropriate
set rsa_ to NULL after every call to RSA_free
new message MSG_MINMAX
in bridge::add report event MSG_MINMAX if required
fix in pilot_reactor_new::calculate make s1.Tphase.mdot positive
fill in pcsaft parameters in ServiceStart
pcsaft::setbeta to set the packing based on the molar density
remove pcsaft::estimate_ and integrate in pcsaftphase::estimate, after simplification
clip to max / min in link::SyncWrite
fix pcsaft::density
improve pcsaft::estimate_ to compute an estimate of the vapor-phase density based on ideal-gas law
define NOMINMAX to avoid annoying interference with min and max macros
define link::min_, max_, setmin() and setmax()
clip value between min_ and max_ in link::readValue
improve modelBaseInterface::test_newcalcsaverestore and test_newcalcsaverestorerecalc to call test_recursive
fix and streamline Qopc main loop
bring pc-saft components from 4 to 9
revert ideal_ is true by default;
set ideal_ to false in flash_VL_Tx:flash_VL_Tx;
overload stream::CalculateFeed in stream_two and stream_two_solid to call solveFlash with ideal_=false if required
in flash_VL override flash::estimate to call fillkvl
flash_VL_T::alfaset_ must be protected
remove duplicate alfaset_ in flash_VL_Tx
do not call fillkvl in flash_VL_T::setFlash_
revert ideal_ is true by default;
set ideal_ to false in flash_VL_Tx:flash_VL_Tx;
overload stream::CalculateFeed in stream_two and stream_two_solid to call solveFlash with ideal_=false if required
flash::niter is public;
default flashbase::ideal_ is false
fix calculation of logarithm in pcsaft::preparefugacity
implement test cases 1 and 2 from standalone.f by Joachim Gross
fuelcell::icoord and jcoord;
deactivate newtDuty assignment in ijhe::makeuserassembly (is ineffective !)
improved initialization of electrochemical reaction in fuelcell::setup
fix compressor::calculate to call calculateX in isentropic and myout with massbalancemode:Nx rather than incorrect N
fix stream::operator*= to handle single-phase streams
rename vertexBase::mdot to cmdot to avoid confusion with phase::mdot
in taskgraph::core_calculate_onepass perform checkbalance even for simultaneous steps
fix sign of mdotout
flash_VL_T::setFlash_ do not call fillkvl
zero_zero, many_one, one_many, many_many and many_two::checkbalance
move away mass flow imbalance error / warning from from flowsheet::calculate to xxx_yyy::checkbalance
call checkbalance in taskgraph::core_calculate_onepass
override xxx_yyy::checkbalance in dummy
report messages after calculation in test_xyz
remove testflo from Qmcfc and prepare for test_multistage
verify derivatives only if flowsheet supports the simultaneous solution mode
major improvements to test_multihx
remove testHx from test
add test_gensep
in gensep::calculate force calculation of outlet streams based on massbalancemode::Nx, since in calculateFlows_ we split in terms of ndot, x
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
initialize Tphase, Vphase, Lphase Xphase and Sphase to NULL
call calculateX in gensep::calculate, compressor::calculate
add 9 new unit operation tests test_xxxx
setParent in flowsheet::build and in modelBaseInterface::makeEmbedded_
phase_total::phase_total has to pass over correct value of cid to the modelBaseInterface constructor;
improved stream::addphase to correctly label phases
fix copyscale and add stream::operator=; silence noisy diagnostic about offsetCATALOGID in modelBase::modelBase; fix modelBaseInterface::copynonembedded_ diagnostic during copy of Qdoubles
call Tphase->calculateX in stream::CalculateFeed; exclude pcsaft tests in test_stream
improve diagnostic in of_FADOO::init; label correctly the isentropic substream in compressor::setup_of to provide correct unknown identification
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
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 flowsheet3.dot also for calculate runs; readtables and adjust fromID, toID in edgeBase::edgeBase; do not calculateX subphases in single-phase stream::calculateXnoflash
do not overwrite ID of embedded objects (which might have been changed from within modelBase constructor)
initialize I_ in Integer constructor
fix major bug in new phase constructors
only report derivative discrepancies in NLEauto::test if numeric derivative is different from zero
silence diagnostic in modelBaseInterface::operator==, taskgraph::makeDAG_, suggest_cut, find_strong_components
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
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
stream_two_solid::X
protect against singularity when Vphase->fraction == Lphase->fraction == Sphase->fraction == 0 stream_two_solid::estimateFlash and estimate_equilibrium
stream_single_solid::Fraction
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
improve flash_VL::calculate_split and costfunction; normalize dew and bubble point computations in stream_two*::test
pcsaft use eosBase::Tcriticalmechanical
fix tests, add V/L molar volume consistency test, do not request too high vapor fraction for solid-containing phases
fix prepare_residuals
debugging stream_VL_eosM{C2H6;C7H16}non-ideal
fix stream_two::test and stream_two_solid::test to avoid trying vapor fraction = 0.5 for streams with one pure component
phase::impure added
fix dippr:psat and pdippr::psat extrapolation for high temperatures
improve tests
stream::set* are public rather than private
added stream_VS_eos, stream_LS_NRTL1, stream_VLS_eos, stream_VLS_NRTL1
componentList::compnames
fix compressor::calculate
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
allocate fluidx_ in stream_two_solid
fix phase::mww
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
persistent_item(const persistent_item &) operator= are private and not implemented, making class non copyable;
Integer(const Integer &src) and String(const String &src) copy constructors
Integer and String::operator= copy operator
modelBase &operator= is private and not implemented, making class non copyable
update doxygen stuff; remove references to streamIdeal and streamEos.h; stream_one_solid, stream_two_solid interfaces; fix compilation of Qsale_pepe
delete old-style {phase, flash, stream} and enable new style classes;
extract cut.h and cut.cc;
modelBase::operator=
flowsheet::makeEdge call 1 parameter constructor rather than 2 parameter
multiReaction::phases
rename copy_hetero to copyscale
discard copy_homo
implement idealphase::mu_ and sigma_
phase::sumcomponents and subtractcomponents
rework phasesplit::calculate
eliminate from genflash::calculate redundant code (already in setflash_)
eliminate redundant phase_total::xxx_nonconst functions
stream::operator+=, setphase, ptype, pid, nphases, estimateFlash, operator+=, *=, /=
stream::calculateX and phases are public; remove fastprop
move Qopc to new stream types
add testsuite
modelBaseInterface::setfirstpass is now recursive; modelBaseInterface::reset is redundant and can be replaced by setfirstpass(true);
normalize betac by sumx in pcsaft::betac; add a dummt pcsaft::Tcriticalmechanical
stream::clearcomposition
eosBase::betac is a function of sumx; phase::clearcomposition is public; added phase::operator=
move calculate_P_eos, betac_ and betac() to eosBase;
eosBase::testeos restore previous value of beta; change initial value for pcsaft vapor phase packing fraction
fix gcc 4.3.2 warning friend declaration declares a non-template function
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
eosCubic and pcsaft::preparefugacity_eos; move phiideal_ to eosCubic; move pcsaftphase::calculate_P_eos_ to pcsaft
pcsaft and not pcsaftphase is derived from eosBase
r480 | paolog | 2010-04-10 16:40:02 +0200 (sab, 10 apr 2010) | 2 lines
simplify Qphieos_ interface; Qf_eos__, Qphieos_ and prepare_phi are const; preparefugacity calls prepare_phi
rename Pact to Ppositive and expose as public function
add global variables pmin, pmax
simplify Qf_eos__; prepare to implement preparefugacity
streamline stream_xxx::prepare_residuals
merge eosCubicBase::precompute and compute
perform stream_two::test in a significant temperature range
phase::clearcomposition, setequimolar, setequimass, setpure, setimpure
fix alfa incorrectly calculated as 1 at low temperatures
fixed instabilities in stream_VL_eos
add kappa_ to scalingmode::rational; add two-parameter scaler::setup
streamline tests; fix stream_two::estimate_equilibrium for XA flashes
diagnostic improvements; deal with negative pressures in eosphase::preparefugacity
flash_VL::setmidalfa
testing stream_VL_eos
NLEbase::bmpout
remove scaling errors
fix recalc from persistency in stream_VL_eos
pass cid to stream::postconstruct_ to avoid overwriting fraction
improve stream::test by testing also restore from persistency; silence noisy diagnostic; fix stream_two contructor
implement test_newcalcsaverestore and test_newcalcsaverestorerecalc;
improve diagnostic in modelBaseInterface::operator==
update doxygen configuration files, fix documentation
fix to compile on MSVC; increment version string
extract units.cc and .h from quantity; extract diagnostic.h from Q.h
factor out persistency.cc; improve doucmentation; include cfloat to gat DBL_EPSILON
add size method
first time stream_V_gerg2004 operational
make duty and mtot visible as results
add Quantity::active
fix aaa:bbb.ccc[999] for Q, S and I; fix aaa:bbb.ccc[888, 999] for Q
gerg-2004 wip
always use newstyle function declarations, not K&R
fix a number of minor doxygen doc inconsistencies; added gerg2004 to newstream
removed useless errorOF constructor with int i
add GERG-2004 implementation
added ibutane, ipentane, nhexane, noctane, nnonane, ndecane, argon, helium, hydrogensulfide components for GERG-2004 and GERG-2004 XT08
O2, N2, CO, CO2, H2 have an option to disable henry-law (asymmetric activity coefficient)
allow phase::calculate also for phasetype::Null; improve diagnostics; include Qesercitazione in Jamfile
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;
merge in pcsaft stuff; get to compile
eosBase
remove obsolete betavmax, betalmin; implement kprss::deosdv; test krs
eosCubic::pseudoroot and Pcalc_; fine tune betalm_=0.8, eee = 3, kappa =
50; remove PSEUDOROOTS and PSEUDOROOTS2 modes
added relaxed mode for bounds-exclusive
pseudo roots 3
stric range checking for bounds-exlusive scalers
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]
improve test robustness
prepare flashbase::setup_ to set bounds for beta_; bounds currently still set to zero .. one
rename eosBase to eosCubic
make constants const
fix pr alpha function
fix normalization of beta_, A and B in phase_eos; restore bounds-exclusive scaling (rational) for beta_
added 4 components, hydrocarbons test for stream_VL_ideal
fix fugcacity calculation in NRTL and ideal: fugacity should return the logarithm of the fugacity coefficient
clip alfa in flash_VL
fix pseudoroot code, but keep inactive
loosen tolerance for phase fractions in stream::calculateXnoflash;
stabilize tests; fix stream_two::calculate_equilibrium_residuals
improved documentation in genflash and compressor
support S(“A:B.c”) synthax; differentiate between valid tag and valid description; trap []:. characters in
non-vector, simple tags
fix stream_two convergence in ideal_ mode; add testcase and testcaselist objects
fix calling fillkvl properly for PT flash
fixing inconsisistencies in enthalpy calculations
improve pretty function formatting on gcc;
flash_VL_Tx::prepare_flash_residuals to override flash_VL so that it
does not write over kVLi_; stream_single::phasetype_, use friendly
typedefs; rename stream_two::firsttype_ and secondtype_ to
firstphasetype_ and secondphasetype_ respectively; stream_VL_NRTL2 and
stream_VL_eos; fix Jamroot
improve diagnostic; fix olga fluid file interface
olga fluid phase fix
do not generate HTML help
olga fluid interface wip
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
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
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
use unsetBM, enabled and isGoodQuality logic to disable calculation; silence modelBase::reset
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
fix LoO_scm registering itself as service
reset models of there are errors
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
recursive modelBase::reset
move main function from winservice.cc to Qopc.cc to make it possible to reuse the other functions on winservice
silence bridge::add; instrument link::isGood; protect link::readValue from reading crap
update with test_newstream
move main function from winservice.cc to Qopc.cc to make it possible to reuse the other functions on winservice
utility to Install or remove LIBPFonOPC as a service
fix TRIM synthax for MySQL
fix compilation on Linux
remove default arg in stream_two::setFlash
make DEMO const ints; remove link::isBad; skip group calculation if any link is not good
fix flash_VL_T
make stream::test virtual and declare Tout
of_FADOO::xmin and xmax
in stream_two override stream::test
fixing flash_VL_Tx
remove obsolete flash::fillkvl(void)
add return for dummy flash::calculate_equilibrium_residuals
improve neareps
changed return type of calculate_eos_residuals; strea_V, stream_L, stream_V_eos, stream_L_eos, stream_VL_ideal;
flash_VL_T; flash_VL::firstpid_ and secondpid_; computealfaminmax is protected rather than private; setup_ to override flash;
calculate_equilibrium_residuals; clipbetweenalfaminmax
fix heatVaporDippr::sv derivative with P
changed return type of NLEauto::test and improved accuracy
make sure convergence is not achieved for RH/RT flashes when no vapor is present
RT flash
changed flashbase::calculate_eos_residuals signature; fixed RH flash
moved beta_ from flash to phase; fix bugs
flashbase::Fraction; flash_VL; stream_two::alfac1_, updateFlash (TBD), prepare_residuals and Fraction; move sumx_, sumy_ from flash to flash_VL
phasebase::setpid and pid; phase::pid_;
add smartenum::size and increment
calculate P- and T-dependent properties for all phases
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
phasebase::fugacity; make actBase::gamma const
add NRTL2 test
fix derivatives; use Adouble where possible in actBase
merge in NRTL stuff from stream_ac
fix dot path for Windows; add objectfactory.h; new doxygen setting for new{phase, flash, stream}
typo in siteID
check that the phasetype in phase_eos is vapor or liquid
single phase vapor and liquid phases with cubic eos properties
flashbase is virtual parent class of stream; move as much as possible away from stream and stream_single into flash
stream_single
move calculate_residuals to flash; implement flash::clip_ and estimate
stream::test
fix flashmode::RH
enhance
__PRETTY_FUNCTION__
shortening on gcc
addphase(type)
phase_ideal is a class template
renamed phase_ideal idealphase; phasebase is virtual abstract; uniform function names i.e. calculate_rho vs. rhomol
fix UOM in stream::calculateXnoflash; move calculate_rho, P, H, S and Cp from stream_V to stream
phase::mwx and mww return Zero when required; call maketables from phase::phase
phase_total::~phase_total; stream::calculate
fix gcc ompilation; rearranged setFlash stuff
compile but not link
implementing new generation phase, stream and flash
opcuaLibpfObject::populate and recursively populate subobjects
errorOF::errorOF 3 params; modelBaseInterface::make{Integer/Qdouble/String]Vector catch n<0 case
compile and run opcua stuff
in multistage2D::multistage2D(-1) propagate nStreams to the T subobjects
in multihx::multihx(-1) set nMultiReactions to 0
ObjectFactory 1 param ::RegisterAbstract and isabstract; ObjectFactory::Create detects the attempt to instantiate an object belonging to an
abstract class
successful compile and link
befriend modelBaseInterface class with NmLibpf
add class ObjectFactory::exists
first draft OPC UA implementation
fix std::ostringstream
make opcuaLibpfObject friend to modelBaseInterface; instantiate static ObjectFactory 1 param member utio_
add unique type identification ordinal to ObjectFactory 1 param
improve diagnostic in logfile_activation
extend demo; fix overwriting of eventlog-related registry entries
add pges and fres as arguments to phieos_; fix memory corruption in phieos_ and in Qphieos_
fix missing fres in pcsaft::prepare_phi; converge PC-SAFT
flash test
stream_pcsaft, stream_VL_pcsaft classes
add genericphase::volume
added constructor to build Qdouble from Adouble
parameterize with NC; make ncomp, param and kij static
use Adouble instead of Qdouble in pcsaft inner calculations
strip const valuetype; fix operator? signatures for MSVC
add Active operators + and - with rhs valuetype; add Active operators + - * and / with lhs valuetype
add fugacity coefficients computation
draft PC-SAFT implementation
fix registry for event log
adde vaporphase and pilot_reactor::Tmin; demo until 20091010; fix activation
re-enable activation, fix compilation with gcc
uniform CURRENT_FUNCTION between gcc and msvc
fix compilation for gcc
restore old algorithm in eosflash::calculate_eos_liquid_root; update version
modelBaseInterface::I handles x.y synthax (dot-separated object-Integer paths)
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
implement {read,write}{Public,Private}Key{From,To}String
store keys in memory using PEM_read_bio_* and PEM_write_bio_*, but retain option to write keys to file (define USEKEYFILES macro)
rename readPublicKey to readPublicKeyFromFile; rename readPrivateKey ro readPrivateKeyFromFile; rename writePublicKey to writePublicKeyToFile; rename writePrivateKey to writePrivateKeyToFile;
do not write to logfile
call registrar_phases and registrar_streamEos
enhance error message for MSG_UNKNOWN_NAME
improve activation; avoid local static variables since initialization order can screw things up; upgrade Qopc
activation infrastructure
merge in activation stuff
registry_value::open with write_access == true; registry_value::set_value; fix registry_string::operator T(); registry_string < std::basic_string < TCHAR >::operator=
make checyfft and ichegyfft not inline
fix max min macro definitions conflicting with STL (
http://support.microsoft.com/kb/143208
fix compilation on WIN32
revert change 274: sql coalesce function not supported on MS Access DB
split numeric.* in numeric_NLAE, numeric_DAE, numeric_optimization, numeric_distribution, scaler, spline
fixed genflash::addReaction; fixed persistency_*::insert_object; silenced registrars; added calls to registrars when required
fix compilation for !WIN32
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
add ifdefs around regisistrar instantiations
rearrange drop tables
simplify persistency_odbc::maxID; add svn properties where required
use singleton for register to avoid initialization dependencies across compilation units (Sutter Alexandrscu Item 21, Stroustrup 10.4.9)
extracted objectfactory classes from models to a separate file; rearranged model_factory as a static member of the registrar class, from which
modelBaseInterface derives
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 streamAc.cc to Doxyfile*
stricter object factory error: prevent duplicate registration
update properties and add registrar skeleton
update doxyfiles; change cpp to cc; update dxygen @mainpage in models.cc
uncrustify; sort declarations / definitions in Q*
update doxyfiles
improve doxygen files
change extensions from cpp to cc; fixed some sign mismatch and conversions from size_t to int
minror fixes for compilation
convert all sources to strict 7bit ASCII; updated Doxygen files; updated Jamroot
renamed all hpp files to h, cpp to cc; factored from stream: phases, connectivity, reactions, flash; factored from othermodels: dummy; optimized header loading order
long int, short int => long, short
refactoring: rename Ilong to Integer
refactoring: renamed completeTag to fulltag
refactoring: renamed ca
refactoring: rename persistent_item::set_catalogid to set_parentid
support for Sundials 2.4.0
refactoring: rename persistent_item_interface::catalogid to parentid; rename persistent_item::catalogid_ to parentid_
fix certain memory leacks
added modelBaseInterface::removefromI, removefromS and removefromQ
fix int to bool warning message
fix warning for unused variables
fix sign mismatch warning
disable annoying warning C4250 in MSVC
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
add comparison operators modelBaseInterface::operator!= and operator==
add modelBaseInterface::existsI, existsS, existsQ and existsO
make Qs, Is, Ss and Os protected in modelBaseInterface
move copynonembedded_and copyembedded_ from modelBase up to modelBaseInterface
in flashbase::flashbase initialize fm_, Pset_,Tset_, Sset_ and rhoset_; in stream::addphase initialize x_ vector in added genericphase object
in persistency_odbc::insert_object and persistency_sqlite::insert_object set correctly PARENT field if catalogid() returns -1
clip betav_ and betal_ in eosflash::initLiquid and initVapor
ciclohexane
make firstpass_ private to modelBase; add modelBaseInterface::restored; fix restore of genflash from persistency
fix memory leak when called with “purge” command line
enhance modelBase::~modelBase, hx::maketables and flowsheet::~flowsheet by acting correctly on freestore persistent items; do not readtables in
modelBase::maketables, stream_L::maketables, stream_ideal::stream_ideal because these are no concrete classes AND no Qdoubles are defined here;
compressor::initializeNonPersistents estimate also myout_ to avoid T_ and P_ at default values
do not create Qdouble on freestore if not found in Qs while in read or readfast
move freestore member from Ilong up to parent class persistet_item; update String and Pointer constructors
add Qorc
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
renamed modelBaseInterface::estimateNow to initializeNonPersistents; estimate cut streams in flowsheetBase::restorecuts; group in genflash::setflash_; add CHECKPERSISTENCY option in Q.cc; 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
add new process library flowsheets
add length*time UOM; register stream_V_eos<kprrs> with object factory; fix verbosity in streamEos
flowsheet::check_inout
minor enhancements to stream::testPTflash and testPHflash
fix handling of boolean parameter passed from C to SQL via SQLBindParameter
revert purging tc and catalog in persistency::purge
fix overwriting unknowns in stream_VLe_eos::calculate_residuals
butane, pentane and benzene
fix Jamroot and qodbc strings for Linux
rename icheap to mcfcigcc
add set_parent as required; various fixes
removed obsolete dummypersistency; renamed ODBC source from retention to peristency; implemented persistency_odbc::insertfast dor Ss and Is
persistency_odbc; still missing the implementation of insertfast stbl and itbl
persistency::tc_onepass_ and tc_firstpass_ are private; added bound, catalog(), qtbl() stbl() itbl and tc() functions
persistency::push_transaction and pop_transaction
“begin exclusive transaction” and “commit transaction” in insertfast(Qdouble), String, Ilong and in update
single_filter
revert back to sqlite3_prepare due to older sqlite3 version on osx tiger
insertfast for String and Ilong
persistence::insertfast; use sqlite3_prepare_v2; call sqlite3_finalize as appropriate to destroy the prepared statement objects
also purge TC table
renamed retention to persistency
fixed for compilation on osx
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;
initialize variable before use in modelBase::modelBase; set catalogid_ in modelBase::set_warning and set_error
fix compile on OSX
update to new persistency
removed persistency.cc
SQLITE
various icheap9 fixes
fix diagnostic levels
comment annoying assert in equilibriumReaction::calculate_residual
QTBL::readfast to also retrieve input and output
avoid overwriting coldT and hotT in hx
improved scaling in flashbase::calculate_flashmode_residual
various icheap9 fixes
“save t id d” synthax
setOutput in compressor
CTracer::Connect overload to override server and tracename
fix reportAnEvent constness
use SZAPPNAME rather than hardwired OPC client name; accept settings.xml without UOM field
use SZAPPNAME rather than LOGSOURCE
more UNICODE support
support _UNICODE and _MBCS
Qdgroup::calculate and setvalue; expound service-related stuff to winservice.h and cpp
std::wstring home_path, kernel_path, OPCServer_CLSID, tracePipe and traceServer; call modelBaseInterface::errors and warnings; simplify call to modelBaseInterface::I and Q
modelBaseInterface::errors and warnings const
reportAnEvent wchar_t and char
template<class T, class W> class group and bridge
remove references to Qdouble from opcbridge to Qopc.cc
template<class T> class group and bridge
template<class U, class V> class link
support multi-character (ANSI); move vaporflash and pilot_reactor from opcbridge to Qopc
restored betavmax and betalmin based on root of quartic
pseudoproperties adjustments
eostest now performs different tests depending on the first command line argument
eosflash_::logphivi, logphili, prepare_z
simplify eosflash::calculate_eos_kvl
streamline kprrs::betavmax and betlmin; add factor
removed old-style betavmax and betalmin based on root of quartic
dumpsilo and test flash convergence over a T range
eosflash::Tcl_, pc_, vc_ and stream_VLe_eos::scanbetas; fix pseudoroot extrapolation
include eostest
fix various issues, generic testing
fix compilation with gcc
fixed Tphase::operator+ and operator- UOM error; created vfraction, lfraction and sfraction aliases
new errorSE::errorSE version; modelBaseInterface::Q_; modelBaseInterface::Q handles case of xxx[yyy] if yyy is numeric without calling
componentList.lookup
removed _2 and _NOODBC targets
prototype for model definition with XML
stuff and various tests
scalar_of: scalar objective function with scaling and automatic differentiation for unconstrained optimization; CGbase::test
GENERATE_XML
fix multihx::compute_reaction_conversions_ to call the calculate method of the actual multiReaction-derivative class rather than multiReaction<2>::calculate
initialize sumx_ and sumy_ in flashbase::flashbase
nheptane; fixe ethylene and nhexadecane name
ToUtf8 const wchar_t, fix UTF-8 encoding bug, update revision number
read readOnly and maxErrCount from registry; group:: and link::errorCount is unsigned; write the values of the input variables in the convergence error event
removed eosflash::vvv_and vvl_, added pvmax_, p1v_, p2v_, plmin_, p1l_, p2l_
fill kVL for non present components in flash::fillkvl
vdw::betamaxv and betaminl
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_
remove MASSIVE_TEST and insert dummy values for 20090303 settings.xml
fixed compilation on gcc 4.3.2, added smartneum::tostring
ported from codeproject to boost::bimap
Atm -> atm
fix description stuff due to stricter synthax checking (valid)
schema and stylesheet for smartenums.xml
fix warning C4700: uninitialized local variable ‘cid’ used
MSG_CORE, MSG_CONVERGENCE_MAXERR; group::errorCount_; catch LIBPF CORE and convergence errors
error::message; moved valid from model.cc to types.cc; force validation of each and all tags / descriptions
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
added registry support
trace convergence errors
integrate code from Simple Service
moved CTracer stuff to eventlog.*; duplicate event log messages to trace
CTracer::CTracer(sn, pn) and operator<<
initialize link::quality_ in constructor
link::quality, bool readValue, isGood, isBad, qualityString; group::goodQuality_
vaporflash and group::mp_
MSG_MISSING_MODEL
fix cathegory count in event log, added timestaps to traces; added time limit for demo; group description and enabled attributes
MSG_UNKNOWN_ATTRIBUTE, MSG_MISSING_ID, MSG_UNKNOWN_ATTRIBUTE_VALUE, MSG_DEMO_EXPIRED
big backup
pilot_reactor and more…
eosflash::estimate_vapor_beta and estimate_liquid_beta; eosflash::set_ideal; stream_eos overrides stream::solveFlash
genericphase::useeos_ and setvolume; fix genericphase::writephase to compute v; flashbase::calculate_singlephase_split now computes sumx_
added t/h unit for mass flow
enhance modelBaseInterface::Q to handle Tphase.T synthax
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
handle ndotcomps[H2O] synthax in modelBaseInterface::Q
add MSG_UNKNOWN_TAGTYPE
eosflash::set_ideal; fix unknowns / residuals resizing in stream_eos constructor; stream_VL_eos::estimate initializes betav_ and betal_
event logging
moved ObjectFactory::Create from graph.cc and modelBaseInterface::makeEmbedded from multi.cc to models.cc
update year in banner
ethylene
fcoption
mcfcd3s::option renamed to fcoption
sensitivity analysis
psofc model: isothermal proton solid oxide fuel cell; psofc2, psofc3
setOutput stuff
improvements to fuelcell: nstage_anode_length, nstage_cathode_length, nstage_anode_width, nstage_cathode_width, nx, ny, htoption, TsSet
unbundle fuelcell from mcfc
change prototype of multistage constructor to pass optionIlongList and optionStringList by value rather than by reference: required by psofc
remove useless multiReaction_H2crossover::calculate
multihx::reactionOrder
multiReaction_SOFC use Fabbri2008 for BCY / BCZY resistivity, mixed proton/oxyion conduction, override multiReaction<2>::calculate; psofc1 include multiReaction_H2crossover; sensitivit analysis
multiReaction_electrochemical::PowerDensity; use setOutput where required
icheap9_F
include advapi32 with msvc to have GetUserNameA
fix convergence
fix duplicate Pset
icheap9_A to E
CO, Co2 and H2 have unsymmetric activity coefficient
updated jam file for Qicheap9
capstone_c30 and icheap9_A
Add new file for ICHEAP9
heatSolid::gs
fix co2 capture
stoich_ratio; set Thot using assignment; set metal makeup to keep air reactor temperature;
optional sensitivity
default number of streams for multihx set to 2; use {hot/cold}{in/out} synomyms for multihx
ports if
nStreams==2
add metal makeup/purge to avoid singularity
lower multiReaction diagnostic; estimate maxduty in hx also for Thot and Tcold specifications
conversion is a flowsheet<vertex<2,2>>; add clc preliminary implementation
nhexadecane, Fe2O3, improved Fe properties
bkk_group, heatSolid_bkk, solidComponent: constructors based on seven parameter set
Qco2capture target
C16H34; deltah; fixed LHV
stream_VLS::estimateNow; stream_VLSe_ideal::estimateNow; stream_VLS_ideal complete with stream_VLS_ideal::estimateNow
Qco2capture
added UOM for mass per unit work: kg/J
instantiate flowsheet<vertex<3,1>> and flowsheet<vertex<2,1>>
instantiate vertex<3,1>
fix compilation on UNIX
save id d synthax; create transitive closure also when saving;
getusername and update getGID
do not set input=true for coeff / coeffv variables in reactions / multiReactions
test with mysql on Debian Lenny
support mysql 5.0
bypass modelBaseInterface::readtables if CID < 0
stadio and attacco types
instantiate flowsheet <vertex<3,3> >
move instantiation of required templates to end of file; instantiate vertex<3,3>
ported to gcc 4.3.2 and postgresql 8.3 on Debian Lenny
column with liquid-only top-bottom streams and vapor-only bottom-top streams
multistage<T,U,V> allows using different stream type in top-bottom and in bottopm-top connections
silenced NLEauto::test
NRTL1::resizeArrays, NRTL2::resizeArrays; fix stream_VLe_ac::calculate_residuals memory access error; increase assertions in
NRTL1::setA, NRTL1::setB, NRTL2::setTABCD, NRTL2::setAAB
fixed Qethanol convergence; removed column1
flowsheetBase::smiter_precalc and maxit
define tag name for new flowsheet
fix connection of sp to sink in flowsheetBase::addcut
converge column using proper damping in directstep
assignement::directstep(double damping); sequentialassembly::damping_, set_damping and damping; modified sequentialassembly::directstep to use damping; removed boost/lambda stuff
exception trapping in CATALOG::find
recursively restore cut streams for flowsheets-in-flowsheets in flowsheetBase::restorecuts
rearrange sequential and simultaneous computation based on flowsheet::supports_simultaneous
column1
fix flowsheet::calculate to accurately set error and warning for mass flow imbalance
fix dummy::calculate ti calculate mdot* and duty only for non-cut streams
avoid assert in flash::computealfaminmax
edgeBase::cutdest
ijhe<mcfcd3s> and ijhe<mcfc>
phase fraction fix in genflash::calculate
instantiate repeat_unit<mcfcd3s>
moved id_ setting in persistent_item_interface to avoid parent NNN not
present in catalogRAM
fixed multistage<T,U>::streamname; debugging Qethanol
recorder revamp
flowsheet::seqErr
List of changes for the user interface
fix macro name
fix hierarchy for Qethanol
setNumericalPrecisionPolicy as QSql::LowPrecisionDouble to try and fix bug in Vista; fix bug on MYSQL that did not display correctly truncated completetags
use MySQL
fix MainWindow::kernel_path to default for a local types.txt if no setting can be retrieved from QSetting
make SvgNativeView::SvgNativeView more resilient when the svg file name has missing extension
fix UTF-16 caharacter dsicplay in About window
increment release
use ODBC driver
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
fix UTF-16 conversion for osx
MainWindow::home_path, kernel_path and kernel_name; changed save_ and purge_ from QProcess::execute to start
fix home and kernel paths
cast wchar_t literal to please gcc/darwin compiler
fix stripping and include the current root objects’ items when child_==true
update osx icon
renamed retention to persistency; added default home_path and kernel_path for osx
fix trim synthax
open retention.db from home_path
fix unicode string and update translations
fix sqlite database name
SQLITE
make stream icon transparent; MainWindow::ignoreReturnCode and fix behaviour when returning from failed kernel; quoting in MainWindow::save
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
update for 2009 and trolltech copyright change
use named connection to QSqlDatabase
get rid of “QSqlDatabasePrivate::removeDatabase: connection ‘qt_sql_default_connection’ is still in use, all queries will cease to work”; add
username and password for X11
verify flawless compile against Qt 4.5 and update comments and minor stuff in consequence
fix tablew_output filter
update translations and enable japanese
Arabic, Korean and Chinese translations
fix gcc warnings for deprecated conversion from string constant to ‘char*
stream_VLS_ideal
added 14 icons; updated revision; credit to Language Icon and to Tango-icon-theme; Settings->languages SubMenu; updated all translations
included Hebrew translation by Aviv By; updated all other translations
setLayoutDirection to right-to-left for he and ar
support L command; support floating-point coordinates; support space after M, C or L command
fix optional diagnostic prints in hierarchy::hierarchy and add vertex<3,1>, flowsheet<vertex<3,1>> and
flowsheet<vertex<2,1>>
filter in MainWindow::updateLog
improve error messages and add vertex<3,3>, flowsheet<vertex<3,3>>
translations updated
fix SQL error in EditableIntSqlModel::go
pop up “Enter new description” input box when saving
add save as command; add command confimation before purge all; fix setEnabled/setDiasbled for certain commands
use DoubleEditDelegate in Q table
remove obsolete Delegate class
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
update de, fr, pt, it translations
included russian translation by Anastasya Vlasova
improve on message “Failure to start doods”; update translations
increase diagnostic messages; partial port to mysql on debian lenny
show a message in status bar after a new node has been openedd in treew
add es, ru, ar, he, ko, jp, zh empty translation files
ported to postgresql 8.3 on Debian Lenny; fix multistage type
update types
use default context menu in lower messages pane
fix compilation on Linux; fix About LIBPF UI message