3.3.0
-
BNS Z-factor / critical-property coupling: When either
zmethodorcmethodisBNS, both are now forced toBNSfor thermodynamic consistency with aUserWarningnaming the overruled counterpart.h2 > 0continues to auto-select BNS silently. Non-BNS methods (e.g.DAK+SUT) remain freely mixable. Implemented via a single_resolve_methodshelper applied at all gas public entry points plusGasPVT.__init__. -
User-supplied
tc/pchonored across every method (including BNS). Semantics:SUT/PMC: supplied values replace the mixture pseudo-critical Tc/Pc.BNS: supplied values replace only the inert-free hydrocarbon pseudo-component Tc/Pc. Inert Tc/Pc (CO2, H2S, N2, H2) remain at BNS internal constants, and the BNS 5-component PR-EOS mixes them with the user-supplied HC Tc/Pc.
This is reflected in
gas_tc_pc,gas_z,gas_ug,gas_cg,gas_bg,gas_den,gas_dmp,gas_ponz2p,gas_grad2sg, andGasPVT(newtc=0, pc=0kwargs on the class constructor). -
Rust parity for user Tc/Pc: The Rust batch paths (
dak_zfactor_batch,hy_zfactor_batch,bns_zfactor_batch,gas_ug_lbc/gas_ug_lbc_batch,gas_dmp_rust,gas_ponz2p_rust) now accept optionaltc_user/pc_userparameters and apply the same override semantics as Python. Removes the previous Python fallback for BNS+user-Tc/Pc; Rust path is now always exercised. -
716 validation tests (up from 701 in 3.2.0). New coverage for BNS coupling warnings,
GasPVTuser Tc/Pc, and Rust-vs-Python parity for user Tc/Pc.