In [6]:
import numpy as np
from pycalphad import CompiledModel, Model, Database, calculate, equilibrium
import pycalphad.variables as v

import pstats, cProfile
#dbf = Database('2016-08-10-AlGdMgand18RLPSO-for 3d plot.tdb')
dbf = Database('alfe_sei.TDB')
models = {key: CompiledModel(dbf, ['AL', 'FE', 'VA'], key) for key in dbf.phases.keys()}

In [7]:
#cProfile.runctx("equilibrium(dbf, ['AL', 'GD', 'MG', 'VA'], 'LPSO18R', {v.T: 300, v.P: 101325, v.X('AL'): 0.05, v.X('GD'): 0.1})", globals(), locals(), "Profile.prof")
%time cProfile.runctx("equilibrium(dbf, ['AL', 'FE', 'VA'], ['B2_BCC', 'AL13FE4'], {v.T: 700, v.X('AL'): (0,1,0.02), v.P: 101325}, model=models)", globals(), locals(), "Profile.prof")
s = pstats.Stats("Profile.prof")
s.strip_dirs().sort_stats("time").print_stats()


CPU times: user 11.9 s, sys: 33 ms, total: 11.9 s
Wall time: 11.9 s
Thu Mar 30 16:41:18 2017    Profile.prof

         4248235 function calls (4246589 primitive calls) in 10.906 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    19952    1.395    0.000   10.152    0.001 compiled_model.pyx:758(eval_energy_gradient)
   606308    1.249    0.000    1.249    0.000 compiled_model.pyx:281(_eval_rk_matrix)
   129274    0.948    0.000    0.948    0.000 compiled_model.pyx:305(_eval_rk_matrix_gradient)
    36231    0.776    0.000    3.247    0.000 compiled_model.pyx:551(eval_energy)
    34847    0.714    0.000    5.270    0.000 compiled_model.pyx:651(_eval_energy_gradient)
   326889    0.650    0.000    0.920    0.000 stringsource:341(__cinit__)
    67015    0.491    0.000    0.843    0.000 compiled_model.pyx:364(_eval_energy)
   119236    0.329    0.000    0.783    0.000 stringsource:395(__getitem__)
   306873    0.321    0.000    0.321    0.000 stringsource:793(slice_memviewslice)
    45679    0.282    0.000    0.548    0.000 compiled_model.pyx:496(_compute_disordered_dof)
    50666    0.268    0.000    0.514    0.000 shape_base.py:9(atleast_1d)
   326887    0.239    0.000    0.239    0.000 stringsource:368(__dealloc__)
   326889    0.237    0.000    0.237    0.000 stringsource:294(align_pointer)
       25    0.233    0.009   11.370    0.455 eqsolver.pyx:334(_solve_eq_at_conditions)
   273080    0.226    0.000    0.226    0.000 compiled_model.pyx:32(_intsum)
    45679    0.196    0.000    0.361    0.000 compiled_model.pyx:529(_compute_ordered_dof)
   119236    0.165    0.000    0.282    0.000 stringsource:385(get_item_pointer)
    14895    0.150    0.000    0.630    0.000 compiled_model.pyx:432(_eval_disordered_energy)
      762    0.133    0.000   10.492    0.014 eqsolver.pyx:274(_build_multiphase_system)
   119236    0.116    0.000    0.116    0.000 stringsource:896(pybuffer_index)
    54599    0.116    0.000    0.157    0.000 numeric.py:484(asanyarray)
   119236    0.104    0.000    0.104    0.000 stringsource:652(_unellipsify)
   109262    0.085    0.000    0.085    0.000 compiled_model.pyx:23(_sum)
    34847    0.082    0.000    0.114    0.000 stringsource:120(__cinit__)
93637/93329    0.081    0.000    0.098    0.000 {built-in method numpy.core.multiarray.array}
111498/110859    0.071    0.000    0.072    0.000 {built-in method builtins.len}
    29794    0.069    0.000    0.090    0.000 numeric.py:535(ascontiguousarray)
   104322    0.068    0.000    0.068    0.000 stringsource:965(convert_item_to_object)
      762    0.055    0.000    0.090    0.000 eqsolver.pyx:150(_compute_constraints)
     1219    0.047    0.000    0.228    0.000 dataset.py:461(_construct_dataarray)
    14899    0.042    0.000    0.074    0.000 stringsource:985(memoryview_fromslice)
     7171    0.042    0.000    0.042    0.000 {method 'reduce' of 'numpy.ufunc' objects}
      762    0.040    0.000    0.086    0.000 eqsolver.pyx:41(remove_degenerate_phases)
    55381    0.040    0.000    0.040    0.000 {method 'append' of 'list' objects}
    25591    0.039    0.000    0.071    0.000 stringsource:643(memoryview_cwrapper)
      762    0.035    0.000    0.071    0.000 linalg.py:296(solve)
    34847    0.033    0.000    0.033    0.000 stringsource:1171(fill_contig_strides_array)
    34847    0.033    0.000    0.033    0.000 stringsource:183(__getbuffer__)
    44689    0.029    0.000    0.029    0.000 stringsource:591(__len__)
     8396    0.028    0.000    0.077    0.000 coordinates.py:142(<genexpr>)
    15456    0.025    0.000    0.038    0.000 _collections_abc.py:675(__iter__)
    13183    0.021    0.000    0.031    0.000 dataset.py:274(variables)
    27239    0.020    0.000    0.020    0.000 {built-in method builtins.isinstance}
    26209    0.018    0.000    0.018    0.000 utils.py:264(__getitem__)
    25591    0.017    0.000    0.017    0.000 stringsource:649(memoryview_check)
    21395    0.016    0.000    0.016    0.000 coordinates.py:136(_names)
     8396    0.015    0.000    0.122    0.000 coordinates.py:36(__iter__)
