This commit is contained in:
Ian Bell
2014-08-05 12:59:23 +02:00
42 changed files with 355 additions and 253 deletions

View File

@@ -135,7 +135,7 @@ class IncompressibleData(object):
eqnType=self.type, \
coeffs=self.coeffs, DEBUG=self.DEBUG)
elif self.type==IncompressibleData.INCOMPRESSIBLE_LOGEXPONENTIAL and self.data.size>15:
elif self.type==IncompressibleData.INCOMPRESSIBLE_LOGEXPONENTIAL and self.data.size>10:
if self.DEBUG: print("Poor solution found with log exponential, trying once more with exponential polynomial.")
self.type=IncompressibleData.INCOMPRESSIBLE_EXPPOLYNOMIAL
self.coeffs = np.zeros((4,6))
@@ -206,6 +206,15 @@ class IncompressibleData(object):
j['type'] = self.type
return j
def fromJSON(self, j):
try:
self.coeffs = np.array(j['coeffs'])
self.type = j['type']
except:
self.coeffs = None
self.type = IncompressibleData.INCOMPRESSIBLE_NOT_SET
return
class IncompressibleFitter(object):

View File

@@ -18,7 +18,6 @@ class SolutionData(object):
ifrac_undefined = "not defined"
ifrac_pure = "pure"
__metaclass__ = ABCMeta
def __init__(self):

View File

@@ -222,7 +222,7 @@ class HC50(PureData):
self.density.data = np.array([+1.37800E+3,+1.37300E+3,+1.36700E+3,+1.36200E+3,+1.35600E+3,+1.35100E+3,+1.34500E+3,+1.34000E+3,+1.33400E+3,+1.32800E+3,+1.32300E+3,+1.31700E+3,+1.31200E+3,+1.30600E+3,+1.30100E+3,+1.29500E+3,+1.29000E+3,+1.28400E+3,+1.27900E+3,+1.27300E+3,+1.26700E+3,+1.26200E+3,+1.25600E+3,+1.25100E+3,+1.24500E+3,+1.24000E+3,+1.23400E+3]) # kg/m3
self.specific_heat.data = np.array([+2.56300E+3,+2.58300E+3,+2.60200E+3,+2.62200E+3,+2.64200E+3,+2.66100E+3,+2.68100E+3,+2.70100E+3,+2.72000E+3,+2.74000E+3,+2.76000E+3,+2.78000E+3,+2.79900E+3,+2.81900E+3,+2.83900E+3,+2.85800E+3,+2.87800E+3,+2.89800E+3,+2.91700E+3,+2.93700E+3,+2.95700E+3,+2.97700E+3,+2.99600E+3,+3.01600E+3,+3.03600E+3,+3.05500E+3,+3.07500E+3]) # J/kg-K
self.conductivity.data = np.array([+4.35000E+2,+4.45000E+2,+4.55000E+2,+4.65000E+2,+4.75000E+2,+4.85000E+2,+4.95000E+2,+5.05000E+2,+5.15000E+2,+5.25000E+2,+5.35000E+2,+5.45000E+2,+5.55000E+2,+5.65000E+2,+5.75000E+2,+5.85000E+2,+5.95000E+2,+6.05000E+2,+6.15000E+2,+6.25000E+2,+6.35000E+2,+6.45000E+2,+6.55000E+2,+6.65000E+2,+6.75000E+2,+6.85000E+2,+6.94500E+2])/1e3 # W/m-K
self.viscosity.data = np.array([+3.84000E-2,+2.04000E-2,+1.25000E-2,+8.40000E-3,+5.99000E-3,+4.70000E-3,+3.80000E-3,+3.20000E-3,+2.70000E-3,+2.40000E-3,+2.40000E-3,+1.80000E-3,+1.60000E-3,+1.50000E-3,+1.30000E-3,+1.20000E-3,+1.10000E-3,+1.00000E-3,+9.40000E-4,+8.70000E-4,+8.10000E-4,+7.60000E-4,+7.10000E-4,+6.60000E-4,+6.20000E-4,+5.80000E-4,+5.50000E-4]) # Pa-s
self.viscosity.data = np.array([+3.84000E-2,+2.04000E-2,+1.25000E-2,+8.40000E-3,+5.99000E-3,+4.70000E-3,+3.80000E-3,+3.20000E-3,+2.70000E-3,+2.40000E-3,+2.10000E-3,+1.80000E-3,+1.60000E-3,+1.50000E-3,+1.30000E-3,+1.20000E-3,+1.10000E-3,+1.00000E-3,+9.40000E-4,+8.70000E-4,+8.10000E-4,+7.60000E-4,+7.10000E-4,+6.60000E-4,+6.20000E-4,+5.80000E-4,+5.50000E-4]) # Pa-s
self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,+1.58579E+3,+1.93053E+3,+3.10264E+3,+5.58475E+3,+9.85950E+3,+1.64785E+4,+2.60622E+4,+3.93691E+4,+5.72954E+4,+8.06687E+4,+1.11695E+5,+1.50995E+5,+2.00637E+5,+2.63380E+5,+3.41290E+5,+4.36438E+5,+5.53649E+5,+6.95681E+5,+8.67360E+5,+1.07282E+6]) # Pa
self.Tmin = np.min(self.temperature.data)
self.Tmax = np.max(self.temperature.data)

