In [1]:
# Only needed in a Jupyter Notebook
%matplotlib inline
# Optional plot styling
import matplotlib
matplotlib.style.use('fivethirtyeight')
In [2]:
import matplotlib.pyplot as plt
from pycalphad import Database, binplot, calculate, Model, equilibrium
import pycalphad.variables as v
import numpy as np
In [3]:
db = Database('N.TDB')
In [4]:
my_phases = ['Q']
In [5]:
eq = equilibrium(db, ['MG', 'AL', 'SI', 'CU'], my_phases, {v.X('SI'): 7/21,v.X('MG'): 9/21,v.X('CU'): 2/21, v.T: (300,2000,50), v.P: 101325},
output='heat_capacity')
Solve (3/3): 24%|██▎ | 8/34 [00:18<01:04, 2.50s/cond]
Failed to compute OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(650.0)
Coordinates:
T float64 650.0), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 26%|██▋ | 9/34 [00:25<01:35, 3.81s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(700.0)
Coordinates:
T float64 700.0), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 29%|██▉ | 10/34 [00:31<01:45, 4.39s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(750.0)
Coordinates:
T float64 750.0), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 32%|███▏ | 11/34 [00:36<01:48, 4.73s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(800.0)
Coordinates:
T float64 800.0), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 35%|███▌ | 12/34 [00:44<02:04, 5.66s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(850.0)
Coordinates:
T float64 850.0), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 38%|███▊ | 13/34 [00:50<02:03, 5.88s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(900.0)
Coordinates:
T float64 900.0), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 41%|████ | 14/34 [00:56<01:57, 5.89s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(950.0)
Coordinates:
T float64 950.0), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 44%|████▍ | 15/34 [01:00<01:38, 5.16s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1000.0)
Coordinates:
T float64 1e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 47%|████▋ | 16/34 [01:05<01:32, 5.14s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1050.0)
Coordinates:
T float64 1.05e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 50%|█████ | 17/34 [01:09<01:24, 5.00s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1100.0)
Coordinates:
T float64 1.1e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 56%|█████▌ | 19/34 [01:15<01:00, 4.04s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1150.0)
Coordinates:
T float64 1.15e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 59%|█████▉ | 20/34 [01:17<00:45, 3.27s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1250.0)
Coordinates:
T float64 1.25e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 62%|██████▏ | 21/34 [01:17<00:31, 2.43s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1300.0)
Coordinates:
T float64 1.3e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 65%|██████▍ | 22/34 [01:22<00:37, 3.13s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1350.0)
Coordinates:
T float64 1.35e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 68%|██████▊ | 23/34 [01:25<00:34, 3.13s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1400.0)
Coordinates:
T float64 1.4e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 71%|███████ | 24/34 [01:26<00:23, 2.33s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1450.0)
Coordinates:
T float64 1.45e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 74%|███████▎ | 25/34 [01:27<00:18, 2.03s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1500.0)
Coordinates:
T float64 1.5e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 76%|███████▋ | 26/34 [01:28<00:14, 1.82s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1550.0)
Coordinates:
T float64 1.55e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 79%|███████▉ | 27/34 [01:29<00:10, 1.43s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1600.0)
Coordinates:
T float64 1.6e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 82%|████████▏ | 28/34 [01:30<00:08, 1.48s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1650.0)
Coordinates:
T float64 1.65e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 85%|████████▌ | 29/34 [01:32<00:07, 1.43s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1700.0)
Coordinates:
T float64 1.7e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 88%|████████▊ | 30/34 [01:33<00:05, 1.49s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1750.0)
Coordinates:
T float64 1.75e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 91%|█████████ | 31/34 [01:35<00:04, 1.52s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1800.0)
Coordinates:
T float64 1.8e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
Solve (3/3): 94%|█████████▍| 32/34 [01:35<00:02, 1.20s/cond]
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1850.0)
Coordinates:
T float64 1.85e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
Failed to compute
OrderedDict([('P', <xarray.DataArray 'P' ()>
array(101325.0)
Coordinates:
P float64 1.013e+05), ('T', <xarray.DataArray 'T' ()>
array(1900.0)
Coordinates:
T float64 1.9e+03), ('X_CU', <xarray.DataArray 'X_CU' ()>
array(0.09523809523809523)
Coordinates:
X_CU float64 0.09524), ('X_MG', <xarray.DataArray 'X_MG' ()>
array(0.42857142857142855)
Coordinates:
X_MG float64 0.4286), ('X_SI', <xarray.DataArray 'X_SI' ()>
array(0.3333333333333333)
Coordinates:
X_SI float64 0.3333)])
In [6]:
fig = plt.figure(figsize=(9,6))
fig.gca().set_xlabel('Temperature (K)')
fig.gca().set_ylabel('Isobaric Heat Capacity (J/mol-formula-K)')
fig.gca().plot(eq['T'], np.squeeze(eq['heat_capacity'].values))
plt.show()
In [ ]:
Content source: richardotis/pycalphad-sandbox
Similar notebooks: