@@ -1282,7 +1282,7 @@ class ReactionSet:
12821282 __call__ = Reaction .__call__
12831283 conversion = Reaction .conversion
12841284
1285- def __init__ (self , reactions ):
1285+ def __init__ (self , reactions , basis = None ):
12861286 if not reactions : raise ValueError ('no reactions passed' )
12871287 phases_set = set ([i .phases for i in reactions ])
12881288 if len (phases_set ) > 1 :
@@ -1291,9 +1291,15 @@ def __init__(self, reactions):
12911291 try : chemicals , = {i .chemicals for i in reactions }
12921292 except : raise ValueError ('all reactions must have the same chemicals' )
12931293 self ._chemicals = chemicals
1294- basis = {i ._basis for i in reactions }
1295- try : self ._basis , = basis
1296- except : raise ValueError ('all reactions must have the same basis' )
1294+ if basis is None :
1295+ basis = {i ._basis for i in reactions }
1296+ try : self ._basis , = basis
1297+ except : raise ValueError ('all reactions must have the same basis' )
1298+ elif basis in ('mol' , 'wt' ):
1299+ self ._basis = basis
1300+ for i in reactions : i .basis = basis
1301+ else :
1302+ raise ValueError (f"basis must be either 'mol' or 'wt', not { basis !r} " )
12971303 self ._stoichiometry = [i ._stoichiometry for i in reactions ]
12981304 self ._X = np .array ([i .X for i in reactions ])
12991305 self ._rate = [i .rate for i in reactions ]
@@ -1785,8 +1791,15 @@ def __init__(self, *reactions, basis=None):
17851791 try : chemicals , = set ([i .chemicals for i in reactions ])
17861792 except : raise ValueError ('all reactions must have the same chemicals' )
17871793 self ._chemicals = chemicals
1788- try : self ._basis , = set ([i ._basis for i in reactions ])
1789- except : raise ValueError ('all reactions must have the same basis' )
1794+ if basis is None :
1795+ basis = {i ._basis for i in reactions }
1796+ try : self ._basis , = basis
1797+ except : raise ValueError ('all reactions must have the same basis' )
1798+ elif basis in ('mol' , 'wt' ):
1799+ self ._basis = basis
1800+ for i in reactions : i .basis = basis
1801+ else :
1802+ raise ValueError (f"basis must be either 'mol' or 'wt', not { basis !r} " )
17901803
17911804 force_reaction = Reaction .force_reaction
17921805 adiabatic_reaction = Reaction .adiabatic_reaction
0 commit comments