Skip to content
Snippets Groups Projects
test_pure_multifluid.py 1.82 KiB
Newer Older
  • Learn to ignore specific revisions
  • import glob, os, json
    import numpy as np
    
    import CoolProp.CoolProp as CP 
    CP.set_config_string(CP.ALTERNATIVE_REFPROP_PATH, r'C:\Users\ihb\Code\REFPROP-cmake\bld\Release')
    import teqp
    
    root = teqp.get_datapath()
    for jname in glob.glob(root+'/dev/fluids/*.json'):
        name = os.path.split(jname)[1].split('.')[0]
        try:
            model = teqp.build_multifluid_model([name], root, root+'/dev/mixtures/mixture_binary_pairs.json',{'estimate':'linear'})
            Tc = model.get_Tcvec()[0]
            rhoc = 1/model.get_vcvec()[0]
            z = np.array([1.0])
            # print(Tc, rhoc)
            diff = model.get_Ar00(Tc+10, rhoc, z) - CP.PropsSI('alphar', 'T', Tc+10, 'Dmolar', rhoc, name)
            if abs(diff) > 1e-13:
                print(name, diff, rhoc, Tc+10, model.get_Ar00(Tc+10, rhoc, z), CP.PropsSI('alphar','T',Tc+10, 'Dmolar',rhoc,name))
    
            def get_REFPROP_name(name):
                j = json.load(open(root+f'/dev/fluids/{name}.json'))
                return j['INFO']['REFPROP_NAME']
            RPname = get_REFPROP_name(name)
            TcRP, rhocRP = [CP.PropsSI('REFPROP::'+RPname,k) for k in ['Tcrit','rhomolar_critical']]
            # If EOS is the same according to the DOI:
            if abs(TcRP-Tc) > 1e-10:
                print(name, TcRP, Tc, '!!!!!!!! TC(RP,teqp) !!!!!!')
            if abs(rhocRP-rhoc) > 1e-10:
                print(name, rhocRP, rhoc, '!!!!!!!! RHOC(RP,teqp) !!!!!!')
                continue
            
            if RPname != 'N/A':
                diffRP = model.get_Ar00(Tc+10, rhoc, z) - CP.PropsSI('alphar', 'T', Tc+10, 'Dmolar', rhoc, 'REFPROP::'+RPname)
                if abs(diffRP) > 1e-5:
                    print(TcRP, Tc)
                    print(rhocRP, rhoc)
                    print(name, diffRP, rhoc, Tc+10, model.get_Ar00(Tc+10, rhoc, z), CP.PropsSI('alphar','T',Tc+10, 'Dmolar',rhoc,'REFPROP::'+RPname))
    
        except BaseException as BE:
            print(name, BE)