View File

@@ -47,6 +47,8 @@ class SecCoolSolutionData(DigitalData):
try:
self.density.xData,self.density.yData,self.density.data = self.getArray(dataID="Rho")
while np.max(self.density.data[np.isfinite(self.density.data)])<500: # Expect values around 1e3
self.density.data *= 10.0
self.density.source = self.density.SOURCE_DATA
except:
if self.density.DEBUG: print("Could not load {}".format(self.getFile("Rho")))
@@ -541,7 +543,7 @@ class ThermogenVP1869(PureData,DigitalData):
def funcMu(T,x):
T = T-self.Tbase
return (341.3688975+T*(-0.713408301+0.017723992*T))/ \
(1+T*(0.034502393+T*(0.000401319+1.57288E-06*T)))*1e-2
(1+T*(0.034502393+T*(0.000401319+1.57288E-06*T)))*1e-2*1e-3
self.viscosity.xData,self.viscosity.yData,self.viscosity.data = self.getArray(dataID=key,func=funcMu,x_in=self.temperature.data,y_in=self.concentration.data)

View File

@@ -9,6 +9,7 @@ from CPIncomp.BaseObjects import IncompressibleData, IncompressibleFitter
from matplotlib.patches import Rectangle
from matplotlib.ticker import MaxNLocator
from matplotlib.backends.backend_pdf import PdfPages
import itertools
class SolutionDataWriter(object):
"""
@@ -225,7 +226,42 @@ class SolutionDataWriter(object):
if not quiet: print(" ({0})".format("w"), end="")
else:
if not quiet: print(" ({0})".format("i"), end="")
def fromJSON(self,data=SolutionData()):
path = os.path.join("json",data.name+'.json')
with open(path) as json_file:
jobj = json.load(json_file)
data.name = jobj['name'] # Name of the current fluid
data.description = jobj['description'] # Description of the current fluid
data.reference = jobj['reference'] # Reference data for the current fluid
data.Tmax = jobj['Tmax'] # Maximum temperature in K
data.Tmin = jobj['Tmin'] # Minimum temperature in K
data.xmax = jobj['xmax'] # Maximum concentration
data.xmin = jobj['xmin'] # Minimum concentration
data.xid = jobj['xid'] # Concentration is mole, mass or volume-based
data.TminPsat = jobj['TminPsat'] # Minimum saturation temperature in K
data.Tbase = jobj['Tbase'] # Base value for temperature fits
data.xbase = jobj['xbase'] # Base value for concentration fits
#data.temperature # Temperature for data points in K
#data.concentration # Concentration data points in weight fraction
data.density.fromJSON(jobj['density']) # Density in kg/m3
data.specific_heat.fromJSON(jobj['specific_heat']) # Heat capacity in J/(kg.K)
data.viscosity.fromJSON(jobj['viscosity']) # Dynamic viscosity in Pa.s
data.conductivity.fromJSON(jobj['conductivity']) # Thermal conductivity in W/(m.K)
data.saturation_pressure.fromJSON(jobj['saturation_pressure']) # Saturation pressure in Pa
data.T_freeze.fromJSON(jobj['T_freeze']) # Freezing temperature in K
data.mass2input.fromJSON(jobj['mass2input']) # dd
data.volume2input.fromJSON(jobj['volume2input']) # dd
data.mole2input.fromJSON(jobj['mole2input']) # dd
return data
def printStatusID(self, fluidObjs, obj):
#obj = fluidObjs[num]
@@ -255,6 +291,21 @@ class SolutionDataWriter(object):
return
def readFluidList(self, fluidObjs):
print("Reading fluids:", end="")
for obj in fluidObjs:
self.printStatusID(fluidObjs, obj)
try:
self.fromJSON(obj)
except (TypeError, ValueError) as e:
print("An error occurred for fluid: {0}".format(obj.name))
print(obj)
print(e)
pass
print(" ... done")
return
def fitSecCoolList(self, fluidObjs):
print("Fitting SecCool fluids:", end="")
for obj in fluidObjs:
@@ -899,46 +950,66 @@ class SolutionDataWriter(object):
obj = SolutionData()
for i in range(len(solutions)-1):
obj = solutions[i]
T = np.linspace(obj.Tmin, obj.Tmax, num=int(obj.Tmax-obj.Tmin))
T = np.arange(np.max([275,np.round(obj.Tmin)]), np.min([300,np.round(obj.Tmax)]), 1)
P = 100e5
x = obj.xmin
dataDict["name"] = obj.name
dataDict["desc"] = obj.description
dataDict["T"] = T
dataDict["P"] = P
dataDict["x"] = x
if obj.density.type!=IncompressibleData.INCOMPRESSIBLE_NOT_SET:
dataDict["D"] = [obj.rho(Ti, P, x) for Ti in T]
dataDict["D"] = np.array([obj.rho(Ti, P, x) for Ti in T])
else: dataDict["D"] = None
if obj.specific_heat.type!=IncompressibleData.INCOMPRESSIBLE_NOT_SET:
dataDict["C"] = [obj.c(Ti, P, x) for Ti in T]
dataDict["C"] = np.array([obj.c(Ti, P, x) for Ti in T])
else: dataDict["C"] = None
if obj.conductivity.type!=IncompressibleData.INCOMPRESSIBLE_NOT_SET:
dataDict["L"] = [obj.cond(Ti, P, x) for Ti in T]
dataDict["L"] = np.array([obj.cond(Ti, P, x) for Ti in T])
else: dataDict["L"] = None
if obj.viscosity.type!=IncompressibleData.INCOMPRESSIBLE_NOT_SET:
dataDict["V"] = [obj.visc(Ti, P, x) for Ti in T]
dataDict["V"] = np.array([obj.visc(Ti, P, x) for Ti in T])
else: dataDict["V"] = None
dataList.append(dataDict.copy())
fig = plt.figure()
ax = fig.add_subplot(131)
rat = np.array([5.5,3.05])
mul = 2.25
#fig = plt.figure(figsize=(297/div,210/div))
fig = plt.figure(figsize=rat*mul)
ax = fig.add_subplot(121)
ax.set_xlabel(r'Temperature [$\mathdefault{K}$]')
ax.set_ylabel(r'Density [$\mathdefault{kg/m^3\!}$]')
fig.suptitle(r'Aqueous solutions with a concentration of 0.0',fontsize='x-large',fontweight='bold')
#obj = water
#T = np.linspace(obj.Tmin, obj.Tmax, num=int(obj.Tmax-obj.Tmin))
#D =
#D =
#import matplotlib.pyplot as plt
#from itertools import cycle
lines = ["-","--","-.", ":"]
colours = ['r', 'g', 'b', 'c', 'm']
linecycler = itertools.cycle(lines)
colourcycler = itertools.cycle(colours)
for i in range(len(dataList)-1):
obj = dataList[i]
if obj["T"]!=None and obj["D"]!=None:
if np.all(np.isfinite(obj["D"])):
ax.plot(obj["T"],obj["D"],label=obj["name"])
if np.min(obj["D"])<500 or not np.all(np.isfinite(obj["D"])):
print("Name: {0}, Dmin: {1}, Dmax: {1}".format(obj["name"],np.min(obj["D"]),np.max(obj["D"])))
if obj["x"]==0.0 and np.any(np.isfinite(obj["D"])) and obj["name"]!="NBS":
lc = next(colourcycler)
if lc==colours[0]: ls = next(linecycler)
ax.plot(obj["T"],obj["D"],label="{0}: {1}".format(obj["name"],obj["desc"]),ls=ls,color=lc)
#if not np.any(np.isfinite(obj["D"])):
# print("Name: {0}, Dmin: {1}, Dmax: {1}".format(obj["name"],np.min(obj["D"]),np.max(obj["D"])))
ax.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., ncol=3)
plt.tight_layout()
plt.savefig("aaa_fitreport.pdf")
obj = (item for item in dataList if item["name"] == "NBS").next()
ax.plot(obj["T"],obj["D"],label="{0}: {1}".format(obj["name"],obj["desc"]),ls='-',color='black')
ax.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., ncol=1)#, prop={'size':'smaller'})
plt.tight_layout(rect=(0, 0, 1, 0.95))
plt.savefig("all_solutions_00.pdf")

View File

@@ -8,20 +8,11 @@ from CPIncomp.DataObjects import SolutionData
if __name__ == '__main__':
runTest = False
runExamples = False
runCoeffs = True #Processing fluids with given coefficients
runDigital = True #Processing digital fluids
runMelinder = True #Processing Melinder fluids
runPure = True #Processing pure fluids
runSecCool = True #Processing SecCool fluids
runReports = False
runTest = False
runFitting = True
runReports = True
runSummary = True
writer = SolutionDataWriter()
doneObjs = []
@@ -51,49 +42,47 @@ if __name__ == '__main__':
sys.exit(0)
# treat the examples first
if runExamples:
fluidObjs = getExampleNames(obj=True)
examplesToFit = ["ExamplePure","ExampleSolution","ExampleDigital","ExampleDigitalPure"]
print("\nProcessing example fluids")
for obj in fluidObjs:
if obj.name in examplesToFit:
writer.fitAll(obj)
doneObjs += fluidObjs[:]
writer.writeFluidList(doneObjs)
writer.writeReportList(doneObjs, pdfFile="all_examples.pdf")
fluidObjs = getExampleNames(obj=True)
examplesToFit = ["ExamplePure","ExampleSolution","ExampleDigital","ExampleDigitalPure"]
print("\nProcessing example fluids")
for obj in fluidObjs:
if obj.name in examplesToFit:
if runFitting: writer.fitAll(obj)
else: writer.fromJSON(obj)
doneObjs += fluidObjs[:]
if runFitting: writer.writeFluidList(doneObjs)
if runReports: writer.writeReportList(doneObjs, pdfFile="all_examples.pdf")
# If the examples did not cause any errors,
# we can proceed to the real data.
doneObjs = []
if runCoeffs:
print("\nProcessing fluids with given coefficients")
fluidObjs = getCoefficientFluids()
doneObjs += fluidObjs[:]
print("\nProcessing fluids with given coefficients")
fluidObjs = getCoefficientFluids()
doneObjs += fluidObjs[:]
print("\nProcessing digital fluids")
fluidObjs = getDigitalFluids()
if runFitting: writer.fitFluidList(fluidObjs)
else: writer.readFluidList(fluidObjs)
doneObjs += fluidObjs[:]
if runDigital:
print("\nProcessing digital fluids")
fluidObjs = getDigitalFluids()
writer.fitFluidList(fluidObjs)
doneObjs += fluidObjs[:]
print("\nProcessing Melinder fluids")
fluidObjs = getMelinderFluids()
doneObjs += fluidObjs[:]
if runMelinder:
print("\nProcessing Melinder fluids")
fluidObjs = getMelinderFluids()
doneObjs += fluidObjs[:]
if runPure:
print("\nProcessing pure fluids")
fluidObjs = getPureFluids()
writer.fitFluidList(fluidObjs)
doneObjs += fluidObjs[:]
if runSecCool:
print("\nProcessing SecCool fluids")
fluidObjs = getSecCoolFluids()
writer.fitSecCoolList(fluidObjs)
doneObjs += fluidObjs[:]
print("\nProcessing pure fluids")
fluidObjs = getPureFluids()
if runFitting: writer.fitFluidList(fluidObjs)
else: writer.readFluidList(fluidObjs)
doneObjs += fluidObjs[:]
print("\nProcessing SecCool fluids")
fluidObjs = getSecCoolFluids()
if runFitting: writer.fitSecCoolList(fluidObjs)
else: writer.readFluidList(fluidObjs)
doneObjs += fluidObjs[:]
print("\nAll {0} fluids processed, all coefficients should be set.".format(len(doneObjs)))
print("Checking the list of fluid objects.")
@@ -124,23 +113,25 @@ if __name__ == '__main__':
solutions += solMole
solutions += solVolu
print("All checks passed, going to write parameters to disk.")
writer.writeFluidList(doneObjs)
if runFitting: print("All checks passed, going to write parameters to disk.")
if runFitting: writer.writeFluidList(doneObjs)
print("Creating the fitting reports for the different groups.")
#writer.writeReportList(doneObjs)
#doneObjs.sort(key=lambda x: (x.xid ,x.name))
if len(purefluids)>0 and runReports:
print("Processing {0:2d} pure fluids - ".format(len(purefluids)), end="")
writer.writeReportList(purefluids, pdfFile="all_pure.pdf")
if len(solutions)>0 and runReports:
print("Processing {0:2d} solutions - ".format(len(solutions)), end="")
writer.writeReportList(solutions, pdfFile="all_solutions.pdf")
if len(errors)>0 and runReports:
print("Processing {0:2d} faulty fluids - ".format(len(errors)), end="")
writer.writeReportList(errors, pdfFile="all_errors.pdf")
writer.makeSolutionPlots(solObjs=doneObjs, pdfObj=None)
if runReports:
print("Creating the fitting reports for the different groups.")
#writer.writeReportList(doneObjs)
#doneObjs.sort(key=lambda x: (x.xid ,x.name))
if len(purefluids)>0 and runReports:
print("Processing {0:2d} pure fluids - ".format(len(purefluids)), end="")
writer.writeReportList(purefluids, pdfFile="all_pure.pdf")
if len(solutions)>0 and runReports:
print("Processing {0:2d} solutions - ".format(len(solutions)), end="")
writer.writeReportList(solutions, pdfFile="all_solutions.pdf")
if len(errors)>0 and runReports:
print("Processing {0:2d} faulty fluids - ".format(len(errors)), end="")
writer.writeReportList(errors, pdfFile="all_errors.pdf")
if runSummary:
writer.makeSolutionPlots(solObjs=doneObjs, pdfObj=None)
print("All done, bye")
sys.exit(0)

View File

@@ -31,14 +31,14 @@
-2.05650e-02,
1.69677e-02,
-3.19138e-03,
-2.37207e-04,
-2.37210e-04,
0.00000e+00
],
[
-1.55366e-05,
4.32520e-05,
-4.12766e-05,
5.71603e-06,
5.71602e-06,
0.00000e+00,
0.00000e+00
],

View File

@@ -44,7 +44,7 @@
],
[
1.05993e-08,
-5.24400e-08,
-5.24401e-08,
4.48548e-08,
0.00000e+00,
0.00000e+00,
@@ -178,12 +178,12 @@
"viscosity": {
"coeffs": [
[
7.00453e+02,
7.00454e+02,
-1.44442e+03,
1.02237e+03,
-9.43571e+01,
-5.95168e-01,
2.50130e+00
-9.43573e+01,
-5.95050e-01,
2.50127e+00
],
[
-7.17199e+00,

View File

@@ -24,7 +24,7 @@
2.28871e-01,
1.79714e-01,
-5.42576e-01,
4.48293e-01
4.48292e-01
],
[
4.40465e-03,

View File

@@ -122,10 +122,10 @@
-4.27376e+03,
4.76666e+03,
-6.64688e+03,
4.05414e+03
4.05415e+03
],
[
2.72781e+00,
2.72780e+00,
-4.92231e+00,
1.65952e+01,
-2.90282e+00,

View File

@@ -160,9 +160,9 @@
0.00000e+00
],
[
-1.54882e-10,
8.61522e-10,
-8.06740e-11,
-1.54877e-10,
8.61521e-10,
-8.06703e-11,
0.00000e+00,
0.00000e+00,
0.00000e+00

View File

@@ -86,7 +86,7 @@
0.00000e+00
],
[
-6.37964e-08,
-6.37961e-08,
3.36386e-07,
-3.13240e-07,
0.00000e+00,
@@ -102,7 +102,7 @@
7.51658e-01,
-1.15578e+00,
5.49559e+00,
-1.39768e-01,
-1.39769e-01,
-1.45228e-02,
2.71628e-02
],
@@ -125,7 +125,7 @@
[
-2.05840e-06,
-3.34886e-10,
5.46778e-10,
5.46779e-10,
0.00000e+00,
0.00000e+00,
0.00000e+00

View File

@@ -1,11 +1,16 @@
{
"T_freeze": {
"coeffs": [
9.31072e+05,
6.00000e+04,
1.00000e+01
[
5.59944e+00,
1.15376e-01,
-1.33957e+00,
1.48654e+00,
-2.47505e-01,
-1.04259e+00
]
],
"type": "exponential"
"type": "exppolynomial"
},
"Tbase": 0.00000e+00,
"Tmax": 3.73150e+02,
@@ -51,33 +56,33 @@
"density": {
"coeffs": [
[
9.62600e-01,
4.69183e-01,
-2.89241e-01,
9.37918e-02,
4.97235e-02,
-4.30065e-02
9.62600e+02,
4.69183e+02,
-2.89241e+02,
9.37918e+01,
4.97235e+01,
-4.30065e+01
],
[
5.94312e-04,
-1.78084e-03,
2.11921e-03,
-8.37303e-04,
1.46494e-04,
5.94312e-01,
-1.78084e+00,
2.11921e+00,
-8.37303e-01,
1.46494e-01,
0.00000e+00
],
[
-1.81985e-06,
3.56789e-06,
-5.06776e-06,
9.18461e-07,
-1.81985e-03,
3.56789e-03,
-5.06776e-03,
9.18461e-04,
0.00000e+00,
0.00000e+00
],
[
5.26325e-10,
-3.25728e-09,
4.11111e-09,
5.26325e-07,
-3.25728e-06,
4.11111e-06,
0.00000e+00,
0.00000e+00,
0.00000e+00

View File

@@ -16,7 +16,7 @@
1.00000e-03
],
[
-6.78329e-17
-6.77772e-17
],
[
2.18323e-19

View File

@@ -16,10 +16,10 @@
1.00000e-03
],
[
7.79030e-17
7.81505e-17
],
[
-1.17632e-19
-1.17314e-19
]
],
"type": "polynomial"

View File

@@ -16,7 +16,7 @@
1.00000e-03
],
[
4.87934e-17
4.87999e-17
],
[
5.67512e-20

View File

@@ -88,9 +88,9 @@
},
"viscosity": {
"coeffs": [
5.14749e+02,
-1.29914e+02,
8.88049e+00
5.01109e+02,
-1.32036e+02,
8.84878e+00
],
"type": "exponential"
},

View File

@@ -33,10 +33,10 @@
-2.26900e+00
],
[
-1.21260e-13
-1.20326e-13
],
[
-1.32490e-16
-1.30755e-16
]
],
"type": "polynomial"
@@ -65,10 +65,10 @@
2.00000e+00
],
[
1.10319e-13
1.09508e-13
],
[
-1.60896e-16
-1.62413e-16
]
],
"type": "polynomial"

View File

@@ -100,7 +100,7 @@
"coeffs": [
[
-3.54921e+01,
3.26061e+00,
3.26060e+00,
3.19011e+01,
-1.15046e+02,
9.40303e+00,
@@ -138,7 +138,7 @@
[
4.22983e+03,
-3.64634e+04,
1.76228e+04,
1.76229e+04,
2.42825e+04,
-2.07250e+04,
2.48631e+03
@@ -152,7 +152,7 @@
0.00000e+00
],
[
-1.96407e-02,
-1.96406e-02,
-5.90314e-01,
5.05558e-01,
-8.65014e-03,
@@ -160,7 +160,7 @@
0.00000e+00
],
[
3.07401e-05,
3.07400e-05,
4.64486e-04,
-4.12860e-04,
0.00000e+00,

View File

@@ -105,7 +105,7 @@
1.74748e+02,
-1.14489e+03,
4.15375e+02,
3.34857e+01,
3.34858e+01,
0.00000e+00
],
[

View File

@@ -1,11 +1,16 @@
{
"T_freeze": {
"coeffs": [
9.30689e+05,
6.00000e+04,
1.00000e+01
[
5.56095e+00,
8.16380e-01,
-6.55070e+00,
1.73553e+01,
-2.21351e+01,
1.10301e+01
]
],
"type": "exponential"
"type": "exppolynomial"
},
"Tbase": 0.00000e+00,
"Tmax": 2.93150e+02,
@@ -103,7 +108,7 @@
"specific_heat": {
"coeffs": [
[
1.22287e+04,
1.22286e+04,
-3.63360e+04,
1.78304e+04,
6.41904e+04,
@@ -145,7 +150,7 @@
3.60426e+03,
-5.06705e+02,
-3.74861e+02,
7.65393e+01
7.65394e+01
],
[
-6.96074e+00,

View File

@@ -1,11 +1,16 @@
{
"T_freeze": {
"coeffs": [
9.32290e+05,
6.00000e+04,
1.00000e+01
[
5.60998e+00,
-1.22633e-01,
1.05204e-01,
-1.44237e+00,
1.73768e+00,
-1.11070e+00
]
],
"type": "exponential"
"type": "exppolynomial"
},
"Tbase": 0.00000e+00,
"Tmax": 3.13150e+02,

View File

@@ -14,7 +14,7 @@
"conductivity": {
"coeffs": [
[
1.29553e+00,
1.29554e+00,
-3.65621e+00,
-2.99390e+01,
1.04361e+02,

View File

@@ -145,7 +145,7 @@
-1.12181e+03,
5.77004e+02,
-4.96611e+02,
-2.37200e+01
-2.37199e+01
],
[
1.10764e+00,

View File

@@ -26,7 +26,7 @@
-3.80584e-02,
6.59606e-02,
2.60230e-01,
4.49434e-03,
4.49436e-03,
0.00000e+00
],
[
@@ -38,9 +38,9 @@
0.00000e+00
],
[
-2.98398e-14,
-8.34761e-14,
1.25274e-12,
-2.82734e-14,
-9.01057e-14,
1.26312e-12,
0.00000e+00,
0.00000e+00,
0.00000e+00
@@ -75,9 +75,9 @@
0.00000e+00
],
[
2.47828e-11,
-3.54499e-10,
7.96772e-10,
2.47522e-11,
-3.57297e-10,
7.77812e-10,
0.00000e+00,
0.00000e+00,
0.00000e+00
@@ -127,9 +127,9 @@
0.00000e+00
],
[
5.11662e-11,
-7.28337e-10,
2.14620e-09,
1.37632e-11,
-7.72011e-10,
2.53279e-09,
0.00000e+00,
0.00000e+00,
0.00000e+00

View File

@@ -18,7 +18,7 @@
2.90940e+00,
1.45467e-01,
-3.14619e-01,
2.01052e-05,
2.01051e-05,
-1.97597e-05
],
[
@@ -38,9 +38,9 @@
0.00000e+00
],
[
5.99295e-14,
-1.17116e-12,
3.54494e-12,
5.96613e-14,
-1.17122e-12,
3.54490e-12,
0.00000e+00,
0.00000e+00,
0.00000e+00
@@ -75,9 +75,9 @@
0.00000e+00
],
[
2.43177e-11,
-4.37888e-10,
2.07890e-09,
2.43311e-11,
-4.37624e-10,
2.07903e-09,
0.00000e+00,
0.00000e+00,
0.00000e+00
@@ -121,15 +121,15 @@
[
1.78429e-02,
-1.46701e-01,
4.96899e-06,
4.96898e-06,
-1.28451e-06,
0.00000e+00,
0.00000e+00
],
[
-8.19096e-11,
1.51782e-09,
-5.25291e-09,
-7.93623e-11,
1.51253e-09,
-5.25184e-09,
0.00000e+00,
0.00000e+00,
0.00000e+00

View File

@@ -105,7 +105,7 @@
[
2.29341e+04,
-4.91756e+04,
8.85492e+02,
8.85490e+02,
-3.87512e+04,
2.02195e+05,
-1.06800e+05

View File

@@ -1,11 +1,16 @@
{
"T_freeze": {
"coeffs": [
9.29147e+05,
6.00000e+04,
1.00000e+01
[
5.54689e+00,
4.30079e-01,
-1.79623e+00,
2.79641e+00,
-2.35726e+00,
7.33131e-01
]
],
"type": "exponential"
"type": "exppolynomial"
},
"Tbase": 0.00000e+00,
"Tmax": 3.73150e+02,
@@ -19,7 +24,7 @@
-6.30167e-01,
2.71713e-01,
-5.64215e-02,
8.61241e-04
8.61237e-04
],
[
3.37272e-03,
@@ -51,33 +56,33 @@
"density": {
"coeffs": [
[
7.54840e-01,
6.86566e-01,
4.16443e-02,
-1.02860e-01,
-2.69147e-02,
2.26570e-02
7.54840e+02,
6.86566e+02,
4.16443e+01,
-1.02860e+02,
-2.69147e+01,
2.26570e+01
],
[
1.99937e-03,
-2.39470e-03,
-2.23350e-04,
7.10379e-04,
-1.45188e-04,
1.99937e+00,
-2.39470e+00,
-2.23350e-01,
7.10379e-01,
-1.45188e-01,
0.00000e+00
],
[
-4.20327e-06,
4.49737e-06,
-6.18183e-07,
-4.94898e-07,
-4.20327e-03,
4.49737e-03,
-6.18183e-04,
-4.94898e-04,
0.00000e+00,
0.00000e+00
],
[
7.58460e-10,
-1.68189e-09,
8.92799e-10,
7.58460e-07,
-1.68189e-06,
8.92799e-07,
0.00000e+00,
0.00000e+00,
0.00000e+00
@@ -154,7 +159,7 @@
1.07757e+02,
-2.23288e+01,
-1.99317e+00,
7.49474e-02
7.49477e-02
],
[
-4.95226e-01,

View File

@@ -1,11 +1,16 @@
{
"T_freeze": {
"coeffs": [
9.31911e+05,
6.00000e+04,
1.00000e+01
[
5.60304e+00,
5.18829e-02,
-4.53505e-01,
-1.13197e+00,
2.78317e+00,
-2.24904e+00
]
],
"type": "exponential"
"type": "exppolynomial"
},
"Tbase": 0.00000e+00,
"Tmax": 3.73150e+02,
@@ -51,33 +56,33 @@
"density": {
"coeffs": [
[
9.80110e-01,
5.31415e-01,
-4.36985e-01,
4.30880e-01,
-6.53105e-02,
-5.16450e-02
9.80110e+02,
5.31415e+02,
-4.36985e+02,
4.30880e+02,
-6.53105e+01,
-5.16450e+01
],
[
2.58676e-04,
-1.50450e-03,
1.91706e-03,
-2.45889e-03,
5.16302e-04,
2.58676e-01,
-1.50450e+00,
1.91706e+00,
-2.45889e+00,
5.16302e-01,
0.00000e+00
],
[
-7.38465e-07,
3.95225e-07,
-1.57506e-06,
2.73055e-06,
-7.38465e-04,
3.95225e-04,
-1.57506e-03,
2.73055e-03,
0.00000e+00,
0.00000e+00
],
[
-8.85189e-11,
8.43568e-10,
-1.84811e-09,
-8.85190e-08,
8.43568e-07,
-1.84811e-06,
0.00000e+00,
0.00000e+00,
0.00000e+00

View File

@@ -16,10 +16,10 @@
7.00000e-04
],
[
6.72164e-17
1.42863e-16
],
[
5.56395e-20
-1.38966e-19
]
],
"type": "polynomial"
@@ -33,10 +33,10 @@
-4.00000e-01
],
[
-5.70531e-14
-4.61354e-14
],
[
5.10117e-17
1.48536e-17
]
],
"type": "polynomial"

View File

@@ -33,10 +33,10 @@
-4.00000e-01
],
[
-4.65643e-15
-5.46988e-15
],
[
-4.03865e-18
-5.50233e-18
]
],
"type": "polynomial"

View File

@@ -33,10 +33,10 @@
-4.00000e-01
],
[
3.92206e-14
3.92711e-14
],
[
-7.72494e-17
-7.71681e-17
]
],
"type": "polynomial"

View File

@@ -115,7 +115,7 @@
7.31900e+03,
-1.45645e+04,
4.47794e+03,
6.62966e+02,
6.62967e+02,
0.00000e+00
],
[

View File

@@ -17,8 +17,8 @@
4.33897e+01,
-3.50687e+02,
7.06949e+02,
-3.87778e+02,
-1.45958e+02
-3.87779e+02,
-1.45957e+02
],
[
-4.03161e-01,

View File

@@ -54,7 +54,7 @@
4.50620e+04,
-4.28575e+05,
1.37701e+06,
-1.95340e+06,
-1.95341e+06,
3.11447e+06,
-2.97147e+06
],
@@ -105,17 +105,17 @@
[
-1.68447e+05,
2.28857e+06,
-8.34323e+06,
-8.34324e+06,
9.37013e+06,
-9.62406e+06,
9.40115e+06
-9.62408e+06,
9.40116e+06
],
[
1.76652e+03,
-2.26590e+04,
7.39280e+04,
-4.61620e+04,
8.48882e+03,
8.48883e+03,
0.00000e+00
],
[
@@ -127,7 +127,7 @@
0.00000e+00
],
[
6.90696e-03,
6.90697e-03,
-8.33225e-02,
2.25533e-01,
0.00000e+00,

View File

@@ -65,10 +65,10 @@
2.10000e+00
],
[
-1.39008e-13
-1.38799e-13
],
[
1.13624e-16
1.13841e-16
]
],
"type": "polynomial"

View File

@@ -17,8 +17,8 @@
-1.45747e+00,
3.54989e+00,
-1.83457e+00,
-4.35615e-01,
5.99541e-02
-4.35614e-01,
5.99535e-02
],
[
1.53391e-02,
@@ -149,7 +149,7 @@
0.00000e+00
],
[
-6.62633e-05,
-6.62634e-05,
1.05607e-04,
0.00000e+00,
0.00000e+00,
@@ -165,7 +165,7 @@
-4.14650e+02,
-3.68303e+02,
4.76835e+02,
-6.33846e+01
-6.33845e+01
],
[
-3.33552e+00,

View File

@@ -1,11 +1,16 @@
{
"T_freeze": {
"coeffs": [
9.23558e+05,
6.00000e+04,
1.00000e+01
[
5.60930e+00,
-1.35179e-01,
-3.00648e-01,
-1.79950e-01,
1.72435e-01,
-1.70428e-01
]
],
"type": "exponential"
"type": "exppolynomial"
},
"Tbase": 0.00000e+00,
"Tmax": 3.93150e+02,
@@ -139,7 +144,7 @@
2.72812e+03,
-5.48097e+03,
4.22849e+03,
1.60327e+02,
1.60328e+02,
-4.89793e+03,
-6.27668e+02
],

View File

@@ -35,7 +35,7 @@
0.00000e+00
],
[
2.04415e-10,
2.04414e-10,
-2.54747e-10,
0.00000e+00,
0.00000e+00,

View File

@@ -68,7 +68,7 @@
-9.29003e-03
],
[
-4.91355e-10
-4.91356e-10
]
],
"type": "polynomial"

View File

@@ -36,7 +36,7 @@
-4.72601e-10
],
[
5.13837e-13
5.13838e-13
]
],
"type": "polynomial"

View File

@@ -36,7 +36,7 @@
-3.71471e-11
],
[
3.82141e-14
3.83250e-14
]
],
"type": "polynomial"
@@ -68,7 +68,7 @@
-2.88130e-08
],
[
3.36916e-11
3.36911e-11
]
],
"type": "polynomial"