8139/7831    0.015    0.000    0.045    0.000 numeric.py:414(asarray)
     1222    0.015    0.000    0.099    0.000 coordinates.py:140(variables)
     7394    0.013    0.000    0.018    0.000 index_tricks.py:650(__getitem__)
     1524    0.012    0.000    0.030    0.000 copy.py:137(deepcopy)
     2977    0.011    0.000    0.049    0.000 fromnumeric.py:1900(any)
    14635    0.010    0.000    0.010    0.000 utils.py:261(__init__)
    14535    0.010    0.000    0.010    0.000 variable.py:329(dims)
    14897    0.010    0.000    0.010    0.000 stringsource:962(__dealloc__)
      763    0.009    0.000    0.054    0.000 common.py:186(__getattr__)
     1225    0.009    0.000    0.015    0.000 indexing.py:10(expanded_indexer)
       50    0.009    0.000    0.009    0.000 {pycalphad.core.hyperplane.hyperplane}
8068/8066    0.009    0.000    0.009    0.000 common.py:196(__setattr__)
7407/7401    0.008    0.000    0.009    0.000 {built-in method builtins.hasattr}
    10340    0.008    0.000    0.008    0.000 {built-in method builtins.issubclass}
     1517    0.007    0.000    0.014    0.000 dataarray.py:154(__init__)
     2979    0.006    0.000    0.029    0.000 {method 'any' of 'numpy.ndarray' objects}
     1524    0.006    0.000    0.008    0.000 copy.py:253(_keep_alive)
      762    0.006    0.000    0.013    0.000 nanfunctions.py:33(_replace_nan)
     2482    0.006    0.000    0.012    0.000 utils.py:360(ndim)
      762    0.006    0.000    0.014    0.000 linalg.py:139(_commonType)
      175    0.005    0.000    0.129    0.001 dataset.py:869(isel)
