Skip to content

Commit

Permalink
Refactored things to be faster using Numpy arrays
Browse files Browse the repository at this point in the history
  • Loading branch information
nick5435 committed Mar 20, 2017
1 parent 8f8f414 commit eab058e
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 30 deletions.
39 changes: 20 additions & 19 deletions ThermoPyle/ThermoPyle/ThermoPyle.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import json
from copy import deepcopy
from itertools import permutations
# from numba import jit, jitclass, int64, float64, void

import arrow
import CoolProp.CoolProp as CP
Expand Down Expand Up @@ -43,9 +44,9 @@ class ThermoFluid():
Parameters:
fluid (str): CoolProp Fluid type to use
var1 (str): x variable
var2 (str): y variable
outvar (str): z var (generated by code), normally S, U
xvar (str): x variable
yvar (str): y variable
zvar (str): z var (generated by code), normally S, U
numPoints (Union[List[int],int]): number of Points for linspaces
colorMap (str): What color map to use
Expand All @@ -65,9 +66,9 @@ class ThermoFluid():

def __init__(self,
fluid: str="Water",
var1: str="T",
var2: str="P",
outvar: str="S",
xvar: str="T",
yvar: str="P",
zvar: str="S",
numPoints: Union[List[int], int]=[217, 217],
colorMap: str="viridis"):

Expand All @@ -77,9 +78,9 @@ def __init__(self,
else:
self.numPoints = [numPoints[0], numPoints[1]]
self.colorMap = colorMap
self.xvar = var1
self.yvar = var2
self.zvar = outvar
self.xvar = xvar
self.yvar = yvar
self.zvar = zvar
self.vars = [self.xvar, self.yvar, self.zvar]
self.M = CP.PropsSI("M", self.fluid)
if "S" in self.vars[:-1]:
Expand Down Expand Up @@ -120,39 +121,39 @@ def __init__(self,

# Create a empty list for storing data
# Then make our data.
data = []
data = np.empty((0, 3), dtype=float)

if "V" not in self.vars:
for x in xspace:
for y in yspace:
data.append([
data = np.append(data, [[
x, y, CP.PropsSI(self.zvar, self.xvar, x, self.yvar, y,
self.fluid)
])
]], axis=0)
elif self.xvar == "V":
for x in xspace:
for y in yspace:
data.append([
data = np.append(data, [[
x, y, CP.PropsSI(self.zvar, "D", self.M / x, self.yvar,
y, self.fluid)
])
]], axis=0)
elif self.yvar == "V":
for x in xspace:
for y in yspace:
data.append([
data = np.append(data, [[
x, y, CP.PropsSI(self.zvar, self.xvar, x, "D",
self.M / y, self.fluid)
])
]], axis=0)
elif self.zvar == "V":
for x in xspace:
for y in yspace:
data.append([
data = np.append(data, [[
x, y, self.M /
CP.PropsSI("D", self.xvar, x, self.yvar, y, self.fluid)
])
]], axis=0)

# Create Pandas Frame of Data
self.data = pd.DataFrame(np.asarray(data), columns=self.vars)
self.data = pd.DataFrame(data, columns=self.vars)
self.make_units()
self.clean()
self.make_meta()
Expand Down
2 changes: 1 addition & 1 deletion ThermoPyle/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def readme():

setup(
name='ThermoPyle',
version='0.5.4',
version='0.5.5',
description='Creation of Thermodynamic Surfaces using CoolProp',
long_description=readme(),
url='https://github.com/nick5435/thermo-bridge',
Expand Down
1 change: 0 additions & 1 deletion docs/source/CSVFluid.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@ ThermoPyle.CSVFluid
###################

.. autoclass:: ThermoPyle.CSVFluid
:special-members:
:members:
1 change: 0 additions & 1 deletion docs/source/ThermoFluid.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@ ThermoPyle.ThermoFluid
######################

.. autoclass:: ThermoPyle.ThermoFluid
:special-members:
:members:
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
# The short X.Y version.
version = "0.5"
# The full version, including alpha/beta/rc tags.
release = "0.5.4"
release = "0.5.5"

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
12 changes: 6 additions & 6 deletions notebooks/thermo_generic_library_runner.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-06T23:50:49.538057Z",
"start_time": "2017-03-06T17:50:43.719121-06:00"
"end_time": "2017-03-20T15:46:35.676357Z",
"start_time": "2017-03-20T10:46:33.515313-05:00"
},
"collapsed": false,
"deletable": true,
Expand All @@ -33,8 +33,8 @@
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-06T23:50:58.360063Z",
"start_time": "2017-03-06T17:50:50.260062-06:00"
"end_time": "2017-03-20T15:46:38.079756Z",
"start_time": "2017-03-20T10:46:36.504737-05:00"
},
"collapsed": false,
"deletable": true,
Expand All @@ -50,12 +50,12 @@
"name": "stdout",
"output_type": "stream",
"text": [
"(46656, 3)\n"
"(10000, 3)\n"
]
}
],
"source": [
"myfluid = TP.ThermoFluid(\"Water\", \"T\", \"P\", \"U\", [216, 216], \"viridis\")\n",
"myfluid = TP.ThermoFluid(fluid=\"Water\", xvar=\"T\", yvar=\"P\", zvar=\"U\")\n",
"print(myfluid.data.shape)"
]
},
Expand Down
3 changes: 2 additions & 1 deletion scripts/der_CSV_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ def make_Time(time):


start = timeit.default_timer()
myfluid = TP.ThermoFluid("Water", "T", "P", "U", [217, 217])
myfluid = TP.ThermoFluid(fluid="Water", xvar="T",
yvar="P", zvar="U", numPoints=[217, 217])

d_vars = ["U", "T", "P", "S", "D", "G"]
newCols = {f"d({z})/d({y})|{x}" for x, y, z in permutations(d_vars, 3)
Expand Down

0 comments on commit eab058e

Please sign in to comment.