3546/3543    0.005    0.000    0.005    0.000 {built-in method builtins.iter}
      350    0.005    0.000    0.015    0.000 index_tricks.py:28(ix_)
      669    0.005    0.000    0.010    0.000 variable.py:106(as_compatible_data)
     7431    0.005    0.000    0.005    0.000 stringsource:507(__getbuffer__)
     1244    0.005    0.000    0.323    0.000 dataset.py:510(__getitem__)
      264    0.005    0.000    0.012    0.000 distance.py:1400(squareform)
     2979    0.005    0.000    0.023    0.000 _methods.py:37(_any)
     2144    0.005    0.000    0.009    0.000 utils.py:137(is_dict_like)
      600    0.004    0.000    0.103    0.000 variable.py:516(isel)
      329    0.004    0.000    0.014    0.000 dataset.py:66(calculate_dimensions)
     1524    0.004    0.000    0.009    0.000 linalg.py:106(_makearray)
      350    0.004    0.000    0.057    0.000 indexing.py:70(orthogonal_indexer)
     1026    0.004    0.000    0.012    0.000 fromnumeric.py:2200(amax)
      813    0.004    0.000    0.012    0.000 fromnumeric.py:1743(sum)
     5253    0.004    0.000    0.004    0.000 {method 'get' of 'dict' objects}
      264    0.004    0.000    0.012    0.000 distance.py:978(pdist)
     2450    0.004    0.000    0.006    0.000 utils.py:267(__iter__)
      757    0.004    0.000    0.014    0.000 coordinates.py:13(__getitem__)
      762    0.004    0.000    0.006    0.000 fromnumeric.py:1161(squeeze)
     1400    0.004    0.000    0.013    0.000 indexing.py:83(all_full_slices)
      575    0.004    0.000    0.073    0.000 indexing.py:392(_convert_key)
  700/350    0.003    0.000    0.016    0.000 indexing.py:82(full_slices_unselected)
      823    0.003    0.000    0.003    0.000 {built-in method numpy.core.multiarray.copyto}
     2900    0.003    0.000    0.007    0.000 indexing.py:84(<genexpr>)
      450    0.003    0.000    0.048    0.000 variable.py:1093(__getitem__)
     2288    0.003    0.000    0.005    0.000 linalg.py:111(isComplexType)
     3881    0.003    0.000    0.004    0.000 {built-in method builtins.getattr}
     1300    0.003    0.000    0.006    0.000 indexing.py:45(canonicalize)
      762    0.003    0.000    0.013    0.000 fromnumeric.py:1987(all)
     4572    0.003    0.000    0.003    0.000 {built-in method builtins.id}
      762    0.003    0.000    0.003    0.000 {method '__deepcopy__' of 'numpy.generic' objects}
     1788    0.003    0.000    0.012    0.000 _methods.py:25(_amax)
      150    0.003    0.000    0.049    0.000 indexing.py:412(__setitem__)
     1040    0.003    0.000    0.006    0.000 numerictypes.py:728(issubdtype)
      762    0.003    0.000    0.004    0.000 linalg.py:209(_assertNdSquareness)
      762    0.003    0.000    0.026    0.000 nanfunctions.py:448(nansum)
     2692    0.003    0.000    0.005    0.000 variable.py:246(shape)
      150    0.003    0.000    0.045    0.000 variable.py:355(__getitem__)
     1954    0.003    0.000    0.003    0.000 coordinates.py:186(_names)
     1352    0.003    0.000    0.004    0.000 dataarray.py:480(coords)
      425    0.003    0.000    0.046    0.000 indexing.py:408(__getitem__)
     1591    0.003    0.000    0.011    0.000 _methods.py:31(_sum)
      326    0.003    0.000    0.005    0.000 dataset.py:335(_construct_direct)
      656    0.003    0.000    0.019    0.000 variable.py:213(__init__)
      773    0.003    0.000    0.003    0.000 {method 'astype' of 'numpy.ndarray' objects}
      150    0.002    0.000    0.098    0.001 equilibrium.py:71(<dictcomp>)
     1524    0.002    0.000    0.004    0.000 linalg.py:124(_realType)
     1012    0.002    0.000    0.006    0.000 pycompat.py:11(iteritems)
      656    0.002    0.000    0.006    0.000 variable.py:335(_parse_dimensions)
     1425    0.002    0.000    0.003    0.000 dataset.py:911(<genexpr>)
     1500    0.002    0.000    0.003    0.000 utils.py:141(is_full_slice)
     1236    0.002    0.000    0.003    0.000 dataset.py:631(coords)
     1409    0.002    0.000    0.008    0.000 {built-in method builtins.all}
     1478    0.002    0.000    0.005    0.000 <frozen importlib._bootstrap>:996(_handle_fromlist)
      750    0.002    0.000    0.006    0.000 indexing.py:369(orthogonally_indexable)
      750    0.002    0.000    0.007    0.000 variable.py:349(_item_key_to_tuple)
     1524    0.002    0.000    0.002    0.000 {method 'squeeze' of 'numpy.generic' objects}
      762    0.002    0.000    0.002    0.000 {method 'clip' of 'numpy.ndarray' objects}
        1    0.002    0.002    0.046    0.046 lower_convex_hull.py:340(lower_convex_hull)
      762    0.002    0.000    0.003    0.000 stringsource:240(array_cwrapper)
     1650    0.002    0.000    0.009    0.000 indexing.py:63(<genexpr>)
      350    0.002    0.000    0.015    0.000 indexing.py:40(canonicalize_indexer)
     1225    0.002    0.000    0.003    0.000 _collections_abc.py:611(items)
     1219    0.002    0.000    0.003    0.000 utils.py:432(hashable)
        2    0.002    0.001    0.003    0.002 halton.py:87(halton)
      857    0.002    0.000    0.007    0.000 {built-in method builtins.any}
     1367    0.002    0.000    0.003    0.000 contextlib.py:219(__exit__)
      762    0.002    0.000    0.002    0.000 linalg.py:198(_assertRankAtLeast2)
      528    0.002    0.000    0.003    0.000 numerictypes.py:603(obj2sctype)
      300    0.002    0.000    0.075    0.000 dataarray.py:417(__getitem__)
      150    0.002    0.000    0.007    0.000 indexing.py:471(__getitem__)
     1300    0.002    0.000    0.004    0.000 indexing.py:106(<genexpr>)
      765    0.002    0.000    0.008    0.000 {method 'all' of 'numpy.ndarray' objects}
      602    0.002    0.000    0.006    0.000 dataarray.py:441(_attr_sources)
        1    0.002    0.002    0.218    0.218 equilibrium.py:60(_merge_property_slices)
      150    0.002    0.000    0.005    0.000 dataarray.py:234(_replace_maybe_drop_dims)
      622    0.002    0.000    0.007    0.000 variable.py:306(values)
      602    0.002    0.000    0.003    0.000 dataarray.py:455(attrs)
      350    0.002    0.000    0.003    0.000 indexing.py:80(<listcomp>)
      614    0.002    0.000    0.009    0.000 dataarray.py:381(values)
     1040    0.002    0.000    0.002    0.000 numerictypes.py:660(issubclass_)
     1150    0.002    0.000    0.002    0.000 indexing.py:394(<genexpr>)
      767    0.002    0.000    0.002    0.000 variable.py:273(_data_cached)
     1971    0.001    0.000    0.001    0.000 dataarray.py:345(variable)
      762    0.001    0.000    0.001    0.000 linalg.py:101(get_linalg_error_extobj)
      540    0.001    0.000    0.001    0.000 {built-in method numpy.core.multiarray.zeros}
      966    0.001    0.000    0.001    0.000 {method 'reshape' of 'numpy.ndarray' objects}
      629    0.001    0.000    0.002    0.000 dataset.py:74(<genexpr>)
      950    0.001    0.000    0.002    0.000 indexing.py:103(maybe_expand_slice)
     1705    0.001    0.000    0.001    0.000 _collections_abc.py:631(__init__)
      762    0.001    0.000    0.003    0.000 fromnumeric.py:1686(clip)
      762    0.001    0.000    0.001    0.000 {method '__deepcopy__' of 'numpy.ndarray' objects}
      622    0.001    0.000    0.003    0.000 variable.py:168(_as_array_or_item)
      765    0.001    0.000    0.006    0.000 _methods.py:40(_all)
      528    0.001    0.000    0.006    0.000 distance.py:121(_copy_array_if_base_present)
     1352    0.001    0.000    0.001    0.000 coordinates.py:183(__init__)
      150    0.001    0.000    0.010    0.000 dataarray.py:283(_to_dataset_whole)
      600    0.001    0.000    0.002    0.000 variable.py:533(<listcomp>)
      775    0.001    0.000    0.002    0.000 variable.py:351(<genexpr>)
      575    0.001    0.000    0.003    0.000 indexing.py:386(__init__)
     1367    0.001    0.000    0.001    0.000 contextlib.py:213(__init__)
     1236    0.001    0.000    0.001    0.000 coordinates.py:133(__init__)
      775    0.001    0.000    0.002    0.000 variable.py:374(<genexpr>)
      150    0.001    0.000    0.005    0.000 dataarray.py:410(_item_key_to_dict)
      669    0.001    0.000    0.002    0.000 variable.py:93(_maybe_wrap_data)
       45    0.001    0.000    0.004    0.000 function_base.py:3517(_median)
      300    0.001    0.000    0.004    0.000 dataarray.py:225(_replace)
      175    0.001    0.000    0.013    0.000 dataset.py:357(_replace_vars_and_dims)
      600    0.001    0.000    0.006    0.000 variable.py:278(_indexable_data)
      609    0.001    0.000    0.002    0.000 coordinates.py:45(__contains__)
      150    0.001    0.000    0.055    0.000 variable.py:385(__setitem__)
        1    0.001    0.001   11.887   11.887 equilibrium.py:158(equilibrium)
      818    0.001    0.000    0.001    0.000 {built-in method builtins.max}
      925    0.001    0.000    0.001    0.000 dataset.py:284(attrs)
      631    0.001    0.000    0.003    0.000 indexing.py:466(shape)
      300    0.001    0.000    0.002    0.000 utils.py:184(to_0d_array)
      631    0.001    0.000    0.001    0.000 base.py:491(__len__)
     1367    0.001    0.000    0.001    0.000 contextlib.py:216(__enter__)
     1390    0.001    0.000    0.001    0.000 stringsource:545(__get__)
      264    0.001    0.000    0.003    0.000 six.py:130(callable)
      425    0.001    0.000    0.003    0.000 indexing.py:399(_ensure_ndarray)
      150    0.001    0.000    0.062    0.000 dataarray.py:601(isel)
      792    0.001    0.000    0.001    0.000 six.py:131(<genexpr>)
      301    0.001    0.000    0.006    0.000 common.py:131(__array__)
     1247    0.001    0.000    0.001    0.000 {built-in method builtins.hash}
      264    0.001    0.000    0.004    0.000 numerictypes.py:698(issubsctype)
      480    0.001    0.000    0.001    0.000 _collections_abc.py:607(keys)
      450    0.001    0.000    0.002    0.000 _collections_abc.py:649(__contains__)
      528    0.001    0.000    0.001    0.000 distance.py:141(_convert_to_double)
      925    0.001    0.000    0.001    0.000 utils.py:387(shape)
     1225    0.001    0.000    0.001    0.000 {method 'extend' of 'list' objects}
      300    0.001    0.000    0.001    0.000 dataarray.py:239(<genexpr>)
     1139    0.001    0.000    0.001    0.000 eqsolver.pyx:61(lambda)
       15    0.001    0.000    0.001    0.000 {built-in method numpy.core.multiarray.dot}
      230    0.001    0.000    0.001    0.000 dataset.py:296(dims)
      175    0.001    0.000    0.002    0.000 dataset.py:899(<listcomp>)
      150    0.001    0.000    0.056    0.000 dataarray.py:431(__setitem__)
      300    0.001    0.000    0.001    0.000 dataarray.py:400(dims)
      617    0.001    0.000    0.001    0.000 variable.py:401(attrs)
     1032    0.001    0.000    0.001    0.000 {method 'items' of 'collections.OrderedDict' objects}
      150    0.001    0.000    0.003    0.000 base.py:1406(__getitem__)
      762    0.001    0.000    0.001    0.000 stringsource:1447(format_from_typeinfo)
      300    0.001    0.000    0.001    0.000 numeric.py:2064(isscalar)
      172    0.001    0.000    0.006    0.000 variable.py:1082(__init__)
      604    0.001    0.000    0.001    0.000 {method 'split' of 'str' objects}
      150    0.001    0.000    0.007    0.000 dataset.py:352(_from_vars_and_coord_names)
      771    0.001    0.000    0.001    0.000 {built-in method builtins.min}
      270    0.001    0.000    0.001    0.000 {method 'copy' of 'numpy.ndarray' objects}
      100    0.001    0.000    0.001    0.000 eqsolver.pyx:32(__cinit__)
      175    0.001    0.000    0.001    0.000 dataset.py:904(<listcomp>)
      762    0.001    0.000    0.001    0.000 {method '__array_prepare__' of 'numpy.ndarray' objects}
      792    0.001    0.000    0.001    0.000 {method 'lower' of 'str' objects}
        9    0.001    0.000    0.001    0.000 numeric.py:1015(outer)
      150    0.001    0.000    0.001    0.000 {method 'take' of 'numpy.ndarray' objects}
      762    0.001    0.000    0.001    0.000 stringsource:209(__dealloc__)
        2    0.001    0.000    0.001    0.000 calculate.py:180(<listcomp>)
      150    0.000    0.000    0.003    0.000 dataarray.py:266(_from_temp_dataset)
      135    0.000    0.000    0.000    0.000 variable.py:409(attrs)
       72    0.000    0.000    0.001    0.000 base.py:334(_simple_new)
       45    0.000    0.000    0.001    0.000 _methods.py:53(_mean)
        2    0.000    0.000    0.004    0.002 utils.py:114(point_sample)
       45    0.000    0.000    0.000    0.000 {method 'partition' of 'numpy.ndarray' objects}
      233    0.000    0.000    0.001    0.000 utils.py:273(__contains__)
        2    0.000    0.000    0.006    0.003 calculate.py:143(_sample_phase_constitution)
      150    0.000    0.000    0.002    0.000 dataarray.py:365(ndim)
      264    0.000    0.000    0.000    0.000 {built-in method scipy.spatial._distance_wrap.pdist_chebyshev_wrap}
        2    0.000    0.000    0.153    0.077 calculate.py:217(_compute_phase_values)
       22    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.concatenate}
      208    0.000    0.000    0.001    0.000 _collections_abc.py:652(__iter__)
        1    0.000    0.000   11.888   11.888 <string>:1(<module>)
      264    0.000    0.000    0.000    0.000 {built-in method scipy.spatial._distance_wrap.to_squareform_from_vector_wrap}
      460    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
      150    0.000    0.000    0.010    0.000 dataarray.py:262(_to_temp_dataset)
       58    0.000    0.000    0.002    0.000 base.py:371(_shallow_copy)
      398    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x7f32f18b3360}
       45    0.000    0.000    0.005    0.000 function_base.py:3369(_ureduce)
       65    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.arange}
      370    0.000    0.000    0.000    0.000 basic.py:102(__hash__)
      161    0.000    0.000    0.000    0.000 common.py:181(_attr_sources)
       14    0.000    0.000    0.002    0.000 base.py:142(__new__)
      180    0.000    0.000    0.000    0.000 dataset.py:113(<genexpr>)
       71    0.000    0.000    0.000    0.000 common.py:357(_get_dtype_type)
       35    0.000    0.000    0.002    0.000 variable.py:26(as_variable)
       60    0.000    0.000    0.000    0.000 base.py:606(_get_attributes_dict)
       45    0.000    0.000    0.001    0.000 fromnumeric.py:559(partition)
      176    0.000    0.000    0.000    0.000 dataset.py:281(_attrs_copy)
       25    0.000    0.000    0.001    0.000 equilibrium.py:66(<listcomp>)
      230    0.000    0.000    0.000    0.000 utils.py:291(__init__)
       50    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.ravel_multi_index}
       64    0.000    0.000    0.002    0.000 indexing.py:438(__init__)
       63    0.000    0.000    0.000    0.000 dtypes.py:74(is_dtype)
      255    0.000    0.000    0.000    0.000 indexing.py:452(dtype)
       25    0.000    0.000    0.001    0.000 equilibrium.py:340(<listcomp>)
      179    0.000    0.000    0.000    0.000 {pandas.lib.isscalar}
        4    0.000    0.000    0.000    0.000 merge.py:97(merge_variables)
       45    0.000    0.000    0.001    0.000 fromnumeric.py:2843(mean)
       45    0.000    0.000    0.005    0.000 function_base.py:3429(median)
      152    0.000    0.000    0.000    0.000 {method 'copy' of 'collections.OrderedDict' objects}
       64    0.000    0.000    0.002    0.000 utils.py:41(safe_cast_to_index)
        1    0.000    0.000    0.168    0.168 calculate.py:343(calculate)
       72    0.000    0.000    0.000    0.000 __init__.py:175(iteritems)
      150    0.000    0.000    0.000    0.000 {method 'pop' of 'collections.OrderedDict' objects}
      225    0.000    0.000    0.000    0.000 utils.py:309(__contains__)
      176    0.000    0.000    0.000    0.000 {method 'copy' of 'set' objects}
       20    0.000    0.000    0.000    0.000 symbol.py:141(assumptions0)
       76    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.empty}
       57    0.000    0.000    0.000    0.000 numeric.py:148(ones)
       54    0.000    0.000    0.001    0.000 {built-in method builtins.sorted}
        2    0.000    0.000    0.001    0.000 utils.py:263(endmember_matrix)
       44    0.000    0.000    0.000    0.000 abc.py:178(__instancecheck__)
        9    0.000    0.000    0.000    0.000 stride_tricks.py:57(_broadcast_to)
      160    0.000    0.000    0.000    0.000 symbol.py:143(<genexpr>)
       45    0.000    0.000    0.000    0.000 _methods.py:43(_count_reduce_items)
        6    0.000    0.000    0.000    0.000 symbol.py:55(_sanitize)
       45    0.000    0.000    0.000    0.000 numeric.py:1404(rollaxis)
       60    0.000    0.000    0.000    0.000 base.py:608(<listcomp>)
        4    0.000    0.000    0.004    0.001 merge.py:385(merge_core)
      150    0.000    0.000    0.000    0.000 dataarray.py:335(name)
        4    0.000    0.000    0.000    0.000 merge.py:284(_align_for_merge)
        4    0.000    0.000    0.003    0.001 merge.py:161(expand_variable_dicts)
       25    0.000    0.000    0.000    0.000 common.py:194(is_bool_indexer)
        4    0.000    0.000    0.001    0.000 variable.py:911(concat)
       85    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
        1    0.000    0.000   11.888   11.888 {built-in method builtins.exec}
       42    0.000    0.000    0.000    0.000 indexing.py:288(shape)
       53    0.000    0.000    0.000    0.000 generic.py:7(_check)
       72    0.000    0.000    0.000    0.000 base.py:485(_reset_identity)
        4    0.000    0.000    0.000    0.000 merge.py:241(coerce_pandas_values)
       10    0.000    0.000    0.001    0.000 basic.py:278(__eq__)
       29    0.000    0.000    0.000    0.000 indexing.py:307(__array__)
       45    0.000    0.000    0.000    0.000 {method 'flatten' of 'numpy.ndarray' objects}
       20    0.000    0.000    0.000    0.000 symbol.py:137(_hashable_content)
       66    0.000    0.000    0.000    0.000 _weakrefset.py:70(__contains__)
        8    0.000    0.000    0.000    0.000 common.py:365(_asarray_tuplesafe)
       33    0.000    0.000    0.000    0.000 common.py:333(_get_dtype)
        1    0.000    0.000    0.000    0.000 shape_base.py:378(array_split)
        1    0.000    0.000    0.006    0.006 calculate.py:28(_fast_concat)
     24/2    0.000    0.000    0.000    0.000 cache.py:14(fhash)
       35    0.000    0.000    0.000    0.000 merge.py:143(<listcomp>)
       11    0.000    0.000    0.000    0.000 numeric.py:28(__new__)
       25    0.000    0.000    0.000    0.000 indexing.py:304(__getitem__)
        4    0.000    0.000    0.000    0.000 {built-in method pycalphad.core.phase_rec.PhaseRecord_from_compiledmodel}
       15    0.000    0.000    0.001    0.000 calculate.py:73(ensure_common_dims)
       30    0.000    0.000    0.000    0.000 common.py:102(is_categorical_dtype)
        8    0.000    0.000    0.000    0.000 printer.py:235(_print)
       43    0.000    0.000    0.000    0.000 merge.py:290(is_alignable)
       15    0.000    0.000    0.002    0.000 variable.py:1088(_data_cached)
       26    0.000    0.000    0.000    0.000 dataset.py:638(data_vars)
        8    0.000    0.000    0.000    0.000 printer.py:196(__init__)
        5    0.000    0.000    0.000    0.000 {method 'unique' of 'pandas.hashtable.PyObjectHashTable' objects}
       21    0.000    0.000    0.000    0.000 common.py:93(is_timedelta64_dtype)
       12    0.000    0.000    0.000    0.000 {built-in method builtins.sum}
       31    0.000    0.000    0.000    0.000 base.py:522(values)
        8    0.000    0.000    0.000    0.000 base.py:955(set_names)
       21    0.000    0.000    0.000    0.000 indexing.py:292(dtype)
        4    0.000    0.000    0.005    0.001 dataset.py:159(__init__)
        8    0.000    0.000    0.002    0.000 variable.py:1162(to_index)
       21    0.000    0.000    0.000    0.000 common.py:81(is_datetime64_dtype)
        2    0.000    0.000    0.000    0.000 numeric.py:290(equals)
        4    0.000    0.000    0.000    0.000 merge.py:206(determine_coords)
        2    0.000    0.000    0.007    0.003 cache.py:123(wrapper)
       64    0.000    0.000    0.000    0.000 {method 'keys' of 'collections.OrderedDict' objects}
        5    0.000    0.000    0.002    0.000 variable.py:1243(concat)
        3    0.000    0.000    0.000    0.000 function_base.py:4096(<listcomp>)
       35    0.000    0.000    0.000    0.000 merge.py:39(unique_variable)
        9    0.000    0.000    0.000    0.000 calculate.py:50(insert_result_variable)
        7    0.000    0.000    0.000    0.000 twodim_base.py:192(eye)
        1    0.000    0.000    0.000    0.000 equilibrium.py:54(<listcomp>)
        4    0.000    0.000    0.004    0.001 dataset.py:224(_set_init_vars_and_dims)
       12    0.000    0.000    0.000    0.000 combine.py:186(<genexpr>)
    26/18    0.000    0.000    0.000    0.000 cache.py:23(<genexpr>)
       11    0.000    0.000    0.000    0.000 variable.py:320(to_coord)
        4    0.000    0.000    0.000    0.000 alignment.py:28(align)
       26    0.000    0.000    0.000    0.000 dataset.py:112(__iter__)
       16    0.000    0.000    0.000    0.000 inference.py:53(is_list_like)
        2    0.000    0.000    0.000    0.000 function_base.py:9(linspace)
       29    0.000    0.000    0.000    0.000 {pandas.lib.values_from_object}
       14    0.000    0.000    0.000    0.000 common.py:170(is_datetime64_any_dtype)
       16    0.000    0.000    0.000    0.000 {method 'sum' of 'numpy.ndarray' objects}
       23    0.000    0.000    0.000    0.000 common.py:89(is_datetime64tz_dtype)
       26    0.000    0.000    0.000    0.000 fromnumeric.py:456(swapaxes)
       11    0.000    0.000    0.000    0.000 utils.py:158(is_scalar)
        3    0.000    0.000    0.000    0.000 function_base.py:3979(meshgrid)
        5    0.000    0.000    0.000    0.000 algorithms.py:108(_unique_generic)
       35    0.000    0.000    0.000    0.000 merge.py:92(__missing__)
        7    0.000    0.000    0.000    0.000 utils.py:208(unpack_condition)
       39    0.000    0.000    0.000    0.000 stride_tricks.py:62(<genexpr>)
       50    0.000    0.000    0.000    0.000 {method 'iternext' of 'numpy.nditer' objects}
       31    0.000    0.000    0.000    0.000 {method 'view' of 'numpy.ndarray' objects}
       13    0.000    0.000    0.000    0.000 common.py:135(is_dtype_equal)
        3    0.000    0.000    0.000    0.000 {pandas.lib.infer_dtype}
        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.generic' objects}
        6    0.000    0.000    0.000    0.000 symbol.py:89(__new__)
        6    0.000    0.000    0.000    0.000 variables.py:12(__new__)
       26    0.000    0.000    0.000    0.000 dataset.py:109(__init__)
       10    0.000    0.000    0.000    0.000 dtypes.py:347(is_dtype)
        5    0.000    0.000    0.000    0.000 variable.py:1143(copy)
        5    0.000    0.000    0.000    0.000 algorithms.py:762(_hashtable_algo)
        2    0.000    0.000    0.000    0.000 missing.py:245(array_equivalent)
        5    0.000    0.000    0.000    0.000 indexing.py:456(__array__)
        4    0.000    0.000    0.004    0.001 merge.py:377(merge_data_and_coords)
        4    0.000    0.000    0.000    0.000 shape_base.py:61(atleast_2d)
       30    0.000    0.000    0.000    0.000 equilibrium.py:25(delayed)
       13    0.000    0.000    0.000    0.000 {method 'update' of 'set' objects}
        5    0.000    0.000    0.000    0.000 calculate.py:89(<listcomp>)
        2    0.000    0.000    0.000    0.000 utils.py:283(<listcomp>)
        1    0.000    0.000    0.000    0.000 function_base.py:4116(<listcomp>)
        7    0.000    0.000    0.000    0.000 common.py:264(needs_i8_conversion)
       14    0.000    0.000    0.000    0.000 dtypes.py:132(construct_from_string)
        4    0.000    0.000    0.000    0.000 missing.py:120(_isnull_ndarraylike)
        4    0.000    0.000    0.003    0.001 combine.py:156(differs)
        9    0.000    0.000    0.000    0.000 stride_tricks.py:77(broadcast_to)
        1    0.000    0.000    0.003    0.003 combine.py:143(_calc_concat_over)
       22    0.000    0.000    0.000    0.000 {method 'ravel' of 'numpy.ndarray' objects}
        8    0.000    0.000    0.000    0.000 str.py:732(sstr)
        1    0.000    0.000    0.000    0.000 concat.py:24(get_dtype_kinds)
        5    0.000    0.000    0.000    0.000 basic.py:394(__str__)
        3    0.000    0.000    0.000    0.000 fromnumeric.py:2433(prod)
       36    0.000    0.000    0.000    0.000 {method 'pop' of 'dict' objects}
        1    0.000    0.000    0.001    0.001 variable.py:1105(concat)
       10    0.000    0.000    0.000    0.000 _collections_abc.py:592(get)
       26    0.000    0.000    0.000    0.000 {method 'swapaxes' of 'numpy.ndarray' objects}
        7    0.000    0.000    0.000    0.000 utils.py:303(unpack_kwarg)
        5    0.000    0.000    0.000    0.000 variable.py:85(default_index_coordinate)
        4    0.000    0.000    0.000    0.000 missing.py:48(_isnull_new)
        4    0.000    0.000    0.003    0.001 variable.py:982(equals)
        4    0.000    0.000    0.002    0.001 variable.py:1155(_data_equals)
        8    0.000    0.000    0.003    0.000 combine.py:161(<genexpr>)
        4    0.000    0.000    0.000    0.000 numeric.py:254(full)
        8    0.000    0.000    0.000    0.000 variable.py:258(data)
        1    0.000    0.000    0.000    0.000 equilibrium.py:49(_adjust_conditions)
        3    0.000    0.000    0.000    0.000 variables.py:20(__new__)
        5    0.000    0.000    0.000    0.000 algorithms.py:89(unique)
        4    0.000    0.000    0.000    0.000 calculate.py:307(<listcomp>)
        1    0.000    0.000    0.000    0.000 equilibrium.py:331(<listcomp>)
        2    0.000    0.000    0.000    0.000 base.py:1643(equals)
        2    0.000    0.000    0.000    0.000 linalg.py:1976(norm)
        9    0.000    0.000    0.000    0.000 function_base.py:48(iterable)
        2    0.000    0.000    0.000    0.000 calculate.py:278(<listcomp>)
        2    0.000    0.000    0.003    0.001 combine.py:148(process_subset_opt)
        6    0.000    0.000    0.000    0.000 cache.py:91(wrapper)
        8    0.000    0.000    0.000    0.000 printer.py:231(doprint)
       10    0.000    0.000    0.000    0.000 common.py:98(is_period_dtype)
        9    0.000    0.000    0.000    0.000 variables.py:38(__str__)
        3    0.000    0.000    0.000    0.000 basic.py:390(__repr__)
        2    0.000    0.000    0.148    0.074 {method 'obj' of 'pycalphad.core.phase_rec.PhaseRecord' objects}
        4    0.000    0.000    0.000    0.000 ops.py:57(f)
        1    0.000    0.000    0.000    0.000 cartesian.py:9(cartesian)
       18    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' objects}
        8    0.000    0.000    0.000    0.000 merge.py:79(_assert_compat_valid)
       11    0.000    0.000    0.000    0.000 base.py:590(_coerce_to_ndarray)
       11    0.000    0.000    0.000    0.000 variable.py:1274(<genexpr>)
        5    0.000    0.000    0.000    0.000 {method 'index' of 'list' objects}
        6    0.000    0.000    0.000    0.000 common.py:282(is_float_dtype)
       14    0.000    0.000    0.000    0.000 utils.py:167(is_valid_numpy_dtype)
        1    0.000    0.000    0.000    0.000 base.py:1440(append)
        8    0.000    0.000    0.000    0.000 base.py:947(_set_names)
        5    0.000    0.000    0.000    0.000 indexing.py:276(__init__)
        7    0.000    0.000    0.000    0.000 common.py:188(is_datetime_or_timedelta_dtype)
        4    0.000    0.000    0.000    0.000 equilibrium.py:231(<genexpr>)
        6    0.000    0.000    0.000    0.000 calculate.py:264(<genexpr>)
        1    0.000    0.000    0.000    0.000 concat.py:392(_concat_index_asobject)
        5    0.000    0.000    0.000    0.000 calculate.py:77(<listcomp>)
        1    0.000    0.000    0.000    0.000 variables.py:71(__new__)
        5    0.000    0.000    0.000    0.000 common.py:153(is_integer_dtype)
        1    0.000    0.000    0.003    0.003 combine.py:164(<genexpr>)
       10    0.000    0.000    0.000    0.000 utils.py:116(remove_incompatible_items)
       19    0.000    0.000    0.000    0.000 {method 'upper' of 'str' objects}
       10    0.000    0.000    0.000    0.000 base.py:874(_values)
        4    0.000    0.000    0.000    0.000 variable.py:951(<listcomp>)
        8    0.000    0.000    0.000    0.000 variable.py:1178(name)
        2    0.000    0.000    0.000    0.000 {built-in method _functools.reduce}
        7    0.000    0.000    0.000    0.000 common.py:106(is_string_dtype)
        5    0.000    0.000    0.000    0.000 algorithms.py:104(<lambda>)
        5    0.000    0.000    0.000    0.000 common.py:292(is_bool_dtype)
        5    0.000    0.000    0.000    0.000 common.py:54(is_object_dtype)
        3    0.000    0.000    0.000    0.000 calculate.py:415(<genexpr>)
        8    0.000    0.000    0.000    0.000 calculate.py:449(<genexpr>)
       10    0.000    0.000    0.000    0.000 {method 'intersection' of 'set' objects}
        9    0.000    0.000    0.000    0.000 stride_tricks.py:25(_maybe_view_as_subclass)
        4    0.000    0.000    0.000    0.000 variable.py:428(copy)
        1    0.000    0.000    0.000    0.000 dataset.py:413(copy)
        8    0.000    0.000    0.000    0.000 ops.py:59(<genexpr>)
        4    0.000    0.000    0.000    0.000 common.py:150(get_axis_num)
        3    0.000    0.000    0.000    0.000 _methods.py:34(_prod)
        4    0.000    0.000    0.000    0.000 common.py:168(_get_axis_num)
        2    0.000    0.000    0.000    0.000 variable.py:265(data)
        3    0.000    0.000    0.000    0.000 calculate.py:422(<genexpr>)
        4    0.000    0.000    0.000    0.000 base.py:814(shape)
        2    0.000    0.000    0.000    0.000 dataset.py:36(_get_virtual_variable)
        4    0.000    0.000    0.000    0.000 merge.py:88(__init__)
        6    0.000    0.000    0.000    0.000 logic.py:89(fuzzy_bool)
        3    0.000    0.000    0.000    0.000 equilibrium.py:240(<genexpr>)
        4    0.000    0.000    0.000    0.000 alignment.py:15(_get_joiner)
        5    0.000    0.000    0.000    0.000 {method 'index' of 'tuple' objects}
        1    0.000    0.000    0.000    0.000 numeric.py:2476(array_equal)
        3    0.000    0.000    0.000    0.000 dataarray.py:369(__len__)
        2    0.000    0.000    0.000    0.000 cache.py:41(_make_key)
        2    0.000    0.000    0.000    0.000 calculate.py:326(<dictcomp>)
        3    0.000    0.000    0.000    0.000 utils.py:303(__iter__)
       11    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
        3    0.000    0.000    0.000    0.000 coordinates.py:42(__len__)
       12    0.000    0.000    0.000    0.000 utils.py:294(__getitem__)
       12    0.000    0.000    0.000    0.000 merge.py:325(<genexpr>)
        8    0.000    0.000    0.000    0.000 str.py:628(_print_Symbol)
        2    0.000    0.000    0.000    0.000 utils.py:236(unpack_phases)
        4    0.000    0.000    0.000    0.000 base.py:1542(_isnan)
       10    0.000    0.000    0.000    0.000 symbol.py:71(<lambda>)
        2    0.000    0.000    0.000    0.000 lower_convex_hull.py:419(<genexpr>)
       10    0.000    0.000    0.000    0.000 base.py:512(dtype)
        2    0.000    0.000    0.000    0.000 function_base.py:4109(<listcomp>)
       10    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
        2    0.000    0.000    0.000    0.000 equilibrium.py:240(<listcomp>)
        4    0.000    0.000    0.000    0.000 dataset.py:227(<listcomp>)
        2    0.000    0.000    0.000    0.000 cache.py:34(__init__)
        3    0.000    0.000    0.000    0.000 calculate.py:430(<genexpr>)
        8    0.000    0.000    0.000    0.000 {method 'values' of 'collections.OrderedDict' objects}
        4    0.000    0.000    0.000    0.000 missing.py:27(isnull)
        4    0.000    0.000    0.000    0.000 base.py:527(get_values)
        1    0.000    0.000    0.000    0.000 {built-in method pandas.lib.array_equivalent_object}
        1    0.000    0.000    0.000    0.000 equilibrium.py:242(<listcomp>)
        2    0.000    0.000    0.000    0.000 dataarray.py:386(values)
        6    0.000    0.000    0.000    0.000 cache.py:38(__hash__)
        6    0.000    0.000    0.000    0.000 {method 'tolist' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 lower_convex_hull.py:369(<listcomp>)
        4    0.000    0.000    0.000    0.000 compiled_model.pxd:8(__get__)
        2    0.000    0.000    0.000    0.000 numeric.py:571(asfortranarray)
       12    0.000    0.000    0.000    0.000 {built-in method pandas.algos.ensure_object}
        1    0.000    0.000    0.000    0.000 calculate.py:67(<listcomp>)
        2    0.000    0.000    0.000    0.000 dataset.py:292(attrs)
        2    0.000    0.000    0.000    0.000 dataset.py:95(as_dataset)
        1    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.unravel_index}
        2    0.000    0.000    0.000    0.000 calculate.py:327(<listcomp>)
        1    0.000    0.000    0.000    0.000 fromnumeric.py:1490(nonzero)
        1    0.000    0.000    0.000    0.000 {built-in method utcnow}
        1    0.000    0.000    0.000    0.000 base.py:379(_shallow_copy_with_infer)
        3    0.000    0.000    0.000    0.000 function_base.py:4099(<listcomp>)
        1    0.000    0.000    0.000    0.000 dataset.py:546(remove)
        8    0.000    0.000    0.000    0.000 base.py:940(nlevels)
        3    0.000    0.000    0.000    0.000 utils.py:369(__len__)
        1    0.000    0.000    0.000    0.000 lower_convex_hull.py:382(<listcomp>)
        1    0.000    0.000    0.000    0.000 lower_convex_hull.py:370(<listcomp>)
        3    0.000    0.000    0.000    0.000 _collections_abc.py:634(__len__)
        1    0.000    0.000    0.000    0.000 dataset.py:651(set_coords)
        1    0.000    0.000    0.000    0.000 equilibrium.py:232(<listcomp>)
        2    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.result_type}
        2    0.000    0.000    0.000    0.000 base.py:465(is_)
        1    0.000    0.000    0.000    0.000 {method 'cumsum' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 dataset.py:1492(_assert_all_in_dataset)
        1    0.000    0.000    0.000    0.000 calculate.py:46(<listcomp>)
        2    0.000    0.000    0.000    0.000 common.py:69(is_datetimetz)
        1    0.000    0.000    0.000    0.000 {method 'nonzero' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 calculate.py:411(<listcomp>)
        2    0.000    0.000    0.000    0.000 variable.py:311(values)
        1    0.000    0.000    0.000    0.000 fromnumeric.py:353(repeat)
        8    0.000    0.000    0.000    0.000 {method 'add' of 'set' objects}
        1    0.000    0.000    0.000    0.000 base.py:1478(_append_same_dtype)
        2    0.000    0.000    0.000    0.000 common.py:59(is_sparse)
        4    0.000    0.000    0.000    0.000 utils.py:232(<listcomp>)
        4    0.000    0.000    0.000    0.000 utils.py:351(<lambda>)
        1    0.000    0.000    0.000    0.000 concat.py:407(<listcomp>)
        1    0.000    0.000    0.000    0.000 {method 'repeat' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 variable.py:1123(<listcomp>)
        1    0.000    0.000    0.000    0.000 base.py:1121(is_categorical)
        5    0.000    0.000    0.000    0.000 variable.py:1158(to_coord)
        1    0.000    0.000    0.000    0.000 equilibrium.py:288(<dictcomp>)
        1    0.000    0.000    0.000    0.000 concat.py:399(<listcomp>)
        1    0.000    0.000    0.000    0.000 equilibrium.py:335(<listcomp>)
        1    0.000    0.000    0.000    0.000 cartesian.py:45(<listcomp>)
        1    0.000    0.000    0.000    0.000 base.py:150(<listcomp>)
        4    0.000    0.000    0.000    0.000 utils.py:333(<lambda>)
        1    0.000    0.000    0.000    0.000 base.py:122(compute)
        1    0.000    0.000    0.000    0.000 dataset.py:540(__delitem__)
        3    0.000    0.000    0.000    0.000 equilibrium.py:248(<genexpr>)
        1    0.000    0.000    0.000    0.000 function_base.py:1264(copy)
        4    0.000    0.000    0.000    0.000 merge.py:330(_get_priority_vars)
        3    0.000    0.000    0.000    0.000 variable.py:1119(<genexpr>)
        1    0.000    0.000    0.000    0.000 common.py:231(is_datetimelike_v_numeric)
        2    0.000    0.000    0.000    0.000 calculate.py:333(<listcomp>)
        1    0.000    0.000    0.000    0.000 lower_convex_hull.py:368(<listcomp>)
        1    0.000    0.000    0.000    0.000 lower_convex_hull.py:385(<setcomp>)
        1    0.000    0.000    0.000    0.000 combine.py:120(_calc_concat_dim_coord)
        1    0.000    0.000    0.000    0.000 common.py:315(is_complex_dtype)
        2    0.000    0.000    0.000    0.000 compiled_model.pxd:6(__get__)
        1    0.000    0.000    0.000    0.000 base.py:1464(<listcomp>)
        1    0.000    0.000    0.000    0.000 dataset.py:487(__contains__)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        1    0.000    0.000    0.000    0.000 cartesian.py:48(<listcomp>)
        1    0.000    0.000    0.000    0.000 {method 'discard' of 'set' objects}
        2    0.000    0.000    0.000    0.000 compiled_model.pxd:5(__get__)
        1    0.000    0.000    0.000    0.000 {built-in method builtins.divmod}
        1    0.000    0.000    0.000    0.000 numeric.py:128(inferred_type)


Out[7]:
<pstats.Stats at 0x7f32b1bea5c0>

In [ ]: