diff --git a/.github/workflows/pytest.yaml b/.github/workflows/pytest.yaml index 671af5a..69a5715 100644 --- a/.github/workflows/pytest.yaml +++ b/.github/workflows/pytest.yaml @@ -25,10 +25,16 @@ jobs: - run: python -m pip install -U pip setuptools - name: Install pycalphad development version if: matrix.pycalphad_develop_version - run: python -m pip install git+https://github.com/pycalphad/pycalphad.git@develop + run: python -m pip install git+https://github.com/pycalphad/pycalphad.git@develop#egg=pycalphad + - name: Install espei development version + if: matrix.pycalphad_develop_version + run: python -m pip install git+https://github.com/PhasesResearchLab/ESPEI.git@master#egg=espei - name: Save pycalphad version run: | echo "PYCALPHAD_VERSION=$(python -c "from importlib.metadata import version;print(version('pycalphad'))")" >> $GITHUB_ENV + - name: Save espei version + run: | + echo "ESPEI_VERSION=$(python -c "from importlib.metadata import version;print(version('espei'))")" >> $GITHUB_ENV - run: python -m pip install build - run: python -m build --wheel - run: python -m pip install dist/*.whl @@ -41,7 +47,7 @@ jobs: - run: coverage xml - uses: actions/upload-artifact@v4 with: - name: coverage-${{ matrix.os }}-${{ matrix.python-version }}-pycalphad-${{ env.PYCALPHAD_VERSION }} + name: coverage-${{ matrix.os }}-${{ matrix.python-version }}-pycalphad-${{ env.PYCALPHAD_VERSION }}-espei-${{ env.ESPEI_VERSION }} path: coverage.xml Upload-Coverage: diff --git a/examples/mobility_fitting/01_parameter_generation.ipynb b/examples/mobility_fitting/01_parameter_generation.ipynb new file mode 100644 index 0000000..2ccb90b --- /dev/null +++ b/examples/mobility_fitting/01_parameter_generation.ipynb @@ -0,0 +1,450 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mobility Fitting Module\n", + "\n", + "Kawin supplies some utilities to aid in mobility model generation and optimization. The module includes:\n", + "- Compatibility with Espei parameter generation\n", + "- Manual least squares fitting (intended for situations when mobility data does not exists at the endmembers of a phase)\n", + "- Liquid mobility\n", + "- Compatibility with Espei parameter optimization\n", + "\n", + "This example will go through the following steps to generate and optimize mobility for the Cu-Ni system. This first example goes over parameter generation.\n", + "\n", + "First we need a thermodynamic database. This one is taken from S. Mey, Calphad 16:3 (1992) 255." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "from pycalphad import Database, variables as v\n", + "from pycalphad.mapping import BinaryStrategy, plot_binary\n", + "\n", + "dbf = Database('databases/CuNi.tdb')\n", + "comps = ['CU', 'NI', 'VA']\n", + "phases = ['FCC_A1', 'LIQUID']\n", + "conds = {v.T: (1200, 1800, 20), v.P: 101325, v.X('NI'): (0, 1, 0.01)}\n", + "\n", + "strategy = BinaryStrategy(dbf, comps, phases, conds)\n", + "strategy.do_map()\n", + "\n", + "plot_binary(strategy)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Espei parameter generation\n", + "\n", + "Since we have mobility data for all endmembers of the FCC_A1 phase, we can use Espei to build the models.\n", + "\n", + "The FCC_A1 phase is modeled as $(Cu, Ni)_1 (Va)_1$, so for endmembers, we want the following:\n", + "- Cu diffusion in $(Cu)_1 (Va)_1$\n", + "- Cu diffusion in $(Ni)_1 (Va)_1$\n", + "- Ni diffusion in $(Cu)_1 (Va)_1$\n", + "- Ni diffusion in $(Ni)_1 (Va)_1$\n", + "\n", + "In Espei, parameter generation using custom models can be done by supplying a corresponding fitting description. To have mobility models for each component, we require a fitting description and fitting steps for each component, which is created in the `generate_mobility` function." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from kawin.mobility_fitting import generate_mobility\n", + "\n", + "# Increase aicc penalty to limit number of parameters on Ni mobility\n", + "aicc = {\n", + " 'FCC_A1': {\n", + " 'TRACER_Q_NI': 2,\n", + " 'TRACER_D0_NI': 2\n", + " }\n", + "}\n", + "dbf = generate_mobility('phase_models.json', 'datasets', aicc_penalty_factor=aicc, dbf=dbf)\n", + "dbf.to_file('databases/CuNi_mob_gen.tdb', if_exists='overwrite')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have a generated mobility models for the FCC_A1 phase, let's plot the model in comparison with the experimental data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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165di9q1a8NSZPd4JYXw8ePHVdW3burcuTNatGihnktaUmv8jBs1aqSqvXUFpzh79qwqaMy9MMnJ8Uo/oUeDB11h+rA/tHWx5GtWXmFZwLLAmsoCWysHBMuCPCwLctS13oZIejJJPTlr1iyVfmvw4MEqJVt4eLha36dPH+29995Ll27W0dFR+/bbb1X61fHjx1tcutnsHO9XX32lUtb9888/2o0bN/RTTEyMZo3H+yhLywSSk2MOCwtTmb6GDRumnTlzRlu1apXm5+enff7555o1Hq/8n5XjnTdvnkq/999//2llypRRGd8sgfzfk/TPMsklftKkSer55cuX1Xo5VjnmR1MMjhkzRl2zJH00080+jmUBywJrKgtsrRwQLAsm5UlZwMAiCySXb/HixdUPaElXtmfPHv26Zs2aqQtKWgsXLtTKly+vtpfUXf/++69mrcdbokQJ9ePl0Ul+nFnr52vJhUlOj3nXrl0qbbIURJJy8IsvvlCpFq3xeJOSkrSPP/5YBROurq5aYGCg9sYbb2j37t3TLMHmzZsz/D+pO0Z5lGN+9G9q1Kihzo98vjNnzjTR3ps3lgUsC6ypLLC1ckCwLIDRywI7+Sd7dRxERERERETpsY8FEREREREZjIEFEREREREZjIEFEREREREZjIEFEREREREZjIEFEREREREZjIEFEREREREZjIEFEREREREZjIEFEREREREZjIEFkRn48MMPMXjw4Gz/3axZs+Dt7a2fnzZtGjp16pTLe0dERHmBZQFZOgYWREaSkpKChg0bolu3bumWR0VFITAwEB988IGaDw8Px48//qifF/3794ednR2++uqrdH+7bNkytVynZ8+eOHv2rH5+wIABOHToELZv387PlYjIDLAsIFvCwILISBwcHFSNwtq1azF37lz98uHDh8PHxwfjx49X83/88YcKQEqUKJHu711dXfH111/j3r17mb6Hm5sb/Pz89PPOzs546aWX8NNPPxnlmIiIKHtYFpAtYWBBZETly5dXtQ4STNy4cQPLly/H/PnzMWfOHBUECJnPqPlSq1at4O/vjwkTJmS5KZSQ11qxYgXi4uKMcERERJRdLAvIVjCwIDIyCSqqV6+OPn36qH4UH330kZoXd+/eRUhICGrXrp3hXa4vv/wSkydPxtWrV7P8fvJaycnJ2Lt3b64eBxER5RzLArIF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CTScnJywceNG/bozZ86o9LLSdErIozSlioiI0G+zfv161ZlRmlNlxsXFRZ/iVjcREdk69rEgIiKLJTUH7dq1Ux2yY2JiVAaoLVu2YN26daqJ0sCBAzF69GiVKUp+/A8fPlwFE5IRSrRp00YFEH369MHEiRNVv4px48apsS8keCAioqxjYEFERBZLahr69u2LGzduqEBCBsuToKJ169Zq/ffffw97e3s1MJ7UYkjGp19++UX/9w4ODli1apXqmyEBR758+VQfjU8//dSER0VEZJk4joWBmLuciCwJr1k8r0RE0RzHgoiIiIiIzBU7bxMRERERkcEYWBARERERkcEYWBARERERkcEYWBARERERkcEYWBARERERkcEYWBARERERkcEYWAB47rnnUKBAATz//POGn1EiIiIiIhvEwALAiBEjMGfOHFN/FkREREREFouBBYDmzZvDw8PD1J8FEREREZHFsvjAYtu2bejUqROKFi0KOzs7LFu27LFtpkyZgpIlS8LV1RX16tXDvn37TLKvRERERETWyuIDiwcPHqB69eoqeMjIggULMHr0aIwfPx6HDh1S27Zt2xYRERF5vq9ERERERNbKERauXbt2asrMpEmTMGjQILzyyitqftq0afj3338xY8YMvPfee9l+v4SEBDXpREdH53DPiYiIiIish8XXWDxJYmIiDh48iFatWumX2dvbq/ndu3fn6DUnTJgALy8v/RQYGJiLe0xEREREZJmsOrC4ffs2UlJSULhw4XTLZT48PFw/L4FGjx49sHr1agQEBDwx6Bg7diyioqL005UrV4x6DERERERElsDim0Llhg0bNmR5WxcXFzUREREREZGN1FgULFgQDg4OuHnzZrrlMu/v72+y/SIiIiIisjZWHVg4OzsjODgYGzdu1C9LTU1V8w0aNDDpvhERERERWROLbwp1//59nDt3Tj9/8eJFHDlyBD4+PihevLhKNduvXz/Url0bdevWxQ8//KBS1OqyRBERERERkeEsPrA4cOAAWrRooZ+XQEJIMDFr1iz07NkTt27dwkcffaQ6bNeoUQNr1659rEN3dsm4GTJJ53AiIiIiIltnp2maZuqdsGQyjoWknZUMUZ6enqbeHSKiJ+I1yzh4XonIkhjrmmXVfSyIiIiIiChvMLAgIiIiIiKDMbAgIiIiIiKDMbAgIiIiIiKDMbDI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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import itertools\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from kawin.thermo import GeneralThermodynamics\n", + "from kawin.mobility_fitting.manual_fitting import grab_tracer_datasets\n", + "from kawin.thermo.Mobility import activation_energy_from_composition_set_phase_record, prefactor_from_composition_set_phase_record\n", + "\n", + "# Helper function to plot Q or D0 for a given species\n", + "def plot_datasets(ax, output, diffusing_species, scale=1):\n", + " symbols = ['o', 'v', 'x', 's', '+', '1', 'd', '_', '^', '<']\n", + " symbol_cycle = itertools.cycle(symbols)\n", + "\n", + " datasets = grab_tracer_datasets('datasets', output, 'FCC_A1', ['CU', 'NI', 'VA'], diffusing_species)\n", + " for d in datasets:\n", + " sub_config = d['solver']['sublattice_configurations']\n", + " sub_occ = d['solver']['sublattice_occupancies']\n", + " x_ni = []\n", + " for sc, so in zip(sub_config, sub_occ):\n", + " if isinstance(sc[0], str):\n", + " if sc[0] == 'CU':\n", + " x_ni.append(1-so[0])\n", + " elif sc[0] == 'NI':\n", + " x_ni.append(so[0])\n", + " else:\n", + " x_ni.append(so[0][sc[0].index('NI')])\n", + " values = np.array(d['values']).flatten()\n", + " ref = d['reference']\n", + " ax.scatter(x_ni, scale*values, label=ref, marker=next(symbol_cycle), color='k')\n", + "\n", + "components = ['CU', 'NI']\n", + "phase = 'FCC_A1'\n", + "therm = GeneralThermodynamics(dbf, components+['VA'], [phase])\n", + "\n", + "# Compute activation energy and pre-factor for Nb and Ti\n", + "N = 50\n", + "xs = np.linspace(1e-3, 1-1e-3, N)\n", + "T = 1273\n", + "lnd0s = np.zeros((N, 2))\n", + "qs = np.zeros((N, 2))\n", + "for i, x in enumerate(xs):\n", + " results, comp_sets = therm.getLocalEq(x, T, precPhase=[phase])\n", + " qs[i] = activation_energy_from_composition_set_phase_record(comp_sets[0], therm.mob_phase_records, phase, components)\n", + " lnd0s[i] = prefactor_from_composition_set_phase_record(comp_sets[0], therm.mob_phase_records, phase, components)\n", + "\n", + "fig, axes = plt.subplots(2, 2, figsize=(8, 8))\n", + "\n", + "# Plot D0 for Cu mobility\n", + "axes[0,0].plot(xs, 1e4*np.exp(lnd0s[:,0]))\n", + "plot_datasets(axes[0,0], 'D0', 'CU', scale=1e4)\n", + "axes[0,0].set_yscale('log')\n", + "axes[0,0].set_ylabel('$D^0_{Cu}$ ($cm^2/s$)')\n", + "\n", + "# Plot Q for Cu mobility\n", + "axes[0,1].plot(xs, 1e-3*qs[:,0])\n", + "plot_datasets(axes[0,1], 'Q', 'CU', scale=1e-3)\n", + "axes[0,1].set_ylabel('$Q_{Cu}$ (kJ/mol)')\n", + "\n", + "# Plot D0 for Ni mobility\n", + "axes[1,0].plot(xs, 1e4*np.exp(lnd0s[:,1]))\n", + "plot_datasets(axes[1,0], 'D0', 'NI', scale=1e4)\n", + "axes[1,0].set_yscale('log')\n", + "axes[1,0].set_ylabel('$D^0_{Ni}$ ($cm^2/s$)')\n", + "\n", + "# Plot Q for Ni mobility\n", + "axes[1,1].plot(xs, 1e-3*qs[:,1])\n", + "plot_datasets(axes[1,1], 'Q', 'NI', scale=1e-3)\n", + "axes[1,1].set_ylabel('$Q_{Ni}$ (kJ/mol)')\n", + "\n", + "for ax in axes.reshape(-1):\n", + " ax.set_xlim([0,1])\n", + " ax.set_xlabel('X(Ni)')\n", + " ax.legend()\n", + "\n", + "fig.tight_layout()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Liquid mobility\n", + "\n", + "Since we don't have any mobility data for the liquid phase, we can estimate them using some available models in the literature. Two models are implemented in kawin:\n", + "\n", + "Y. Liu et al, \"A predictive equation for solute diffusivity in liquid metals\" Scripta Materialia 55 (2006), 367. doi:10.1016/j.scriptamat.2006.04.019\n", + "- $ Q = 0.17 R T_m (16+K_0) $ $ J/mol $\n", + "- $ K_0 $ is an integer corresponding to solid phase at melting (BCC = 1, HCP = 2, FCC = 3)\n", + "- For self-diffusion: $ D^0_{BB} = (8.95 - 0.0734*A) * 10^{-8} $ $ m^2/s $ where $A$ is atomic number\n", + "- For solute-diffusion: $ D^0_{AB} = \\frac{r_B}{r_A} D^0_{BB} $ where $r$ is atomic radius\n", + "- $ D_AB = D^0_{AB} exp \\left( \\frac{Q}{R T} \\right) $\n", + "\n", + "X. Su et al, \"A new equation for temperature dependent solute impurity diffusivity in liquid metals\" Journal of Phase Equilibria and Diffusion 31 (2010) 333. doi:10.1007/s11669-010-9726-4\n", + "- Sutherland-Einstein equation: $ D = \\frac{k T}{4 \\pi \\mu r} $\n", + "- $ \\mu_B = \\frac{C_1 M_B^{1/2} T^{1/2}}{V_B^{2/3}} exp \\left(\\frac{C_2 T_{M,B}}{T} \\right) $ \n", + " - $ C_1 = 1.8*10^{-8} $ and $ C_2 = 2.34 $\n", + "- Radius in liquid: $ r_A = R_0 \\left( \\frac{M_A}{\\rho_A} \\right)^{1/3} \\left(1 - 0.122 \\left( \\frac{T}{T_M} \\right)^{1/2} \\right) $\n", + " - $ R_0 = 0.644*10^{-10} $\n", + "- $ D_{AB} = \\frac{k T}{4 \\pi \\mu_B r_A} $\n", + "\n", + "Both models predict mobility to be within an order of magnitude, so here, we'll add the model from Liu et al to the database due it its simplicity" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "from pycalphad import Database, variables as v\n", + "from kawin.mobility_fitting import generate_liquid_mobility_liu, LiuSpecies\n", + "from kawin.mobility_fitting import EquilibriumSiteFractionGenerator\n", + "\n", + "# Create mobility parameters using the Liu model\n", + "liu_species = [\n", + " LiuSpecies('CU', diameter=2.55, atomic_number=29, Tm=1358, melting_phase='FCC_A1'),\n", + " LiuSpecies('NI', diameter=2.49, atomic_number=28, Tm=1728, melting_phase='FCC_A1'),\n", + " ]\n", + "liu_templates = generate_liquid_mobility_liu(dbf, liu_species)\n", + "dbf.to_file('databases/CuNi_mob_gen.tdb', if_exists='overwrite')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We could compare the models from Su et al and Liu et al to see how close the values are and what forms the models take" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Liu model for Cu: (-46404.09216 - 137.295100407725*T)*LIQUID0NI + (-36468.03076 - 137.186121545147*T)*LIQUID0CU\n", + "Su model for Cu: LIQUID0CU*(-26419.56408 + 8.314*T*log(7.223468281731e-10*T**0.5/(1 - 0.00303926198312384*T**0.5))) + LIQUID0NI*(-33617.82528 + 8.314*T*log(7.16032164165535e-10*T**0.5/(1 - 0.00269430125621825*T**0.5)))\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from kawin.mobility_fitting import generate_liquid_mobility_su, SuSpecies\n", + "\n", + "# Create mobility parameters using the Su model\n", + "su_species = [\n", + " SuSpecies('CU', atomic_mass=63.55, density=8.96, Tm=1358),\n", + " SuSpecies('NI', atomic_mass=58.69, density=8.90, Tm=1728),\n", + "]\n", + "# We could disable adding the liquid mobility models to the database\n", + "su_templates = generate_liquid_mobility_su(dbf, su_species, add_to_database=False)\n", + "\n", + "print('Liu model for Cu: ', liu_templates['CU'].MQ)\n", + "print('Su model for Cu: ', su_templates['CU'].MQ)\n", + "\n", + "fig, ax = plt.subplots()\n", + "colors = {'CU': 'C0', 'NI': 'C1'}\n", + "conds = {v.T: 2000, v.P: 101325, v.X('NI'): (1e-3, 1-1e-3, 0.01)}\n", + "\n", + "# The SiteFractionGenerator object creates the sitefractions corresponding to\n", + "# a (phase, components, conditions) input. Since we have thermodynamic information\n", + "# of the Cu-Ni system, we could use the EquilibriumSiteFractionGenerator\n", + "eqgen = EquilibriumSiteFractionGenerator(dbf)\n", + "\n", + "# Plot mobility from Liu and Su model\n", + "for s, template in liu_templates.items():\n", + " x, y, var = template.evaluate(template.mobility_function, {}, eqgen, conds)\n", + " ax.plot(x, 1000*y, color=colors[s], linestyle='-', label=f'Liu {s}')\n", + "\n", + "for s, template in su_templates.items():\n", + " x, y, var = template.evaluate(template.mobility_function, {}, eqgen, conds)\n", + " ax.plot(x, 1000*y, color=colors[s], linestyle='--', label=f'Su {s}')\n", + "\n", + "ax.set_ylabel(r'Mobility ($cm^2/s$)')\n", + "ax.set_xlim([0, 1])\n", + "ax.set_xlabel('X(Ni)')\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Manual fitting\n", + "\n", + "For cases where we don't have diffusion data for all endmembers, we can use the manual fitting module. An example of this would be fitting intermetallics or carbides, where the endmembers may not be thermodynamically stable, and diffusion data cannot be obtained.\n", + "\n", + "The following will show how to manually fit the Cu mobility in the FCC_A1 phase." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from kawin.mobility_fitting import MobilityTemplate\n", + "from kawin.mobility_fitting.manual_fitting import grab_tracer_datasets, fit_prefactor, fit_activation_energy, select_best_model\n", + "from kawin.mobility_fitting import EquilibriumSiteFractionGenerator\n", + "\n", + "dbf = Database('databases/CuNi.tdb')\n", + "eqgen = EquilibriumSiteFractionGenerator(dbf)\n", + "\n", + "phase = 'FCC_A1'\n", + "sublattice_model = [1, 1]\n", + "constituents = [['CU', 'NI'], ['VA']]\n", + "diffusing_species = 'CU'\n", + "\n", + "# Create mobility templates. We'll do three options here:\n", + "# a) no mixing term, b) 1st order mixing, c) 1st and 2nd order mixing\n", + "t0 = MobilityTemplate(phase, diffusing_species, sublattice_model, constituents)\n", + "\n", + "t1 = MobilityTemplate(phase, diffusing_species, sublattice_model, constituents)\n", + "t1.add_activation_energy([['CU', 'NI'], ['VA']], 0)\n", + "t1.add_prefactor([['CU', 'NI'], ['VA']], 0)\n", + "\n", + "t2 = MobilityTemplate(phase, diffusing_species, sublattice_model, constituents)\n", + "t2.add_activation_energy([['CU', 'NI'], ['VA']], [0, 1])\n", + "t2.add_prefactor([['CU', 'NI'], ['VA']], [0, 1])\n", + "\n", + "# Fit prefactor parameters to data\n", + "# Here, we could set the AICC penalty factor to 0.5 by setting p=0.5 in select_best_model\n", + "d_data = grab_tracer_datasets('datasets', 'D0', phase, ['CU', 'NI', 'VA'], diffusing_species)\n", + "d_model, d_results = select_best_model(d_data, [t0, t1, t2], fit_prefactor, eqgen, p=0.5, return_all_models = True)\n", + "\n", + "# Fit activation energy parameters to data\n", + "q_data = grab_tracer_datasets('datasets', 'Q', phase, ['CU', 'NI', 'VA'], diffusing_species)\n", + "q_model, q_results = select_best_model(q_data, [t0, t1, t2], fit_activation_energy, eqgen, return_all_models = True)\n", + "\n", + "# Add pre-factor and activation energy parameter to database and save\n", + "d_model.template.add_to_database(dbf, d_model.parameters)\n", + "q_model.template.add_to_database(dbf, q_model.parameters)\n", + "dbf.to_file('databases/CuNi_manual_fit.tdb', if_exists='overwrite')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We could plot the different model templates to view how they fit the data and the AICC value. You may notice that the selected model is different that the one that Espei chooses (the manual fitting selects no mixing parameters while Espei selects a first ordered mixing term). This is because in Espei, the endmembers and mixing parameters are fitting in sequential order, where the data in binary Cu-Ni does not affect the endmember parameters. In the manual fitting module, both the endmembers and mixing parameters are fit in a single step, so the endmember parameters are affected by the binary data." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from kawin.mobility_fitting import plot_prefactor, plot_activation_energy\n", + "\n", + "fig, ax = plt.subplots(1, 2, figsize=(10, 5))\n", + "conds = {v.T: 1673, v.P: 101325, v.X('NI'): (0, 1, 0.01)}\n", + "\n", + "# Plot prefactor for each template\n", + "for i, res in enumerate(d_results):\n", + " plot_prefactor(res.template, res.parameters, eqgen, conditions=conds, ax=ax[0], scale=1e4, label=f'Model {i}: AICC = {res.aicc:.3f}')\n", + "plot_datasets(ax[0], 'D0', diffusing_species, scale=1e4)\n", + "ax[0].set_ylabel('$D^0_{Cu}$ ($cm^2/s$)')\n", + "ax[0].set_yscale('log')\n", + "ax[0].legend()\n", + "\n", + "# Plot activation energy for each template\n", + "for i, res in enumerate(q_results):\n", + " plot_activation_energy(res.template, res.parameters, eqgen, conditions=conds, ax=ax[1], scale=1e-3, label=f'Model {i}: AICC = {res.aicc:.3f}')\n", + "plot_datasets(ax[1], 'Q', diffusing_species, scale=1e-3)\n", + "ax[1].set_ylabel('$Q_{Cu}$ (kJ/mol)')\n", + "ax[1].legend()\n", + "\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### References for dataset\n", + "\n", + "1. G. Ghosh, Acta Mater. 49 (2001) 2609.\n", + "2. M.S. Anand, S.P. Murarka, R.P. Agarwala, J. Appl. Phys. 36 (1965) 3860.\n", + "3. H. Bakker, Phys. Stat. Sol. 28 (1958) 569.\n", + "4. K.J. Anusavice, J.J. Pinajian, K. Oikawa, R.T. DeHoff, Trans. Metal. Soc. AIME 242 (1968) 2027.\n", + "5. K. Monma, H. Suto, H. Oikawa, J. Japan Inst. Met. 28 (1964) 192.\n", + "6. V.T. Heumann, K.J. Grundhoff, Z. Metallk. 63 (1972) 173.\n", + "7. Y. Iijima, K. Hirano, M. Kikuchi, Trans. Japan Inst. Met. 23 (1982) 19." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "calphad_313 (3.13.12)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/mobility_fitting/02_mcmc_optimization.ipynb b/examples/mobility_fitting/02_mcmc_optimization.ipynb new file mode 100644 index 0000000..226c09b --- /dev/null +++ b/examples/mobility_fitting/02_mcmc_optimization.ipynb @@ -0,0 +1,485 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## MCMC optimization\n", + "\n", + "This example will optimize the generated mobility models we created in 01_parameter_generation\n", + "\n", + "During parameter generation, we only fitted models against tracer diffusivity data since no thermodynamic information is necessary to compute these terms and each type of data pertains to the mobility of a single component. However, these types of data does not account for chemical potential gradients. Diffusion data computed from a diffusion coupled (interdiffusivity) considered chemical potential gradients and must be assessed against. We can do that through MCMC optimization using Espei" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from espei.espei_script import run_espei\n", + "\n", + "from kawin.mobility_fitting.utils import get_used_database_symbols\n", + "\n", + "# register mobility error functions to espei\n", + "from kawin.mobility_fitting.error_functions import equilibrium_mobility_error, non_equilibrium_mobility_error\n", + "\n", + "dbf_input = 'databases/CuNi_mob_gen.tdb'\n", + "dbf_output = 'databases/CuNi_mcmc.tdb'\n", + "\n", + "# We set include_subsystems to True to assess the endmember parameters as well. If we want to\n", + "# only free the mixing parameters, set this to False\n", + "cu_params = get_used_database_symbols(dbf_input, ['CU', 'NI'], 'CU', 'FCC_A1', include_subsystems=True)\n", + "ni_params = get_used_database_symbols(dbf_input, ['CU', 'NI'], 'NI', 'FCC_A1', include_subsystems=True)\n", + "params = sorted(cu_params + ni_params)\n", + "\n", + "input_settings = {\n", + " 'system': {\n", + " 'phase_models': 'phase_models.json',\n", + " 'datasets': 'datasets'\n", + " },\n", + " 'mcmc': {\n", + " 'iterations': 1000,\n", + " 'scheduler': 'dask',\n", + " 'chains_per_parameter': 8,\n", + " 'cores': 8,\n", + " 'input_db': dbf_input,\n", + " 'symbols': params,\n", + " 'save_interval': 100,\n", + " },\n", + " 'output': {\n", + " 'output_db': dbf_output,\n", + " 'tracefile': 'CuNi_trace.npy',\n", + " 'probfile': 'CuNi_prob.npy',\n", + " 'verbosity': 1\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run_espei(input_settings)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll plot the probability to check if the MCMC converged, which appears to occur after around 400 iterations." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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JZdcwo0vCwsLcdVVV6Grq+sgf5LDG9M0cfPNN2PIkCH8e2bt0370ox/l9LijbXFgePXVV3HmmWeiurqaH48effTRnNf76ntfvnw5jjrqKH6uZx1DfvGLX+z/yrJehMS+cf/999sej8e+66677FWrVtlXX321XVhYaNfX19NX2EecfPLJ9t/+9jd75cqV9tKlS+3TTjvNHjhwoN3V1ZWZ59prr7Vra2vtF1980X7vvffs2bNn23Pnzs28nk6n7fHjx9snnniivWTJEvupp56yS0tL7W9/+9u0nT4i77zzjj148GB74sSJ9g033EDb4hOgpaXFHjRokH355ZfbixYtsjdt2mQ/++yz9oYNGzLz/OxnP7MjkYj96KOP2suWLbM/9alP2UOGDLFjsVhmnlNOOcWeNGmS/fbbb9uvvfaaPXz4cPviiy/+JD7SYctPfvITu6SkxH7yySftzZs32w8++KAdCoXs2267LTMPbYsDAzuef/e737UffvhhpmbtRx55JOf1vvje29vb7YqKCvuSSy7h56J//etftt/vt//85z/v17qSwNoPZs6caV9//fWZ56Zp2tXV1fYtt9yyX186se80NDTwH9HChQv587a2NtswDH5Ac1izZg2f56233sr8AFVVtevq6jLz3HHHHXY4HLYTiQR9/ftJZ2enPWLECPv555+3jznmmIzAom1xcPnmN79pz58/f4+vW5ZlV1ZW2r/85S8z09g28nq9/ATBWL16Nf+tvPvuu5l5nn76aVtRFHvnzp0H+BMcOZx++un2lVdemTPt3HPP5SdkBm2Lg0O+wOqr7/2Pf/yjXVRUlHO+YL+/UaNG7df6UYpwH0kmk3j//fd5uNHdz4g9f+utt/Y/dEjsc3NOhtOck22DVCqVsx1Gjx7NG3g624Hds9RJRUVFZp6TTz6ZN11dtWoVffP7CUvHsnSr+zunbXHwefzxxzF9+nScf/75PO09ZcoU3HnnnZnXN2/ejLq6upztxHqmslIG92+DpUTYchzY/OxYtmjRooP8iQ5f5s6dixdffBEffPABf75s2TK8/vrrOPXUU/lz2hafDH31vbN5jj76aHg8npxzCCtXaW1t3ef1oWbP+0hTUxPPu7tP2gz2fO3atfv8hRP7jmVZvN5n3rx5GD9+PJ/Gfjxsp2c/kPztwF5z5ultOzmvEfvO/fffj8WLF+Pd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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "trace = np.load('CuNi_prob.npy')\n", + "ax.plot(trace.T)\n", + "ax.set_xlabel('Iterations')\n", + "ax.set_xlim([0, 1000])\n", + "ax.set_ylabel('lnprob')\n", + "ax.set_ylim([-450, -350])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Comparing models to interdiffusivity\n", + "\n", + "We could compare the assessed and generated mobility models against the interdiffusivity data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from tinydb import where\n", + "\n", + "from espei.datasets import load_datasets, recursive_glob\n", + "\n", + "from kawin.thermo import GeneralThermodynamics\n", + "\n", + "# Helper function to plot interdiffusivity\n", + "def plot_interdiffusivity_datasets(ax, components, reference, scale=1, *args, **kwargs):\n", + " datasets = load_datasets(sorted(recursive_glob('datasets', '*.json')))\n", + " query = (\n", + " (where('components').test(lambda x: set(x).issubset(components + ['VA']))) &\n", + " (where('output').test(lambda x: x == 'INTER_DIFF')) &\n", + " (where('reference').test(lambda x: x == reference))\n", + " )\n", + " data = datasets.search(query)\n", + "\n", + " for d in data:\n", + " x_cu = np.array(d['conditions']['X_CU'])\n", + " T = d['conditions']['T']\n", + " values = np.array(d['values']).flatten()\n", + " ref = d['reference']\n", + "\n", + " # Plot Ni composition\n", + " x_ni = 1-x_cu\n", + " ax.scatter(x_ni, scale*np.array(values), label=f'{ref} ({int(T)}K)', *args, **kwargs)\n", + "\n", + "components = ['CU', 'NI']\n", + "phase = 'FCC_A1'\n", + "\n", + "T = 1273\n", + "x = np.linspace(1e-3, 1-1e-3, 100)\n", + "therm_gen = GeneralThermodynamics('databases/CuNi_mob_gen.tdb', components, [phase])\n", + "therm_mcmc = GeneralThermodynamics('databases/CuNi_mcmc.tdb', components, [phase])\n", + "\n", + "fig, ax = plt.subplots(figsize=(5, 5))\n", + "ax.plot(x, therm_gen.getInterdiffusivity(x, T)*1e4, label='Generated', zorder=0)\n", + "ax.plot(x, therm_mcmc.getInterdiffusivity(x, T)*1e4, label='MCMC', zorder=0)\n", + "plot_interdiffusivity_datasets(ax, components, 'Heumann1972', scale=1e4, marker='o', color='k')\n", + "plot_interdiffusivity_datasets(ax, components, 'Iijima1982', scale=1e4, marker='x', color='k')\n", + "\n", + "ax.set_xlim([0,1])\n", + "ax.set_xlabel('X(Cu)')\n", + "ax.set_ylabel('$D^{Cu}_{NiNi}$ ($cm^2/s$)')\n", + "ax.set_yscale('log')\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We could plot the prefactor and activation energy of the tracer diffusivity with the optimized database to show that agreement is retained with the original tracer diffusivity data." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import itertools\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from kawin.thermo import GeneralThermodynamics\n", + "from kawin.mobility_fitting.manual_fitting import grab_tracer_datasets\n", + "from kawin.thermo.Mobility import activation_energy_from_composition_set_phase_record, prefactor_from_composition_set_phase_record\n", + "\n", + "# Helper function to plot Q or D0 for a given species\n", + "def plot_datasets(ax, output, diffusing_species, scale=1):\n", + " symbols = ['o', 'v', 'x', 's', '+', '1', 'd', '_', '^', '<']\n", + " symbol_cycle = itertools.cycle(symbols)\n", + "\n", + " datasets = grab_tracer_datasets('datasets', output, 'FCC_A1', ['CU', 'NI', 'VA'], diffusing_species)\n", + " for d in datasets:\n", + " sub_config = d['solver']['sublattice_configurations']\n", + " sub_occ = d['solver']['sublattice_occupancies']\n", + " x_ni = []\n", + " for sc, so in zip(sub_config, sub_occ):\n", + " if isinstance(sc[0], str):\n", + " if sc[0] == 'CU':\n", + " x_ni.append(1-so[0])\n", + " elif sc[0] == 'NI':\n", + " x_ni.append(so[0])\n", + " else:\n", + " x_ni.append(so[0][sc[0].index('NI')])\n", + " values = np.array(d['values']).flatten()\n", + " ref = d['reference']\n", + " ax.scatter(x_ni, scale*values, label=ref, marker=next(symbol_cycle), color='k')\n", + "\n", + "components = ['CU', 'NI']\n", + "phase = 'FCC_A1'\n", + "\n", + "# Compute activation energy and pre-factor for Nb and Ti\n", + "N = 50\n", + "xs = np.linspace(1e-3, 1-1e-3, N)\n", + "T = 1273\n", + "qs_gen = np.zeros((N, 2))\n", + "qs_mcmc = np.zeros((N, 2))\n", + "lnd0s_gen = np.zeros((N, 2))\n", + "lnd0s_mcmc = np.zeros((N, 2))\n", + "for i, x in enumerate(xs):\n", + " results, comp_sets = therm_gen.getLocalEq(x, T, precPhase=[phase])\n", + " qs_gen[i] = activation_energy_from_composition_set_phase_record(comp_sets[0], therm_gen.mob_phase_records, phase, components)\n", + " qs_mcmc[i] = activation_energy_from_composition_set_phase_record(comp_sets[0], therm_mcmc.mob_phase_records, phase, components)\n", + "\n", + " lnd0s_gen[i] = prefactor_from_composition_set_phase_record(comp_sets[0], therm_gen.mob_phase_records, phase, components)\n", + " lnd0s_mcmc[i] = prefactor_from_composition_set_phase_record(comp_sets[0], therm_mcmc.mob_phase_records, phase, components)\n", + "\n", + "fig, axes = plt.subplots(2, 2, figsize=(8, 8))\n", + "\n", + "# Plot D0 for Nb mobility\n", + "axes[0,0].plot(xs, 1e4*np.exp(lnd0s_gen[:,0]), label='Generated')\n", + "axes[0,0].plot(xs, 1e4*np.exp(lnd0s_mcmc[:,0]), label='MCMC')\n", + "plot_datasets(axes[0,0], 'D0', 'CU', scale=1e4)\n", + "axes[0,0].set_yscale('log')\n", + "axes[0,0].set_ylabel('$D^0_{Cu}$ ($cm^2/s$)')\n", + "\n", + "# Plot Q for Nb mobility\n", + "axes[0,1].plot(xs, 1e-3*qs_gen[:,0], label='Generated')\n", + "axes[0,1].plot(xs, 1e-3*qs_mcmc[:,0], label='MCMC')\n", + "plot_datasets(axes[0,1], 'Q', 'CU', scale=1e-3)\n", + "axes[0,1].set_ylabel('$Q_{Cu}$ (kJ/mol)')\n", + "\n", + "# Plot D0 for Ti mobility\n", + "axes[1,0].plot(xs, 1e4*np.exp(lnd0s_gen[:,1]), label='Generated')\n", + "axes[1,0].plot(xs, 1e4*np.exp(lnd0s_mcmc[:,1]), label='MCMC')\n", + "plot_datasets(axes[1,0], 'D0', 'NI', scale=1e4)\n", + "axes[1,0].set_yscale('log')\n", + "axes[1,0].set_ylabel('$D^0_{Ni}$ ($cm^2/s$)')\n", + "\n", + "# Plot Q for Ti mobility\n", + "axes[1,1].plot(xs, 1e-3*qs_gen[:,1], label='Generated')\n", + "axes[1,1].plot(xs, 1e-3*qs_mcmc[:,1], label='MCMC')\n", + "plot_datasets(axes[1,1], 'Q', 'NI', scale=1e-3)\n", + "axes[1,1].set_ylabel('$Q_{Ni}$ (kJ/mol)')\n", + "\n", + "for ax in axes.reshape(-1):\n", + " ax.set_xlim([0,1])\n", + " ax.set_xlabel('X(Ni)')\n", + " ax.legend()\n", + "\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Uncertainty quantification\n", + "\n", + "Since we have the trace files, we can compute the interdiffusivity for the sampled parameters to obtain 95% confidence intervals." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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DRs2mP39r/385aO8HqZfM3r0aPXayb+L9957r82Payf/6dzkGxEREREZYg0XERERkZUx4CIiIiKyMgZcRERERFbGgIuIiIjIyhhwEREREVkZAy4iIiIiK2PARURERGRlDLiIiIiIrIwBFxFRC2SQsAwNbqvly5fD19dXf/3NN980GtRNRH0HAy4i6pMaGhowZcoUzJ8/3+h4SUmJGpr90EMPqevZ2dlYsmSJ/rq47rrrYGdnh+eee87oa1evXq2Oa6688ko1/Flzww03YP/+/diyZYsVvzMi6okYcBFRn+Tg4KAyUGvXrsXHH3+sP37HHXfA398fjz32mLr+9ttvq8AsJibG6OtdXV3x/PPPo6ioyOJjuLm5ITg4WH/d2dkZCxYswKuvvmqV74mIei4GXETUZw0cOFBlqSTIysrKwtdff43PPvsMH3zwgQqOhFw3tww4e/ZshIaG4tlnn231kqKQ+/rmm29QVVVlhe+IiHoqBlxE1KdJsDVq1CgsXLhQ1Wk9+uij6rooLCzEkSNHMH78eLMZsmeeeQavvfYa0tPTW/14cl/19fXYtWtXp34fRNSzMeAioj5Naq7eeOMNrFu3DiEhIbj//vv1t6WmpkKn0yE8PNzs186bNw+jR4/WLz+2hru7O3x8fJCSktIpz5+IbAMDLiLq8959910VCCUlJRllq7RlP6nXskTquN5//30cPXq01T9Hqe2qrKzs8z93or6EARcR9Wnbt2/Hyy+/jDVr1uCMM87AjTfeqLJaIjAwUH1srjD+rLPOwrnnnosHHnig1Y8pS5VBQUGd8OyJyFYw4CKiPkuyTNLi4a9//StmzpyJd955B7t371b9skR8fDy8vb1VHVdzpPD+22+/xY4dO1p8zFOnTqG6uhpjxozptO+DiHo+BlxE1GdJVkqyWVo/rdjYWLz44ou47777kJycDHt7e7UbcevWrc3ez4gRI3DNNde0qt2D9OCKi4tTwRwR9R0MuIioT9q0aROWLl2K9957T9VvaW699VbVd0tbWrzppptUa4jGxsZm7++JJ55o8Rzx6aef4uabb+6U74GIbIedTitWICKiJuRX5MSJE3HXXXfh6quv7tBP6LfffsOsWbNU93nZqUhEfQczXERELbSN+O9//6t6Z3WUNFeVpqoMtoj6Hma4iIiIiKyMGS4iIiIiK2PARURERGRlDLiIiIiIrIwBFxEREZGVMeAiIiIisjIGXERERERWxoCLiIiIyMoYcBERERFZGQMuIiIiIljX/wMFU1bx277ueQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "T = 1273\n", + "x = np.linspace(1e-3, 1-1e-3, 100)\n", + "\n", + "# Set our fitted parameters to be freed symbols\n", + "therm = GeneralThermodynamics('databases/CuNi_mcmc.tdb', ['CU', 'NI', 'VA'], ['FCC_A1'], parameters = params)\n", + "\n", + "# Plot datasets\n", + "plot_interdiffusivity_datasets(ax, components, 'Heumann1972', scale=1e4, marker='o', color='k')\n", + "plot_interdiffusivity_datasets(ax, components, 'Iijima1982', scale=1e4, marker='x', color='k')\n", + "\n", + "# Remove first 75 parameters from trace and reshape to (N, params)\n", + "trace = np.load('CuNi_trace.npy')\n", + "trace = trace[:,500:]\n", + "trace = trace.reshape(-1, trace.shape[-1])\n", + "\n", + "# Sample 100 iterations from the trace and compute interdiffusivity\n", + "diffs = []\n", + "N = 200\n", + "for n in range(N):\n", + " index = int(n*trace.shape[0] / N)\n", + " param_map = {p: trace[index, i] for i, p in enumerate(params)}\n", + " therm.updateParameters(param_map)\n", + " diffs.append(therm.getInterdiffusivity(x, T))\n", + "\n", + "# Plot the average diffusivity along with 95% confidence intervals\n", + "diffs = np.array(diffs)\n", + "avg = np.exp(np.average(np.log(diffs), axis=0))\n", + "d_low = np.percentile(diffs, 97.5, axis=0)\n", + "d_high = np.percentile(diffs, 2.5, axis=0)\n", + "ax.plot(x, 1e4*avg, color='C0', linewidth=1, zorder=1)\n", + "ax.fill_between(x, 1e4*d_low, 1e4*d_high, alpha=0.35, zorder=0)\n", + "\n", + "ax.set_xlim([0, 1])\n", + "ax.set_xlabel('X(Ni)')\n", + "ax.set_ylabel('$D^{Cu}_{NiNi}$ ($cm^2/s$)')\n", + "ax.set_yscale('log')\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Applying the assessed database to a diffusion simulation\n", + "\n", + "Finally, now that we have an assessed database, we can simulate a diffusion couple." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Iteration\tSim Time (h)\tRun time (s)\n", + "0\t\t0.000e+00\t\t0.0\n", + "100\t\t2.107e+01\t\t4.7\n", + "200\t\t4.214e+01\t\t8.3\n", + "300\t\t6.321e+01\t\t10.8\n", + "400\t\t8.428e+01\t\t12.8\n", + "500\t\t1.054e+02\t\t14.5\n", + "600\t\t1.265e+02\t\t16.0\n", + "700\t\t1.476e+02\t\t17.3\n", + "712\t\t1.500e+02\t\t17.4\n" + ] + }, + { + "data": { + "image/png": "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5513Sp8+fSQxMVH++te/yrZt2yQrK0uKiookJSVF5s+fL2eccYY89thj0rt3b1m3bl39nznQiPycnCUp2QUSGugnQztFuft0AAB10YIUFhYmCQkJ0qJFi0r7YmJi5JxzzjG3xx9/XBYsWCBJSUkyaNCgmnxpwFKj14afGi3BAay9BgBeEZBmzJhR4y84ZsyYP3I+gFf63y/24f10rwFAY0CxEFDP9h7Kk52pOeLn6yPndI3hegOAlQLSww8/LNdff31dfTnA60avDe7QXJqGBrr7dAAA9TXMvyo6sk1rjwBUN3s23WsAYLmA9K9//auuvhTgNTJyi2Td7gzzmIAEAF7cxaZBqLCwsNJ2HfJPSAJcLdmRJmU2ka6twiWueSiXBwC8NSBdd911Zg6kinJycsw+AMf88Fv52mvndqM4GwC8OiDpjMA+Pj5V1iBFRkbW1XkBjZ7+v7Imsbx7bUg8k0MCgFfWIPXr188EI72de+654u9/7KWlpaVmlm3mQAKOScrIlwNZBeLv6yP927M4LQB4ZUAaN26cud+0aZOMHj1amjRp4rIWW4cOHcw6bADKrUk8ZO57x0ZKaGCdjYcAADSAGv/W1mVElAahK664QoKDg+vzvIBGz969dlp85SV6AACerdZ/1k6aNKl+zgTw0hakwR2bu/tUAAD1HZC03ugf//iHfPzxx7J3714zvN9ZRkb5X82Ale3PzDc1SL4+IgPbN3P36QAA6nsU2xNPPCEzZ8403Ww63H/KlClyySWXiK+vr0yfPr22X05mzZpluu20y+60006TtWvXHvf4zMxMue2226R169YSFBQkp556qsyfP7/W3xeoT2uPdq/1bBsp4cEBXGwA8PaA9MEHH8ibb74p9957rxnJNn78eHnrrbfksccekx9//LFWX2vu3LkmYGl908aNG6VPnz6mADwtLa3K47W16rzzzpPdu3fLp59+Kjt37jTn0rZt29r+GECDdK+dRvcaAFgjIKWkpEivXr3MYx3JZp808k9/+pN8++23tfpa2hI1efJkM8Fk9+7d5bXXXpPQ0FB55513qjxet2sX3hdffCHDhg0zLU/Dhw83wQrwJGsSjhZod6RAGwAsEZBiY2PlwIED5nGnTp3kf//7n3m8bt060+VVU9oatGHDBhk5cuSxk/H1Nc9Xr15d5Wu++uorGTJkiOlia9mypfTs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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from kawin.diffusion import SinglePhaseModel\n", + "from kawin.diffusion.mesh import Cartesian1D, ProfileBuilder, StepProfile1D\n", + "from kawin.diffusion.Plot import plot1D\n", + "\n", + "components = ['NI', 'CU']\n", + "phases = ['FCC_A1']\n", + "therm = GeneralThermodynamics('databases/CuNi_mcmc.tdb', components, phases)\n", + "\n", + "mesh = Cartesian1D(['CU'], [0, 12e-4], 100)\n", + "profile = ProfileBuilder()\n", + "profile.addBuildStep(StepProfile1D(4e-4, 0.001, 0.999))\n", + "mesh.setResponseProfile(profile)\n", + "\n", + "T = 1273\n", + "model = SinglePhaseModel(mesh, components, phases, therm, T)\n", + "\n", + "model.solve(150*3600, verbose=True, vIt=100)\n", + "\n", + "fig, ax = plt.subplots()\n", + "plot1D(model, ['CU'], zScale=1e-6, ax=ax)\n", + "\n", + "heumann_data = np.array([\n", + " [2.508e-4, 0.005],\n", + " [2.749e-4, 0.008],\n", + " [3.275e-4, 0.063],\n", + " [3.494e-4, 0.307],\n", + " [3.801e-4, 0.485],\n", + " [3.823e-4, 0.571],\n", + " [4.239e-4, 0.723],\n", + " [4.765e-4, 0.830],\n", + " [5.203e-4, 0.879],\n", + " [5.773e-4, 0.923],\n", + " [6.474e-4, 0.959],\n", + " [7.525e-4, 0.988],\n", + " [8.478e-4, 0.994],\n", + " [9.584e-4, 0.995],\n", + " [10.986e-4, 0.995],\n", + "])\n", + "ax.scatter(heumann_data[:,0]/1e-6, heumann_data[:,1], marker='x', color='k', label='Heumann1972', zorder=2)\n", + "ax.set_xlabel(r'Distance ($\\mu m$)')\n", + "ax.set_ylim([0,1])\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### References for dataset\n", + "\n", + "1. G. Ghosh, Acta Mater. 49 (2001) 2609.\n", + "2. M.S. Anand, S.P. Murarka, R.P. Agarwala, J. Appl. Phys. 36 (1965) 3860.\n", + "3. H. Bakker, Phys. Stat. Sol. 28 (1958) 569.\n", + "4. K.J. Anusavice, J.J. Pinajian, K. Oikawa, R.T. DeHoff, Trans. Metal. Soc. AIME 242 (1968) 2027.\n", + "5. K. Monma, H. Suto, H. Oikawa, J. Japan Inst. Met. 28 (1964) 192.\n", + "6. V.T. Heumann, K.J. Grundhoff, Z. Metallk. 63 (1972) 173.\n", + "7. Y. Iijima, K. Hirano, M. Kikuchi, Trans. Japan Inst. Met. 23 (1982) 19." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "calphad_313 (3.13.12)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/mobility_fitting/databases/CuNi.tdb b/examples/mobility_fitting/databases/CuNi.tdb new file mode 100644 index 0000000..63d07d9 --- /dev/null +++ b/examples/mobility_fitting/databases/CuNi.tdb @@ -0,0 +1,67 @@ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$$ Cu-Ni thermodynamic database +$$ +$$ Unaries from SGTE 1991 +$$ Binary assessment from S. Mey, Calphad 16:3 (1992) 255 +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +ELEMENT VA VACUUM 0.0000E+00 0.0000E+00 0.0000E+00 ! +ELEMENT CU FCC_A1 6.3546E+01 5.0041E+03 3.3150E+01 ! +ELEMENT NI FCC_A1 5.8690E+01 4.7870E+03 2.9796E+01 ! + + TYPE_DEFINITION % SEQ *! + DEFINE_SYSTEM_DEFAULT SPECIE 2 ! + DEFAULT_COMMAND DEF_SYS_ELEMENT VA ! + + TYPE_DEFINITION ( GES A_P_D FCC_A1 MAGNETIC -3.0 0.28 ! + PHASE FCC_A1 %( 2 1 1 ! + CONSTITUENT FCC_A1 : CU,NI : VA : ! + + PHASE LIQUID:L % 1 1 ! + CONSTITUENT LIQUID:L : CU,NI : ! + +$ Cu +$ ------------------------------------- + FUNCTION GHSERCU 298.15 + -7770.458+130.485235*T-24.112392*T*LN(T)-2.65684E-3*T**2+0.129223E-6*T**3 + +52478*T**(-1); 1357.77 Y + -13542.026+183.803828*T-31.38*T*LN(T)+364.167E27*T**(-9); 3200.00 N ! + + FUNCTION GBCCCU 298.15 4017-1.255*T+GHSERCU; 3200 N ! + + FUNCTION GHCPCU 298.15 600+0.2*T+GHSERCU; 3200 N ! + + FUNCTION GLIQCU 298.15 12964.735-9.511904*T-584.89E-23*T**7+GHSERCU; 1357.77 Y + -46.545+173.881484*T-31.38*T*LN(T); 3200 N ! + +$ Ni +$ ------------------------------------- + FUNCTION GHSERNI 298.15 + -5179.159+117.854*T-22.096*T*LN(T)-4.8407E-3*T**2; 1728.00 Y + -27840.620+279.134977*T-43.1*T*LN(T)+1127.54E28*T**(-9); 3000.00 N ! + + FUNCTION GLIQNI 298.15 16414.686-9.397*T-382.318E-23*T**7+GHSERNI; 1728 Y + -9549.817+268.597977*T-43.1*T*LN(T); 3000 N ! + + FUNCTION GBCCNI 298.15 8715.084-3.556*T+GHSERNI; 3000 N ! + + FUNCTION GHCPNI 298.15 1046+1.2552*T+GHSERNI; 3000 N ! + +$ Unaries parameters + PARAMETER G(FCC_A1,CU:VA;0) 298.15 GHSERCU; 3200 N ! + PARAMETER G(LIQUID,CU;0) 298.15 GLIQCU; 3200 N ! + + PARAMETER G(FCC_A1,NI:VA;0) 298.15 GHSERNI; 3000 N ! + PARAMETER TC(FCC_A1,NI:VA;0) 298.15 633; 3000 N ! + PARAMETER BM(FCC_A1,NI:VA;0) 298.15 0.52; 3000 N ! + PARAMETER G(LIQUID,NI;0) 298.15 GLIQNI; 3000 N ! + +$ Binary parameters + PARAMETER G(FCC_A1,CU,NI:VA;0) 298.15 8047.72 + 3.42217*T; 6000 N ! + PARAMETER G(FCC_A1,CU,NI:VA;1) 298.15 -2041.30 + 0.99714*T; 6000 N ! + PARAMETER TC(FCC_A1,CU,NI:VA;0) 298.15 -935.5; 3000 N ! + PARAMETER TC(FCC_A1,CU,NI:VA;1) 298.15 -594.9; 3000 N ! + PARAMETER BM(FCC_A1,CU,NI:VA;0) 298.15 -0.732; 3000 N ! + PARAMETER BM(FCC_A1,CU,NI:VA;1) 298.15 -0.317; 3000 N ! + + PARAMETER G(LIQUID,CU,NI;0) 298.15 12048.61 + 1.29093*T; 6000 N ! + PARAMETER G(LIQUID,CU,NI;1) 298.15 -1861.61 + 0.94201*T; 6000 N ! diff --git a/examples/mobility_fitting/databases/CuNi_manual_fit.tdb b/examples/mobility_fitting/databases/CuNi_manual_fit.tdb new file mode 100644 index 0000000..fbcac0b --- /dev/null +++ b/examples/mobility_fitting/databases/CuNi_manual_fit.tdb @@ -0,0 +1,76 @@ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ Date: 2026-06-02 08:36 +$ Components: CU, NI, VA +$ Phases: FCC_A1, LIQUID +$ Generated by ury3 (pycalphad 0.11.2.dev33+g4a81c89c3) +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +ELEMENT CU FCC_A1 63.546 5004.1 33.15 ! +ELEMENT NI FCC_A1 58.69 4787.0 29.796 ! +ELEMENT VA VACUUM 0.0 0.0 0.0 ! + + +FUNCTION GBCCCU 298.15 4017.0-1.255*T+GHSERCU; 3200.0 N ! +FUNCTION GBCCNI 298.15 8715.084-3.556*T+GHSERNI; 3000.0 N ! +FUNCTION GHCPCU 298.15 600.0+0.2*T+GHSERCU; 3200.0 N ! +FUNCTION GHCPNI 298.15 1046.0+1.2552*T+GHSERNI; 3000.0 N ! +FUNCTION GHSERCU 298.15 -7770.458+130.485235*T-24.112392*T*LOG(T) + +1.29223E-07*T**(3)-0.00265684*T**(2)+52478.0*T**(-1); 1357.77 Y -13542.026 + +183.803828*T-31.38*T*LOG(T)+3.64167E+29*T**(-9); 3200.0 N ! +FUNCTION GHSERNI 298.15 -5179.159+117.854*T-22.096*T*LOG(T)-0.0048407*T**(2); + 1728.0 Y -27840.62+279.134977*T-43.1*T*LOG(T)+1.12754E+31*T**(-9); 3000.0 + N ! +FUNCTION GLIQCU 298.15 12964.735-5.8489E-21*T**(7)-9.511904*T+GHSERCU; + 1357.77 Y -46.545-31.38*T*LOG(T)+173.881484*T; 3200.0 N ! +FUNCTION GLIQNI 298.15 16414.686-3.82318E-21*T**(7)-9.397*T+GHSERNI; 1728.0 Y + -9549.817-43.1*T*LOG(T)+268.597977*T; 3000.0 N ! +FUNCTION VV0000 1 -83.6320706404982; 10000 N ! +FUNCTION VV0001 1 -73.7313841197274; 10000 N ! +FUNCTION VV0002 1 -206518.560463178; 10000 N ! +FUNCTION VV0003 1 -266996.179041866; 10000 N ! + +TYPE_DEFINITION % SEQ * ! +DEFINE_SYSTEM_DEFAULT ELEMENT 2 ! +DEFAULT_COMMAND DEFINE_SYSTEM_ELEMENT VA ! + +TYPE_DEFINITION ^ GES AMEND_PHASE_DESCRIPTION FCC_A1 MAGNETIC -3.0 0.28 ! +PHASE FCC_A1 %^ 2 1.0 1.0 ! +CONSTITUENT FCC_A1 :CU, NI:VA: ! + +PHASE LIQUID:L % 1 1.0 ! +CONSTITUENT LIQUID:L :CU, NI: ! + + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ CU $ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +PARAMETER G(FCC_A1,CU:VA;0) 298.15 GHSERCU; 3200.0 N ! +PARAMETER MQ(FCC_A1&CU,CU:VA;0) 1 T*VV0000+VV0002; 10000 N ! +PARAMETER G(LIQUID,CU;0) 298.15 GLIQCU; 3200.0 N ! + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ NI $ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +PARAMETER BMAGN(FCC_A1,NI:VA;0) 298.15 0.52; 3000.0 N ! +PARAMETER G(FCC_A1,NI:VA;0) 298.15 GHSERNI; 3000.0 N ! +PARAMETER TC(FCC_A1,NI:VA;0) 298.15 633.0; 3000.0 N ! +PARAMETER G(LIQUID,NI;0) 298.15 GLIQNI; 3000.0 N ! + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ CU-NI $ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +PARAMETER BMAGN(FCC_A1,CU,NI:VA;0) 298.15 -0.732; 3000.0 N ! +PARAMETER BMAGN(FCC_A1,CU,NI:VA;1) 298.15 -0.317; 3000.0 N ! +PARAMETER G(FCC_A1,CU,NI:VA;0) 298.15 8047.72+3.42217*T; 6000.0 N ! +PARAMETER G(FCC_A1,CU,NI:VA;1) 298.15 -2041.3+0.99714*T; 6000.0 N ! +PARAMETER MQ(FCC_A1&CU,NI:VA;0) 1 VV0003+T*VV0001; 10000 N ! +PARAMETER TC(FCC_A1,CU,NI:VA;0) 298.15 -935.5; 3000.0 N ! +PARAMETER TC(FCC_A1,CU,NI:VA;1) 298.15 -594.9; 3000.0 N ! +PARAMETER G(LIQUID,CU,NI;0) 298.15 12048.61+1.29093*T; 6000.0 N ! +PARAMETER G(LIQUID,CU,NI;1) 298.15 -1861.61+0.94201*T; 6000.0 N ! diff --git a/examples/mobility_fitting/databases/CuNi_mcmc.tdb b/examples/mobility_fitting/databases/CuNi_mcmc.tdb new file mode 100644 index 0000000..5a4799d --- /dev/null +++ b/examples/mobility_fitting/databases/CuNi_mcmc.tdb @@ -0,0 +1,93 @@ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ Date: 2026-06-02 08:48 +$ Components: CU, NI, VA +$ Phases: FCC_A1, LIQUID +$ Generated by ury3 (pycalphad 0.11.2.dev33+g4a81c89c3) +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +ELEMENT CU FCC_A1 63.546 5004.1 33.15 ! +ELEMENT NI FCC_A1 58.69 4787.0 29.796 ! +ELEMENT VA VACUUM 0.0 0.0 0.0 ! + + +FUNCTION GBCCCU 298.15 4017.0-1.255*T+GHSERCU; 3200.0 N ! +FUNCTION GBCCNI 298.15 8715.084-3.556*T+GHSERNI; 3000.0 N ! +FUNCTION GHCPCU 298.15 600.0+0.2*T+GHSERCU; 3200.0 N ! +FUNCTION GHCPNI 298.15 1046.0+1.2552*T+GHSERNI; 3000.0 N ! +FUNCTION GHSERCU 298.15 -7770.458+130.485235*T-24.112392*T*LOG(T) + -0.00265684*T**(2)+1.29223E-07*T**(3)+52478.0*T**(-1); 1357.77 Y -13542.026 + +183.803828*T-31.38*T*LOG(T)+3.64167E+29*T**(-9); 3200.0 N ! +FUNCTION GHSERNI 298.15 -5179.159+117.854*T-22.096*T*LOG(T)-0.0048407*T**(2); + 1728.0 Y -27840.62+279.134977*T-43.1*T*LOG(T)+1.12754E+31*T**(-9); 3000.0 + N ! +FUNCTION GHSERVA 1.0 0.0; 10000.0 N ! +FUNCTION GLIQCU 298.15 12964.735-9.511904*T-5.8489E-21*T**(7)+GHSERCU; + 1357.77 Y -46.545+173.881484*T-31.38*T*LOG(T); 3200.0 N ! +FUNCTION GLIQNI 298.15 16414.686-9.397*T-3.82318E-21*T**(7)+GHSERNI; 1728.0 Y + -9549.817+268.597977*T-43.1*T*LOG(T); 3000.0 N ! +FUNCTION VV0000 1 -86.3575650786372; 10000 N ! +FUNCTION VV0001 1 -204074.61614708; 10000 N ! +FUNCTION VV0002 1 -91.6611880293118; 10000 N ! +FUNCTION VV0003 1 -202997.26331184; 10000 N ! +FUNCTION VV0004 1 -75.2480431996386; 10000 N ! +FUNCTION VV0005 1 -265395.222357188; 10000 N ! +FUNCTION VV0006 1 -59.60248683333; 10000 N ! +FUNCTION VV0007 1 -302412.096213174; 10000 N ! +FUNCTION VV0008 1 20.5879221981189; 10000 N ! +FUNCTION VV0009 1 -16067.8974985215; 10000 N ! +FUNCTION VV0010 1 18.3375873480011; 10000 N ! +FUNCTION VV0011 1 -11699.6155945424; 10000 N ! + +TYPE_DEFINITION % SEQ * ! +DEFINE_SYSTEM_DEFAULT ELEMENT 2 ! +DEFAULT_COMMAND DEFINE_SYSTEM_ELEMENT VA ! + +TYPE_DEFINITION ^ GES AMEND_PHASE_DESCRIPTION FCC_A1 MAGNETIC -3.0 0.28 ! +PHASE FCC_A1 %^ 2 1.0 1.0 ! +CONSTITUENT FCC_A1 :CU, NI:VA: ! + +PHASE LIQUID:L % 1 1.0 ! +CONSTITUENT LIQUID:L :CU, NI: ! + + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ CU $ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +PARAMETER G(FCC_A1,CU:VA;0) 298.15 GHSERCU; 3200.0 N ! +PARAMETER MQ(FCC_A1&CU,CU:VA;0) 1.0 T*VV0000+VV0001; 10000.0 N ! +PARAMETER G(LIQUID,CU;0) 298.15 GLIQCU; 3200.0 N ! +PARAMETER MQ(LIQUID&CU,CU;0) 1.0 -36468.03076-137.186121545147*T; 10000.0 N ! + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ NI $ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +PARAMETER BMAGN(FCC_A1,NI:VA;0) 298.15 0.52; 3000.0 N ! +PARAMETER G(FCC_A1,NI:VA;0) 298.15 GHSERNI; 3000.0 N ! +PARAMETER MQ(FCC_A1&NI,NI:VA;0) 1.0 T*VV0006+VV0007; 10000.0 N ! +PARAMETER TC(FCC_A1,NI:VA;0) 298.15 633.0; 3000.0 N ! +PARAMETER G(LIQUID,NI;0) 298.15 GLIQNI; 3000.0 N ! +PARAMETER MQ(LIQUID&NI,NI;0) 1.0 -46404.09216-137.097138674486*T; 10000.0 N ! + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ CU-NI $ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +PARAMETER BMAGN(FCC_A1,CU,NI:VA;0) 298.15 -0.732; 3000.0 N ! +PARAMETER BMAGN(FCC_A1,CU,NI:VA;1) 298.15 -0.317; 3000.0 N ! +PARAMETER G(FCC_A1,CU,NI:VA;0) 298.15 8047.72+3.42217*T; 6000.0 N ! +PARAMETER G(FCC_A1,CU,NI:VA;1) 298.15 -2041.3+0.99714*T; 6000.0 N ! +PARAMETER MQ(FCC_A1&NI,CU:VA;0) 1.0 T*VV0002+VV0003; 10000.0 N ! +PARAMETER MQ(FCC_A1&CU,NI:VA;0) 1.0 T*VV0004+VV0005; 10000.0 N ! +PARAMETER MQ(FCC_A1&CU,CU,NI:VA;0) 1.0 T*VV0008+VV0009; 10000.0 N ! +PARAMETER MQ(FCC_A1&NI,CU,NI:VA;0) 1.0 T*VV0010+VV0011; 10000.0 N ! +PARAMETER TC(FCC_A1,CU,NI:VA;0) 298.15 -935.5; 3000.0 N ! +PARAMETER TC(FCC_A1,CU,NI:VA;1) 298.15 -594.9; 3000.0 N ! +PARAMETER G(LIQUID,CU,NI;0) 298.15 12048.61+1.29093*T; 6000.0 N ! +PARAMETER G(LIQUID,CU,NI;1) 298.15 -1861.61+0.94201*T; 6000.0 N ! +PARAMETER MQ(LIQUID&NI,CU;0) 1.0 -36468.03076-136.988159811907*T; 10000.0 N ! +PARAMETER MQ(LIQUID&CU,NI;0) 1.0 -46404.09216-137.295100407725*T; 10000.0 N ! diff --git a/examples/mobility_fitting/databases/CuNi_mob_gen.tdb b/examples/mobility_fitting/databases/CuNi_mob_gen.tdb new file mode 100644 index 0000000..808c833 --- /dev/null +++ b/examples/mobility_fitting/databases/CuNi_mob_gen.tdb @@ -0,0 +1,93 @@ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ Date: 2026-06-02 08:36 +$ Components: CU, NI, VA +$ Phases: FCC_A1, LIQUID +$ Generated by ury3 (pycalphad 0.11.2.dev33+g4a81c89c3) +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +ELEMENT CU FCC_A1 63.546 5004.1 33.15 ! +ELEMENT NI FCC_A1 58.69 4787.0 29.796 ! +ELEMENT VA VACUUM 0.0 0.0 0.0 ! + + +FUNCTION GBCCCU 298.15 4017.0-1.255*T+GHSERCU; 3200.0 N ! +FUNCTION GBCCNI 298.15 8715.084-3.556*T+GHSERNI; 3000.0 N ! +FUNCTION GHCPCU 298.15 600.0+0.2*T+GHSERCU; 3200.0 N ! +FUNCTION GHCPNI 298.15 1046.0+1.2552*T+GHSERNI; 3000.0 N ! +FUNCTION GHSERCU 298.15 -7770.458+130.485235*T-24.112392*T*LOG(T) + +1.29223E-07*T**(3)-0.00265684*T**(2)+52478.0*T**(-1); 1357.77 Y -13542.026 + +183.803828*T-31.38*T*LOG(T)+3.64167E+29*T**(-9); 3200.0 N ! +FUNCTION GHSERNI 298.15 -5179.159+117.854*T-22.096*T*LOG(T)-0.0048407*T**(2); + 1728.0 Y -27840.62+279.134977*T-43.1*T*LOG(T)+1.12754E+31*T**(-9); 3000.0 + N ! +FUNCTION GHSERVA 1 0; 10000 N ! +FUNCTION GLIQCU 298.15 12964.735-5.8489E-21*T**(7)-9.511904*T+GHSERCU; + 1357.77 Y -46.545-31.38*T*LOG(T)+173.881484*T; 3200.0 N ! +FUNCTION GLIQNI 298.15 16414.686-3.82318E-21*T**(7)-9.397*T+GHSERNI; 1728.0 Y + -9549.817-43.1*T*LOG(T)+268.597977*T; 3000.0 N ! +FUNCTION VV0000 1 -82.5275; 10000 N ! +FUNCTION VV0001 1 -205872.0; 10000 N ! +FUNCTION VV0002 1 -71.0695; 10000 N ! +FUNCTION VV0003 1 -232826.0; 10000 N ! +FUNCTION VV0004 1 -79.2647; 10000 N ! +FUNCTION VV0005 1 -255224.0; 10000 N ! +FUNCTION VV0006 1 -71.7851; 10000 N ! +FUNCTION VV0007 1 -285142.0; 10000 N ! +FUNCTION VV0008 1 13.9161; 10000 N ! +FUNCTION VV0009 1 -42473.8; 10000 N ! +FUNCTION VV0010 1 -31.3775; 10000 N ! +FUNCTION VV0011 1 43996.2; 10000 N ! + +TYPE_DEFINITION % SEQ * ! +DEFINE_SYSTEM_DEFAULT ELEMENT 2 ! +DEFAULT_COMMAND DEFINE_SYSTEM_ELEMENT VA ! + +TYPE_DEFINITION ^ GES AMEND_PHASE_DESCRIPTION FCC_A1 MAGNETIC -3.0 0.28 ! +PHASE FCC_A1 %^ 2 1.0 1.0 ! +CONSTITUENT FCC_A1 :CU, NI:VA: ! + +PHASE LIQUID:L % 1 1.0 ! +CONSTITUENT LIQUID:L :CU, NI: ! + + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ CU $ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +PARAMETER G(FCC_A1,CU:VA;0) 298.15 GHSERCU; 3200.0 N ! +PARAMETER MQ(FCC_A1&CU,CU:VA;0) 1 T*VV0000+VV0001; 10000 N ! +PARAMETER G(LIQUID,CU;0) 298.15 GLIQCU; 3200.0 N ! +PARAMETER MQ(LIQUID&CU,CU;0) 1 -36468.03076-137.186121545147*T; 10000 N ! + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ NI $ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +PARAMETER BMAGN(FCC_A1,NI:VA;0) 298.15 0.52; 3000.0 N ! +PARAMETER G(FCC_A1,NI:VA;0) 298.15 GHSERNI; 3000.0 N ! +PARAMETER MQ(FCC_A1&NI,NI:VA;0) 1 T*VV0006+VV0007; 10000 N ! +PARAMETER TC(FCC_A1,NI:VA;0) 298.15 633.0; 3000.0 N ! +PARAMETER G(LIQUID,NI;0) 298.15 GLIQNI; 3000.0 N ! +PARAMETER MQ(LIQUID&NI,NI;0) 1 -46404.09216-137.097138674486*T; 10000 N ! + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$ CU-NI $ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +PARAMETER BMAGN(FCC_A1,CU,NI:VA;0) 298.15 -0.732; 3000.0 N ! +PARAMETER BMAGN(FCC_A1,CU,NI:VA;1) 298.15 -0.317; 3000.0 N ! +PARAMETER G(FCC_A1,CU,NI:VA;0) 298.15 8047.72+3.42217*T; 6000.0 N ! +PARAMETER G(FCC_A1,CU,NI:VA;1) 298.15 -2041.3+0.99714*T; 6000.0 N ! +PARAMETER MQ(FCC_A1&NI,CU:VA;0) 1 T*VV0002+VV0003; 10000 N ! +PARAMETER MQ(FCC_A1&CU,NI:VA;0) 1 T*VV0004+VV0005; 10000 N ! +PARAMETER MQ(FCC_A1&CU,CU,NI:VA;0) 1 T*VV0008+VV0009; 10000 N ! +PARAMETER MQ(FCC_A1&NI,CU,NI:VA;0) 1 T*VV0010+VV0011; 10000 N ! +PARAMETER TC(FCC_A1,CU,NI:VA;0) 298.15 -935.5; 3000.0 N ! +PARAMETER TC(FCC_A1,CU,NI:VA;1) 298.15 -594.9; 3000.0 N ! +PARAMETER G(LIQUID,CU,NI;0) 298.15 12048.61+1.29093*T; 6000.0 N ! +PARAMETER G(LIQUID,CU,NI;1) 298.15 -1861.61+0.94201*T; 6000.0 N ! +PARAMETER MQ(LIQUID&NI,CU;0) 1 -36468.03076-136.988159811907*T; 10000 N ! +PARAMETER MQ(LIQUID&CU,NI;0) 1 -46404.09216-137.295100407725*T; 10000 N ! diff --git a/examples/mobility_fitting/datasets/equilibrium/Dnkj_1273_Heumann1972.json b/examples/mobility_fitting/datasets/equilibrium/Dnkj_1273_Heumann1972.json new file mode 100644 index 0000000..df0d37f --- /dev/null +++ b/examples/mobility_fitting/datasets/equilibrium/Dnkj_1273_Heumann1972.json @@ -0,0 +1,58 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "ref_el": ["CU"], + "dependent_el": ["NI", "NI"], + "conditions": { + "P": 101325, + "T": 1273, + "X_CU": [ + 0.047, + 0.101, + 0.155, + 0.201, + 0.250, + 0.299, + 0.358, + 0.400, + 0.454, + 0.507, + 0.556, + 0.603, + 0.655, + 0.703, + 0.757, + 0.806, + 0.858, + 0.905, + 0.931, + 0.956, + 0.981 + ] + }, + "output": "INTER_DIFF", + "values": [[[ + 1.546E-15, + 1.670E-15, + 2.046E-15, + 2.232E-15, + 2.276E-15, + 2.657E-15, + 3.319E-15, + 3.875E-15, + 4.567E-15, + 5.332E-15, + 6.285E-15, + 6.924E-15, + 8.904E-15, + 1.091E-14, + 1.458E-14, + 1.931E-14, + 2.762E-14, + 3.484E-14, + 3.989E-14, + 4.480E-14, + 4.840E-14 + ]]], + "reference": "Heumann1972" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/equilibrium/Dnkj_1273_Iijima1982.json b/examples/mobility_fitting/datasets/equilibrium/Dnkj_1273_Iijima1982.json new file mode 100644 index 0000000..942af52 --- /dev/null +++ b/examples/mobility_fitting/datasets/equilibrium/Dnkj_1273_Iijima1982.json @@ -0,0 +1,74 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "ref_el": ["CU"], + "dependent_el": ["NI", "NI"], + "conditions": { + "P": 101325, + "T": 1273, + "X_CU": [ + 0.098, + 0.128, + 0.162, + 0.209, + 0.245, + 0.277, + 0.316, + 0.358, + 0.402, + 0.420, + 0.461, + 0.470, + 0.514, + 0.530, + 0.577, + 0.623, + 0.649, + 0.683, + 0.706, + 0.744, + 0.768, + 0.798, + 0.827, + 0.845, + 0.857, + 0.878, + 0.917, + 0.926, + 0.949 + ] + }, + "output": "INTER_DIFF", + "values": [[[ + 1.787E-15, + 2.046E-15, + 1.875E-15, + 2.106E-15, + 1.931E-15, + 2.843E-15, + 2.298E-15, + 2.927E-15, + 3.351E-15, + 4.146E-15, + 3.986E-15, + 5.043E-15, + 5.215E-15, + 6.561E-15, + 7.547E-15, + 8.071E-15, + 1.068E-14, + 1.292E-14, + 1.598E-14, + 1.767E-14, + 2.211E-14, + 2.660E-14, + 3.025E-14, + 3.764E-14, + 4.735E-14, + 5.570E-14, + 5.923E-14, + 8.619E-14, + 9.804E-14 + ]]], + "reference": "Iijima1982" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Cu_Ghosh2001_D0.json b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Cu_Ghosh2001_D0.json new file mode 100644 index 0000000..e74074e --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Cu_Ghosh2001_D0.json @@ -0,0 +1,17 @@ +{ + "components": ["CU", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["CU", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_D0_CU", + "values": [[[4.89e-5]]], + "reference": "Ghosh2001" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Cu_Ghosh2001_Q.json b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Cu_Ghosh2001_Q.json new file mode 100644 index 0000000..281fef0 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Cu_Ghosh2001_Q.json @@ -0,0 +1,17 @@ +{ + "components": ["CU", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["CU", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_Q_CU", + "values": [[[205872]]], + "reference": "Ghosh2001" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Ni_Anand1965_D0.json b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Ni_Anand1965_D0.json new file mode 100644 index 0000000..4aeb4e2 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Ni_Anand1965_D0.json @@ -0,0 +1,17 @@ +{ + "components": ["NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["NI", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_D0_CU", + "values": [[[7.24e-5]]], + "reference": "Anand1965" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Ni_Anand1965_Q.json b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Ni_Anand1965_Q.json new file mode 100644 index 0000000..d6ba916 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_Ni_Anand1965_Q.json @@ -0,0 +1,17 @@ +{ + "components": ["NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["NI", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_Q_CU", + "values": [[[255224]]], + "reference": "Anand1965" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Anusavice1972_D0.json b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Anusavice1972_D0.json new file mode 100644 index 0000000..9f11781 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Anusavice1972_D0.json @@ -0,0 +1,29 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 +}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [ + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"] + ], + "sublattice_occupancies": [ + [[0.7173, 0.2827], 1], + [[0.8028, 0.1972], 1], + [[0.9008, 0.0992], 1] + ] +}, + "output": "TRACER_D0_CU", + "values": [[[ + 2.67e-5, + 1.63e-5, + 4.14e-5 + ]]], + "reference": "Anusavice1972" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Anusavice1972_Q.json b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Anusavice1972_Q.json new file mode 100644 index 0000000..646fed1 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Anusavice1972_Q.json @@ -0,0 +1,29 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 +}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [ + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"] + ], + "sublattice_occupancies": [ + [[0.7173, 0.2827], 1], + [[0.8028, 0.1972], 1], + [[0.9008, 0.0992], 1] + ] +}, + "output": "TRACER_Q_CU", + "values": [[[ + 215847, + 205847, + 210162 + ]]], + "reference": "Anusavice1972" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Monma1964_D0.json b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Monma1964_D0.json new file mode 100644 index 0000000..d5522db --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Monma1964_D0.json @@ -0,0 +1,29 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 +}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [ + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"] + ], + "sublattice_occupancies": [ + [[0.15, 0.85], 1], + [[0.50, 0.50], 1], + [[0.80, 0.20], 1] + ] +}, + "output": "TRACER_D0_CU", + "values": [[[ + 1.87e-4, + 2.16e-4, + 1.82e-4 + ]]], + "reference": "Monma1964" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Monma1964_Q.json b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Monma1964_Q.json new file mode 100644 index 0000000..114914a --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Cu_tracer/DCu_mix_Monma1964_Q.json @@ -0,0 +1,29 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 +}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [ + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"] + ], + "sublattice_occupancies": [ + [[0.15, 0.85], 1], + [[0.50, 0.50], 1], + [[0.80, 0.20], 1] + ] +}, + "output": "TRACER_Q_CU", + "values": [[[ + 265978, + 251502, + 230957 + ]]], + "reference": "Monma1964" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Cu_Anusavice1972_D0.json b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Cu_Anusavice1972_D0.json new file mode 100644 index 0000000..ef06fa2 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Cu_Anusavice1972_D0.json @@ -0,0 +1,17 @@ +{ + "components": ["CU", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["CU", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_D0_NI", + "values": [[[1.94e-4]]], + "reference": "Anusavice1972" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Cu_Anusavice1972_Q.json b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Cu_Anusavice1972_Q.json new file mode 100644 index 0000000..bc47756 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Cu_Anusavice1972_Q.json @@ -0,0 +1,17 @@ +{ + "components": ["CU", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["CU", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_Q_NI", + "values": [[[232826]]], + "reference": "Anusavice1972" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Ni_Bakker1968_D0.json b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Ni_Bakker1968_D0.json new file mode 100644 index 0000000..723c9de --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Ni_Bakker1968_D0.json @@ -0,0 +1,17 @@ +{ + "components": ["NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["NI", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_D0_NI", + "values": [[[1.78e-4]]], + "reference": "Bakker1968" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Ni_Bakker1968_Q.json b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Ni_Bakker1968_Q.json new file mode 100644 index 0000000..6b8a766 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_Ni_Bakker1968_Q.json @@ -0,0 +1,17 @@ +{ + "components": ["NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["NI", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_Q_NI", + "values": [[[285142]]], + "reference": "Bakker1968" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Anusavice1972_D0.json b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Anusavice1972_D0.json new file mode 100644 index 0000000..a850919 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Anusavice1972_D0.json @@ -0,0 +1,29 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 +}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [ + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"] + ], + "sublattice_occupancies": [ + [[0.7173, 0.2827], 1], + [[0.8028, 0.1972], 1], + [[0.9008, 0.0992], 1] + ] +}, + "output": "TRACER_D0_NI", + "values": [[[ + 3.80e-5, + 6.63e-6, + 2.07e-5 + ]]], + "reference": "Anusavice1972" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Anusavice1972_Q.json b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Anusavice1972_Q.json new file mode 100644 index 0000000..e5e325d --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Anusavice1972_Q.json @@ -0,0 +1,29 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 +}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [ + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"] + ], + "sublattice_occupancies": [ + [[0.7173, 0.2827], 1], + [[0.8028, 0.1972], 1], + [[0.9008, 0.0992], 1] + ] +}, + "output": "TRACER_Q_NI", + "values": [[[ + 220283, + 206225, + 222906 + ]]], + "reference": "Anusavice1972" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Monma1964_D0.json b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Monma1964_D0.json new file mode 100644 index 0000000..34bbbdf --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Monma1964_D0.json @@ -0,0 +1,29 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 +}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [ + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"] + ], + "sublattice_occupancies": [ + [[0.15, 0.85], 1], + [[0.50, 0.50], 1], + [[0.80, 0.20], 1] + ] +}, + "output": "TRACER_D0_NI", + "values": [[[ + 2.474e-3, + 1.935e-3, + 6.66e-6 + ]]], + "reference": "Monma1964" +} \ No newline at end of file diff --git a/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Monma1964_Q.json b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Monma1964_Q.json new file mode 100644 index 0000000..b6d5954 --- /dev/null +++ b/examples/mobility_fitting/datasets/non_equilibrium/Ni_tracer/DNi_mix_Monma1964_Q.json @@ -0,0 +1,29 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 1273 +}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [ + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"], + [["CU", "NI"], "VA"] + ], + "sublattice_occupancies": [ + [[0.15, 0.85], 1], + [[0.50, 0.50], 1], + [[0.80, 0.20], 1] + ] +}, + "output": "TRACER_Q_NI", + "values": [[[ + 309080, + 284997, + 207833 + ]]], + "reference": "Monma1964" +} \ No newline at end of file diff --git a/examples/mobility_fitting/phase_models.json b/examples/mobility_fitting/phase_models.json new file mode 100644 index 0000000..b363506 --- /dev/null +++ b/examples/mobility_fitting/phase_models.json @@ -0,0 +1,13 @@ +{ + "components": ["CU", "NI", "VA"], + "phases": { + "FCC_A1": { + "sublattice_model": [["CU", "NI"], ["VA"]], + "sublattice_site_ratios": [1, 1] + }, + "LIQUID": { + "sublattice_model": [["CU", "NI"]], + "sublattice_site_ratios": [1] + } + } +} \ No newline at end of file diff --git a/kawin/diffusion/Diffusion.py b/kawin/diffusion/Diffusion.py index 2048798..d46a992 100644 --- a/kawin/diffusion/Diffusion.py +++ b/kawin/diffusion/Diffusion.py @@ -204,8 +204,9 @@ def printHeader(self): print('Iteration\tSim Time (h)\tRun time (s)') def printStatus(self, iteration, modelTime, simTimeElapsed): + print('{}\t\t{:.3e}\t\t{:.1f}'.format(iteration, modelTime/3600, simTimeElapsed)) # Convert time to hours - super().printStatus(iteration, modelTime/3600, simTimeElapsed) + #super().printStatus(iteration, modelTime/3600, simTimeElapsed) def getCurrentX(self): return [self.data.currentY] @@ -262,4 +263,4 @@ def getCompositions(self, time = None): ''' u_flat = self.data.y(time) u_ext = expand_u_frac(u_flat, self.allElements, interstitials) - return u_to_x_frac(u_ext, self.allElements, interstitials) \ No newline at end of file + return u_to_x_frac(u_ext, self.allElements, interstitials) diff --git a/kawin/mobility_fitting/__init__.py b/kawin/mobility_fitting/__init__.py new file mode 100644 index 0000000..b7cfef3 --- /dev/null +++ b/kawin/mobility_fitting/__init__.py @@ -0,0 +1,3 @@ +from .generate import generate_mobility +from .template import MobilityTemplate, SiteFractionGenerator, EquilibriumSiteFractionGenerator, plot_prefactor, plot_activation_energy, transform_activation_energy, transform_prefactor +from .liquid_mobility import SuSpecies, LiuSpecies, generate_liquid_mobility_su, generate_liquid_mobility_liu \ No newline at end of file diff --git a/kawin/mobility_fitting/error_functions/__init__.py b/kawin/mobility_fitting/error_functions/__init__.py new file mode 100644 index 0000000..4ee03a6 --- /dev/null +++ b/kawin/mobility_fitting/error_functions/__init__.py @@ -0,0 +1,2 @@ +from .non_equilibrium_mobility_error import NonEquilibriumMobilityResidual +from .equilibrium_mobility_error import EquilibriumMobilityResidual \ No newline at end of file diff --git a/kawin/mobility_fitting/error_functions/equilibrium_mobility_error.py b/kawin/mobility_fitting/error_functions/equilibrium_mobility_error.py new file mode 100644 index 0000000..1cb79c3 --- /dev/null +++ b/kawin/mobility_fitting/error_functions/equilibrium_mobility_error.py @@ -0,0 +1,258 @@ +""" +Calculate error due to interdiffusivity, tracer diffusivity, activation energy and diffusion prefactor +based off equilibrium +""" +import logging +from collections import OrderedDict, namedtuple +from typing import Dict, List, Optional, Union, Sequence + +from itertools import product +import numpy as np +from scipy.stats import norm +import tinydb + +from pycalphad import Database, variables as v +from pycalphad.core.utils import filter_phases, unpack_species, unpack_condition, extract_parameters + +from espei.phase_models import PhaseModelSpecification +from espei.typing import SymbolName +from espei.utils import PickleableTinyDB, database_symbols_to_fit +from espei.error_functions.residual_base import ResidualFunction, residual_function_registry + +from kawin.thermo.LocalEquilibrium import local_equilibrium +from kawin.thermo.FreeEnergyHessian import partialdMudX +from kawin.thermo.Mobility import interstitials + +#import kawin.mobility_fitting.error_functions.cached_mobility as cmob +from kawin.thermo.Mobility import mobility_from_dof_phase_record, mobility_matrix_from_dof, chemical_diffusivity_from_mob, interdiffusivity_from_Dkj, prefactor_from_dof_phase_record, activation_energy_from_dof_phase_record, tracer_diffusivity_from_mobility +from kawin.mobility_fitting.error_functions.utils import get_output_base_name, get_base_names, build_model, get_base_std + +_log = logging.getLogger(__name__) + +CachedCS = namedtuple("CachedCS", ["elements", "temperature", "dof", "x", "dmudx"]) + +class EquilibriumMobilityData: + """ + Stores internal values for each dataset needed to compute output + """ + def __init__(self, dbf, data, parameters = None, data_weight_dict = None): + self.parameters = parameters if parameters is not None else {} + self.parameter_keys = [p for p in self.parameters] + self.data_weight_dict = data_weight_dict if data_weight_dict is not None else {} + self.output = get_output_base_name(data['output']) + self.reference = data.get('reference', '') + + pot_conds = OrderedDict([(getattr(v, key), unpack_condition(data['conditions'][key])) for key in sorted(data['conditions'].keys()) if not key.startswith('X_')]) + comp_conds = OrderedDict([(v.X(key[2:]), unpack_condition(data['conditions'][key])) for key in sorted(data['conditions'].keys()) if key.startswith('X_')]) + rav_comp_conds = [OrderedDict(zip(comp_conds.keys(), pt_comps)) for pt_comps in zip(*comp_conds.values())] + + self.comps = data['components'] + self.elements = sorted(list(set([v.Species(c).name for c in self.comps]))) + self.non_va_elements = sorted(list(set(self.elements) - set(['VA']))) + self.phases = data['phases'] + self.refComp = data.get('ref_el', None) + if self.refComp is None and 'TRACER' in data['output']: + self.refComp = [data['output'][len(self.output)+1:]] + self.depComps = data.get('dependent_el', []) + self.vacancyPoor = data.get('vacancy_poor_interstitial_sublattice', False) + + #Set diffusing species - this is necessary for tracer data of a component at the limit of X->0 + # in which case, the dataset will not include the component when building the model + self.diffusing_species = sorted(list(set(self.refComp) | set(self.depComps) | set(self.elements) - set(['VA']))) + self.models, self.phase_records, self.mob_models, self.mob_phase_records = build_model(dbf, self.elements, self.phases[0], parameters, self.diffusing_species) + self.mobility_correction = {c:1 for c in self.non_va_elements} + + self.conditions = {} + for c in data['conditions']: + condList = unpack_condition(data['conditions'][c]) + if 'X_' not in c: + self.conditions[getattr(v,c)] = condList + self.conditions['composition'] = rav_comp_conds + + self.values = np.array(data['values']) + self._compute_cached_equilibrium(dbf) + + total_num_calculations = len(rav_comp_conds)*np.prod([len(vals) for vals in pot_conds.values()]) + dataset_weights = np.array(data.get('weight', 1.0)) * np.ones(total_num_calculations) + property_std_deviation = get_base_std() + self.weights = (property_std_deviation.get(self.output, 1.0)/data_weight_dict.get(self.output, 1.0)/dataset_weights).flatten() + + def _compute_cached_equilibrium(self, dbf): + """ + Computes local equilibrium at each condition and stores results + This is to avoid computing equilibrium every time the log probability is calculated + + NOTE: this is only valid if the thermodynamic parameters are fixed + TODO: add option to disable this in case the user wants to fit both thermodynamic and mobility parameters (why?) + + Cached data includes: non-vacant elements, temperature, internal degrees of freedom, composition and chemical potential gradient + """ + self.cache = {} + + keys, values = zip(*self.conditions.items()) + allConds = [dict(zip(keys,p)) for p in product(*values)] + + for i in range(len(allConds)): + inds = np.array([self.conditions[k].index(val) for k,val in allConds[i].items()], dtype=np.int32) + + currConds = {v.N: 1, v.GE: 0, v.P: allConds[i][v.P], v.T: allConds[i][v.T]} + for c in allConds[i]['composition']: + currConds[c] = allConds[i]['composition'][c] + + #Grab data from global cache + result, cs = local_equilibrium(dbf, self.elements, self.phases, currConds, self.models, self.phase_records) + self.cache[tuple(inds)] = CachedCS(elements=list(cs[0].phase_record.nonvacant_elements), + temperature=cs[0].dof[cs[0].phase_record.state_variables.index(v.T)], + dof=np.array(cs[0].dof), + x=np.array(cs[0].X), + dmudx=partialdMudX(result.chemical_potentials, cs[0])) + +def get_mob_data(dbf: Database, comps: Sequence[str], phases: Sequence[str], datasets: PickleableTinyDB, parameters: Dict[str, float], data_weight_dict: Optional[Dict[str, float]] = None): + ''' + Return the ZPF data used in the calculation of ZPF error + + Parameters + ---------- + comps : list + List of active component names + phases : list + List of phases to consider + datasets : espei.utils.PickleableTinyDB + Datasets that contain single phase data + parameters : dict + Dictionary mapping symbols to optimize to their initial values + model : Optional[Dict[str, Type[Model]]] + Dictionary phase names to pycalphad Model classes. + + Returns + ------- + list + List of data dictionaries with keys ``weight``, ``phase_regions`` and ``dataset_references``. + ''' + base_names = get_base_names() + desired_data = datasets.search((tinydb.where('output').test(lambda x: get_output_base_name(x) in base_names)) & + (tinydb.where('components').test(lambda x: set(x).issubset(comps))) & + (tinydb.where('phases').test(lambda x: len(set(phases).intersection(x)) > 0)) & + (~tinydb.where('solver').exists())) + + mod_data = [] + for data in desired_data: + mod_data.append(EquilibriumMobilityData(dbf, data, parameters, data_weight_dict)) + return mod_data + +def calc_mob_differences(data : EquilibriumMobilityData, parameters : np.ndarray): + diffs, wts = [], [] + paramDict = {data.parameter_keys[i] : parameters[i] for i in range(len(data.parameter_keys))} + + #Update phase record parameters + param_keys, param_values = extract_parameters(paramDict) + for p in data.phases: + data.phase_records[p].parameters[:] = np.asarray(param_values, dtype=np.float64) + + keys, values = zip(*data.conditions.items()) + allConds = [dict(zip(keys,p)) for p in product(*values)] + for i in range(len(allConds)): + inds = np.array([data.conditions[k].index(val) for k,val in allConds[i].items()], dtype=np.int32) + value = data.values[tuple(inds)] + cs_data = data.cache[tuple(inds)] + + #Compute mobility from cached equilibrium data + # For interdiffusivity, we want mobilities of the composition set elements + # For tracer diffusivity, we want mobilities of the reference element + if data.output == 'INTER_DIFF': + mob_from_CS = mobility_from_dof_phase_record(cs_data.dof, data.mob_phase_records, data.phases[0], cs_data.elements, paramDict) + else: + mob_from_CS = mobility_from_dof_phase_record(cs_data.dof, data.mob_phase_records, data.phases[0], [data.refComp[0]], paramDict) + + #NOTE: for interdiffusivity, tracer diffusivity and prefactor, we multiply by the sign of the value + # This is for cases if the computed and desired values are of different signs + # and taking the log of the absolute value will remove this possible difference + # + # 1) In reality, tracer diffusivity and prefactor should always be positive, so + # this may not be necessary + # 2) If the desired interdiffusivity correctly accounts for potential miscibility gaps + # that exists in the database, then the sign of the calculated and desired interdiffusivity + # should be the same + if data.output == 'INTER_DIFF': + mobMatrix = mobility_matrix_from_dof(cs_data.dof, cs_data.x, cs_data.elements, mob_from_CS, data.phase_records[data.phases[0]], data.vacancyPoor) + cd, _ = chemical_diffusivity_from_mob(cs_data.dmudx, mobMatrix) + + depComp1 = data.non_va_elements.index(data.depComps[0]) + depComp2 = data.non_va_elements.index(data.depComps[1]) + refIndex = data.non_va_elements.index(data.refComp[0]) + + if data.depComps[1] in interstitials: + D = cd[depComp1, depComp2] + else: + D = cd[depComp1, depComp2] - cd[depComp1, refIndex] + diffs.append((np.sign(D)*np.log10(np.abs(D)) - np.sign(value)*np.log10(np.abs(value)))) + + elif data.output == 'TRACER_DIFF': + tracer_diff = tracer_diffusivity_from_mobility(cs_data.temperature, mob_from_CS) + D = tracer_diff[0] + diffs.append((np.sign(D)*np.log10(np.abs(D)) - np.sign(value)*np.log10(np.abs(value)))) + + elif data.output == 'TRACER_D0': + D0 = prefactor_from_dof_phase_record(cs_data.dof, data.mob_phase_records, data.phases[0], [data.refComp[0]], paramDict)[0] + D = np.exp(D0) + diffs.append((np.sign(D)*np.log10(np.abs(D)) - np.sign(value)*np.log10(np.abs(value)))) + + elif data.output == 'TRACER_Q': + Q = activation_energy_from_dof_phase_record(cs_data.dof, data.mob_phase_records, data.phases[0], [data.refComp[0]], paramDict)[0] + diffs.append(Q - value) + + wts.append(data.weights[i]) + + _log.debug('Output: %s differences: %s, weights: %s, reference: %s', data.output, diffs, wts, data.reference) + + return diffs, wts + +def calculate_mob_probability(mob_data : Sequence[EquilibriumMobilityData], parameters : np.ndarray) -> float: + prob_error = 0.0 + for data in mob_data: + diffs, wts = calc_mob_differences(data, parameters) + if np.any(np.isinf(diffs) | np.isnan(diffs)): + return -np.inf + prob_error += np.sum(norm(loc=0.0, scale=wts).logpdf(diffs)) + return prob_error + +class EquilibriumMobilityResidual(ResidualFunction): + def __init__( + self, + database: Database, + datasets: PickleableTinyDB, + phase_models: Union[PhaseModelSpecification, None], + symbols_to_fit: Optional[List[SymbolName]] = None, + weight: Optional[Dict[str, float]] = None, + ): + super().__init__(database, datasets, phase_models, symbols_to_fit) + if weight is not None: + weight = {name: weight.get(name, 1.0) for name in get_base_names()} + else: + weight = {name: 1.0 for name in get_base_names()} + if phase_models is not None: + comps = sorted(phase_models.components) + else: + comps = sorted(database.elements) + phases = sorted(filter_phases(database, unpack_species(database, comps), database.phases.keys())) + if symbols_to_fit is None: + symbols_to_fit = database_symbols_to_fit(database) + # okay if parameters are initialized to zero, we only need the symbol names + parameters = dict(zip(symbols_to_fit, [0]*len(symbols_to_fit))) + + self.mob_data = get_mob_data(database, comps, phases, datasets, parameters, weight) + + def get_residuals(self, parameters) -> tuple[list[float], list[float]]: + residuals = [] + weights = [] + for data in self.mob_data: + diffs, wts = calc_mob_differences(data, parameters) + residuals.append(diffs) + weights.append(wts) + return np.concatenate(residuals, axis=0), np.concatenate(weights, axis=0) + + def get_likelihood(self, parameters): + likelihood = calculate_mob_probability(self.mob_data, parameters) + return likelihood + +residual_function_registry.register(EquilibriumMobilityResidual) diff --git a/kawin/mobility_fitting/error_functions/non_equilibrium_mobility_error.py b/kawin/mobility_fitting/error_functions/non_equilibrium_mobility_error.py new file mode 100644 index 0000000..09e670d --- /dev/null +++ b/kawin/mobility_fitting/error_functions/non_equilibrium_mobility_error.py @@ -0,0 +1,211 @@ +""" +Calculate error due to tracer diffusivity, activation energy and diffusion prefactor +based off constituent site-fraction data +""" +import logging +from typing import Dict, List, Optional, Union, Sequence + +import numpy as np +from scipy.stats import norm +import tinydb + +from pycalphad import Database, variables as v +from pycalphad.core.utils import unpack_species, filter_phases, extract_parameters + +from espei.core_utils import ravel_conditions +from espei.phase_models import PhaseModelSpecification +from espei.typing import SymbolName +from espei.utils import database_symbols_to_fit, PickleableTinyDB +from espei.error_functions.residual_base import ResidualFunction, residual_function_registry +from espei.error_functions.non_equilibrium_thermochemical_error import calculate_points_array + +#import kawin.mobility_fitting.error_functions.cached_mobility as cmob +from kawin.thermo.Mobility import mobility_from_dof_phase_record, prefactor_from_dof_phase_record, activation_energy_from_dof_phase_record, tracer_diffusivity_from_mobility +from kawin.mobility_fitting.error_functions.utils import get_output_base_name, get_base_names, build_model, get_base_std + +_log = logging.getLogger(__name__) + +class NonEquilibriumMobilityData: + """ + Stores internal values for each dataset needed to compute output + """ + def __init__(self, dbf, data, parameters = None, data_weight_dict = None): + self.parameters = parameters if parameters is not None else {} + self.parameter_keys = [p for p in self.parameters] + self.data_weight_dict = data_weight_dict if data_weight_dict is not None else {} + self.output = get_output_base_name(data['output']) + self.reference = data.get('reference', '') + + self.comps = data['components'] + self.elements = sorted(list(set([v.Species(c).name for c in self.comps]))) + self.non_va_elements = sorted(list(set(self.elements) - set(['VA']))) + self.phases = data['phases'] + self.refComp = data.get('ref_el', None) + if self.refComp is None and 'TRACER' in data['output']: + self.refComp = [data['output'][len(self.output)+1:]] + self.depComps = data.get('dependent_el', []) + + #Set diffusing species - this is necessary for tracer data of a component at the limit of X->0 + # in which case, the dataset will not include the component when building the model + #TODO: check if we only need refComp for the diffusing species + self.diffusing_species = sorted(list(set(self.refComp) | set(self.depComps) | set(self.elements) - set(['VA']))) + self.models, self.phase_records, self.mob_models, self.mob_phase_records = build_model(dbf, self.elements, self.phases[0], parameters, self.diffusing_species) + self.mobility_correction = {c:1 for c in self.non_va_elements} + + self._processConditions(data) + + dataset_weights = np.array(data.get('weight', 1.0)) * np.ones(len(self.values)) + property_std_deviation = get_base_std() + self.weights = (property_std_deviation.get(self.output, 1.0)/data_weight_dict.get(self.output, 1.0)/dataset_weights).flatten() + + def _processConditions(self, data): + """ + Creates flat list of T, P, X (points) and values + """ + T = data['conditions']['T'] + P = data['conditions']['P'] + values = np.array(data['values']) + self.values = values.flatten() + self.P, self.T = ravel_conditions(values, P, T) + + sub_conf = data['solver']['sublattice_configurations'] + sub_occ = data['solver']['sublattice_occupancies'] + phase_cons = [[c.name for c in sorted(s)] for s in self.models[self.phases[0]].constituents] + single_points = np.array([calculate_points_array(phase_cons, conf, occ) for conf, occ in zip(sub_conf, sub_occ)]) + self.points = np.tile(single_points, (values.shape[0]*values.shape[1], 1)) + +def get_mob_data(dbf: Database, comps: Sequence[str], phases: Sequence[str], datasets: PickleableTinyDB, parameters: Dict[str, float], data_weight_dict: Optional[Dict[str, float]] = None): + ''' + Return the ZPF data used in the calculation of ZPF error + + Parameters + ---------- + comps : list + List of active component names + phases : list + List of phases to consider + datasets : espei.utils.PickleableTinyDB + Datasets that contain single phase data + parameters : dict + Dictionary mapping symbols to optimize to their initial values + model : Optional[Dict[str, Type[Model]]] + Dictionary phase names to pycalphad Model classes. + + Returns + ------- + list + List of data dictionaries with keys ``weight``, ``phase_regions`` and ``dataset_references``. + ''' + base_names = get_base_names() + #Don't support interdiffusivity for now + #I suppose it is possible to support it by computing composition from + # the site fractions and computing it similar to equilibrium mobility error, + # but I feel like you may as well set the dataset to be an equilibrium data at + # that point + #Does interdiffusivity even make sense to have a value at a specific sublattice configuration? + base_names = list(set(base_names) - set(['INTER_DIFF'])) + desired_data = datasets.search((tinydb.where('output').test(lambda x: get_output_base_name(x) in base_names)) & + (tinydb.where('components').test(lambda x: set(x).issubset(comps))) & + (tinydb.where('phases').test(lambda x: len(set(phases).intersection(x)) > 0)) & + (tinydb.where('solver').exists())) + + mob_data = [] + for data in desired_data: + mob_data.append(NonEquilibriumMobilityData(dbf, data, parameters, data_weight_dict)) + return mob_data + +def calc_mob_differences(data : NonEquilibriumMobilityData, parameters : np.ndarray): + diffs, wts = [], [] + paramDict = {data.parameter_keys[i] : parameters[i] for i in range(len(data.parameter_keys))} + + #Update phase record parameters + param_keys, param_values = extract_parameters(paramDict) + for p in data.phases: + data.phase_records[p].parameters[:] = np.asarray(param_values, dtype=np.float64) + + state_variables = sorted([v.T, v.P, v.N, v.GE], key=str) + for i in range(len(data.values)): + #Internal degrees of freedom (we include v.GE here to be compatible with kawin) + dof = np.zeros(4 + len(data.mob_models[data.phases[0]].site_fractions)) + dof[state_variables.index(v.T)] = data.T[i] + dof[state_variables.index(v.P)] = data.P[i] + dof[state_variables.index(v.N)] = 1 + dof[4:] = data.points[i] + value = data.values[i] + + #NOTE: for tracer diffusivity and prefactor, we multiply by the sign of the value + # This is for cases if the computed and desired values are of different signs + # and taking the log of the absolute value will remove this possible difference + # In reality, tracer diffusivity and prefactor should always be positive, so + # this may not be necessary + if data.output == 'TRACER_DIFF': + mob_from_CS = mobility_from_dof_phase_record(dof, data.mob_phase_records, data.phases[0], [data.refComp[0]], paramDict)[0] + r = tracer_diffusivity_from_mobility(data.T[i], mob_from_CS) + r = np.sign(r) * np.log10(np.abs(r)) + value = np.sign(value) * np.log10(np.abs(value)) + + elif data.output == 'TRACER_Q': + r = activation_energy_from_dof_phase_record(dof, data.mob_phase_records, data.phases[0], [data.refComp[0]], paramDict)[0] + + elif data.output == 'TRACER_D0': + r = prefactor_from_dof_phase_record(dof, data.mob_phase_records, data.phases[0], [data.refComp[0]], paramDict)[0] + r = np.exp(r) + r = np.sign(r) * np.log10(r) + value = np.sign(value) * np.log10(np.abs(value)) + + diffs.append(r - value) + wts.append(data.weights[i]) + + _log.debug('Output: %s differences: %s, weights: %s, reference: %s', data.output, diffs, wts, data.reference) + + return diffs, wts + +def calculate_mob_probability(mob_data : Sequence[NonEquilibriumMobilityData], parameters : np.ndarray) -> float: + prob_error = 0.0 + for data in mob_data: + diffs, wts = calc_mob_differences(data, parameters) + if np.any(np.isinf(diffs) | np.isnan(diffs)): + return -np.inf + prob_error += np.sum(norm(loc=0.0, scale=wts).logpdf(diffs)) + return prob_error + +class NonEquilibriumMobilityResidual(ResidualFunction): + def __init__( + self, + database: Database, + datasets: PickleableTinyDB, + phase_models: Union[PhaseModelSpecification, None], + symbols_to_fit: Optional[List[SymbolName]] = None, + weight: Optional[Dict[str, float]] = None, + ): + super().__init__(database, datasets, phase_models, symbols_to_fit) + if weight is not None: + weight = {name: weight.get(name, 1.0) for name in get_base_names()} + else: + weight = {name: 1.0 for name in get_base_names()} + if phase_models is not None: + comps = sorted(phase_models.components) + else: + comps = sorted(database.elements) + phases = sorted(filter_phases(database, unpack_species(database, comps), database.phases.keys())) + if symbols_to_fit is None: + symbols_to_fit = database_symbols_to_fit(database) + # okay if parameters are initialized to zero, we only need the symbol names + parameters = dict(zip(symbols_to_fit, [0]*len(symbols_to_fit))) + + self.mob_data = get_mob_data(database, comps, phases, datasets, parameters, weight) + + def get_residuals(self, parameters) -> tuple[list[float], list[float]]: + residuals = [] + weights = [] + for data in self.mob_data: + diffs, wts = calc_mob_differences(data, parameters) + residuals.append(diffs) + weights.append(wts) + return np.concatenate(residuals, axis=0), np.concatenate(weights, axis=0) + + def get_likelihood(self, parameters) -> float: + likelihood = calculate_mob_probability(self.mob_data, parameters) + return likelihood + +residual_function_registry.register(NonEquilibriumMobilityResidual) diff --git a/kawin/mobility_fitting/error_functions/utils.py b/kawin/mobility_fitting/error_functions/utils.py new file mode 100644 index 0000000..959b0f8 --- /dev/null +++ b/kawin/mobility_fitting/error_functions/utils.py @@ -0,0 +1,39 @@ +from pycalphad import Model, variables as v +from pycalphad.codegen.phase_record_factory import PhaseRecordFactory +from pycalphad.core.utils import extract_parameters + +from kawin.thermo.Mobility import MobilityModel + +def get_output_base_name(output_name): + base_names = get_base_names() + for bn in base_names: + if bn in output_name: + return bn + +def get_base_names(): + return ['INTER_DIFF', 'TRACER_DIFF', 'TRACER_D0', 'TRACER_Q'] + +def get_base_std(): + return { + 'INTER_DIFF': 0.1, # decade + 'TRACER_D0': 0.1, # decade + 'TRACER_DIFF': 0.1, # decade + 'TRACER_Q': 10000, # J/mol + } + +def build_model(db, elements, phase, parameters, diffusing_species): + param_keys, _ = extract_parameters(parameters) + model = {phase: Model(db, elements, phase, parameters=param_keys)} + + #Include v.GE to be compatible with kawin + #TODO: this may not be necessary since v.GE is only added if the model + # is built in the GeneralThermodynamics module + model[phase].state_variables = sorted([v.T, v.P, v.N, v.GE], key=str) + prf = PhaseRecordFactory(db, elements, model[phase].state_variables, model, parameters=parameters) + + mob_model = {phase: MobilityModel(db, elements, phase, parameters=param_keys)} + mob_model[phase].state_variables = sorted([v.T, v.P, v.N, v.GE], key=str) + mob_model[phase].set_diffusing_species(db, diffusing_species) + mob_prf = PhaseRecordFactory(db, elements, mob_model[phase].state_variables, mob_model, parameters=parameters) + + return model, prf, mob_model, mob_prf \ No newline at end of file diff --git a/kawin/mobility_fitting/fitting_steps.py b/kawin/mobility_fitting/fitting_steps.py new file mode 100644 index 0000000..757b061 --- /dev/null +++ b/kawin/mobility_fitting/fitting_steps.py @@ -0,0 +1,164 @@ +''' +Fitting steps for Mobility models from tracer diffusivity data + +Tracer diffusivity can be defined as D* = D0*exp(-Q/RT) + Where D0 is a pre-factor term (m/s^2) and Q is the activation energy (J/mol) + +Mobility is related to tracer diffusivity by: + D* = RTM = RT*(1/RT exp(MQ/RT)) = exp(MQ/RT) + Where MQ is a Redlich-Kister polynomial + +Option 1: Fit mobility to activation energy and pre-factor + D* = D0 exp(-Q/RT) = exp(MQ/RT) + ln(D0) + -Q/RT = MQ/RT + RT ln(D0) - Q = MQ + + Then: + R ln(D0) = dMQ/dT + -Q = MQ - T dMQ/dT + + Some pre-processing of tracer diffusivity data is required to have input files for both + activation energy and the pre-factor term, but this gives a better model fit + +Option 2: Fit mobility directly to tracer diffusivity + D* = exp(MQ/RT) + RT ln(D*) = MQ + + Then we could fit MQ as a linear model where each RK term is in the form of A+B*T + NOTE: This method is not recommended since it can lead to overfitting +''' +import itertools +from typing import Optional, Dict, Any, List + +import numpy as np +from numpy.typing import ArrayLike +import symengine + +from pycalphad import Model, variables as v +from espei.parameter_selection.fitting_steps import AbstractLinearPropertyStep, FittingStep +from espei.utils import build_sitefractions + +Dataset = Dict[str, Any] + +class StepD0(FittingStep): + supported_reference_states: List[str] = [""] + features: List[symengine.Expr] = [v.T] + + @staticmethod + def transform_data(d: ArrayLike, model: Optional[Model] = None) -> ArrayLike: # np.object_ + return np.array([symengine.log(di)*v.R for di in d]) + + @classmethod + def transform_feature(cls, expr: symengine.Expr, model: Optional[Model] = None) -> symengine.Expr: + # Fitting to R ln(D0) = dMQ/dT + return symengine.diff(expr, v.T) + + @classmethod + def shift_reference_state(cls, desired_data: List[Dataset], fixed_model: Model, mole_atoms_per_mole_formula_unit: symengine.Expr) -> ArrayLike: # np.object_ + """ + Shift _MIX or _FORM data to a common reference state in per mole-atom units. + + Parameters + ---------- + desired_data : List[Dict[str, Any]] + ESPEI single phase dataset + fixed_model : pycalphad.Model + Model with all lower order (in composition) terms already fit. Pure + element reference state (GHSER functions) should be set to zero. + mole_atoms_per_mole_formula_unit : float + Number of moles of atoms in every mole atom unit. + + Returns + ------- + np.ndarray + Data for this feature in [qty]/mole-formula in a common reference state. + + Raises + ------ + ValueError + + Notes + ----- + pycalphad Model parameters are stored as per mole-formula quantites, but + the calculated properties and our data are all in [qty]/mole-atoms. We + multiply by mole-atoms/mole-formula to convert the units to + [qty]/mole-formula. + + """ + total_response = [] + for dataset in desired_data: + values = np.asarray(dataset['values'], dtype=np.object_)*mole_atoms_per_mole_formula_unit + unique_excluded_contributions = set(dataset.get('excluded_model_contributions', [])) + for config_idx in range(len(dataset['solver']['sublattice_configurations'])): + occupancy = dataset['solver'].get('sublattice_occupancies', None) + if dataset['output'].endswith('_FORM'): + # we don't shift the reference state because we assume our + # models are already in the formation reference state (by us + # setting GHSERXX functions to zero explictly) + pass + elif dataset['output'].endswith('_MIX'): + if occupancy is None: + raise ValueError('Cannot have a _MIX property without sublattice occupancies.') + else: + values[..., config_idx] += cls.transform_feature(fixed_model.models['ref'])*mole_atoms_per_mole_formula_unit + else: + #raise ValueError(f'Unknown property to shift: {dataset["output"]}') + pass + for excluded_contrib in unique_excluded_contributions: + values[..., config_idx] += cls.transform_feature(fixed_model.models[excluded_contrib])*mole_atoms_per_mole_formula_unit + total_response.append(values.flatten()) + return total_response + + @classmethod + def get_response_vector(cls, fixed_model: Model, fixed_portions: List[symengine.Basic], data: List[Dataset], sample_condition_dicts: list[dict[str, Any]]) -> ArrayLike: # np.float64 + mole_atoms_per_mole_formula_unit = fixed_model._site_ratio_normalization + # Define site fraction symbols that will be reused + phase_name = fixed_model.phase_name + + # Construct flattened list of site fractions corresponding to the ravelled data (from shift_reference_state) + site_fractions = [] + for ds in data: + for _ in ds['conditions']['T']: + sf = build_sitefractions(phase_name, ds['solver']['sublattice_configurations'], ds['solver'].get('sublattice_occupancies', np.ones((len(ds['solver']['sublattice_configurations']), len(ds['solver']['sublattice_configurations'][0])), dtype=np.float64))) + site_fractions.append(sf) + site_fractions = list(itertools.chain(*site_fractions)) + + #data_qtys = np.concatenate(cls.shift_reference_state(data, fixed_model, mole_atoms_per_mole_formula_unit), axis=-1) + data_qtys = np.concatenate(cls.shift_reference_state(data, fixed_model, 1), axis=-1) + data_qtys = cls.transform_data(data_qtys, fixed_model) + # Remove existing partial model contributions from the data, convert to per mole-formula units + data_qtys = data_qtys - cls.transform_feature(getattr(fixed_model, cls.parameter_name))*mole_atoms_per_mole_formula_unit + # Subtract out high-order (in T) parameters we've already fit, already in per mole-formula units + data_qtys = data_qtys - cls.transform_feature(sum(fixed_portions)) + # If any site fractions show up in our rhs that aren't in these + # datasets' site fractions, set them to zero. This can happen if we're + # fitting a multi-component model that has site fractions from + # components that aren't in a particular dataset + for sf, i, cond_dict in zip(site_fractions, data_qtys, sample_condition_dicts): + missing_variables = symengine.S(i).atoms(v.SiteFraction) - set(sf.keys()) + sf.update({x: 0. for x in missing_variables}) + sf.update(cond_dict) + # also replace with database symbols in case we did higher order fitting + data_qtys = [fixed_model.symbol_replace(symengine.S(i).xreplace(sf), fixed_model._symbols).evalf() for i, sf in zip(data_qtys, site_fractions)] + data_qtys = np.asarray(data_qtys, dtype=np.float64) + return data_qtys + +class StepQ(StepD0): + features: List[symengine.Expr] = [symengine.S.One] + + @staticmethod + def transform_data(d: ArrayLike, model: Optional[Model] = None) -> ArrayLike: # np.object_ + return np.array([-di for di in d]) + + @classmethod + def transform_feature(cls, expr: symengine.Expr, model: Optional[Model] = None) -> symengine.Expr: + # Fitting to -Q = MQ - T dMQ/dT + return expr - v.T*symengine.diff(expr, v.T) + +class StepTracerDiffusivity(AbstractLinearPropertyStep): + features: List[symengine.Expr] = [symengine.S.One, v.T] + + @staticmethod + def transform_data(d: ArrayLike, model: Optional[Model] = None) -> ArrayLike: # np.object_ + # D* = exp(MQ/RT) -> RT D* = MQ + return np.array([symengine.log(di)*v.R*v.T for di in d]) \ No newline at end of file diff --git a/kawin/mobility_fitting/generate.py b/kawin/mobility_fitting/generate.py new file mode 100644 index 0000000..0abaf01 --- /dev/null +++ b/kawin/mobility_fitting/generate.py @@ -0,0 +1,135 @@ +import json + +from tinydb import where + +import pycalphad +from pycalphad import Database +from espei.datasets import load_datasets, recursive_glob +from espei.paramselect import generate_parameters +from espei.parameter_selection.fitting_descriptions import ModelFittingDescription + +from kawin.mobility_fitting.fitting_steps import StepQ, StepD0, StepTracerDiffusivity +from kawin.thermo.Mobility import MobilityModel + +def add_mobility_keywords(elements): + ''' + Adds MQ_el keywords to the pycalphad tdb keyword list + + Custom fitting in espei doesn't support diffusing species yet so as a workaround, + we could fit to terms of MQ_el where el is the diffusing species, then rewrite + the database to replace MQ_el terms with MQ(Phase&el,...) + + In order to do this, pycalphad will need to be able to recognize that MQ_el is a valid + keyword in the tdb file + + Parameters + ---------- + elements : [str] + List of diffusing species to fit mobility models to + + Returns + ------- + aliases : {str: str} + Maps tdb keyword (MQ_el) to element (el) + ''' + aliases = [] + for e in elements: + aliases.append('MQ_{}'.format(e)) + pycalphad.io.tdb_keywords.TDB_PARAM_TYPES.append(aliases[-1]) + return aliases + +def rewrite_mobility_terms(dbf, mob_aliases): + ''' + Rewrites the database to replace MQ_el with MQ(Phase&el,...) + + Parameters + ---------- + db_name : str + Name of thermodynamic database + mob_aliases : {str: str} + Maps tdb keyword (MQ_el) to element (el) + ''' + for p in dbf._parameters: + if p['parameter_type'] in mob_aliases: + ptype = p['parameter_type'] + index = ptype.index('_') + diff_species = ptype[index+1:] + cons_array = tuple(tuple(s.name for s in xs) for xs in p['constituent_array']) + dbf.add_parameter( + 'MQ', p['phase_name'], cons_array, + p['parameter_order'], p['parameter'], + ref=p['reference'], diffusing_species = diff_species) + + for m in mob_aliases: + dbf._parameters.remove(where('parameter_type') == m) + +def setup_mobility_fitting_description(diffusing_species, fit_to_tracer = False): + ''' + Defines custom classes for diffusion prefactor, activation energy and tracer diffusivity + and add to the global mobility_fitting_description + + Parameters + ---------- + diffusing_species : [str] + List of elements to fit mobility models to + fit_to_tracer : bool + If False, will fit to datasets of activation energy and pre-factor terms + If True, will fit to tracer diffusivity directly + Not recommended due to overfitting. It is better to convert the + tracer diffusivity to activation energy and pre-factor terms and fit + to those values instead + ''' + steps = [] + for e in diffusing_species: + if fit_to_tracer: + Dstar = type(f'Tracer_{e}', (StepTracerDiffusivity,), {'parameter_name': f'MQ_{e}', 'data_types_read': f'TRACER_DIFF_{e}'}) + steps.append(Dstar) + else: + D0 = type(f'D0_{e}', (StepD0,), {'parameter_name': f'MQ_{e}', 'data_types_read': f'TRACER_D0_{e}'}) + Q = type(f'Q_{e}', (StepQ,), {'parameter_name': f'MQ_{e}', 'data_types_read': f'TRACER_Q_{e}'}) + steps += [D0, Q] + return ModelFittingDescription(steps, model=MobilityModel) + +def generate_mobility(phase_models, datasets, diffusing_species = None, ridge_alpha=None, aicc_penalty_factor=None, dbf=None, fit_to_tracer=False): + ''' + Wrapper around run_espei to do the following: + 1. Find components to fit mobility to + 2. Add 'MQ_el' keywords into pycalphad tdb_keyword list + 3. Set up mobility fitting description + 4. Run espei + 5. Rewrite generated database to replace 'MQ_el' with 'MQ(ph&el)' + + Parameters + ---------- + input_settings : dict + Input dictionary used for an espei assessment + ''' + # If phase models is a file, then load it in + if isinstance(phase_models, str): + with open(phase_models, 'r') as f: + phase_models = json.load(f) + + # If datasets is a folder, then load it in + if isinstance(datasets, str): + datasets = load_datasets(sorted(recursive_glob(datasets, '*.json'))) + + # Get non-VA components + components = sorted(list(set(phase_models['components']) - set(['VA']))) + + # If no diffusing species, then assume same as components + if diffusing_species is None: + diffusing_species = components + + # Get mobility fitting description + mobility_fitting_description = setup_mobility_fitting_description(diffusing_species, fit_to_tracer=fit_to_tracer) + + # Generate dbf + mob_dbf = generate_parameters(phase_models, datasets, 'SGTE91', 'linear', + ridge_alpha=ridge_alpha, aicc_penalty_factor=aicc_penalty_factor, + dbf=dbf, fitting_description=mobility_fitting_description) + + aliases = add_mobility_keywords(diffusing_species) + rewrite_mobility_terms(mob_dbf, aliases) + return mob_dbf + + \ No newline at end of file diff --git a/kawin/mobility_fitting/liquid_mobility.py b/kawin/mobility_fitting/liquid_mobility.py new file mode 100644 index 0000000..08744fb --- /dev/null +++ b/kawin/mobility_fitting/liquid_mobility.py @@ -0,0 +1,173 @@ +''' +Tools for generating liquid mobility models and adding them to a database + +TODO: this is only valid for liquid models with 1 sublattice. wo-sublattice ionic + liquid models are not supported yet +''' +import numpy as np +from symengine import Symbol, log + +from pycalphad import Database, variables as v + +from kawin.Constants import GAS_CONSTANT, BOLTZMANN_CONSTANT +from kawin.mobility_fitting.template import MobilityTemplate + +def _getK0(melting_phase): + if melting_phase is None: + return 0 + phases = {'BCC': 1, 'HCP': 2, 'FCC': 3} + for p in phases: + if p in melting_phase: + return phases[p] + return 0 + +class LiuSpecies: + ''' + Units: + diameter: Angstroms + T_m: K + ''' + def __init__(self, name, diameter, atomic_number, Tm, melting_phase = None): + self.name = name + self.diameter = diameter + self.atomic_number = atomic_number + self.Tm = Tm + self.melting_phase = melting_phase + self.K0 = _getK0(melting_phase) + +class SuSpecies: + ''' + Units: + atomic_mass: g/mol + density: g/cm3 + T_m: K + CTE: m/m + ''' + def __init__(self, name, atomic_mass, density, Tm, cte = 0): + self.name = name + self.atomic_mass = atomic_mass + self.density = density + self.Tm = Tm + self.cte = cte + +def _get_liquid_phase_name(database): + for ph in database.phases: + if ph.upper() == 'LIQUID': + return ph + elif ph.upper() == 'LIQ': + return ph + elif ph.upper() == 'L': + return ph + return 'LIQUID' + +def _generate_liquid_mobility(dbf: Database, parameters: dict[str, dict[str, Symbol]], add_to_database: bool = True) -> dict[str, MobilityTemplate]: + ''' + Creates liquid mobility templates and add to database + ''' + liq_name = _get_liquid_phase_name(dbf) + components = sorted(list(parameters.keys())) + templates = {c: MobilityTemplate(liq_name, c, [1], [components], False) for c in components} + for solute in parameters: + for solvent in parameters[solute]: + templates[solute].add_term([[solvent]], 0, parameters[solute][solvent]) + + if add_to_database: + templates[solute].add_to_database(dbf, {}) + + return templates + +def generate_liquid_mobility_liu(dbf: Database, species: list[LiuSpecies], add_to_database: bool = True) -> dict[str, MobilityTemplate]: + ''' + Species data will include {diameter, atomic_number, T_m, phase} + + From Y. Liu et al, "A predictive equation for solute diffusivity in liquid metals" + Scripta Materialia 55 (2006), 367. doi:10.1016/j.scriptamat.2006.04.019 + + Q = 0.17*R*Tm*(16+K0) J/mol + K0 is integer corresponding to solid phase at melting (BCC = 1, HCP = 2, FCC = 3) + If the phase is neither of those 3, then we assume K0 = 0 + + For self diffusion + D0_BB = (8.95 - 0.0734*A) * 1e-8 m2/s + + For solute diffusion + D0_AB = r_B / r_A * D0_BB + + Then M_AB = D0_AB * exp(-Q/RT) + + In a calphad database, this becomes MQ = -Q + R*T*ln(D0_AB) + ''' + # Solute is the diffusing species while solvent is the endmember component + parameters = {} + for solute in species: + parameters[solute.name] = {} + for solvent in species: + Q = -0.17 * GAS_CONSTANT * solvent.Tm * (16 + solvent.K0) + D0 = (8.95 - 0.0734 * solvent.atomic_number) * 1e-8 + D0 *= solvent.diameter / solute.diameter + parameters[solute.name][solvent.name] = Q + GAS_CONSTANT*np.log(D0)*v.T + + return _generate_liquid_mobility(dbf, parameters, add_to_database) + +def generate_liquid_mobility_su(dbf: Database, species: list[SuSpecies], add_to_database: bool = True) -> dict[str, MobilityTemplate]: + ''' + Species data will include {atomic_mass, density, T_m, CTE (optional)} + If CTE is included, then density/molar volume will be assumed to be at room temperature + And will be adjusted to the melting point + + From X. Su et al, "A new equation for temperature dependent solute impurity diffusivity in liquid metals" + Journal of Phase Equilibria and Diffusion 31 (2010) 333. doi:10.1007/s11669-010-9726-4 + + Diffusivity starts with Sutherlan-Einstein equation - D = k*T / 4*pi*mu*r + + Dynamic viscosity (mu) + mu_B = C1 * M_B^1/2 * T^1/2 / V_B^2/3 * exp(C2 * TM_B / T) J*s/m3 + C1 = 1.8e-8 (J/K/mol^1/3)^1/2 + C2 = 2.34 + + Radius in liquid + r_A = R0 * (M_A/rho_A)^1/3 * (1 - 0.122 * (T/TM)^1/2) m + R0 = 0.644e-10 + Note: In Su et al, TM is suggested to be melting point of solute (TM_A), but in + P. Protopapas et al, J. Chem. Phys. 59 (1973) 15 (where this equation comes from), + TM is noted to be the melting point of the alloy, in which the solvent (TM_B) is used + Here, we used TM_B for the melting point since it seems to be the trend of smaller radius + leading to higher diffusivity + + D_AB = k*T / 4*pi*mu_B*r_A + + To put in a Calphad database, it's helpful to define equivalents for D0_AB and Q + Q = -C2 * TM_B * R (coming from the viscosity equation) + D0_AB = D0 * T^1/2 / (1 - 0.112 * (T/TM_B)^1/2) + D0 = (k / 4*pi) * (V_B^2/3 / C1*M_B^1/2) * (rho_A^1/3 / M_A^1/3*R0) + Then M = D_AB = D0_AB * exp(-Q/RT) + And MQ = -Q + R*T*ln(D0_AB) + + ''' + C1 = 1.8e-8 + C2 = 2.34 + R0 = 0.644e-10 + + # Solute is the diffusing species while solvent is the endmember component + parameters = {} + for solute in species: + parameters[solute.name] = {} + for solvent in species: + rho_solv = solvent.density + rho_solu = solute.density + + # If CTE is non-zero, adjust density to that of the solvent melting point + rho_solv *= (1 + solvent.cte * (solvent.Tm - 298.15))**3 + rho_solu *= (1 + solute.cte * (solvent.Tm - 298.15))**3 + V_solv = solvent.atomic_mass / rho_solv * 1e-6 #m3/mol + V_solu = solute.atomic_mass / rho_solu * 1e-6 #m3/mol + + Q = -C2 * solvent.Tm * GAS_CONSTANT + D1 = C1 * np.power(solvent.atomic_mass/1000, 1/2) / np.power(V_solv, 2/3) + D2 = R0 * np.power(solute.atomic_mass / rho_solu, 1/3) + D3 = BOLTZMANN_CONSTANT / (4*np.pi) + D0 = D3/(D1*D2) * v.T**(1/2) / (1 - 0.112 * (v.T / solvent.Tm)**(1/2)) + + parameters[solute.name][solvent.name] = Q + GAS_CONSTANT*log(D0)*v.T + + return _generate_liquid_mobility(dbf, parameters, add_to_database) diff --git a/kawin/mobility_fitting/manual_fitting.py b/kawin/mobility_fitting/manual_fitting.py new file mode 100644 index 0000000..8d23227 --- /dev/null +++ b/kawin/mobility_fitting/manual_fitting.py @@ -0,0 +1,236 @@ +import itertools +from typing import Union +from collections import namedtuple + +import numpy as np +from symengine import Basic +from tinydb import TinyDB, where + +from pycalphad import variables as v +from espei.datasets import load_datasets, recursive_glob + +from kawin.mobility_fitting.template import MobilityTemplate, SiteFractionGenerator +from kawin.mobility_fitting.utils import _eval_symengine_expr + +DatasetPair = namedtuple('SystemPair', ['site_fractions', 'values']) +FittingResult = namedtuple('FittingResult', ['template', 'parameters', 'aicc']) + +def grab_tracer_datasets(datasets: Union[TinyDB, str], data_type: str, phase: str, components: list[str], diffusing_species: str, include_disabled: bool = False) -> tuple[list, list]: + ''' + Grabs all datasets for diffusing species of data type + + Parameters + ---------- + datasets: TinyDB | str + If str, must be a folder to load datasets from + data_type: str + Must be Q or D0 + phase: str + components: list[str] + diffusing_species: str + ''' + if data_type != 'Q' and data_type != 'D0': + raise ValueError('Data type must be Q or D0') + + if isinstance(datasets, str): + datasets = load_datasets(sorted(recursive_glob(datasets, '*.json')), include_disabled) + + components = list(set(components).union(set(['VA']))) + + query = ( + (where('components').test(lambda x: set(x).issubset(components))) & + (where('phases').test(lambda x: len(x) == 1 and x[0] == phase)) & + (where('output').test(lambda x : f'TRACER_{data_type}' in x and x.endswith(diffusing_species))) + ) + return datasets.search(query) + +def generate_site_fractions(data: list, site_fraction_generator: SiteFractionGenerator = None) -> DatasetPair: + ''' + Collect site fractions and output values from datasets + + data: list + List of datasets to grab conditions from + site_fraction_generator: SiteFractionGenerator (optional) + Object that converts conditions to site fraction values + If all datasets are non-equilibrium data, then this is not needed + ''' + site_fractions = [] + Y = [] + for d in data: + conds_grid = [] + conds_key = [] + for c in d['conditions']: + conds_grid.append(np.atleast_1d(d['conditions'][c])) + conds_key.append(v.X(c[2:]) if c.startswith('X_') else getattr(v, c)) + conds_grid = np.meshgrid(*conds_grid) + y_sub = np.array(d['values']).flatten() + + conds_list = {key:val.flatten() for key,val in zip(conds_key, conds_grid)} + + # If non-equilibrium data, we could grab the site fractions directly + if 'solver' in d: + for sub_conf, sub_lat in zip(d['solver']['sublattice_configurations'], d['solver']['sublattice_occupancies']): + sub_index = 0 + sf = {} + for species, occs in zip(sub_conf, sub_lat): + species, occs = np.atleast_1d(species), np.atleast_1d(occs) + for s, o in zip(species, occs): + y = v.SiteFraction(d['phases'][0], sub_index, s) + sf[y] = o + sub_index += 1 + site_fractions.append(sf) + # If equilibrium data, we need a site_fraction_generator function to + # convert composition to site fractions + else: + for i in range(len(y_sub)): + sf = site_fraction_generator.generate_site_fractions(d['phases'][0], d['components'], {key:val[i] for key,val in conds_list.items()}) + site_fractions.append(sf) + + Y = np.concatenate((Y, y_sub)) + + return DatasetPair(site_fractions=site_fractions, values=Y) + +def least_squares_fit(A: np.ndarray, b: np.ndarray, p: int = 1) -> tuple[np.ndarray, float]: + ''' + Given site fractions and function to generate Redlich-kister terms, + compute RK coefficients and AICC criteria + + Parameters + ---------- + A: np.ndarray (M,N) + b: np.ndarray (M,1) + p: int + Penalty factor + + Returns + ------- + x: np.ndarray + aicc: float + ''' + # Fit coefficients using least squares regression + x = np.linalg.lstsq(A, b, rcond=None)[0] + + # AICC criteria + k = len(A[0]) + n = len(A) + b_pred = np.matmul(A, x) + rss = np.sum((b_pred-b)**2) + pk = p*k + aic = 2*pk + n*np.log(rss/n) + if pk >= n-1: + correction = (2*pk**2 + 2*pk) / (-n + pk + 3) + else: + correction = (2*pk**2 + 2*pk) / (n - pk - 1) + aicc = aic + correction + return x, aicc + +def _fit_model(data: list, template: MobilityTemplate, function: Basic, site_fraction_generator: SiteFractionGenerator = None, p = 1, transform = None): + ''' + Fits activation energy or prefactor model + This is really more of a helper function for fit_prefactor and fit_activation_energy + + Parameters + ---------- + datasets: list + data_type: str + Either 'D0' or 'Q' + template: MobilityTemplate + function: Basic + either MobilityTemplate.prefactor or MobilityTemplate.activation_energy + site_fraction_generate: SiteFractionGenerator + p: int + AICC penalty factor + transform: callable (optional) + Transformation on dataset values to be compatible with the mobility template function + For prefactor, this should be f(x) = ln(x) + For activation energy, this is not needed (i.e. f(x) = x) + ''' + derivatives = template.get_derivatives(function) + sf_data = generate_site_fractions(data, site_fraction_generator) + + A = np.zeros((len(sf_data.values), len(derivatives.symbols))) + b = np.array(sf_data.values) + if transform is not None: + b = transform(b) + + for i,j in itertools.product(range(len(sf_data.site_fractions)), range(len(derivatives.functions))): + A[i,j] = _eval_symengine_expr(derivatives.functions[j], sf_data.site_fractions[i]) + + x, aicc = least_squares_fit(A, b, p) + return {s:xi for s,xi in zip(derivatives.symbols, x)}, aicc + +def fit_prefactor(data: list, template: MobilityTemplate, site_fraction_generator: SiteFractionGenerator = None, p = 1): + ''' + Fits prefactor model + + Parameters + ---------- + data: list + template: MobilityTemplate + site_fraction_generate: SiteFractionGenerator + p: int + AICC penalty factor + + Returns + ------- + symbols: {Symbol: float} + aicc: int + ''' + return _fit_model(data, template, template.prefactor, site_fraction_generator, p, lambda x: np.log(x)) + +def fit_activation_energy(data: list, template: MobilityTemplate, site_fraction_generator: SiteFractionGenerator = None, p = 1): + ''' + Fits activation energy model + + Parameters + ---------- + data: list + template: MobilityTemplate + site_fraction_generate: SiteFractionGenerator + p: int + AICC penalty factor + + Returns + ------- + symbols: {Symbol: float} + aicc: int + ''' + return _fit_model(data, template, template.activation_energy, site_fraction_generator, p) + +def select_best_model(data: list, templates: list[MobilityTemplate], fit_function: callable, site_fraction_generator: SiteFractionGenerator = None, p = 1, return_all_models = False): + ''' + Fits multiple templates and selects the best one based off the AICC criteria + + Parameters + ---------- + data: list + templates: list[MobliityTemplate] + List of mobility templates to fit and compare + fit_function: callable + Function that takes in (datasets, MobilityTemplate, SiteFractionGenerate, penalty factor) and returns fitted parameters and AICC + Options are fit_prefactor and fit_activation_energy + site_fraction_generator: SiteFractionGenerator + p: int + AICC penalty factor + return_all_models: bool + If true, this will also return a list of FittingResults for each template + + Returns + ------- + FittingResults for best model + list[FittingResults] of all models if return_all_models = True + ''' + params_list = [] + aicc_list = [] + for template in templates: + params, aicc = fit_function(data, template, site_fraction_generator, p=p) + params_list.append(params) + aicc_list.append(aicc) + + best_index = np.argmin(aicc_list) + + if return_all_models: + all_fits = [FittingResult(template=t, parameters=p, aicc=a) for t,p,a in zip(templates, params_list, aicc_list)] + return all_fits[best_index], all_fits + else: + return FittingResult(template=templates[best_index], parameters=params_list[best_index], aicc=aicc_list[best_index]) diff --git a/kawin/mobility_fitting/template.py b/kawin/mobility_fitting/template.py new file mode 100644 index 0000000..3de81f8 --- /dev/null +++ b/kawin/mobility_fitting/template.py @@ -0,0 +1,479 @@ +import itertools +from typing import Union +from abc import abstractmethod, ABC +from collections import namedtuple + +import numpy as np +import matplotlib.pyplot as plt +from symengine import Symbol, Basic, S +from tinydb import Query + +from pycalphad import Database, Model, variables as v +from pycalphad.codegen.phase_record_factory import PhaseRecordFactory +from pycalphad.io.tdb import _molmass + +from kawin.thermo.LocalEquilibrium import local_equilibrium +from kawin.thermo.Mobility import MobilityModel +from kawin.mobility_fitting.utils import _vname, _get_variable_terms, _eval_symengine_expr, find_last_variable + +DerivativePair = namedtuple('DerivativePair', ['functions', 'symbols']) + +def _upsert_parameters(dbf: Database, parameter_type: str, phase: str, constituent_array, parameter_order: int, diffusing_species: str, function: Basic, add_if_exists: bool = True): + species_dict = {s.name: s for s in dbf.species} + tuple_const = tuple(tuple(species_dict.get(s.upper(), v.Species(s)) for s in xs) for xs in constituent_array) + query = Query() + search_query = (query.parameter_type == parameter_type) &\ + (query.phase_name == phase) & \ + (query.constituent_array == tuple_const) & \ + (query.diffusing_species == diffusing_species) & \ + (query.parameter_order == parameter_order) + param = dbf.search(search_query) + if len(param) == 0: + dbf.add_parameter(parameter_type, phase, constituent_array, + parameter_order, function, + diffusing_species=diffusing_species) + else: + # If parameter already exists, we can either add the function to the present paramter or overwrite it + if add_if_exists: + dbf._parameters.upsert({'parameter': param[0]['parameter'] + function}, search_query) + else: + dbf._parameters.upsert({'parameter': param[0]['parameter']}, search_query) + +def transform_activation_energy(Q: float) -> Basic: + '''Transform activation energy to A term in MQ=A+B*T''' + return -Q + +def transform_prefactor(D0: float) -> Basic: + '''Transforms diffusion prefactor to B term in MQ=A+B*T (note, this returns B, not B*T)''' + return v.R*np.log(D0) + +class SiteFractionGenerator(ABC): + ''' + Object to compute site fractions from conditions + ''' + @abstractmethod + def generate_site_fractions(self, phase: str, components: list[str], conditions : dict[v.StateVariable, float]) -> dict[v.Species, float]: + ''' + Generate site fractions from conditions + + Parameters + ---------- + phase: str + components: list[str] + conditions: dict[v.StateVariable, float] + + Returns + ------- + {v.SiteFraction: float} + ''' + raise NotImplementedError() + +class EquilibriumSiteFractionGenerator(SiteFractionGenerator): + ''' + Grabs site fraction values from local equilibrium calculations + + Parameters + ---------- + database: Database + ''' + def __init__(self, database : Database, override_conditions = {}): + if isinstance(database, str): + database = Database(database) + self.dbf = database + self.models = {} + self.phase_records = {} + + self._conditions_override = {v.N: 1, v.GE: 0} + for key, value in override_conditions: + self.set_override_condition(key, value) + + def set_override_condition(self, variable, value): + self._conditions_override[variable] = value + + def remove_override_condition(self, variable): + self._conditions_override.pop(variable) + + def _generate_comps_key(self, components): + comps = sorted(components) + return frozenset(comps), comps + + def _generate_phase_records(self, phase, components): + # Caches models, phase_records and constituents based off active components and phase + active_comps, comps = self._generate_comps_key(components) + if active_comps not in self.models: + self.models[active_comps] = {} + self.phase_records[active_comps] = {} + + if phase not in self.models[active_comps]: + self.models[active_comps][phase] = {phase: Model(self.dbf, comps, phase)} + self.phase_records[active_comps][phase] = PhaseRecordFactory(self.dbf, comps, {v.T, v.P, v.N, v.GE}, self.models[active_comps][phase]) + + return self.models[active_comps][phase], self.phase_records[active_comps][phase] + + def generate_site_fractions(self, phase: str, components: list[str], conditions : dict[v.StateVariable: float]) -> dict[v.Species: float]: + # Get phase records from active components + active_comps, comps = self._generate_comps_key(components) + models, prf = self._generate_phase_records(phase, components) + + # Override any conditions + for oc in self._conditions_override: + conditions[oc] = self._conditions_override[oc] + + # Compute local equilibrium (to avoid miscibility gaps) + # Store site fractions + # The first 4 items of CompositionSet.dof refers to v.GE, v.N, v.P and v.T + # The order of the site fractions in CompositionSet.dof should correspond to the order in the pycalphad model + results, comp_sets = local_equilibrium(self.dbf, comps, [phase], conditions, models, prf) + sfg = {c:val for c,val in zip(prf[phase].variables, comp_sets[0].dof[4:])} + return sfg + +class MobilityTemplate: + ''' + Creates a template of a mobility model for a single diffusing species + + Attributes + ---------- + dbf: Database + phase: str + sublattices: list[int] + constituents: list + diffusing_species: v.Species + num_params: int + Number of parameters added to the database + elements: list[str] + + Parameters + ---------- + phase: str + diffusing_species: str | v.Species + sublattices: list[int] + constituents: list[list[str]] + ''' + def __init__(self, phase: str, diffusing_species: Union[str, v.Species], sublattices: list[int], constituents: list, add_endmembers: bool = True): + self.dbf = Database() + self.phase = phase + self.sublattices = sublattices + self.constituents = constituents + self.diffusing_species = v.Species(diffusing_species) + self.num_params = 0 + self._model = None + + unique_species = list(set(itertools.chain(*constituents))) + for s in unique_species: + sp = v.Species(s) + self.dbf.species.add(sp) + self.dbf.elements.update(list(sp.constituents.keys())) + + # Add reference state, this is to be compatible for phase records, but values aren't + # necessary since we intend to add the parameters to the thermodynamic database in the end + for el in self.dbf.elements: + self.dbf.refstates[el] = {'phase': phase, 'mass': _molmass.get(el, 0.0), 'H298': 0, 'S298': 0} + + self.dbf.add_phase(phase, {}, sublattices) + self.dbf.add_phase_constituents(phase, constituents) + + if add_endmembers: + self.add_endmember_parameters() + + @property + def elements(self) -> list[str]: + return list(self.dbf.elements) + + def _create_constant(self) -> Basic: + ''' + Creates a constant parameter symbol as VV00XX + ''' + parameter_symbol = Symbol(_vname(self.num_params)) + self.num_params += 1 + return parameter_symbol + + def _create_T_term(self) -> Basic: + ''' + Creates a T dependent parameter symbol as VV00XX*T + ''' + parameter_symbol = Symbol(_vname(self.num_params))*v.T + self.num_params += 1 + return parameter_symbol + + def add_endmember_parameters(self): + ''' + Creates A+B*T terms for all endmembers of phase + ''' + for prod in itertools.product(*self.constituents): + constituent_array = [[species] for species in prod] + self.dbf.add_parameter('MQ', self.phase, constituent_array, + 0, self._create_constant() + self._create_T_term(), + diffusing_species=self.diffusing_species) + + # Not really needed since this function is called upon initialization, but to be safe since we modified the database here + self._model = None + + def add_term(self, constituent_array: list, parameter_order: Union[int, list[int]], parameter: Union[callable, Basic], parameter_type: str = 'MQ'): + ''' + Adds a term to a parameter in the database + + If parameter already exists (same symbol, constituent_array and parameter order), then the parameter is + added on to the existing value rather than overwriting it + + Parameters + ---------- + constituent_array: list[list[str]] + param_order: int | list[int] + If list, will add parameters for all specified orders + parameter: callable | Any + If callable, should be a function that generates a parameter symbol + If not callable, should be compatible with a symengine expression + symbol: str (Optional) + Defaults to 'MQ' + Parameter symbol to add in database + By default, we always use 'MQ', but this adds the option to create the 'MF' terms + if they the prefactor and activation energies need to be separate terms (i.e. for + magnetic contributions which are yet unsupported) + ''' + if not isinstance(parameter_order, list): + parameter_order = [parameter_order] + + # If param_func is not callable, then convert to a self-generating function + if callable(parameter): + param_func = parameter + else: + param_func = lambda: parameter + + for p in parameter_order: + _upsert_parameters(self.dbf, parameter_type, self.phase, constituent_array, p, self.diffusing_species, param_func(), add_if_exists=True) + + # Since we updated the database, clear the mobility model if it was made at some point + self._model = None + + def add_prefactor(self, constituent_array: list, parameter_order: Union[int, list[int]], parameter_type: str = 'MQ', parameter = None): + ''' + Adds a diffusion prefactor term (in form of VV00XX*T) + While the prefactor is defined as M0 in + M = M0/RT * exp(Q/RT), + the prefactor is treated as part of the exponential term as + M = 1/RT * exp((MQ+MF)/RT) where MQ+MF = A+B*T + Here, A refers to the activation energy and B refers to the prefactor + + Parameters + ---------- + constituent_array: list[list[str]] + param_order: int | list[int] + If list, then terms will be added to all specified orders + symbols: str (Optional) + Defaults to 'MQ' + parameter: float (Optional) + If not supplied (default), them a VV00XX*T term will be added + If supplied, this will assumed to be the prefactor and will be transformed into B*T term accordingly + ''' + if parameter is None: + parameter = self._create_T_term + else: + parameter = transform_prefactor(parameter)*v.T + self.add_term(constituent_array, parameter_order, parameter, parameter_type=parameter_type) + + def add_activation_energy(self, constituent_array: list, parameter_order: Union[int, list[int]], parameter_type: str='MQ', parameter = None): + ''' + Adds a activation energy term (in form of VV00XX) + + Parameters + ---------- + constituent_array: list[list[str]] + param_order: int | list[int] + If list, then terms will be added to all specified orders + symbols: str (Optional) + Defaults to 'MQ' + parameter: float (Optional) + If not supplied (default), them a VV00XX term will be added + If supplied, this will assumed to be the activation energy and will be transformed into A term accordingly + ''' + if parameter is None: + parameter = self._create_constant + else: + parameter = transform_activation_energy(parameter) + self.add_term(constituent_array, parameter_order, parameter, parameter_type=parameter_type) + + def copy_parameter(self, constituent_array: list, new_constituent_array: list, parameter_order: int, parameter_type: str = 'MQ'): + ''' + Copies parameter function to new set of constituent array + This is for cases to avoid wildcard usage when a value might be constant across composition space + ''' + species_dict = {s.name: s for s in self.dbf.species} + tuple_const = tuple(tuple(species_dict.get(s.upper(), v.Species(s)) for s in xs) for xs in constituent_array) + query = Query() + search_query = (query.parameter_type == parameter_type) &\ + (query.phase_name == self.phase) & \ + (query.constituent_array == tuple_const) & \ + (query.diffusing_species == self.diffusing_species) & \ + (query.parameter_order == parameter_order) + param = self.dbf.search(search_query) + if len(param) > 0: + p = param[0] + self.dbf.add_parameter(p['parameter_type'], p['phase_name'], new_constituent_array, + p['parameter_order'], p['parameter'], + diffusing_species=p['diffusing_species']) + + @property + def parameters(self) -> list: + ''' + Returns all database parameters for mobility model + ''' + query = Query() + search_query = (query.phase_name == self.phase) & (query.diffusing_species == self.diffusing_species) + return self.dbf._parameters.search(search_query) + + @property + def model(self) -> MobilityModel: + ''' + Returns mobility model built from database parameters + ''' + if self._model is None: + self._model = MobilityModel(self.dbf, self.elements, self.phase) + return self._model + + # mobility_function, MQ, pre_factor and activation_energy are wrappers to + # retrieve the underlying functions in the MobilityModel directly + @property + def mobility_function(self) -> Basic: + ''' + Mobility function: M = 1/RT * exp(-(MQ+MF)/RT) + ''' + return getattr(self.model, f'MOB_{self.diffusing_species.name}') + + @property + def MQ(self) -> Basic: + ''' + Exp part of mobility function: MQ+MF + ''' + return getattr(self.model, f'MQ_{self.diffusing_species}') + + @property + def prefactor(self) -> Basic: + ''' + Natural log of pre-diffusion factor + This refers to all the T-dependent terms in MQ+MF + ''' + return getattr(self.model, f'lnM0_{self.diffusing_species.name}') + + @property + def activation_energy(self) -> Basic: + ''' + Activation energy of pre-diffusion factor + This refers to all the constant terms in MQ+MF + ''' + return getattr(self.model, f'MQa_{self.diffusing_species.name}') + + def get_derivatives(self, function: Basic) -> DerivativePair: + ''' + Creates derivative and corresponding variables for function (would be either lnM0 or Q) + ''' + # NOTE: this assumes that all free variables of interest are in VV00XX format + # If the user doesn't add custom parameters directly, then this assumption should hold + symbol_list = _get_variable_terms(function) + diffs, symbols = [], [] + for s in symbol_list: + diff = function.diff(s) + if diff != S.Zero: + diffs.append(diff) + symbols.append(s) + return DerivativePair(functions=diffs, symbols=symbols) + + def evaluate(self, function: Basic, parameter_values: dict[Symbol, float], site_fraction_generator: SiteFractionGenerator, conditions: dict[v.StateVariable, float]): + ''' + Evaluates model template along single variable + + Parameters + ---------- + template: MobilityTemplate + function: symengine.Basic + Function to evaluate + parameter_values: dict[Symbol, float] + Fitted parameters + Parameters in function that are not defined here will assume to be 0 + site_fraction_generator: SiteFractionGenerator + conditions: dict[v.StateVariable, float] + Conditions to evaluate function, 1 variable must be a list + + Returns + ------- + xs: values of evaluated dependent condition + ys: values of evaluated function + dependent_var: dependent condition + ''' + dependent_var = [key for key, val in conditions.items() if len(np.atleast_1d(val)) > 1] + # Single point condition, then return evaluated function + if len(dependent_var) == 0: + site_fractions = site_fraction_generator.generate_site_fractions(self.phase, self.elements, conditions) + y = _eval_symengine_expr(function, {**site_fractions, **parameter_values, **conditions}) + return y + # If 1 dependent variable, then return coordinates of dependent variable (x), evaluated function (y), and variable + elif len(dependent_var) == 1: + dependent_vals = conditions[dependent_var[0]] + xs = np.linspace(dependent_vals[0], dependent_vals[1], int((dependent_vals[1] - dependent_vals[0])/dependent_vals[2])) + ys = np.zeros(len(xs)) + for i,x in enumerate(xs): + new_conds = {v.N: 1, v.P: 101325, v.GE: 0, v.T: 298.15} + new_conds.update({**conditions}) + new_conds[dependent_var[0]] = x + site_fractions = site_fraction_generator.generate_site_fractions(self.phase, self.elements, new_conds) + ys[i] = _eval_symengine_expr(function, {**site_fractions, **parameter_values, **new_conds}) + + return xs, ys, dependent_var[0] + else: + raise ValueError(f"Number of free conditions must be 1, but is {len(dependent_var)}") + + def add_to_database(self, dbf: Database, parameter_values: dict[Union[Symbol, str], float], add_if_exists=True): + ''' + Adds parameters to an existing database + + Parameters + ---------- + dbf: Database + database to add parameters to + parameter_values: dict[Symbol|str, float] + Values for each VV00XX parameter in the mobility model + Any parameter that isn't specified is assumed to be 0 and won't be added to database + ''' + last_var_index = find_last_variable(dbf) + parameter_values = {Symbol(key) if isinstance(key, str) else key: value for key,value in parameter_values.items()} + + symbol_replace_map = {param_name: _vname(i+last_var_index) for i, param_name in enumerate(parameter_values)} + unused_symbols = {s: 0 for s in (set(self.MQ.free_symbols) - set(symbol_replace_map.keys())) if str(s).startswith('VV')} + + for p in self.parameters: + new_func = p['parameter'].subs(unused_symbols) + new_func = new_func.xreplace(symbol_replace_map) + constituent_array = tuple(tuple(s.name for s in xs) for xs in p['constituent_array']) + _upsert_parameters(dbf, p['parameter_type'], p['phase_name'], constituent_array, + p['parameter_order'], p['diffusing_species'], new_func, add_if_exists=add_if_exists) + + for s in parameter_values: + dbf.symbols[symbol_replace_map[s]] = parameter_values[s] + +def _plot_model(template: MobilityTemplate, function: Basic, parameter_values: dict[Symbol, float], site_fraction_generator: SiteFractionGenerator, conditions: dict[v.StateVariable, float], ax=None, scale=1, transform = None, *args, **kwargs): + if ax is None: + fig, ax = plt.subplots() + + xs, ys, dep_var = template.evaluate(function, parameter_values, site_fraction_generator, conditions) + if transform is not None: + ys = transform(ys) + ax.plot(xs, scale*ys, *args, **kwargs) + ax.set_xlim([xs[0], xs[-1]]) + ax.set_xlabel(dep_var) + return ax + +def plot_prefactor(template: MobilityTemplate, parameter_values: dict[Symbol, float], site_fraction_generator: SiteFractionGenerator, conditions: dict[v.StateVariable, float], ax=None, scale=1, *args, **kwargs): + ''' + Plots mobility prefactor using input parameters + ''' + ax = _plot_model(template, template.prefactor, parameter_values, site_fraction_generator, conditions, transform=lambda x: np.exp(x), ax=ax, scale=scale, *args, **kwargs) + ax.set_ylabel(r'Diffusion Prefactor ($m^2/s$)') + ax.set_yscale('log') + return ax + +def plot_activation_energy(template: MobilityTemplate, parameter_values: dict[Symbol, float], site_fraction_generator: SiteFractionGenerator, conditions: dict[v.StateVariable, float], ax=None, scale=1, *args, **kwargs): + ''' + Plots mobility activation energy using input parameters + ''' + ax = _plot_model(template, template.activation_energy, parameter_values, site_fraction_generator, conditions, ax=ax, scale=scale, *args, **kwargs) + ax.set_ylabel('Activation Energy (J/mol)') + return ax \ No newline at end of file diff --git a/kawin/mobility_fitting/utils.py b/kawin/mobility_fitting/utils.py new file mode 100644 index 0000000..5181031 --- /dev/null +++ b/kawin/mobility_fitting/utils.py @@ -0,0 +1,82 @@ +from symengine import Symbol, Basic, S +from tinydb import Query + +from pycalphad import Database, variables as v +from espei.utils import database_symbols_to_fit + +def get_used_database_symbols(dbf, elements, diffusing_species, phases = None, include_subsystems = False): + ''' + Given the database, grab all symbols that pertain only to the given elements and phases + + example: + PARAMETER(BCC_A2&C,AL:0) 298.15 VV0001; 6000.0 N ! + PARAMETER(BCC_A2&C,CR:0) 298.15 VV0002; 6000.0 N ! + PARAMETER(FCC_A1&C,AL:0) 298.15 VV0003; 6000.0 N ! + PARAMETER(FCC_A1&C,CR:0) 298.15 VV0004; 6000.0 N ! + + get_used_database_symbols(db, ['AL'], ['C'], ['BCC_A2'], True) -> VV0001 + get_used_database_symbols(db, ['AL', 'CR'], ['C'], ['FCC_A1'], True) -> [VV0003, VV0004] + get_used_database_symbols(db, ['CR'], ['C'], ['BCC_A2', 'FCC_A1'], True) -> [VV0002, VV0004] + + Parameters + ---------- + dbf : Database + elements : list[str] + Symbols will be taken from parameters that have all elements in the constituents + diffusing_species : str + Name of diffusing species + phases : list[str] (optional) + Default = None + Symbols will be taken from parameters attributed to the phases + If None, all phases will be considered + include_subsystems : bool (optional) + Default = False + If True, then symbols will also be taken from parameters where constituents is a subset of elements + ''' + if not isinstance(dbf, Database): + dbf = Database(dbf) + elements = sorted([e.upper() for e in elements]) + num_elements = len(elements) + element_set = frozenset(elements + ['VA']) + used_syms = frozenset() + for p in dbf._parameters: + if phases is not None: + if p['phase_name'] not in phases: + continue + parameter_species = frozenset([s.name for c in p['constituent_array'] for s in c]) + #Add symbols under 2 conditions + # 1. parameterSpecies is a subset of elSet + # 2. freeSub is False and length of parameter species (excluding VA) is equal to number of elements + p_is_subset = len((parameter_species-set(['VA','*'])) - element_set) == 0 + should_be_free = include_subsystems or len(parameter_species - set(['VA', '*'])) == num_elements + is_diffusing_species = p['diffusing_species'].name == diffusing_species + if p_is_subset and should_be_free and is_diffusing_species: + used_syms = used_syms.union(frozenset([s.name for s in p['parameter'].free_symbols])) + all_syms = database_symbols_to_fit(dbf) + used_syms = sorted(list(used_syms.intersection(frozenset(all_syms)))) + return used_syms + +def _vname(index: int) -> str: + ''' + Converts index to VV00XX format + ''' + return 'VV{:04d}'.format(index) + +def find_last_variable(database: Database) -> int: + ''' + Searches database to find the last symbol noted as VV00XX + ''' + index = 0 + while _vname(index) in database.symbols: + index += 1 + return index + +def _get_variable_terms(function: Basic) -> list[Symbol]: + return sorted([s for s in function.free_symbols if str(s).startswith('VV')], key=str) + +def _eval_symengine_expr(function: Basic, symbol_map: dict[Symbol, float], ignore_missing = True) -> float: + default_symbols = {} + if ignore_missing: + default_symbols = {s: 0 for s in function.free_symbols} + default_symbols.update(symbol_map) + return float(function.subs(default_symbols).n(73, real=True)) \ No newline at end of file diff --git a/kawin/tests/databases.py b/kawin/tests/databases.py new file mode 100644 index 0000000..f8e94ca --- /dev/null +++ b/kawin/tests/databases.py @@ -0,0 +1,2995 @@ +''' +Databases for unit testing +''' + +ALZR_TDB = """ +$Al-Zr database +$From T. Wang, Z. Jin, J. Zhao, Journal of Phase Equilibria, 22 (2001) p. 544 +$ +TEMP_LIM 298.15 6000 ! +$Element Standard state mass [g/mol] H_298 S_298 +ELEMENT /- ELECTRON_GAS 0.0 0.0 0.0 ! +ELEMENT VA VACUUM 0.0000E+00 0.0000E+00 0.0000E+00 ! +ELEMENT AL FCC_A1 2.6982E+01 4.5773E+03 2.8322E+01 ! +ELEMENT ZR HCP_A3 9.1224E+01 5.5663E+03 3.9181E+01 ! +$ +$ + TYPE_DEFINITION % SEQ *! +$ +$PHASE AL3ZR +PHASE AL3ZR % 2 0.75 0.25 ! +CONST AL3ZR : AL : ZR : ! +$ +$PHASE FCC_A1 +PHASE FCC_A1 % 2 1 1 ! +CONST FCC_A1 : AL%,ZR : VA : ! +$ +$ +$ +$ +$UNARY DATA +$ +$AL (FCC_A1) +FUNCTION GHSERAL 298.15 -7976.15+137.093038*T-24.3671976*T*LOG(T) + -1.884662E-3*T**2-0.877664E-6*T**3+74092*T**(-1); + 700.00 Y -11276.24+223.048446*T-38.5844296*T*LOG(T) + +18.531982E-3*T**2-5.764227E-6*T**3+74092*T**(-1); + 933.47 Y -11278.378+188.684153*T-31.748192*T*LOG(T) + -1230.524E25*T**(-9); 2900.00 N ! +$ +$ ZIRCONIUM (GHSERZR FOR HCP_A3) +$ +FUNCTION GHSERZR 130.00 -7827.595+125.64905*T-24.1618*T*LOG(T) + -4.37791E-3*T**2+34971*T**(-1); + 2128.00 Y -26085.921+262.724183*T-42.144*T*LOG(T) + -1342.895E28*T**(-9); 6000.00 N ! + +$ +$ PHASE FCC_A1 +$ +PARAMETER G(FCC_A1,AL:VA;0) 298.15 GHSERAL; 6000.00 N ! +PARAMETER G(FCC_A1,ZR:VA;0) 298.15 7600.00-0.9*T+GHSERZR; 6000.00 N ! +PARAMETER G(FCC_A1,AL,ZR:VA;0) 298.15 -152947+21.3*T; 6000.00 N ! + +$ +$ PHASE AL3ZR +$ +PARAMETER G(AL3ZR,AL:ZR;0) 298.15 -47381 - 24.373*T + 3.894*T*LOG(T) + +0.75*GHSERAL+0.25*GHSERZR; 6000.00 N ! + +$ +$ Diffusion parameters +$ +PARAMETER DF(FCC_A1&ZR,*:VA;0) 298.15 -2.56655 * 8.314 * T; 6000 N ! +PARAMETER DQ(FCC_A1&ZR,*:VA;0) 298.15 -242000; 6000 N ! +""" + +ALZR_TDB_NO_MOB = """ +$Al-Zr database without any mobility parameters +$From T. Wang, Z. Jin, J. Zhao, Journal of Phase Equilibria, 22 (2001) p. 544 +$ +TEMP_LIM 298.15 6000 ! +$Element Standard state mass [g/mol] H_298 S_298 +ELEMENT /- ELECTRON_GAS 0.0 0.0 0.0 ! +ELEMENT VA VACUUM 0.0000E+00 0.0000E+00 0.0000E+00 ! +ELEMENT AL FCC_A1 2.6982E+01 4.5773E+03 2.8322E+01 ! +ELEMENT ZR HCP_A3 9.1224E+01 5.5663E+03 3.9181E+01 ! +$ +$ + TYPE_DEFINITION % SEQ *! +$ +$PHASE AL3ZR +PHASE AL3ZR % 2 0.75 0.25 ! +CONST AL3ZR : AL : ZR : ! +$ +$PHASE FCC_A1 +PHASE FCC_A1 % 2 1 1 ! +CONST FCC_A1 : AL%,ZR : VA : ! +$ +$ +$ +$ +$UNARY DATA +$ +$AL (FCC_A1) +FUNCTION GHSERAL 298.15 -7976.15+137.093038*T-24.3671976*T*LOG(T) + -1.884662E-3*T**2-0.877664E-6*T**3+74092*T**(-1); + 700.00 Y -11276.24+223.048446*T-38.5844296*T*LOG(T) + +18.531982E-3*T**2-5.764227E-6*T**3+74092*T**(-1); + 933.47 Y -11278.378+188.684153*T-31.748192*T*LOG(T) + -1230.524E25*T**(-9); 2900.00 N ! +$ +$ ZIRCONIUM (GHSERZR FOR HCP_A3) +$ +FUNCTION GHSERZR 130.00 -7827.595+125.64905*T-24.1618*T*LOG(T) + -4.37791E-3*T**2+34971*T**(-1); + 2128.00 Y -26085.921+262.724183*T-42.144*T*LOG(T) + -1342.895E28*T**(-9); 6000.00 N ! + +$ +$ PHASE FCC_A1 +$ +PARAMETER G(FCC_A1,AL:VA;0) 298.15 GHSERAL; 6000.00 N ! +PARAMETER G(FCC_A1,ZR:VA;0) 298.15 7600.00-0.9*T+GHSERZR; 6000.00 N ! +PARAMETER G(FCC_A1,AL,ZR:VA;0) 298.15 -152947+21.3*T; 6000.00 N ! + +$ +$ PHASE AL3ZR +$ +PARAMETER G(AL3ZR,AL:ZR;0) 298.15 -47381 - 24.373*T + 3.894*T*LOG(T) + +0.75*GHSERAL+0.25*GHSERZR; 6000.00 N ! +""" + +NICRAL_TDB = """ + +$ The parameters of the following database follows the publication +$ N. Dupin, I. Ansara, Thermodynamic Re-Assessment of the Ternary System +$ Al-Cr-Ni, Calphad, 25 (2), 279-298 (2001). +$ + +$Element Standard state mass [g/mol] H_298 S_298 + ELEMENT /- ELECTRON_GAS .0000E+00 .0000E+00 .0000E+00! + ELEMENT VA VACUUM .0000E+00 .0000E+00 .0000E+00! + ELEMENT AL FCC_A1 2.6982E+01 4.5773E+03 2.8322E+01! + ELEMENT CR BCC_A2 5.1996E+01 4.0500E+03 2.3560E+01! + ELEMENT NI FCC_A1 5.8690E+01 4.7870E+03 2.9796E+01! + + SPECIES AL2 AL2! + SPECIES CR2 CR2! + SPECIES NI2 NI2! + + + FUNCTION UNASS 298.15 0;,,N ! + + + TYPE_DEFINITION % SEQ *! + DEFINE_SYSTEM_DEFAULT E 2 ! + DEFAULT_COMMAND DEF_SYS_ELEMENT VA ! + DEFAULT_COMMAND REJECT_PHASE NEWSIGMA ! + + DATABASE_INFO ''' + BASE TC-Ni, version 29-09-99' + + ' + ELEMENTS : Al, Cr, Ni' + ' + ASSESSED SYSTEMS :' + ' + BINARIES' + Al-Cr, Al-Ni, Cr-Ni' + TERNARIES' + Al-Cr-Ni' +' + MODELLING ORDER/DISORDER:' +' + A1 and L12 phases are modelled with a single Gibbs energy curve.' + They are FCC_L12#1 (A1) based on (Ni) and FCC_L12#2 (L12) based on' + Ni3Al, differing by their site occupation.' + The same type of relation exists for the A2 and B2 phases. There are' + several possible sets for the phase named BCC_B2. They are either' + disordered (A2) and correspond to the solid solution based on Cr,' + or ordered based on the B2 compound AlNi.' + ! + +ASSESSED_SYSTEMS + AL-CR(;G5 MAJ:BCC_B2/CR:CR:VA ;P3 STP:.75/1200/1) + AL-NI(;P3 STP:.75/1200/1) + CR-NI(;G5 MAJ:BCC_B2/CR:CR:VA C_S:BCC_B2/NI:NI:VA + ;P3 STP:.5/1200/2) + ! + + TYPE_DEFINITION A GES A_P_D FCC_L12 MAGNETIC -3.0 .28 ! + TYPE_DEFINITION E GES A_P_D FCC_A1 MAGNETIC -3.0 .28 ! + TYPE_DEFINITION B GES A_P_D BCC_B2 MAGNETIC -1.0 .40 ! + TYPE_DEFINITION F GES A_P_D BCC_A2 MAGNETIC -1.0 .40 ! + + TYPE_DEFINITION C GES A_P_D BCC_B2 DIS_PART BCC_A2 ! + TYPE_DEFINITION D GES A_P_D FCC_L12 DIS_PART FCC_A1 ! + +$ TYPE_DEFINITION G GES A_P_D FCC_L12 C_S 2 NI:AL:VA ! +$ TYPE_DEFINITION G GES A_P_D FCC_L12 MAJ 1 NI:NI:VA ! +$ TYPE_DEFINITION W GES A_P_D BCC_B2 C_S,, NI:AL:VA ! +$ TYPE_DEFINITION W GES A_P_D BCC_B2 MAJ 1 CR:CR:VA ! + + PHASE GAS:G % 1 1.0 ! + CONST GAS:G :AL,AL2,CR,CR2,NI,NI2 : ! + + PHASE LIQUID:L % 1 1.0 ! + CONST LIQUID:L :AL,CR,NI : ! + + PHASE FCC_A1 %E 2 1 1 ! + CONST FCC_A1 :AL,CR,NI% : VA% : ! + + PHASE BCC_A2 %F 2 1 3 ! + CONST BCC_A2 :AL,CR%,NI,VA : VA : ! + + PHASE HCP_A3 %A 2 1 .5 ! + CONST HCP_A3 :AL,CR,NI : VA% : ! + + PHASE BCC_B2 %BC 3 .5 .5 3 ! + CONST BCC_B2 :AL,CR,NI%,VA : AL%,CR,NI,VA : VA: ! + + PHASE FCC_L12 %AD 3 .75 .25 1 ! + CONST FCC_L12 :AL,CR,NI : AL,CR,NI : VA : ! + + + PHASE C14_LAVES % 2 2.0 1.0 ! + CONST C14_LAVES : AL,CR%,NI : AL,CR,NI : ! + + PHASE C15_LAVES % 2 2.0 1.0 ! + CONST C15_LAVES : AL,CR%,NI : AL,CR,NI : ! + + PHASE C36_LAVES % 2 2.0 1.0 ! + CONST C36_LAVES : AL,CR%,NI : AL,CR,NI : ! + + PHASE SIGMA % 3 8 4 18 ! + CONSTITUENT SIGMA :AL,NI : CR : AL,CR%,NI : ! + + PHASE NEWSIGMA % 3 10 4 16 ! + CONSTITUENT NEWSIGMA :AL,NI : CR : AL,CR,NI : ! + + PHASE CHI_A12 % 3 24 10 24 ! + CONST CHI_A12 :CR,NI : CR : CR,NI : ! + + PHASE MTI2 % 2 1.0 2.0 ! + CONST MTI2 : CR,NI% : AL,CR,NI : ! + + + FUNCTION ZERO 298.15 0;,,N ! + FUNCTION DP 298.15 +P-101325;,,N ! + FUNCTION TROIS 298.15 3;,,N ! + FUNCTION UNTIER 298.15 TROIS**(-1);,,N ! + +$**************************************************************************** +$ +$ UNARY PARAMETERS +$ +$---------------------------------------------------------------------------- +$ +$ Al +$ +$ FUNCTIONS +$ + FUNCTION F154T 298.15 + +323947.58-25.1480943*T-20.859*T*LN(T) + +4.5665E-05*T**2-3.942E-09*T**3-24275.5*T**(-1); + 4300.0 Y + +342017.233-54.0526109*T-17.7891*T*LN(T)+6.822E-05*T**2 + -1.91111667E-08*T**3-14782200*T**(-1); + 8200.0 Y + +542396.07-411.214335*T+22.2419*T*LN(T)-.00349619*T**2 + +4.0491E-08*T**3-2.0366965E+08*T**(-1); 1.00000E+04 N ! +$ + FUNCTION F625T 298.15 + +496408.232+35.479739*T-41.6397*T*LN(T) + +.00249636*T**2-4.90507333E-07*T**3+85390.3*T**(-1); + 900.00 Y + +497613.221+17.368131*T-38.85476*T*LN(T)-2.249805E-04*T**2 + -9.49003167E-09*T**3-5287.23*T**(-1); 2.80000E+03 N ! +$ + FUNCTION GHSERAL 298.15 + -7976.15+137.093038*T-24.3671976*T*LN(T) + -.001884662*T**2-8.77664E-07*T**3+74092*T**(-1); + 700.00 Y + -11276.24+223.048446*T-38.5844296*T*LN(T) + +.018531982*T**2-5.764227E-06*T**3+74092*T**(-1); + 933.60 Y + -11278.378+188.684153*T-31.748192*T*LN(T) + -1.231E+28*T**(-9);,, N ! +$ + FUNCTION GHCPAL 298.15 +5481-1.8*T+GHSERAL;,,N ! +$ + FUNCTION GBCCAL 298.15 +10083-4.813*T+GHSERAL;,,N ! +$ + FUNCTION GLIQAL 298.14 + +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL; + 933.59 Y + +10482.282-11.253974*T+1.231E+28*T**(-9)+GHSERAL;,,N ! +$ +$ GAS PHASE +$ + PARAMETER G(GAS,AL;0) 298.15 +F154T+R*T*LN(1E-05*P);,,N REF184 ! + PARAMETER G(GAS,AL2;0) 298.15 +F625T+R*T*LN(1E-05*P);,,N REF448 ! +$ +$ LIQUID PHASE +$ + PARAMETER G(LIQUID,AL;0) 298.13 + +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL; + 933.60 Y + +10482.382-11.253974*T+1.231E+28*T**(-9) + +GHSERAL;,,N 91DIN ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,AL:VA;0) 298.15 +GHSERAL;,,N 91DIN ! +$ +$ BCC_A2 PHASE +$ + PARAMETER G(BCC_A2,AL:VA;0) 298.15 +GBCCAL;,,N 91DIN ! + FUNC B2ALVA 295.15 10000-T;,,N ! + FUNC LB2ALVA 298.15 150000;,,N ! + PARAMETER L(BCC_A2,AL,VA:VA;0) 298.15 B2ALVA+LB2ALVA;,,N 99DUP ! +$ +$ HCP_A3 PHASE +$ + PARAMETER G(HCP_A3,AL:VA;0) 298.15 +GHCPAL;,,N 91DIN ! +$ +$ BCC_B2 PHASE +$ + PARAMETER G(BCC_B2,AL:VA:VA;0) 298.15 .5*B2ALVA-.5*LB2ALVA;,,N 99DUP ! + PARAMETER G(BCC_B2,VA:AL:VA;0) 298.15 .5*B2ALVA-.5*LB2ALVA;,,N 99DUP ! +$ +$ ALTI_L10 PHASE +$ + PARAMETER G(ALTI_L10,AL:AL;0) 298.15 2*GHSERAL+4;,,N COST507 ! +$ +$ ALTI3_DO19 PHASE +$ + PARAMETER G(ALTI3_DO19,AL:AL;0) 298.15 +4*GHCPAL;,,N COST507 ! +$ +$ C14_LAVES PHASE +$ + PARAMETER G(C14_LAVES,AL:AL;0) 298.15 +3*GHSERAL+15000;,,N 95DUP8 ! +$ +$ C15_LAVES PHASE +$ + PARAMETER G(C15_LAVES,AL:AL;0) 298.15 +3*GHSERAL+15000;,,N REFLAV ! +$ +$ C36_LAVES PHASE +$ + PARAMETER G(C36_LAVES,AL:AL;0) 298.15 +3*GHSERAL+15000;,,N REFLAV ! +$ +$ H_L21 PHASE +$ + PARAMETER G(H_L21,AL:AL:VA;0) 298.15 +10000-T+GBCCAL;,,N 95DUP8 ! +$ +$ NI3TI_DO24 PHASE +$ + PARAMETER G(NI3TI_DO24,AL:AL;0) 298.15 GHCPAL;,,N 95DUP8 ! +$ +$---------------------------------------------------------------------------- +$ +$ Cr +$ +$ FUNCTIONS +$ + FUNCTION F7454T 298.15 + +390765.331-31.5192154*T-21.36083*T*LN(T) + +7.253215E-04*T**2-1.588679E-07*T**3+10285.15*T**(-1); + 1100.0 Y + +393886.928-44.107465*T-19.96003*T*LN(T)+.001513089*T**2 + -4.23648333E-07*T**3-722515*T**(-1); + 2000.0 Y + +421372.003-231.888524*T+5.362886*T*LN(T)-.00848877*T**2 + +2.984635E-07*T**3-6015405*T**(-1); + 3300.0 Y + +305164.698+251.019831*T-55.20304*T*LN(T)+.005324585*T**2 + -2.850405E-07*T**3+34951485*T**(-1); + 5100.0 Y + +1069921.1-1708.93262*T+175.0508*T*LN(T)-.025574185*T**2 + +4.94447E-07*T**3-4.4276355E+08*T**(-1); + 7600.0 Y + -871952.838+1686.47356*T-204.5589*T*LN(T)+.007475225*T**2 + -4.618745E-08*T**3+1.423504E+09*T**(-1); 1.00000E+04 N ! +$ + FUNCTION F7735T 298.15 +598511.402+41.5353219*T-40.56798*T*LN(T) + +.004961847*T**2-1.61216717E-06*T**3+154422.85*T**(-1); + 800.00 Y + +613345.232-104.20799*T-19.7643*T*LN(T)-.007085085*T**2 + -4.69883E-07*T**3-1738066.5*T**(-1); + 1400.0 Y + +642608.843-369.286259*T+17.64743*T*LN(T)-.02767321*T**2 + +1.605906E-06*T**3-5831655*T**(-1); + 2300.0 Y + +553119.895+159.188556*T-52.07969*T*LN(T)-.004229401*T**2 + +1.5939925E-07*T**3+14793625*T**(-1); + 3900.0 Y + +347492.339+623.137624*T-105.0428*T*LN(T)+3.9699545E-04*T**2 + +1.51783483E-07*T**3+1.4843765E+08*T**(-1); + 5800.0 Y + -484185.055+2598.25559*T-334.7145*T*LN(T)+.028597625*T**2 + -4.97520167E-07*T**3+7.135805E+08*T**(-1); 6.00000E+03 N ! +$ + FUNCTION GHSERCR 298.14 + -8856.94+157.48*T-26.908*T*LN(T) + +.00189435*T**2-1.47721E-06*T**3+139250*T**(-1); + 2180.0 Y + -34869.344+344.18*T-50*T*LN(T)-2.88526E+32*T**(-9);,,N ! +$ + FUNCTION GCRLIQ 298.15 + +24339.955-11.420225*T+2.37615E-21*T**7+GHSERCR; + 2180.0 Y + -16459.984+335.616316*T-50*T*LN(T);,,N ! +$ + FUNCTION GFCCCR 298.15 +7284+.163*T+GHSERCR;,,N ! +$ + FUNCTION GHCPCR 298.15 +4438+GHSERCR;,,N ! +$ + FUNCTION ACRBCC 298.15 +1.7E-05*T+9.2E-09*T**2;,,N ! + FUNCTION BCRBCC 298.15 +1+2.6E-11*P;,,N ! + FUNCTION CCRBCC 298.15 2.08E-11;,,N ! + FUNCTION DCRBCC 298.15 +1*LN(BCRBCC);,,N ! + FUNCTION VCRBCC 298.15 +7.188E-06*EXP(ACRBCC);,,N ! + FUNCTION ECRBCC 298.15 +1*LN(CCRBCC);,,N ! + FUNCTION XCRBCC 298.15 +1*EXP(.8*DCRBCC)-1;,,N ! + FUNCTION YCRBCC 298.15 +VCRBCC*EXP(-ECRBCC);,,N ! + FUNCTION ZCRBCC 298.15 +1*LN(XCRBCC);,,N ! + FUNCTION GPCRBCC 298.15 +YCRBCC*EXP(ZCRBCC);,,N ! +$ + FUNCTION ACRLIQ 298.15 +1.7E-05*T+9.2E-09*T**2;,,N ! + FUNCTION BCRLIQ 298.15 +1+4.65E-11*P;,,N ! + FUNCTION CCRLIQ 298.15 3.72E-11;,,N ! + FUNCTION DCRLIQ 298.15 +1*LN(BCRLIQ);,,N ! + FUNCTION VCRLIQ 298.15 +7.653E-06*EXP(ACRLIQ);,,N ! + FUNCTION ECRLIQ 298.15 +1*LN(CCRLIQ);,,N ! + FUNCTION XCRLIQ 298.15 +1*EXP(.8*DCRLIQ)-1;,,N ! + FUNCTION YCRLIQ 298.15 +VCRLIQ*EXP(-ECRLIQ);,,N ! + FUNCTION ZCRLIQ 298.15 +1*LN(XCRLIQ);,,N ! + FUNCTION GPCRLIQ 298.15 +YCRLIQ*EXP(ZCRLIQ);,,N ! +$ +$ GAS PHASE +$ + PARAMETER G(GAS,CR;0) 298.15 +F7454T+R*T*LN(1E-05*P);,,N REF4465 ! + PARAMETER G(GAS,CR2;0) 298.15 +F7735T+R*T*LN(1E-05*P);,, N REF4591 ! +$ +$ LIQUID PHASE +$ + PARAMETER G(LIQUID,CR;0) 298.15 +GCRLIQ+GPCRLIQ;,, N 91DIN ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,CR:VA;0) 298.15 +GFCCCR+GPCRBCC;,,N 89DIN ! + PARAMETER TC(FCC_A1,CR:VA;0) 298.15 -1109;,,N 89DIN ! + PARAMETER BMAGN(FCC_A1,CR:VA;0) 298.15 -2.46;,,N 89DIN ! +$ +$ BCC_A2 PHASE +$ + PARAMETER G(BCC_A2,CR:VA;0) 298.15 +GHSERCR+GPCRBCC;,,N 91DIN ! + PARAMETER TC(BCC_A2,CR:VA;0) 298.15 -311.5;,,N 89DIN ! + PARAMETER BMAGN(BCC_A2,CR:VA;0) 298.15 -.008;,,N 89DIN ! + PARAMETER L(BCC_A2,CR,VA:VA;0) 298.15 100000;,,N 99DUP6 ! +$ +$ HCP_A3 PHASE +$ + PARAMETER G(HCP_A3,CR:VA;0) 298.15 +GHCPCR;,,N 91DIN ! + PARAMETER TC(HCP_A3,CR:VA;0) 298.15 -1109;,,N 89DIN ! + PARAMETER BMAGN(HCP_A3,CR:VA;0) 298.15 -2.46;,,N 89DIN ! +$ +$ BCC_B2 PHASE +$ + PARAMETER G(BCC_B2,CR:VA:VA;0) 298.15 0;,,N 99DUP6 ! + PARAMETER G(BCC_B2,VA:CR:VA;0) 298.15 0;,,N 99DUP6 ! +$ +$ CHI_A12 PHASE +$ + PARAMETER G(CHI_A12,CR:CR:CR;0) 298.15 + +48*GFCCCR+10*GHSERCR+109000+123*T;,,N 87GUS ! +$ +$ ALTI3_DO19 PHASE +$ + PARAMETER G(ALTI3_DO19,CR:CR;0) 298.15 +4*GHCPCR;,,N COST507 ! +$ +$ C14_LAVES PHASE +$ + PARAMETER G(C14_LAVES,CR:CR;0) 298.15 +3*GHSERCR+15000;,,N REFLAV ! +$ +$ C15_LAVES PHASE +$ + PARAMETER G(C15_LAVES,CR:CR;0) 298.15 +3*GHSERCR+15000;,,N REFLAV ! +$ +$ C36_LAVES PHASE +$ + PARAMETER G(C36_LAVES,CR:CR;0) 298.15 +3*GHSERCR+15000;,,N REFLAV ! +$ +$ MTI2 PHASE +$ + PARAMETER G(MTI2,CR:CR;0) 298.15 3*GHSERCR+15000;,,N 99DUP9 ! +$ +$ NI3TI_DO24 PHASE +$ + PARAMETER G(NI3TI_DO24,CR:CR;0) 298.15 GHCPCR;,,N 95DUP9 ! +$ +$ ALTI_L10 PHASE +$ + PARAMETER G(ALTI_L10,CR:CR;0) 298.15 2*GFCCCR;,,N COST507 ! +$ +$---------------------------------------------------------------------------- +$ +$ Ni +$ +$ FUNCTIONS +$ + FUNCTION F13191T 298.15 + +417658.868-44.7777921*T-20.056*T*LN(T) + -.0060415*T**2+1.24774E-06*T**3-16320*T**(-1); + 800.00 Y + +413885.448+9.41787679*T-28.332*T*LN(T)+.00173115*T**2 + -8.399E-08*T**3+289050*T**(-1); + 3900.0 Y + +440866.732-62.5810038*T-19.819*T*LN(T)+5.067E-04*T**2 + -4.93233333E-08*T**3-15879735*T**(-1); + 7600.0 Y + +848806.287-813.398164*T+64.69*T*LN(T)-.00731865*T**2 + +8.71833333E-08*T**3-3.875846E+08*T**(-1); 10000. N ! +$ + FUNCTION F13265T 298.15 + +638073.279-68.1901928*T-24.897*T*LN(T) + -.0313584*T**2+5.93355333E-06*T**3-14215*T**(-1); + 800.00 Y + +611401.772+268.084821*T-75.25401*T*LN(T)+.01088525*T**2 + -7.08741667E-07*T**3+2633835*T**(-1); + 2100.0 Y + +637459.339+72.0712678*T-48.587*T*LN(T)-9.09E-05*T**2 + +9.12933333E-08*T**3-1191755*T**(-1); + 4500.0 Y + +564540.781+329.599011*T-80.11301*T*LN(T)+.00578085*T**2 + -1.08841667E-07*T**3+29137900*T**(-1); 6000.0 N ! +$ + FUNCTION GHSERNI 298.14 + -5179.159+117.854*T-22.096*T*LN(T) + -.0048407*T**2; + 1728.0 Y + -27840.655+279.135*T-43.1*T*LN(T)+1.12754E+31*T**(-9);,, N ! +$ + FUNCTION GHCPNI 298.15 +1046+1.2552*T+GHSERNI;,,N ! +$ + FUNCTION GBCCNI 298.15 +8715.084-3.556*T+GHSERNI;,,, N ! +$ +$ GAS PHASE +$ + PARAMETER G(GAS,NI;0) 298.15 +F13191T+R*T*LN(1E-05*P);,,N REF7504 ! + PARAMETER G(GAS,NI2;0) 298.15 +F13265T+R*T*LN(1E-05*P);,,N REF7553 ! +$ +$ LIQUID PHASE +$ + PARAMETER G(LIQUID,NI;0) 298.13 + +16414.686-9.397*T-3.82318E-21*T**7+GHSERNI; + 1728.0 Y + +18290.88-10.537*T-1.12754E+31*T**(-9) + +GHSERNI;,,N 91DIN ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,NI:VA;0) 298.15 +GHSERNI;,,N 91DIN ! + PARAMETER TC(FCC_A1,NI:VA;0) 298.15 633;,,N 89DIN ! + PARAMETER BMAGN(FCC_A1,NI:VA;0) 298.15 .52;,,N 89DIN ! +$ +$ BCC_A2 PHASE +$ + PARAMETER G(BCC_A2,NI:VA;0) 298.15 +GBCCNI;,,N 91DIN ! + PARAMETER TC(BCC_A2,NI:VA;0) 298.15 575;,,N 89DIN ! + PARAMETER BMAGN(BCC_A2,NI:VA;0) 298.15 .85;,,N 89DIN ! + FUNC B2NIVA 295.15 +162397.3-27.40575*T;,,N ! + FUNC LB2NIVA 298.15 -64024.38+26.49419*T;,,N ! + PARAMETER L(BCC_A2,NI,VA:VA;0) 298.15 B2NIVA+LB2NIVA;,,N 99DUP ! +$ +$ HCP_A3 PHASE +$ + PARAMETER G(HCP_A3,NI:VA;0) 298.15 +GHCPNI;,,N 91DIN ! + PARAMETER TC(HCP_A3,NI:VA;0) 298.15 633;,,N 86FER1 ! + PARAMETER BMAGN(HCP_A3,NI:VA;0) 298.15 .52;,,N 86FER1 ! +$ +$ BCC_B2 PHASE +$ + PARAMETER G(BCC_B2,VA:NI:VA;0) 298.15 .5*B2NIVA-.5*LB2NIVA;,,N 99DUP ! + PARAMETER G(BCC_B2,NI:VA:VA;0) 298.15 .5*B2NIVA-.5*LB2NIVA;,,N 99DUP ! +$ +$ NI3TI_DO24 PHASE +$ + PARAMETER G(NI3TI_DO24,NI:NI;0) 298.15 +GHCPNI;,,N 90SAU ! +$ +$ ALTI3_DO19 PHASE +$ + PARAMETER G(ALTI3_DO19,NI:NI;0) 298.15 +4*GHCPNI;,,N COST507 ! +$ +$ C14_LAVES PHASE +$ + PARAMETER G(C14_LAVES,NI:NI;0) 298.15 +15000+3*GHSERNI;,,N REFLAV ! +$ +$ C15_LAVES PHASE +$ + PARAMETER G(C15_LAVES,NI:NI;0) 298.15 +15000+3*GHSERNI;,,N REFLAV ! +$ +$ C36_LAVES PHASE +$ + PARAMETER G(C36_LAVES,NI:NI;0) 298.15 +15000+3*GHSERNI;,,N REFLAV ! +$ +$ H_L21 PHASE +$ + PARAMETER G(H_L21,NI:NI:NI;0) 298.15 +2*GBCCNI;,,N 95DUP8 ! + PARAMETER G(H_L21,NI:NI:VA;0) 298.15 +100000+GHSERNI;,,N 95DUP8 ! +$ +$ MTI2 PHASE +$ + PARAMETER G(MTI2,NI:NI;0) 298.15 3*GHSERNI+15000;,,N 99DUP9 ! +$ +$**************************************************************************** +$ +$ BINARY PARAMETERS +$ +$---------------------------------------------------------------------------- +$ +$ Al-Cr +$ Mainly from Saunders (COST507) +$ Metastable B2 and L12 from revision of Al-Cr-Ni +$ +$ LIQUID PHASE +$ + PARAMETER L(LIQUID,AL,CR;0) 298.15 -29000;,,N 91SAU1 ! + PARAMETER L(LIQUID,AL,CR;1) 298.15 -11000;,,N 91SAU1 ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,AL,CR:VA;0) 298.15 -45900+6*T;,,N 91SAU1 ! +$ +$ BCC_A2 PHASE +$ + PARAMETER G(BCC_A2,AL,CR:VA;0) 298.15 -54900+10*T;,,N 91SAU1 ! +$ +$ BCC_B2 PHASE +$ metastable +$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. The B2 +$ phase is not stabilized enough to become stable in the Al-Cr. It is +$ thus not in agreement with "T. Helander, and O. Tolochko, J. of Phase +$ Eq, 20 (1) 1999, 57-60." Further study on the extension of the B2 phase +$ towards AlCr in Al-Cr-Ni would be desirable. + PARAMETER G(BCC_B2,AL:CR:VA;0) 298.15 -2000;,,N 99DUP6 ! + PARAMETER G(BCC_B2,CR:AL:VA;0) 298.15 -2000;,,N 99DUP6 ! +$ +$ FCC_L12 PHASE +$ metastable +$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. + FUN U1ALCR 298.15 -830;,,N 99DUP6 ! + FUN U3ALCR 298.15 0.0; 6000.00 99DUP6 ! + FUN U4ALCR 298.15 0.0; 6000.00 N 99DUP6 ! + FUNCTION L04ALCR 298.15 U3ALCR;,,N ! + FUNCTION L14ALCR 298.15 U4ALCR;,,N ! + FUNCTION ALCR3 298.15 3*U1ALCR;,,N ! + FUNCTION AL2CR2 298.15 4*U1ALCR;,,N ! + FUNCTION AL3CR 298.15 3*U1ALCR;,,N ! + PARAMETER G(FCC_L12,CR:AL:VA;0) 298.15 +ALCR3;,, N 99DUP6 ! + PARAMETER G(FCC_L12,AL:CR:VA;0) 298.15 +AL3CR;,, N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:AL:VA;0) 298.15 + -1.5*ALCR3+1.5*AL2CR2+1.5*AL3CR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:CR:VA;0) 298.15 + +1.5*ALCR3+1.5*AL2CR2-1.5*AL3CR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:AL:VA;1) 298.15 + +0.5*ALCR3-1.5*AL2CR2+1.5*AL3CR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:CR:VA;1) 298.15 + -1.5*ALCR3+1.5*AL2CR2-0.5*AL3CR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,*:AL,CR:VA;0) 298.15 +L04ALCR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,*:AL,CR:VA;1) 298.15 +L14ALCR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:*:VA;0) 298.15 +3*L04ALCR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:*:VA;1) 298.15 +3*L14ALCR;,,N 99DUP6 ! +$ +$ AL11CR2 PHASE +$ + PHASE AL11CR2 % 3 10 1 2 ! + CONST AL11CR2 :AL : AL : CR : ! + PARAMETER G(AL11CR2,AL:AL:CR;0) 298.15 + +11*GHSERAL+2*GHSERCR-175500+25.805*T;,,N 91SAU1 ! +$ +$ AL13CR2 PHASE +$ + PHASE AL13CR2 % 2 13 2 ! + CONST AL13CR2 :AL : CR : ! + PARAMETER G(AL13CR2,AL:CR;0) 298.15 + +13*GHSERAL+2*GHSERCR-174405+22.2*T;,,N 91SAU1 ! +$ +$ AL4CR PHASE +$ + PHASE AL4CR % 2 4 1 ! + CONST AL4CR :AL : CR : ! + PARAMETER G(AL4CR,AL:CR;0) 298.15 + +4*GHSERAL+GHSERCR-89025+19.05*T;,,N 91SAU1 ! +$ +$ AL8CR5_H PHASE +$ + PHASE AL8CR5_H % 2 8 5 ! + CONST AL8CR5_H :AL : CR : ! + PARAMETER G(AL8CR5_H,AL:CR;0) 298.15 + +8*GHSERAL+5*GHSERCR-147732-58.5*T;,,N 91SAU1 ! +$ +$ AL8CR5_L PHASE +$ + PHASE AL8CR5_L % 2 8 5 ! + CONST AL8CR5_L :AL : CR : ! + PARAMETER G(AL8CR5_L,AL:CR;0) 298.15 + +8*GHSERAL+5*GHSERCR-229515;,,N 91SAU1 ! +$ +$ AL9CR4_H PHASE +$ + PHASE AL9CR4_H % 2 9 4 ! + CONST AL9CR4_H :AL : CR : ! + PARAMETER G(AL9CR4_H,AL:CR;0) 298.15 + +9*GHSERAL+4*GHSERCR-134433-56.16*T;,,N 91SAU1 ! +$ +$ AL9CR4_L PHASE +$ + PHASE AL9CR4_L % 2 9 4 ! + CONST AL9CR4_L :AL : CR : ! + PARAMETER G(AL9CR4_L,AL:CR;0) 298.15 + +9*GHSERAL+4*GHSERCR-230750+16.094*T;,,N 91SAU1 ! +$ +$ ALCR2 PHASE +$ + PHASE ALCR2 % 2 1 2 ! + CONST ALCR2 :AL : CR : ! + PARAMETER G(ALCR2,AL:CR;0) 298.15 + +GHSERAL+2*GHSERCR-32700-8.79*T;,,N 91SAU1 ! +$ +$ AL3TI_DO22 PHASE +$ metastable +$ + PARAMETER G(AL3TI_DO22,AL:CR;0) 298.15 + +3*GHSERAL+GHSERCR-53000;,,N COST507 ! +$ +$ NI3TI_DO24 PHASE +$ metastable +$ + PARA G(NI3TI_DO24,CR:AL;0) 298.15 .25*GHCPAL+.75*GHCPCR;,,N LINEAR ! + PARA G(NI3TI_DO24,AL:CR;0) 298.15 .75*GHCPAL+.25*GHCPCR;,,N LINEAR ! +$ +$ MTI2 PHASE +$ metastable +$ + PARA G(MTI2,CR:AL;0) 298.15 +GHSERCR+2*GHSERAL;,,N LINEAR ! +$ +$ ALTI3_DO19 PHASE +$ metastable +$ + PARA G(ALTI3_DO19,CR:AL;0) 298.15 +GHCPAL+3*GHCPCR;,,N COST507 ! + PARA G(ALTI3_DO19,AL:CR;0) 298.15 +3*GHCPAL+GHCPCR;,,N COST507 ! + PARA L(ALTI3_DO19,AL,CR:AL;0) 298.15 1E-04;,,N COST507 ! + PARA L(ALTI3_DO19,AL:AL,CR;0) 298.15 1E-04;,,N COST507 ! + PARA L(ALTI3_DO19,CR:AL,CR;0) 298.15 1E-04;,,N COST507 ! + PARA L(ALTI3_DO19,AL,CR:CR;0) 298.15 1E-04;,,N COST507 ! +$ +$ ALTI_L10 PHASE +$ metastable +$ + PARA G(ALTI_L10,CR:AL;0) 298.15 -25000+3*T+GHSERAL+GFCCCR;,,N COST507 ! + PARA G(ALTI_L10,AL:CR;0) 298.15 -25000+3*T+GHSERAL+GFCCCR;,,N COST507 ! + PARA L(ALTI_L10,AL,CR:AL;0) 298.15 1E-04;,,N COST507 ! + PARA L(ALTI_L10,AL:AL,CR;0) 298.15 1E-04;,,N COST507 ! + PARA L(ALTI_L10,CR:AL,CR;0) 298.15 1E-04;,,N COST507 ! + PARA L(ALTI_L10,AL,CR:CR;0) 298.15 1E-04;,,N COST507 ! +$ +$ SIGMA PHASE +$ metastable +$ + PARA G(SIGMA,AL:CR:AL;0) 298.15 + 8*GHSERAL+4*GHSERCR+18*GBCCAL+UNASS;,,N 99LEE ! + PARA G(SIGMA,AL:CR:CR;0) 298.15 + 8*GHSERAL+4*GHSERCR+18*GHSERCR+UNASS;,,N 99LEE ! +$ +$ NEWSIGMA PHASE +$ metastable +$ + PARA G(NEWSIGMA,AL:CR:AL;0) 298.15 + +10*GHSERAL+4*GHSERCR+16*GBCCAL;,,N LINEAR ! + PARA G(NEWSIGMA,AL:CR:CR;0) 298.15 + +10*GHSERAL+4*GHSERCR+16*GHSERCR;,,N LINEAR ! +$ +$ C14_LAVES PHASE +$ metastable +$ + PARAMETER G(C14_LAVES,CR:AL;0) 298.15 + +2*GHSERCR+GHSERAL;,,N LINEAR ! + PARAMETER G(C14_LAVES,AL:CR;0) 298.15 + +GHSERCR+2*GHSERAL;,,N LINEAR ! +$ +$ C15_LAVES PHASE +$ metastable +$ + PARAMETER G(C15_LAVES,CR:AL;0) 298.15 + +2*GHSERCR+GHSERAL;,,N LINEAR ! + PARAMETER G(C15_LAVES,AL:CR;0) 298.15 + +GHSERCR+2*GHSERAL;,,N LINEAR ! +$ +$ C36_LAVES PHASE +$ metastable +$ + PARAMETER G(C36_LAVES,CR:AL;0) 298.15 + +2*GHSERCR+GHSERAL;,,N LINEAR ! + PARAMETER G(C36_LAVES,AL:CR;0) 298.15 + +GHSERCR+2*GHSERAL;,,N LINEAR ! +$ +$---------------------------------------------------------------------------- +$ +$ Al-Ni +$ Mainly from ND thesis, +$ slighly revised to get better solvus at low temperature +$ +$ LIQUID PHASE +$ + PARAMETER L(LIQUID,AL,NI;0) 298.15 -207109.28+41.31501*T;,,N 95DUP3 ! + PARAMETER L(LIQUID,AL,NI;1) 298.15 -10185.79+5.8714*T;,,N 95DUP3 ! + PARAMETER L(LIQUID,AL,NI;2) 298.15 +81204.81-31.95713*T;,,N 95DUP3 ! + PARAMETER L(LIQUID,AL,NI;3) 298.15 +4365.35-2.51632*T;,,N 95DUP3 ! + PARAMETER L(LIQUID,AL,NI;4) 298.15 -22101.64+13.16341*T;,,N 95DUP3 ! +$ +$ FCC_A1 PHASE +$ + PARAMETER TC(FCC_A1,AL,NI:VA;0) 298.15 -1112;,,N 95DUP3 ! + PARAMETER TC(FCC_A1,AL,NI:VA;1) 298.15 1745;,,N 95DUP3 ! + PARAMETER G(FCC_A1,AL,NI:VA;0) 298.15 -162407.75+16.212965*T;,,N 95DUP3 ! + PARAMETER G(FCC_A1,AL,NI:VA;1) 298.15 +73417.798-34.914168*T;,,N 95DUP3 ! + PARAMETER G(FCC_A1,AL,NI:VA;2) 298.15 +33471.014-9.8373558*T;,,N 95DUP3 ! + PARAMETER G(FCC_A1,AL,NI:VA;3) 298.15 -30758.01+10.25267*T;,,N 95DUP3 ! +$ +$ BCC_A2 PHASE +$ metastable +$ + FUNC B2ALNI 295.15 -152397.3+26.40575*T;,,N ! + FUNC LB2ALNI 298.15 -52440.88+11.30117*T;,,N ! + PARAMETER L(BCC_A2,AL,NI:VA;0) 298.15 B2ALNI+LB2ALNI;,,N 99DUP! +$ +$ HCP_A3 PHASE +$ metastable +$ + PARAMETER TC(HCP_A3,AL,NI:VA;0) 298.15 -1112;,,N 95DUP8 ! + PARAMETER TC(HCP_A3,AL,NI:VA;1) 298.15 1745;,,N 95DUP8 ! + PARAMETER L(HCP_A3,AL,NI:VA;0) 298.15 -162407.75+16.212965*T;,,N 95DUP8 ! + PARAMETER L(HCP_A3,AL,NI:VA;1) 298.15 +73417.798-34.914168*T;,,N 95DUP8 ! + PARAMETER L(HCP_A3,AL,NI:VA;2) 298.15 +33471.014-9.8373558*T;,,N 95DUP8 ! + PARAMETER L(HCP_A3,AL,NI:VA;3) 298.15 -30758.01+10.25267*T;,,N 95DUP8 ! +$ +$ BCC_B2 PHASE +$ + PARAMETER G(BCC_B2,AL:NI:VA;0) 298.15 .5*B2ALNI-.5*LB2ALNI;,,N 99DUP ! + PARAMETER G(BCC_B2,NI:AL:VA;0) 298.15 .5*B2ALNI-.5*LB2ALNI;,,N 99DUP ! +$ +$ FCC_L12 PHASE +$ + FUN UALNI 298.15 -22212.8931+4.39570389*T;,,,N 99DUP3 ! + FUN U1ALNI 298.15 2*UNTIER*UALNI;,,,N 99DUP3 ! + FUN U3ALNI 298.15 0;,,,N 99DUP3 ! + FUN U4ALNI 298.15 7203.60609-3.74273030*T;,,,N 99DUP3 ! + FUNCTION L04ALNI 298.15 U3ALNI;,,N 99DUP3 ! + FUNCTION L14ALNI 298.15 U4ALNI;,,N 99DUP3 ! + FUNCTION ALNI3 298.15 +3*U1ALNI;,,,N 99DUP3 ! + FUNCTION AL2NI2 298.15 +4*U1ALNI;,,,N 99DUP3 ! + FUNCTION AL3NI 298.15 +3*U1ALNI;,,,N 99DUP3 ! + PARAMETER G(FCC_L12,NI:AL:VA;0) 298.15 +ALNI3;,,N 99DUP3 ! + PARAMETER G(FCC_L12,AL:NI:VA;0) 298.15 +AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:AL:VA;0) 298.15 + -1.5*ALNI3+1.5*AL2NI2+1.5*AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:NI:VA;0) 298.15 + +1.5*ALNI3+1.5*AL2NI2-1.5*AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:AL:VA;1) 298.15 + +0.5*ALNI3-1.5*AL2NI2+1.5*AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:NI:VA;1) 298.15 + -1.5*ALNI3+1.5*AL2NI2-0.5*AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,*:AL,NI:VA;0) 298.15 +L04ALNI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,*:AL,NI:VA;1) 298.15 +L14ALNI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:*:VA;0) 298.15 +3*L04ALNI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:*:VA;1) 298.15 +3*L14ALNI;,,N 99DUP3 ! +$ +$ AL3NI1 PHASE +$ + PHASE AL3NI1 % 2 .75 .25 ! + CONST AL3NI1 :AL : NI : ! + PARAMETER G(AL3NI1,AL:NI;0) 298.15 + -48483.73+12.29913*T + +.75*GHSERAL+.25*GHSERNI;,,N 95DUP3 ! +$ +$ AL3NI2 PHASE +$ + PHASE AL3NI2 % 3 3 2 1 ! + CONST AL3NI2 :AL : AL,NI% : NI,VA% : ! + PARAMETER G(AL3NI2,AL:AL:NI;0) 298.15 +5*GBCCAL+GBCCNI + -39465.978+7.89525*T;,,N 95DUP3 ! + PARAMETER G(AL3NI2,AL:NI:NI;0) 298.15 +3*GBCCAL+3*GBCCNI + -427191.9+79.21725*T;,,N 95DUP3 ! + PARAMETER G(AL3NI2,AL:AL:VA;0) 298.15 +5*GBCCAL + +30000-3*T;,,N 95DUP3 ! + PARAMETER G(AL3NI2,AL:NI:VA;0) 298.15 +3*GBCCAL+2*GBCCNI + -357725.92+68.322*T;,,N 95DUP3 ! + PARAMETER L(AL3NI2,AL:AL,NI:*;0) 298.15 + -193484.18+131.79*T;,,N 95DUP3 ! + PARAMETER L(AL3NI2,AL:*:NI,VA;0) 298.15 + -22001.7+7.0332*T;,,N 95DUP3 ! +$ +$ AL3NI5 PHASE +$ + PHASE AL3NI5 % 2 .375 .625 ! + CONST AL3NI5 :AL : NI : ! + PARAMETER G(AL3NI5,AL:NI;0) 298.15 +.375*GHSERAL+.625*GHSERNI + -55507.7594+7.2648103*T;,,N 95DUP3 ! +$ +$ MTI2 PHASE +$ metastable +$ + PARAMETER G(MTI2,NI:AL;0) 298.15 GHSERNI+2*GHSERAL+80810;,,N 95DUP8 ! +$ +$ C14_LAVES PHASE +$ metastable +$ + PARAMETER G(C14_LAVES,NI:AL;0) 298.15 + +2*GHSERNI+GHSERAL+130000;,,N 99DUP8 ! + PARAMETER G(C14_LAVES,AL:NI;0) 298.15 + +GHSERNI+2*GHSERAL-100000;,,N 99DUP8 ! +$ +$ C15_LAVES PHASE +$ metastable +$ + PARAMETER G(C15_LAVES,NI:AL;0) 298.15 + +2*GHSERNI+GHSERAL+130000-2000;,,N 99DUP8 ! + PARAMETER G(C15_LAVES,AL:NI;0) 298.15 + +GHSERNI+2*GHSERAL-100000+2000;,,N 99DUP8 ! +$ +$ C36_LAVES PHASE +$ metastable +$ + PARAMETER G(C36_LAVES,NI:AL;0) 298.15 + +2*GHSERNI+GHSERAL+130000-3000;,,N 99DUP8 ! + PARAMETER G(C36_LAVES,AL:NI;0) 298.15 + +GHSERNI+2*GHSERAL-100000+3000;,,N 99DUP8 ! +$ +$ H_L21 PHASE +$ metastable +$ + FUNCTION GHALNI 298.15 -152397.3+26.40575*T+GBCCAL+GBCCNI+4000;,,N 99DUP8 ! + PARAMETER G(H_L21,AL:AL:NI;0) 298.15 +GHALNI;,,N 99DUP8 ! + PARAMETER G(H_L21,NI:AL:NI;0) 298.15 +.5*GHALNI+GBCCNI;,,N 99DUP8 ! + PARAMETER G(H_L21,AL:NI:NI;0) 298.15 +.5*GHALNI+GBCCNI;,,N 99DUP8 ! + PARAMETER G(H_L21,NI:AL:VA;0) 298.15 +.5*GBCCAL+.5*GHSERNI + +55000-.5*T;,,N 99DUP8 ! + PARAMETER G(H_L21,AL:NI:VA;0) 298.15 +.5*GBCCAL+.5*GHSERNI + +55000-.5*T;,,N 99DUP8 ! +$ +$ NI3TI_DO24 PHASE +$ metastable +$ + FUN DO24NIAL 298.15 +3*GHCPNI+GHCPAL-80000;,,N 99DUP8 ! + PARAMETER G(NI3TI_DO24,NI:AL;0) 298.15 + .25*DO24NIAL;,,N 99DUP8 ! + PARAMETER G(NI3TI_DO24,AL:NI;0) 298.15 + +.75*GHCPAL+.25*GHCPNI;,,N 95DUP8 ! +$ +$ ALTI3_DO19 PHASE +$ metastable +$ + PARAMETER G(ALTI3_DO19,NI:AL;0) 298.15 + 3*GHCPNI+GHCPAL;,,N 99DUP8 ! + PARAMETER G(ALTI3_DO19,AL:NI;0) 298.15 + 3*GHCPAL+GHCPNI;,,N 95DUP8 ! +$ +$---------------------------------------------------------------------------- +$ +$ Cr-Ni +$ Mainly from SSOL +$ Metastable B2 and L12 from revision of Al-Cr-Ni +$ +$ LIQUID PHASE +$ + PARAMETER L(LIQUID,CR,NI;0) 298.15 +318-7.3318*T;,,N 91LEE ! + PARAMETER L(LIQUID,CR,NI;1) 298.15 +16941-6.3696*T;,,N 91LEE ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,CR,NI:VA;0) 298.15 +8030-12.8801*T;,,N 91LEE ! + PARAMETER G(FCC_A1,CR,NI:VA;1) 298.15 +33080-16.0362*T;,,N 91LEE ! + PARAMETER TC(FCC_A1,CR,NI:VA;0) 298.15 -3605;,,N 86DIN ! + PARAMETER BMAGN(FCC_A1,CR,NI:VA;0) 298.15 -1.91;,,N 86DIN ! +$ +$ BCC_A2 PHASE +$ + PARAMETER G(BCC_A2,CR,NI:VA;0) 298.15 +17170-11.8199*T;,,N 91LEE ! + PARAMETER G(BCC_A2,CR,NI:VA;1) 298.15 +34418-11.8577*T;,,N 91LEE ! + PARAMETER TC(BCC_A2,CR,NI:VA;0) 298.15 2373;,,N 86DIN ! + PARAMETER TC(BCC_A2,CR,NI:VA;1) 298.15 617;,,N 86DIN ! + PARAMETER BMAGN(BCC_A2,CR,NI:VA;0) 298.15 4;,,N 86DIN ! +$ +$ HCP_A3 PHASE +$ metastable +$ + PARAMETER G(HCP_A3,CR,NI:VA;0) 298.15 50000;,,N 95DUP6 ! + PARAMETER TC(HCP_A3,CR,NI:VA;0) 298.15 -3605;,,N 95DUP6 ! + PARAMETER BMAGN(HCP_A3,CR,NI:VA;0) 298.15 -1.91;,,N 95DUP6 ! +$ +$ BCC_B2 PHASE +$ metastable +$ +$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. + PARAMETER G(BCC_B2,CR:NI:VA;0) 298.15 4000;,,N 99DUP6 ! + PARAMETER G(BCC_B2,NI:CR:VA;0) 298.15 4000;,,N 99DUP6 ! +$ +$ FCC_L12 PHASE +$ metastable +$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. +$ The L12 phase is metastable in the binary Cr-Ni while it was stable in NDTH. + FUN U1CRNI 298.15 -1980;,,,N 99DUP6 ! +$ FUN U1CRNI 298.15 -7060+3.63*T;,,,N 99DUP6 ! + FUN U3CRNI 298.15 0;,,,N 99DUP6 ! + FUN U4CRNI 298.15 0;,,,N 99DUP6 ! + FUNCTION L04CRNI 298.15 U3CRNI;,,N 99DUP6 ! + FUNCTION L14CRNI 298.15 U4CRNI;,,N 99DUP6 ! + FUNCTION CRNI3 298.15 +3*U1CRNI;,,,N 99DUP6 ! + FUNCTION CR2NI2 298.15 +4*U1CRNI;,,,N 99DUP6 ! + FUNCTION CR3NI 298.15 +3*U1CRNI;,,,N 99DUP6 ! + PARAMETER G(FCC_L12,NI:CR:VA;0) 298.15 +CRNI3;,, N 99DUP6 ! + PARAMETER G(FCC_L12,CR:NI:VA;0) 298.15 +CR3NI;,, N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:CR:VA;0) 298.15 + -1.5*CRNI3+1.5*CR2NI2+1.5*CR3NI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:NI:VA;0) 298.15 + +1.5*CRNI3+1.5*CR2NI2-1.5*CR3NI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:CR:VA;1) 298.15 + +0.5*CRNI3-1.5*CR2NI2+1.5*CR3NI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:NI:VA;1) 298.15 + -1.5*CRNI3+1.5*CR2NI2-0.5*CR3NI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,*:CR,NI:VA;0) 298.15 +L04CRNI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,*:CR,NI:VA;1) 298.15 +L14CRNI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:*:VA;0) 298.15 +3*L04CRNI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:*:VA;1) 298.15 +3*L14CRNI;,,N 99DUP6 ! +$ +$ SIGMA PHASE +$ metastable +$ + PARAMETER G(SIGMA,NI:CR:CR;0) 298.15 + +8*GHSERNI+4*GHSERCR+18*GHSERCR+221157-227*T;,,N 91LEE ! + PARAMETER G(SIGMA,NI:CR:NI;0) 298.15 + +8*GHSERNI+4*GHSERCR+18*GBCCNI+175400;,,N 86GUS ! +$ +$ NEWSIGMA PHASE +$ metastable +$ + PARAMETER G(NEWSIGMA,NI:CR:CR;0) 298.15 + +10*GHSERNI+4*GHSERCR+16*GHSERCR+221157-227*T;,,N SIG10416 ! + PARAMETER G(NEWSIGMA,NI:CR:NI;0) 298.15 + +10*GHSERNI+4*GHSERCR+16*GBCCNI+175400;,,N SIG10416 ! +$ +$ CHI_A12 PHASE +$ metastable +$ + PARAMETER G(CHI_A12,NI:CR:CR;0) 298.15 + +24*GHSERNI+10*GHSERCR+24*GFCCCR;,, N 99LEE ! + PARAMETER G(CHI_A12,CR:CR:NI;0) 298.15 + +24*GFCCCR+10*GHSERCR+24*GHSERNI;,, N 99LEE ! + PARAMETER G(CHI_A12,NI:CR:NI;0) 298.15 + +24*GHSERNI+10*GHSERCR+24*GHSERNI;,, N 99LEE ! +$ +$ C14_LAVES PHASE +$ metastable +$ + PARAMETER G(C14_LAVES,NI:CR;0) 298.15 2*GHSERNI+GHSERCR+15000;,,N 95DUP4 ! + PARAMETER G(C14_LAVES,CR:NI;0) 298.15 2*GHSERCR+GHSERNI+15000;,,N 95DUP4 ! +$ +$ C15_LAVES PHASE +$ metastable +$ + PARAMETER G(C15_LAVES,NI:CR;0) 298.15 +2*GHSERNI+GHSERCR+15000;,,N 95DUP4 ! + PARAMETER G(C15_LAVES,CR:NI;0) 298.15 +2*GHSERNI+GHSERCR+15000;,,N 95DUP4 ! +$ +$ C36_LAVES PHASE +$ metastable +$ + PARAMETER G(C36_LAVES,NI:CR;0) 298.15 +2*GHSERNI+GHSERCR+15000;,,N 99DUP9 ! + PARAMETER G(C36_LAVES,CR:NI;0) 298.15 +2*GHSERNI+GHSERCR+15000;,,N 99DUP9 ! +$ +$ MTI2 PHASE +$ metastable +$ + PARAMETER G(MTI2,NI:CR;0) 298.15 GHSERNI+2*GHSERCR+5000;,,N 95DUP9 ! + PARAMETER G(MTI2,CR:NI;0) 298.15 GHSERCR+2*GHSERNI+5000;,,N 95DUP9 ! +$ +$ NI3TI_DO24 PHASE +$ metastable +$ + PARAMETER G(NI3TI_DO24,CR:NI;0) 298.15 .75*GHCPCR+.25*GHCPNI;,,N 95DUP9 ! + PARAMETER G(NI3TI_DO24,NI:CR;0) 298.15 .75*GHCPNI+.25*GHCPCR;,,N 95DUP9 ! +$ +$ ALTI3_DO19 PHASE +$ metastable +$ + PARAMETER G(ALTI3_DO19,NI:CR;0) 298.15 + 3*GHCPNI+GHCPCR;,,N LINEAR ! + PARAMETER G(ALTI3_DO19,CR:NI;0) 298.15 + 3*GHCPCR+GHCPNI;,,N LINEAR ! +$ +$**************************************************************************** +$ +$ TERNARY PARAMETERS +$ +$---------------------------------------------------------------------------- +$ +$ Al-Cr-Ni +$ July 1999, ND +$ Revision. Main changes: +$ - description of the A2/B2 +$ - new liquidus data taken into account +$ - simpler ternary interaction parameters +$ +$ LIQUID PHASE +$ + PARAMETER L(LIQUID,AL,CR,NI;0) 298.15 16000;,,N 99DUP6 ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,AL,CR,NI:VA;0) 298.15 30300;,,N 99DUP6 ! +$ +$ BCC_A2 PHASE +$ + PARAMETER G(BCC_A2,AL,CR,NI:VA;0) 298.15 42500;,,N 99DUP6 ! +$ +$ FCC_L12 PHASE +$ + FUN U1ALCRNI 298.15 6650;,,N 99DUP6 ! + FUN U2ALCRNI 298.15 0;,,N 99DUP6 ! + FUN U3ALCRNI 298.15 0;,,N 99DUP6 ! + FUN ALCRNI2 298.15 U1ALCR+2*U1ALNI+2*U1CRNI+U1ALCRNI;,,N 99DUP6 ! + FUN ALCR2NI 298.15 2*U1ALCR+U1ALNI+2*U1CRNI+U2ALCRNI;,,N 99DUP6 ! + FUN AL2CRNI 298.15 2*U1ALCR+2*U1ALNI+U1CRNI+U3ALCRNI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR,NI:AL:VA;0) 298.15 + -1.5*ALCRNI2-1.5*ALCR2NI+ALCR3+ALNI3+6*AL2CRNI + -1.5*AL2CR2-1.5*AL2NI2-1.5*AL3CR-1.5*AL3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR,NI:CR:VA;0) 298.15 + -1.5*ALCRNI2+6*ALCR2NI-1.5*ALCR3-1.5*AL2CRNI + -1.5*AL2CR2+AL3CR+CRNI3-1.5*CR2NI2-1.5*CR3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR,NI:NI:VA;0) 298.15 + +6*ALCRNI2-1.5*ALCR2NI-1.5*ALNI3-1.5*AL2CRNI + -1.5*AL2NI2+AL3NI-1.5*CRNI3-1.5*CR2NI2+CR3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR:NI:VA;0) 298.15 + +1.5*ALCR2NI+1.5*AL2CRNI-1.5*AL3NI-1.5*CR3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,NI:CR:VA;0) 298.15 + +1.5*ALCRNI2+1.5*AL2CRNI-1.5*AL3CR-1.5*CRNI3;,,N 99DUP6 ! + PARA L(FCC_L12,CR,NI:AL:VA;0) 298.15 + +1.5*ALCRNI2+1.5*ALCR2NI-1.5*ALCR3-1.5*ALNI3;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR:NI:VA;1) 298.15 + -1.5*ALCR2NI+1.5*AL2CRNI-0.5*AL3NI+0.5*CR3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,NI:CR:VA;1) 298.15 + -1.5*ALCRNI2+1.5*AL2CRNI-0.5*AL3CR+0.5*CRNI3;,,N 99DUP6 ! + PARA L(FCC_L12,CR,NI:AL:VA;1) 298.15 + -1.5*ALCRNI2+1.5*ALCR2NI-0.5*ALCR3+0.5*ALNI3;,,N 99DUP6 ! +$ +$ SIGMA PHASE +$ metastable + PARA G(SIGMA,NI:CR:AL;0) 298.15 + +8*GHSERNI+4*GHSERCR+18*GBCCAL+UNASS;,, N 99LEE ! + PARA G(SIGMA,AL:CR:NI;0) 298.15 + +8*GHSERAL+4*GHSERCR+18*GBCCNI+UNASS;,, N 99LEE ! +$ +$ NEWSIGMA PHASE +$ metastable + PARA G(NEWSIGMA,NI:CR:AL;0) 298.15 + +10*GHSERNI+4*GHSERCR+16*GBCCAL;,, N LINEAR ! + PARA G(NEWSIGMA,AL:CR:NI;0) 298.15 + +10*GHSERAL+4*GHSERCR+16*GBCCNI;,, N LINEAR ! +$ +$ +$**************************************************************************** +$ Diffusion parameters +$ +PARAMETER MQ(FCC_A1&AL,NI;0) 298.15 -284000+R*T*LN(7.5E-4); + 6.000E+3 N 96Eng ! +PARAMETER MQ(FCC_A1&AL,AL;0) 298.15 -142000+R*T*LN(1.71E-4); + 6.000E+3 N 96Eng ! +PARAMETER MQ(FCC_A1&AL,AL,NI;0) 298.15 -41300-91.2*T; + 6.000E+3 N 96Eng ! +PARAMETER MQ(FCC_A1&AL,CR;0) 298.15 -235000-82*T; 6000 N 96Eng ! +PARAMETER MQ(FCC_A1&AL,CR,NI;0) 298.15 -53200; 6000 N 96Eng ! +PARAMETER MQ(FCC_A1&AL,Al,Cr;0) 298.15 +335000; 6000 N 96Eng ! + +PARAMETER MQ(FCC_A1&NI,AL;0) 298.15 -145900+R*T*LN(4.4E-4); + 6.000E+3 N 96Eng ! +PARAMETER MQ(FCC_A1&NI,NI;0)298.15 -287000-69.8*T; + 6.000E+3 N 96Eng ! +PARAMETER MQ(FCC_A1&NI,AL,NI;0) 298.15 -113000+65.5*T; + 6.000E+3 N 96Eng ! +PARAMETER MQ(FCC_A1&NI,CR;0) 298.15 -235000-82*T; 6000 N 96Eng ! +PARAMETER MQ(FCC_A1&NI,CR,NI;0) 298.15 -81000; 6000 N 96Eng ! +PARAMETER MQ(FCC_A1&NI,AL,CR;0) 298.15 211000; 6000 N 96Eng ! + + +PARAMETER MQ(FCC_A1&CR,AL;0) 298.15 -261700+R*T*LN(0.64); + 6000 N 96Eng ! +PARAMETER MQ(FCC_A1&CR,CR;0) 298.15 -235000-82*T; 6000 N 96Eng ! +PARAMETER MQ(FCC_A1&CR,NI;0) 298.15 -287000-64.4*T; 6000 N 96Eng ! +PARAMETER MQ(FCC_A1&CR,AL,CR;0) 298.15 +487000; 6000 N 96Eng ! +PARAMETER MQ(FCC_A1&CR,AL,NI;0) 298.15 -118000; 6000 N 96Eng ! +PARAMETER MQ(FCC_A1&CR,CR,NI;0) 298.15 -68000; 6000 N 96Eng ! + +$ Parameters for A2 + +PARAMETER MQ(BCC_A2&NI,AL;0) 298.15 -204000; 6000 N ! +PARAMETER MQ(BCC_A2&NI,NI;0) 298.15 -204000; 6000 N 95Jon ! +PARAMETER MQ(BCC_A2&NI,CR;0) 298.15 -407000; 6000 N 95Jon ! + +PARAMETER MF(BCC_A2&NI,AL;0) 298.15 -90.837*T; 6000 N ! +PARAMETER MF(BCC_A2&NI,NI;0) 298.15 -90.837*T; 6000 N 95Jon ! +PARAMETER MF(BCC_A2&NI,CR;0) 298.15 -17.2*T; 6000 N 95Jon ! + + +PARAMETER MQ(BCC_A2&CR,AL;0) 298.15 -218000; 6000 N ! +PARAMETER MQ(BCC_A2&CR,NI;0) 298.15 -218000; 6000 N 95Jon ! +PARAMETER MQ(BCC_A2&CR,CR;0) 298.15 -407000; 6000 N 95Jon ! + +PARAMETER MF(BCC_A2&CR,AL;0) 298.15 +R*T*LN(8.5E-05); 6000 N ! +PARAMETER MF(BCC_A2&CR,NI;0) 298.15 +R*T*LN(8.5E-05); 6000 N 95Jon ! +PARAMETER MF(BCC_A2&CR,CR;0) 298.15 -35.6*T; 6000 N 95Jon ! + +PARAMETER MQ(BCC_A2&AL,AL;0) 298.15 -215000; 6000 N ! +PARAMETER MQ(BCC_A2&AL,NI;0) 298.15 -215000; 6000 N ! +PARAMETER MQ(BCC_A2&AL,CR;0) 298.15 -215000; 6000 N ! + +PARAMETER MF(BCC_A2&AL,AL;0) 298.15 -80.20*T; 6000 N ! +PARAMETER MF(BCC_A2&AL,NI;0) 298.15 -80.20*T; 6000 N ! +PARAMETER MF(BCC_A2&AL,CR;0) 298.15 -80.20*T; 6000 N ! + +PARAMETER MQ(BCC_A2&AL,AL,NI;0) 298.15 +327400; 6000 N ! +PARAMETER MQ(BCC_A2&NI,AL,NI;0) 298.15 +327400; 6000 N ! +PARAMETER MQ(BCC_A2&CR,CR,NI;0) 298.15 +350000; 6000 N 95Jon ! +PARAMETER MQ(BCC_A2&NI,CR,NI;0) 298.15 +350000; 6000 N 95Jon ! + +$$ Order Parameters for B2 + +PARAMETER MQ(BCC_B2&Al,NI:AL;0) 298.15 -3.458048E+5; 6000 N ! +PARAMETER MQ(BCC_B2&AL,AL:NI;0) 298.15 -3.458048E+5; 6000 N ! +PARAMETER MQ(BCC_B2&Al,AL:VA;0) 298.15 +2.534667E+5; 6000 N ! +PARAMETER MQ(BCC_B2&AL,VA:AL;0) 298.15 +2.534667E+5; 6000 N ! + +$$$ Dummy PARAMETERS for CR +PARAMETER MQ(BCC_B2&Al,CR:AL;0) 298.15 -3.458048E+5; 6000 N ! +PARAMETER MQ(BCC_B2&Al,AL:CR;0) 298.15 -3.458048E+5; 6000 N ! +PARAMETER MQ(BCC_B2&AL,CR:NI;0) 298.15 -9.19170E+5; 6000 N ! +PARAMETER MQ(BCC_B2&AL,NI:CR;0) 298.15 -9.19170E+5; 6000 N ! +PARAMETER MQ(BCC_B2&Al,CR:VA;0) 298.15 +0; 6000 N ! +PARAMETER MQ(BCC_B2&AL,VA:CR;0) 298.15 +0; 6000 N ! + +PARAMETER MQ(BCC_B2&NI,NI:AL;0) 298.15 -3.193892E+5; 6000 N ! +PARAMETER MQ(BCC_B2&NI,AL:NI;0) 298.15 -3.193892E+5; 6000 N ! +PARAMETER MQ(BCC_B2&NI,AL:VA;0) 298.15 -2.260378E+5; 6000 N ! +PARAMETER MQ(BCC_B2&NI,VA:AL;0) 298.15 -2.260378E+5; 6000 N ! + +$$$ Dummy PARAMETERS for CR +PARAMETER MQ(BCC_B2&NI,CR:AL;0) 298.15 -3.193892E+5; 6000 N ! +PARAMETER MQ(BCC_B2&NI,AL:CR;0) 298.15 -3.193892E+5; 6000 N ! +PARAMETER MQ(BCC_B2&NI,CR:NI;0) 298.15 -3.9048E+5; 6000 N ! +PARAMETER MQ(BCC_B2&NI,NI:CR;0) 298.15 -3.9048E+5; 6000 N ! + + +$$$ Dummy PARAMETERS for CR +PARAMETER MQ(BCC_B2&CR,CR:AL;0) 298.15 -3.193892E+5; 6000 N ! +PARAMETER MQ(BCC_B2&CR,AL:CR;0) 298.15 -3.193892E+5; 6000 N ! +PARAMETER MQ(BCC_B2&CR,CR:NI;0) 298.15 -3.9048E+5; 6000 N ! +PARAMETER MQ(BCC_B2&CR,NI:CR;0) 298.15 -3.9048E+5; 6000 N ! +PARAMETER MQ(BCC_B2&CR,NI:AL;0) 298.15 -7.4291E+4; 6000 N ! +PARAMETER MQ(BCC_B2&CR,AL:NI;0) 298.15 -7.4291E+4; 6000 N ! +PARAMETER MQ(BCC_B2&CR,AL:VA;0) 298.15 -2.260378E+5; 6000 N ! +PARAMETER MQ(BCC_B2&CR,VA:AL;0) 298.15 -2.260378E+5; 6000 N ! +$ +$**************************************************************************** + + LIST_OF_REFERENCES + NUMBER SOURCE + LINEAR 'Unassessed parameter, linear combination of unary data. (MU, + SIGMA)' + REFLAV 'G(LAVES,AA)=3*G(SER,AA)+15000' + 86DIN 'A. Dinsdale, T. Chart, MTDS NPL, Unpublished work (1986); CR-NI' + 86FER1 'A. Fernandez Guillermet, + Z metallkde, Vol 78 (1987) p 639-647, + TRITA-MAC 324B (1986); CO-NI' + 86GUS 'P. Gustafson, Calphad Vol 11 (1987) p 277-292, + TRITA-MAC 320 (1986); CR-NI-W ' + 87GUS 'P. Gustafson, TRITA-MAC 342, (1987); CR-FE-W' + 89DIN 'Alan Dinsdale, SGTE Data for Pure Elements, + NPL Report DMA(A)195 September 1989' + 91DIN 'Alan Dinsdale, SGTE Data for Pure Elements, NPL Report + DMA(A)195 Rev. August 1990' + 91LEE 'Byeong-Joo Lee, unpublished revision (1991); C-Cr-Fe-Ni' + 91SAU1 'Nigel Saunders, 1991, based on + N. Saunders, V.G. Rivlin + Z. metallkde, 78 (11), 795-801 (1987); Al-Cr' + 91DIN 'Alan Dinsdale, SGTE Data for Pure Elements, + Calphad Vol 15(1991) p 317-425, + also in NPL Report DMA(A)195 Rev. August 1990' + 95DUP3 'N. Dupin, Thesis, LTPCM, France, 1995; + Al-Ni, + also in I. Ansara, N. Dupin, H.L. Lukas, B. SUndman + J. Alloys Compds, 247 (1-2), 20-30 (1997)' + 95DUP4 'N. Dupin, Thesis, LTPCM, France, 1995; + Cr-Ni-Ta' + 95DUP6 'N. Dupin, Thesis, LTPCM, France, 1995; + Al-Cr-Ni' + 95DUP8 'N. Dupin, Thesis, LTPCM, France, 1995; + Al-Ni-Ti' + 95DUP9 'N. Dupin, Thesis, LTPCM, France, 1995; + Cr-Ni-Ti' + 99DUP 'N. Dupin, I. Ansara, + Z. metallkd., Vol 90 (1999) p 76-85; + Al-Ni' + 99DUP3 'N. Dupin, + July 1999, unpublished revision + ; Al-Ni' + 99DUP6 'N. Dupin, + July 1999, unpublished revision + ; Al-Cr-Ni' + 99DUP8 'N. Dupin, + August 1999, unpublished revision + ; Al-Ni-Ti' + 99DUP9 'N. Dupin, + August 1999, unpublished revision + ; Cr-Ni-Ti' + 99LEE 'Byeong-Joo Lee, unpublished work at KTH (1999); + update of steel database' + REF184 'AL1 CODATA KEY VALUES SGTE ** + ALUMINIUM + Cp values similar in Codata Key Values and IVTAN Vol. 3' + REF448 'AL2 CHATILLON(1992) + Enthalpy of formation for Al1 taken from Codata Key Values. + Enthalpy of form. from TPIS dissociation energy mean Value + corrected with new fef from Sunil K.K. and Jordan K.D. + (J.Phys. Chem. 92(1988)2774) ab initio calculations.' + REF4465 'CR1 T.C.R.A.S. Class: 1 + CHROMIUM ' + REF4591 'CR2 T.C.R.A.S. Class: 6' + REF7504 'NI1 T.C.R.A.S Class: 1 + Data provided by T.C.R.A.S. October 1996' + REF7553 'NI2 T.C.R.A.S Class: 5 + Data provided by T.C.R.A.S. October 1996' + ! +""" + +NICRAL_TDB_DIFF = """ + +$ Same as NICRAL_TDB with the following changes +$ Shortened to include just FCC_A1, FCC_L12, LIQUID +$ Mobility parameters replaced with arbitrary diffusivity parameter to test diffusivity and tracer outputs +$ + + + ELEMENT /- ELECTRON_GAS .0000E+00 .0000E+00 .0000E+00! + ELEMENT VA VACUUM .0000E+00 .0000E+00 .0000E+00! + ELEMENT AL FCC_A1 2.6982E+01 4.5773E+03 2.8322E+01! + ELEMENT CR BCC_A2 5.1996E+01 4.0500E+03 2.3560E+01! + ELEMENT NI FCC_A1 5.8690E+01 4.7870E+03 2.9796E+01! + + SPECIES AL2 AL2! + SPECIES CR2 CR2! + SPECIES NI2 NI2! + + + FUNCTION UNASS 298.15 0;,,N ! + + + TYPE_DEFINITION % SEQ *! + DEFINE_SYSTEM_DEFAULT E 2 ! + DEFAULT_COMMAND DEF_SYS_ELEMENT VA ! + DEFAULT_COMMAND REJECT_PHASE NEWSIGMA ! + + TYPE_DEFINITION A GES A_P_D FCC_L12 MAGNETIC -3.0 .28 ! + TYPE_DEFINITION E GES A_P_D FCC_A1 MAGNETIC -3.0 .28 ! + + TYPE_DEFINITION D GES A_P_D FCC_L12 DIS_PART FCC_A1 ! + + PHASE GAS:G % 1 1.0 ! + CONST GAS:G :AL,AL2,CR,CR2,NI,NI2 : ! + + PHASE LIQUID:L % 1 1.0 ! + CONST LIQUID:L :AL,CR,NI : ! + + PHASE FCC_A1 %E 2 1 1 ! + CONST FCC_A1 :AL,CR,NI% : VA% : ! + +$ PHASE FCC_L12 %ADG 3 .75 .25 1 ! + PHASE FCC_L12 %AD 3 .75 .25 1 ! + CONST FCC_L12 :AL,CR,NI : AL,CR,NI : VA : ! + + FUNCTION ZERO 298.15 0;,,N ! + FUNCTION DP 298.15 +P-101325;,,N ! + FUNCTION TROIS 298.15 3;,,N ! + FUNCTION UNTIER 298.15 TROIS**(-1);,,N ! + +$**************************************************************************** +$ +$ UNARY PARAMETERS +$ +$---------------------------------------------------------------------------- +$ +$ Al +$ +$ FUNCTIONS +$ + FUNCTION F154T 298.15 + +323947.58-25.1480943*T-20.859*T*LN(T) + +4.5665E-05*T**2-3.942E-09*T**3-24275.5*T**(-1); + 4300.0 Y + +342017.233-54.0526109*T-17.7891*T*LN(T)+6.822E-05*T**2 + -1.91111667E-08*T**3-14782200*T**(-1); + 8200.0 Y + +542396.07-411.214335*T+22.2419*T*LN(T)-.00349619*T**2 + +4.0491E-08*T**3-2.0366965E+08*T**(-1); 1.00000E+04 N ! +$ + FUNCTION F625T 298.15 + +496408.232+35.479739*T-41.6397*T*LN(T) + +.00249636*T**2-4.90507333E-07*T**3+85390.3*T**(-1); + 900.00 Y + +497613.221+17.368131*T-38.85476*T*LN(T)-2.249805E-04*T**2 + -9.49003167E-09*T**3-5287.23*T**(-1); 2.80000E+03 N ! +$ + FUNCTION GHSERAL 298.15 + -7976.15+137.093038*T-24.3671976*T*LN(T) + -.001884662*T**2-8.77664E-07*T**3+74092*T**(-1); + 700.00 Y + -11276.24+223.048446*T-38.5844296*T*LN(T) + +.018531982*T**2-5.764227E-06*T**3+74092*T**(-1); + 933.60 Y + -11278.378+188.684153*T-31.748192*T*LN(T) + -1.231E+28*T**(-9);,, N ! +$ + FUNCTION GHCPAL 298.15 +5481-1.8*T+GHSERAL;,,N ! +$ + FUNCTION GBCCAL 298.15 +10083-4.813*T+GHSERAL;,,N ! +$ + FUNCTION GLIQAL 298.14 + +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL; + 933.59 Y + +10482.282-11.253974*T+1.231E+28*T**(-9)+GHSERAL;,,N ! +$ +$ GAS PHASE +$ + PARAMETER G(GAS,AL;0) 298.15 +F154T+R*T*LN(1E-05*P);,,N REF184 ! + PARAMETER G(GAS,AL2;0) 298.15 +F625T+R*T*LN(1E-05*P);,,N REF448 ! +$ +$ LIQUID PHASE +$ + PARAMETER G(LIQUID,AL;0) 298.13 + +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL; + 933.60 Y + +10482.382-11.253974*T+1.231E+28*T**(-9) + +GHSERAL;,,N 91DIN ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,AL:VA;0) 298.15 +GHSERAL;,,N 91DIN ! +$ +$ +$---------------------------------------------------------------------------- +$ +$ Cr +$ +$ FUNCTIONS +$ + FUNCTION F7454T 298.15 + +390765.331-31.5192154*T-21.36083*T*LN(T) + +7.253215E-04*T**2-1.588679E-07*T**3+10285.15*T**(-1); + 1100.0 Y + +393886.928-44.107465*T-19.96003*T*LN(T)+.001513089*T**2 + -4.23648333E-07*T**3-722515*T**(-1); + 2000.0 Y + +421372.003-231.888524*T+5.362886*T*LN(T)-.00848877*T**2 + +2.984635E-07*T**3-6015405*T**(-1); + 3300.0 Y + +305164.698+251.019831*T-55.20304*T*LN(T)+.005324585*T**2 + -2.850405E-07*T**3+34951485*T**(-1); + 5100.0 Y + +1069921.1-1708.93262*T+175.0508*T*LN(T)-.025574185*T**2 + +4.94447E-07*T**3-4.4276355E+08*T**(-1); + 7600.0 Y + -871952.838+1686.47356*T-204.5589*T*LN(T)+.007475225*T**2 + -4.618745E-08*T**3+1.423504E+09*T**(-1); 1.00000E+04 N ! +$ + FUNCTION F7735T 298.15 +598511.402+41.5353219*T-40.56798*T*LN(T) + +.004961847*T**2-1.61216717E-06*T**3+154422.85*T**(-1); + 800.00 Y + +613345.232-104.20799*T-19.7643*T*LN(T)-.007085085*T**2 + -4.69883E-07*T**3-1738066.5*T**(-1); + 1400.0 Y + +642608.843-369.286259*T+17.64743*T*LN(T)-.02767321*T**2 + +1.605906E-06*T**3-5831655*T**(-1); + 2300.0 Y + +553119.895+159.188556*T-52.07969*T*LN(T)-.004229401*T**2 + +1.5939925E-07*T**3+14793625*T**(-1); + 3900.0 Y + +347492.339+623.137624*T-105.0428*T*LN(T)+3.9699545E-04*T**2 + +1.51783483E-07*T**3+1.4843765E+08*T**(-1); + 5800.0 Y + -484185.055+2598.25559*T-334.7145*T*LN(T)+.028597625*T**2 + -4.97520167E-07*T**3+7.135805E+08*T**(-1); 6.00000E+03 N ! +$ + FUNCTION GHSERCR 298.14 + -8856.94+157.48*T-26.908*T*LN(T) + +.00189435*T**2-1.47721E-06*T**3+139250*T**(-1); + 2180.0 Y + -34869.344+344.18*T-50*T*LN(T)-2.88526E+32*T**(-9);,,N ! +$ + FUNCTION GCRLIQ 298.15 + +24339.955-11.420225*T+2.37615E-21*T**7+GHSERCR; + 2180.0 Y + -16459.984+335.616316*T-50*T*LN(T);,,N ! +$ + FUNCTION GFCCCR 298.15 +7284+.163*T+GHSERCR;,,N ! +$ + FUNCTION GHCPCR 298.15 +4438+GHSERCR;,,N ! +$ + FUNCTION ACRBCC 298.15 +1.7E-05*T+9.2E-09*T**2;,,N ! + FUNCTION BCRBCC 298.15 +1+2.6E-11*P;,,N ! + FUNCTION CCRBCC 298.15 2.08E-11;,,N ! + FUNCTION DCRBCC 298.15 +1*LN(BCRBCC);,,N ! + FUNCTION VCRBCC 298.15 +7.188E-06*EXP(ACRBCC);,,N ! + FUNCTION ECRBCC 298.15 +1*LN(CCRBCC);,,N ! + FUNCTION XCRBCC 298.15 +1*EXP(.8*DCRBCC)-1;,,N ! + FUNCTION YCRBCC 298.15 +VCRBCC*EXP(-ECRBCC);,,N ! + FUNCTION ZCRBCC 298.15 +1*LN(XCRBCC);,,N ! + FUNCTION GPCRBCC 298.15 +YCRBCC*EXP(ZCRBCC);,,N ! +$ + FUNCTION ACRLIQ 298.15 +1.7E-05*T+9.2E-09*T**2;,,N ! + FUNCTION BCRLIQ 298.15 +1+4.65E-11*P;,,N ! + FUNCTION CCRLIQ 298.15 3.72E-11;,,N ! + FUNCTION DCRLIQ 298.15 +1*LN(BCRLIQ);,,N ! + FUNCTION VCRLIQ 298.15 +7.653E-06*EXP(ACRLIQ);,,N ! + FUNCTION ECRLIQ 298.15 +1*LN(CCRLIQ);,,N ! + FUNCTION XCRLIQ 298.15 +1*EXP(.8*DCRLIQ)-1;,,N ! + FUNCTION YCRLIQ 298.15 +VCRLIQ*EXP(-ECRLIQ);,,N ! + FUNCTION ZCRLIQ 298.15 +1*LN(XCRLIQ);,,N ! + FUNCTION GPCRLIQ 298.15 +YCRLIQ*EXP(ZCRLIQ);,,N ! +$ +$ GAS PHASE +$ + PARAMETER G(GAS,CR;0) 298.15 +F7454T+R*T*LN(1E-05*P);,,N REF4465 ! + PARAMETER G(GAS,CR2;0) 298.15 +F7735T+R*T*LN(1E-05*P);,, N REF4591 ! +$ +$ LIQUID PHASE +$ + PARAMETER G(LIQUID,CR;0) 298.15 +GCRLIQ+GPCRLIQ;,, N 91DIN ! +$ +$ FCC_A1 PHASE +$ +$ +$---------------------------------------------------------------------------- +$ +$ Ni +$ +$ FUNCTIONS +$ + FUNCTION F13191T 298.15 + +417658.868-44.7777921*T-20.056*T*LN(T) + -.0060415*T**2+1.24774E-06*T**3-16320*T**(-1); + 800.00 Y + +413885.448+9.41787679*T-28.332*T*LN(T)+.00173115*T**2 + -8.399E-08*T**3+289050*T**(-1); + 3900.0 Y + +440866.732-62.5810038*T-19.819*T*LN(T)+5.067E-04*T**2 + -4.93233333E-08*T**3-15879735*T**(-1); + 7600.0 Y + +848806.287-813.398164*T+64.69*T*LN(T)-.00731865*T**2 + +8.71833333E-08*T**3-3.875846E+08*T**(-1); 10000. N ! +$ + FUNCTION F13265T 298.15 + +638073.279-68.1901928*T-24.897*T*LN(T) + -.0313584*T**2+5.93355333E-06*T**3-14215*T**(-1); + 800.00 Y + +611401.772+268.084821*T-75.25401*T*LN(T)+.01088525*T**2 + -7.08741667E-07*T**3+2633835*T**(-1); + 2100.0 Y + +637459.339+72.0712678*T-48.587*T*LN(T)-9.09E-05*T**2 + +9.12933333E-08*T**3-1191755*T**(-1); + 4500.0 Y + +564540.781+329.599011*T-80.11301*T*LN(T)+.00578085*T**2 + -1.08841667E-07*T**3+29137900*T**(-1); 6000.0 N ! +$ + FUNCTION GHSERNI 298.14 + -5179.159+117.854*T-22.096*T*LN(T) + -.0048407*T**2; + 1728.0 Y + -27840.655+279.135*T-43.1*T*LN(T)+1.12754E+31*T**(-9);,, N ! +$ + FUNCTION GHCPNI 298.15 +1046+1.2552*T+GHSERNI;,,N ! +$ + FUNCTION GBCCNI 298.15 +8715.084-3.556*T+GHSERNI;,,, N ! +$ +$ GAS PHASE +$ + PARAMETER G(GAS,NI;0) 298.15 +F13191T+R*T*LN(1E-05*P);,,N REF7504 ! + PARAMETER G(GAS,NI2;0) 298.15 +F13265T+R*T*LN(1E-05*P);,,N REF7553 ! +$ +$ LIQUID PHASE +$ + PARAMETER G(LIQUID,NI;0) 298.13 + +16414.686-9.397*T-3.82318E-21*T**7+GHSERNI; + 1728.0 Y + +18290.88-10.537*T-1.12754E+31*T**(-9) + +GHSERNI;,,N 91DIN ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,NI:VA;0) 298.15 +GHSERNI;,,N 91DIN ! + PARAMETER TC(FCC_A1,NI:VA;0) 298.15 633;,,N 89DIN ! + PARAMETER BMAGN(FCC_A1,NI:VA;0) 298.15 .52;,,N 89DIN ! +$ +$ +$**************************************************************************** +$ +$ BINARY PARAMETERS +$ +$---------------------------------------------------------------------------- +$ +$ Al-Cr +$ Mainly from Saunders (COST507) +$ Metastable B2 and L12 from revision of Al-Cr-Ni +$ +$ LIQUID PHASE +$ + PARAMETER L(LIQUID,AL,CR;0) 298.15 -29000;,,N 91SAU1 ! + PARAMETER L(LIQUID,AL,CR;1) 298.15 -11000;,,N 91SAU1 ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,AL,CR:VA;0) 298.15 -45900+6*T;,,N 91SAU1 ! +$ +$ +$ FCC_L12 PHASE +$ metastable +$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. + FUN U1ALCR 298.15 -830;,,N 99DUP6 ! + FUN U3ALCR 298.15 0.0; 6000.00 99DUP6 ! + FUN U4ALCR 298.15 0.0; 6000.00 N 99DUP6 ! + FUNCTION L04ALCR 298.15 U3ALCR;,,N ! + FUNCTION L14ALCR 298.15 U4ALCR;,,N ! + FUNCTION ALCR3 298.15 3*U1ALCR;,,N ! + FUNCTION AL2CR2 298.15 4*U1ALCR;,,N ! + FUNCTION AL3CR 298.15 3*U1ALCR;,,N ! + PARAMETER G(FCC_L12,CR:AL:VA;0) 298.15 +ALCR3;,, N 99DUP6 ! + PARAMETER G(FCC_L12,AL:CR:VA;0) 298.15 +AL3CR;,, N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:AL:VA;0) 298.15 + -1.5*ALCR3+1.5*AL2CR2+1.5*AL3CR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:CR:VA;0) 298.15 + +1.5*ALCR3+1.5*AL2CR2-1.5*AL3CR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:AL:VA;1) 298.15 + +0.5*ALCR3-1.5*AL2CR2+1.5*AL3CR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:CR:VA;1) 298.15 + -1.5*ALCR3+1.5*AL2CR2-0.5*AL3CR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,*:AL,CR:VA;0) 298.15 +L04ALCR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,*:AL,CR:VA;1) 298.15 +L14ALCR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:*:VA;0) 298.15 +3*L04ALCR;,,N 99DUP6 ! + PARAMETER L(FCC_L12,AL,CR:*:VA;1) 298.15 +3*L14ALCR;,,N 99DUP6 ! +$ +$ +$---------------------------------------------------------------------------- +$ +$ Al-Ni +$ Mainly from ND thesis, +$ slighly revised to get better solvus at low temperature +$ +$ LIQUID PHASE +$ + PARAMETER L(LIQUID,AL,NI;0) 298.15 -207109.28+41.31501*T;,,N 95DUP3 ! + PARAMETER L(LIQUID,AL,NI;1) 298.15 -10185.79+5.8714*T;,,N 95DUP3 ! + PARAMETER L(LIQUID,AL,NI;2) 298.15 +81204.81-31.95713*T;,,N 95DUP3 ! + PARAMETER L(LIQUID,AL,NI;3) 298.15 +4365.35-2.51632*T;,,N 95DUP3 ! + PARAMETER L(LIQUID,AL,NI;4) 298.15 -22101.64+13.16341*T;,,N 95DUP3 ! +$ +$ FCC_A1 PHASE +$ + PARAMETER TC(FCC_A1,AL,NI:VA;0) 298.15 -1112;,,N 95DUP3 ! + PARAMETER TC(FCC_A1,AL,NI:VA;1) 298.15 1745;,,N 95DUP3 ! + PARAMETER G(FCC_A1,AL,NI:VA;0) 298.15 -162407.75+16.212965*T;,,N 95DUP3 ! + PARAMETER G(FCC_A1,AL,NI:VA;1) 298.15 +73417.798-34.914168*T;,,N 95DUP3 ! + PARAMETER G(FCC_A1,AL,NI:VA;2) 298.15 +33471.014-9.8373558*T;,,N 95DUP3 ! + PARAMETER G(FCC_A1,AL,NI:VA;3) 298.15 -30758.01+10.25267*T;,,N 95DUP3 ! +$ +$ FCC_L12 PHASE +$ + FUN UALNI 298.15 -22212.8931+4.39570389*T;,,,N 99DUP3 ! + FUN U1ALNI 298.15 2*UNTIER*UALNI;,,,N 99DUP3 ! + FUN U3ALNI 298.15 0;,,,N 99DUP3 ! + FUN U4ALNI 298.15 7203.60609-3.74273030*T;,,,N 99DUP3 ! + FUNCTION L04ALNI 298.15 U3ALNI;,,N 99DUP3 ! + FUNCTION L14ALNI 298.15 U4ALNI;,,N 99DUP3 ! + FUNCTION ALNI3 298.15 +3*U1ALNI;,,,N 99DUP3 ! + FUNCTION AL2NI2 298.15 +4*U1ALNI;,,,N 99DUP3 ! + FUNCTION AL3NI 298.15 +3*U1ALNI;,,,N 99DUP3 ! + PARAMETER G(FCC_L12,NI:AL:VA;0) 298.15 +ALNI3;,,N 99DUP3 ! + PARAMETER G(FCC_L12,AL:NI:VA;0) 298.15 +AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:AL:VA;0) 298.15 + -1.5*ALNI3+1.5*AL2NI2+1.5*AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:NI:VA;0) 298.15 + +1.5*ALNI3+1.5*AL2NI2-1.5*AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:AL:VA;1) 298.15 + +0.5*ALNI3-1.5*AL2NI2+1.5*AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:NI:VA;1) 298.15 + -1.5*ALNI3+1.5*AL2NI2-0.5*AL3NI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,*:AL,NI:VA;0) 298.15 +L04ALNI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,*:AL,NI:VA;1) 298.15 +L14ALNI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:*:VA;0) 298.15 +3*L04ALNI;,,N 99DUP3 ! + PARAMETER L(FCC_L12,AL,NI:*:VA;1) 298.15 +3*L14ALNI;,,N 99DUP3 ! +$ +$ +$---------------------------------------------------------------------------- +$ +$ Cr-Ni +$ Mainly from SSOL +$ Metastable B2 and L12 from revision of Al-Cr-Ni +$ +$ LIQUID PHASE +$ + PARAMETER L(LIQUID,CR,NI;0) 298.15 +318-7.3318*T;,,N 91LEE ! + PARAMETER L(LIQUID,CR,NI;1) 298.15 +16941-6.3696*T;,,N 91LEE ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,CR,NI:VA;0) 298.15 +8030-12.8801*T;,,N 91LEE ! + PARAMETER G(FCC_A1,CR,NI:VA;1) 298.15 +33080-16.0362*T;,,N 91LEE ! + PARAMETER TC(FCC_A1,CR,NI:VA;0) 298.15 -3605;,,N 86DIN ! + PARAMETER BMAGN(FCC_A1,CR,NI:VA;0) 298.15 -1.91;,,N 86DIN ! +$ +$ +$ FCC_L12 PHASE +$ metastable +$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. +$ The L12 phase is metastable in the binary Cr-Ni while it was stable in NDTH. + FUN U1CRNI 298.15 -1980;,,,N 99DUP6 ! +$ FUN U1CRNI 298.15 -7060+3.63*T;,,,N 99DUP6 ! + FUN U3CRNI 298.15 0;,,,N 99DUP6 ! + FUN U4CRNI 298.15 0;,,,N 99DUP6 ! + FUNCTION L04CRNI 298.15 U3CRNI;,,N 99DUP6 ! + FUNCTION L14CRNI 298.15 U4CRNI;,,N 99DUP6 ! + FUNCTION CRNI3 298.15 +3*U1CRNI;,,,N 99DUP6 ! + FUNCTION CR2NI2 298.15 +4*U1CRNI;,,,N 99DUP6 ! + FUNCTION CR3NI 298.15 +3*U1CRNI;,,,N 99DUP6 ! + PARAMETER G(FCC_L12,NI:CR:VA;0) 298.15 +CRNI3;,, N 99DUP6 ! + PARAMETER G(FCC_L12,CR:NI:VA;0) 298.15 +CR3NI;,, N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:CR:VA;0) 298.15 + -1.5*CRNI3+1.5*CR2NI2+1.5*CR3NI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:NI:VA;0) 298.15 + +1.5*CRNI3+1.5*CR2NI2-1.5*CR3NI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:CR:VA;1) 298.15 + +0.5*CRNI3-1.5*CR2NI2+1.5*CR3NI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:NI:VA;1) 298.15 + -1.5*CRNI3+1.5*CR2NI2-0.5*CR3NI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,*:CR,NI:VA;0) 298.15 +L04CRNI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,*:CR,NI:VA;1) 298.15 +L14CRNI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:*:VA;0) 298.15 +3*L04CRNI;,,N 99DUP6 ! + PARAMETER L(FCC_L12,CR,NI:*:VA;1) 298.15 +3*L14CRNI;,,N 99DUP6 ! +$ +$ +$**************************************************************************** +$ +$ TERNARY PARAMETERS +$ +$---------------------------------------------------------------------------- +$ +$ Al-Cr-Ni +$ July 1999, ND +$ Revision. Main changes: +$ - description of the A2/B2 +$ - new liquidus data taken into account +$ - simpler ternary interaction parameters +$ +$ LIQUID PHASE +$ + PARAMETER L(LIQUID,AL,CR,NI;0) 298.15 16000;,,N 99DUP6 ! +$ +$ FCC_A1 PHASE +$ + PARAMETER G(FCC_A1,AL,CR,NI:VA;0) 298.15 30300;,,N 99DUP6 ! +$ +$ +$ FCC_L12 PHASE +$ + FUN U1ALCRNI 298.15 6650;,,N 99DUP6 ! + FUN U2ALCRNI 298.15 0;,,N 99DUP6 ! + FUN U3ALCRNI 298.15 0;,,N 99DUP6 ! + FUN ALCRNI2 298.15 U1ALCR+2*U1ALNI+2*U1CRNI+U1ALCRNI;,,N 99DUP6 ! + FUN ALCR2NI 298.15 2*U1ALCR+U1ALNI+2*U1CRNI+U2ALCRNI;,,N 99DUP6 ! + FUN AL2CRNI 298.15 2*U1ALCR+2*U1ALNI+U1CRNI+U3ALCRNI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR,NI:AL:VA;0) 298.15 + -1.5*ALCRNI2-1.5*ALCR2NI+ALCR3+ALNI3+6*AL2CRNI + -1.5*AL2CR2-1.5*AL2NI2-1.5*AL3CR-1.5*AL3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR,NI:CR:VA;0) 298.15 + -1.5*ALCRNI2+6*ALCR2NI-1.5*ALCR3-1.5*AL2CRNI + -1.5*AL2CR2+AL3CR+CRNI3-1.5*CR2NI2-1.5*CR3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR,NI:NI:VA;0) 298.15 + +6*ALCRNI2-1.5*ALCR2NI-1.5*ALNI3-1.5*AL2CRNI + -1.5*AL2NI2+AL3NI-1.5*CRNI3-1.5*CR2NI2+CR3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR:NI:VA;0) 298.15 + +1.5*ALCR2NI+1.5*AL2CRNI-1.5*AL3NI-1.5*CR3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,NI:CR:VA;0) 298.15 + +1.5*ALCRNI2+1.5*AL2CRNI-1.5*AL3CR-1.5*CRNI3;,,N 99DUP6 ! + PARA L(FCC_L12,CR,NI:AL:VA;0) 298.15 + +1.5*ALCRNI2+1.5*ALCR2NI-1.5*ALCR3-1.5*ALNI3;,,N 99DUP6 ! + PARA L(FCC_L12,AL,CR:NI:VA;1) 298.15 + -1.5*ALCR2NI+1.5*AL2CRNI-0.5*AL3NI+0.5*CR3NI;,,N 99DUP6 ! + PARA L(FCC_L12,AL,NI:CR:VA;1) 298.15 + -1.5*ALCRNI2+1.5*AL2CRNI-0.5*AL3CR+0.5*CRNI3;,,N 99DUP6 ! + PARA L(FCC_L12,CR,NI:AL:VA;1) 298.15 + -1.5*ALCRNI2+1.5*ALCR2NI-0.5*ALCR3+0.5*ALNI3;,,N 99DUP6 ! +$ +$**************************************************************************** +$ Diffusion parameters +$ +PARAMETER DQ(FCC_A1&AL,*;0) 298.15 -70000+R*T*LN(5E-5); 6000 N ! +PARAMETER DQ(FCC_A1&CR,*;0) 298.15 -40800+R*T*LN(3e-6); 6000 N ! +PARAMETER DQ(FCC_A1&NI,*;0) 298.15 -271960+R*T*LN(1.27E-4); 6000 N ! +$ +""" + +FECRNI_DB = """ +$ FeCrNi database using parameters taken from MatCalc open steel database mc_fe_v2.060.tdb +$ +$ The mc_fe_v2.059.tdb database is made available under the +$ Open Database License: http://opendatacommons.org/licenses/odbl/1.0/. +$ Any rights in individual contents of the database are licensed under the +$ Database Contents License: http://opendatacommons.org/licenses/dbcl/1.0/. +$ +$ ########################################################################## + +ELEMENT VA VACUUM 0.0 0.00 0.00 ! +ELEMENT CR BCC_A2 51.996 4050.0 23.5429 ! +ELEMENT FE BCC_A2 55.847 4489.0 27.2797 ! +ELEMENT NI FCC_A1 58.69 4787.0 29.7955 ! + +FUNCTION GHSERCR + 273.00 -8856.94+157.48*T-26.908*T*LN(T) + +0.00189435*T**2-1.47721E-6*T**3+139250*T**(-1); 2180.00 Y + -34869.344+344.18*T-50*T*LN(T)-2.88526E+32*T**(-9); 6000.00 N +REF:0 ! +FUNCTION GCRFCC + 273.00 +7284+0.163*T+GHSERCR#; 6000.00 N +REF:0 ! +FUNCTION GHSERFE + 273.00 +1225.7+124.134*T-23.5143*T*LN(T)-0.00439752*T**2 + -5.89269E-8*T**3+77358.5*T**(-1); 1811.00 Y + -25383.581+299.31255*T-46*T*LN(T)+2.2960305E+31*T**(-9); 6000.00 N +REF:0 ! +FUNCTION GFEFCC + 273.00 -1462.4+8.282*T-1.15*T*LN(T)+6.4E-04*T**2+GHSERFE#; 1811.00 Y + -27098.266+300.25256*T-46*T*LN(T)+2.78854E+31*T**(-9); 6000.00 N +REF:0 ! +FUNCTION GHSERNI + 273.00 -5179.159+117.854*T-22.096*T*LN(T)-4.8407E-3*T**2; 1728.00 Y + -27840.655+279.135*T-43.10*T*LN(T)+1.12754E+31*T**(-9); 6000.00 N +REF:0 ! +FUNCTION GNIBCC + 273.00 +8715.084-3.556*T+GHSERNI#; 6000.00 N +REF:0 ! + +$FCC_A1 phase + +TYPE_DEFINITION ' GES A_P_D FCC_A1 MAGNETIC -3.0 0.28 ! +TYPE_DEFINITION % SEQ *! +PHASE FCC_A1 %' 2 1 1 ! +CONSTITUENT FCC_A1 : CR,FE%,NI : VA% : ! + +PARAMETER G(FCC_A1,CR:VA;0) 273.00 +7284+0.163*T+GHSERCR#; 6000.00 N +REF:0 ! +PARAMETER G(FCC_A1,FE:VA;0) 273.00 -1462.4+8.282*T-1.15*T*LN(T) + +0.00064*T**2+GHSERFE#; 1811.00 Y + -1713.815+0.94001*T+0.4925095E+31*T**(-9)+GHSERFE#; 6000.00 N +REF:0 ! +PARAMETER G(FCC_A1,NI:VA;0) 273.00 +GHSERNI#; 3000.00 N +REF:0 ! +PARAMETER L(FCC_A1,CR,FE:VA;0) 273.00 +10833-7.477*T; 6000.00 N +REF:11 ! +PARAMETER L(FCC_A1,CR,FE:VA;1) 273.00 +1410; 6000.00 N +REF:11 ! +PARAMETER L(FCC_A1,CR,NI:VA;0) 273.00 +8030-12.8801*T; 6000.00 N +REF:11 ! +PARAMETER L(FCC_A1,CR,NI:VA;1) 273.00 +33080-16.0362*T; 6000.00 N +REF:11 ! +PARAMETER L(FCC_A1,FE,NI:VA;0) 273.00 -12054.355+3.27413*T; 6000.00 N +REF:20 ! +PARAMETER L(FCC_A1,FE,NI:VA;1) 273.00 +11082.1315-4.45077*T; 6000.00 N +REF:20 ! +PARAMETER L(FCC_A1,FE,NI:VA;2) 273.00 -725.805174; 6000.00 N +REF:20 ! +PARAMETER L(FCC_A1,CR,FE,NI:VA;0) 273.00 +8000-8*T; 6000.00 N +REF:jac17 ! +PARAMETER L(FCC_A1,CR,FE,NI:VA;1) 273.00 -6500; 6000.00 N +REF:jac17 ! +PARAMETER L(FCC_A1,CR,FE,NI:VA;2) 273.00 +30000; 6000.00 N +REF:jac17 ! +PARAMETER TC(FCC_A1,CR:VA;0) 273.00 -1109; 6000.00 N +REF:11 ! +PARAMETER BMAGN(FCC_A1,CR:VA;0) 273.00 -2.46; 6000.00 N +REF:11 ! +PARAMETER TC(FCC_A1,CR,NI:VA;0) 273.00 -3605; 6000.00 N +REF:11 ! +PARAMETER BMAGN(FCC_A1,CR,NI:VA;0) 273.00 -1.91; 6000.00 N +REF:11 ! +PARAMETER TC(FCC_A1,FE:VA;0) 273.00 -201; 6000.00 N +REF:20 ! +PARAMETER BMAGN(FCC_A1,FE:VA;0) 273.00 -2.1; 6000.00 N +REF:20 ! +PARAMETER TC(FCC_A1,FE,NI:VA;0) 273.00 +2133; 6000.00 N +REF:20 ! +PARAMETER TC(FCC_A1,FE,NI:VA;1) 273.00 -682; 6000.00 N +REF:20 ! +PARAMETER BMAGN(FCC_A1,FE,NI:VA;0) 273.00 +9.55; 6000.00 N +REF:20 ! +PARAMETER BMAGN(FCC_A1,FE,NI:VA;1) 273.00 +7.23; 6000.00 N +REF:20 ! +PARAMETER BMAGN(FCC_A1,FE,NI:VA;2) 273.00 +5.93; 6000.00 N +REF:20 ! +PARAMETER BMAGN(FCC_A1,FE,NI:VA;3) 273.00 +6.18; 6000.00 N +REF:20 ! +PARAMETER TC(FCC_A1,NI:VA;0) 273.00 +633; 6000.00 N +REF:0 ! +PARAMETER BMAGN(FCC_A1,NI:VA;0) 273.00 +0.52; 6000.00 N +REF:0 ! + +$BCC_A2 phase + +TYPE_DEFINITION & GES A_P_D BCC_A2 MAGNETIC -1.0 0.4 ! +PHASE BCC_A2 %& 2 1 3 ! +CONSTITUENT BCC_A2 : CR,FE%,NI : VA% : ! + +PARAMETER G(BCC_A2,CR:VA;0) 273.00 +GHSERCR#; 6000.00 N +REF:0 ! +PARAMETER G(BCC_A2,FE:VA;0) 273.00 +GHSERFE#; 6000.00 N +REF:0 ! +PARAMETER G(BCC_A2,NI:VA;0) 273.00 +8715.084-3.556*T+GHSERNI#; 3000.00 N +REF:0 ! +PARAMETER L(BCC_A2,CR,FE:VA;0) 273.00 +20500-9.68*T; 6000.00 N +REF:11 ! +PARAMETER L(BCC_A2,CR,NI:VA;0) 273.00 +17170-11.8199*T; 6000.00 N +REF:11 ! +PARAMETER L(BCC_A2,CR,NI:VA;1) 273.00 +34418-11.8577*T; 6000.00 N +REF:11 ! +PARAMETER L(BCC_A2,CR,NI:VA;2) 273.00 +1e-8; 6000.00 N +REF:11 ! +PARAMETER L(BCC_A2,FE,NI:VA;0) 273.00 -956.63-1.28726*T; 6000.00 N +REF:20 ! +PARAMETER L(BCC_A2,FE,NI:VA;1) 273.00 +5000-5*T; 6000.00 N +REF:pov12 ! +PARAMETER L(BCC_A2,CR,FE,NI:VA;0) 273.00 +3000+5*T; 6000.00 N +REF:jac17 ! +PARAMETER L(BCC_A2,CR,FE,NI:VA;1) 273.00 +9000-6*T; 6000.00 N +REF:jac17 ! +PARAMETER L(BCC_A2,CR,FE,NI:VA;2) 273.00 -30000+20*T; 6000.00 N +REF:jac17 ! +PARAMETER TC(BCC_A2,CR:VA;0) 273.00 -311.5; 6000.00 N +REF:22 ! +PARAMETER BMAGN(BCC_A2,CR:VA;0) 273.00 -0.008; 6000.00 N +REF:0 ! +PARAMETER TC(BCC_A2,FE:VA;0) 273.00 +1043; 6000.00 N +REF:0 ! +PARAMETER BMAGN(BCC_A2,FE:VA;0) 273.00 +2.22; 6000.00 N +REF:0 ! +PARAMETER TC(BCC_A2,NI:VA;0) 273.00 +575; 6000.00 N +REF:0 ! +PARAMETER BMAGN(BCC_A2,NI:VA;0) 273.00 +0.85; 6000.00 N +REF:0 ! +PARAMETER TC(BCC_A2,CR,FE:VA;0) 273.00 +1650; 6000.00 N +REF:11 ! +PARAMETER TC(BCC_A2,CR,FE:VA;1) 273.00 +550; 6000.00 N +REF:11 ! +PARAMETER BMAGN(BCC_A2,CR,FE:VA;0) 273.00 -0.85; 6000.00 N +REF:pov09 ! +PARAMETER TC(BCC_A2,CR,NI:VA;0) 273.00 +2373; 6000.00 N +REF:11 ! +PARAMETER TC(BCC_A2,CR,NI:VA;1) 273.00 +617; 6000.00 N +REF:11 ! +PARAMETER BMAGN(BCC_A2,CR,NI:VA;0) 273.00 +4; 6000.00 N +REF:11 ! + +$SIGMA phase + +PHASE SIGMA % 3 8 4 18 ! +CONSTITUENT SIGMA : FE%,NI : CR% : CR,FE,NI :! + +PARAMETER G(SIGMA,FE:CR:CR;0) 273.00 +8*GFEFCC#+22*GHSERCR# + +92300-95.96*T; 6000.00 N +REF:62 ! +PARAMETER G(SIGMA,FE:CR:FE;0) 273.00 +117300-95.96*T+8*GFEFCC# + +4*GHSERCR#+18*GHSERFE#; 6000.00 N +REF:62 ! +PARAMETER G(SIGMA,FE:CR:NI;0) 273.00 -50000+32*T+8*GFEFCC#+4*GHSERCR# + +18*GNIBCC#; 6000.00 N +REF:pov13 ! +PARAMETER G(SIGMA,NI:CR:CR;0) 273.00 +8*GHSERNI#+22*GHSERCR# + +180000-170*T; 6000.00 N +REF:13 ! +PARAMETER G(SIGMA,NI:CR:FE;0) 273.00 +8*GHSERNI#+4*GHSERCR# + +18*GHSERFE#-50000+32*T; 6000.00 N +REF:pov13 ! +PARAMETER G(SIGMA,NI:CR:NI;0) 273.00 +8*GHSERNI#+4*GHSERCR# + +18*GNIBCC#+175400; 6000.00 N +REF:13 ! +PARAMETER L(SIGMA,FE:CR:CR,NI;0) 273.00 +1e-8; 6000.00 N +REF:pov12 ! +PARAMETER L(SIGMA,FE:CR:FE,NI;0) 273.00 -200000; 6000.00 N +REF:pov13 ! + +$FCC mobility +$CR + +PARAMETER MQ(FCC_A1&CR,CR:*) 273.00 -235000-82.0*T; 6000.00 N +Ref:19 ! +PARAMETER MQ(FCC_A1&CR,FE:*) 273.00 -286000-71.9*T; 6000.00 N +Ref:19 ! +PARAMETER MQ(FCC_A1&CR,NI:*) 273.00 -287000-64.4*T; 6000.00 N +Ref:19 ! +PARAMETER MQ(FCC_A1&CR,CR,FE:*;0) 273.00 -105000; 6000.00 N +Ref:19 ! +PARAMETER MQ(FCC_A1&CR,CR,NI:*;0) 273.00 -68000; 6000.00 N +Ref:41 ! +PARAMETER MQ(FCC_A1&CR,FE,NI:*;0) 273.00 +16100; 6000.00 N +Ref:17 ! +PARAMETER MQ(FCC_A1&CR,CR,FE,NI:*;0) 273.00 +310000; 6000.00 N +Ref:17 ! +PARAMETER MQ(FCC_A1&CR,CR,FE,NI:*;1) 273.00 +320000; 6000.00 N +Ref:17 ! +PARAMETER MQ(FCC_A1&CR,CR,FE,NI:*;2) 273.00 +120000; 6000.00 N +Ref:17 ! + +$FE + +PARAMETER MQ(FCC_A1&FE,CR:*) 273.00 -235000-82.0*T; 6000.00 N +Ref:19 ! +PARAMETER MQ(FCC_A1&FE,FE:*) 273.00 -286000+R*T*LN(7.0E-5); 6000.00 N +Ref:18 ! +PARAMETER MQ(FCC_A1&FE,NI:*) 273.00 -287000-67.5*T; 6000.00 N +Ref:18 ! +PARAMETER MQ(FCC_A1&FE,CR,FE:*;0) 273.00 +15900; 6000.00 N +Ref:19 ! +PARAMETER MQ(FCC_A1&FE,CR,NI:*;0) 273.00 -77500; 6000.00 N +Ref:17 ! +PARAMETER MQ(FCC_A1&FE,FE,NI:*;0) 273.00 -115000+104*T; 6000.00 N +Ref:18 ! +PARAMETER MQ(FCC_A1&FE,FE,NI:*;1) 273.00 +78800-73.3*T; 6000.00 N +Ref:18 ! +PARAMETER MQ(FCC_A1&FE,CR,FE,NI:*;0) 273.00 -740000; 6000.00 N +Ref:17 ! +PARAMETER MQ(FCC_A1&FE,CR,FE,NI:*;1) 273.00 -540000; 6000.00 N +Ref:17 ! +PARAMETER MQ(FCC_A1&FE,CR,FE,NI:*;2) 273.00 +750000; 6000.00 N +Ref:17 ! + +$NI + +PARAMETER MQ(FCC_A1&NI,CR:*) 273.00 -235000-82.0*T; 6000.00 N +Ref:19 ! +PARAMETER MQ(FCC_A1&NI,FE:*) 273.00 -286000-86.0*T; 6000.00 N +Ref:18 ! +PARAMETER MQ(FCC_A1&NI,NI:*) 273.00 -287000-69.8*T; 6000.00 N +Ref:18 ! +PARAMETER MQ(FCC_A1&NI,CR,FE:*;0) 273.00 -119000; 6000.00 N +Ref:17 ! +PARAMETER MQ(FCC_A1&NI,CR,NI:*;0) 273.00 -81000; 6000.00 N +Ref:19 ! +PARAMETER MQ(FCC_A1&NI,FE,NI:*;0) 273.00 +124000-51.4*T; 6000.00 N +Ref:18 ! +PARAMETER MQ(FCC_A1&NI,FE,NI:*;1) 273.00 -300000+213*T; 6000.00 N +Ref:18 ! +PARAMETER MQ(FCC_A1&NI,CR,FE,NI:*;0) 273.00 +1840000; 6000.00 N +Ref:17 ! +PARAMETER MQ(FCC_A1&NI,CR,FE,NI:*;1) 273.00 +670000; 6000.00 N +Ref:17 ! +PARAMETER MQ(FCC_A1&NI,CR,FE,NI:*;2) 273.00 -1120000; 6000.00 N +Ref:17 ! + +$BCC Mobility + +$CR + +PARAMETER MQ(BCC_A2&CR,CR:*) 273.00 -407000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,CR:*) 273.00 -35.6*T; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,FE:*) 273.00 -218000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,FE:*) 273.00 +R*T*LN(8.5E-5); 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,NI:*) 273.00 -218000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,NI:*) 273.00 +R*T*LN(8.5E-5); 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,CR,FE:*;0) 273.00 +361000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,CR,FE:*;0) 273.00 -116*T; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,CR,FE:*;1) 273.00 +2820; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,CR,FE:*;1) 273.00 +37.5*T; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,CR,NI:*;0) 273.00 +350000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,CR,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,FE,NI:*;0) 273.00 +150000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,FE,NI:*;1) 273.00 +150000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,FE,NI:*;1) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,CR,FE,NI:*;1) 273.00 -2400000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,CR,FE,NI:*;1) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&CR,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&CR,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N +Ref:14 ! + +$FE + +PARAMETER MQ(BCC_A2&FE,CR:*) 273.00 -407000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,CR:*) 273.00 -17.2*T; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&FE,FE:*) 273.00 -218000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,FE:*) 273.00 +R*T*LN(4.6E-5); 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&FE,NI:*) 273.00 -218000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,NI:*) 273.00 +R*T*LN(4.6E-5); 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&FE,CR,FE:*;0) 273.00 +267000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,CR,FE:*;0) 273.00 -117*T; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&FE,CR,FE:*;1) 273.00 -416000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,CR,FE:*;1) 273.00 +348*T; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&FE,CR,NI:*;0) 273.00 +350000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,CR,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&FE,FE,NI:*;0) 273.00 +150000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,FE,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&FE,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&FE,CR,FE,NI:*;1) 273.00 +1400000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,CR,FE,NI:*;1) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&FE,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&FE,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N +Ref:14 ! + +$NI + +PARAMETER MQ(BCC_A2&NI,CR:*) 273.00 -407000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&NI,CR:*) 273.00 -17.2*T; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&NI,FE:*) 273.00 -204000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&NI,FE:*) 273.00 +R*T*LN(1.8E-5); 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&NI,NI:*) 273.00 -204000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&NI,NI:*) 273.00 +R*T*LN(1.8E-5); 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&NI,CR,FE:*;0) 273.00 +88000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&NI,CR,FE:*;0) 273.00 +10*T; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&NI,CR,NI:*;0) 273.00 +350000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&NI,CR,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&NI,FE,NI:*;0) 273.00 +150000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&NI,FE,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&NI,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&NI,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&NI,CR,FE,NI:*;1) 273.00 -500000; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&NI,CR,FE,NI:*;1) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MQ(BCC_A2&NI,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N +Ref:14 ! +PARAMETER MF(BCC_A2&NI,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N +Ref:14 ! + +""" + +ALMGSI_DB = """ + + +$ AL-MG-SI system with metastable phases +$ +$ Parameters for metastable phases and mobility +$ taken from E. Povoden-Karadeniz et al, CALPHAD 43 (2011) p. 94 +$ + +$Element Standard state mass [g/mol] H_298 S_298 +ELEMENT VA VACUUM 0.0 0.00 0.00 ! +ELEMENT AL FCC_A1 26.98154 4540 28.30 ! +ELEMENT MG HCP_A3 24.305 4998.0 32.671 ! +ELEMENT SI DIA_A4 28.0855 3217. 18.81 ! + + +$ +$FUNCTIONS FOR PURE ELEMENT +$ +FUNCTION GHSERAL + 273.00 -7976.15+137.093038*T-24.3671976*T*LN(T) + -1.884662E-3*T**2-0.877664E-6*T**3+74092*T**(-1); 700.00 Y + -11276.24+223.048446*T-38.5844296*T*LN(T) + +18.531982E-3*T**2-5.764227E-6*T**3+74092*T**(-1); 933.47 Y + -11278.378+188.684153*T-31.748192*T*LN(T)-1.231E+28*T**(-9); 2900.00 N +REF:0 ! +FUNCTION GHSERMG + 273.00 -8367.34+143.675547*T-26.1849782*T*LN(T)+0.4858E-3*T**2 + -1.393669E-6*T**3+78950*T**(-1); 923.00 Y + -14130.185+204.716215*T-34.3088*T*LN(T)+1038.192E25*T**(-9); 3000.00 N +REF:0 ! +FUNCTION GHSERSI + 273.00 -8162.609+137.236859*T-22.8317533*T*LN(T) + -1.912904E-3*T**2-0.003552E-6*T**3+176667*T**(-1); 1687.00 Y + -9457.642+167.271767*T-27.196*T*LN(T)-4.2037E+30*T**(-9); 3600.00 N +REF:0 ! + +$ +$ OTHER FUNCTIONS +$ +FUNCTION R + 273.00 +8.31451; 6000.00 N ! +FUNCTION GMG2SI 273.00 -92250.0+440.4*T-75.9*T*LN(T) + -0.0018*T**2+630000*T**(-1); 6000.00 N +REF:31 ! + +$ +$ LIQUID +$ + TYPE-DEF % SEQ * ! + PHASE LIQUID % 1 1.0 > +Random substitutional model. +>> 6 ! + CONSTITUENT LIQUID : AL,MG,SI: ! + +PARAMETER G(LIQUID,AL;0) + 273.00 +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL#; 700.00 Y + +11005.03-11.841867*T+7.9337E-20*T**7+GHSERAL#; 933.47 Y + +10482.382-11.253974*T+1.231E+28*T**(-9)+GHSERAL#; 2900.00 N +REF:0 ! +PARAMETER G(LIQUID,MG;0) + 273.00 +8202.243-8.83693*T+GHSERMG#-8.0176E-20*T**7; 923.00 Y + +8690.316-9.392158*T+GHSERMG#-1.038192E+28*T**(-9); 6000.00 N +REF:31 ! +PARAMETER G(LIQUID,SI;0) + 273.00 +50696.36-30.099439*T+2.0931E-21*T**7+GHSERSI#; 1687.00 Y + +49828.165-29.559068*T+4.2037E+30*T**(-9)+GHSERSI#; 3600.00 N +REF:0 ! + +PARAMETER L(LIQUID,AL,MG;0) 273.00 -12000.0+8.566*T; 6000.00 N +REF:31 ! +PARAMETER L(LIQUID,AL,MG;1) 273.00 +1894.0-3.000*T; 6000.00 N +REF:31 ! +PARAMETER L(LIQUID,AL,MG;2) 273.00 +2000.0; 6000.00 N +REF:31 ! +PARAMETER L(LIQUID,AL,SI;0) 273.00 -11655.93-0.92934*T; 6000.00 N +REF:37 ! +PARAMETER L(LIQUID,AL,SI;1) 273.00 -2873.45+0.2945*T; 6000.00 N +REF:37 ! +PARAMETER L(LIQUID,AL,SI;2) 273.00 +2520; 6000.00 N +REF:37 ! +PARAMETER L(LIQUID,MG,SI;0) 273.00 -70055+24.98*T; 6000.00 N +REF:39 ! +PARAMETER L(LIQUID,MG,SI;1) 273.00 -1300; 6000.00 N +REF:39 ! +PARAMETER L(LIQUID,MG,SI;2) 273.00 +6272; 6000.00 N +REF:39 ! + +PARAMETER L(LIQUID,AL,MG,SI;0) 273.00 +11882; 6000.00 N +REF:34 ! +PARAMETER L(LIQUID,AL,MG,SI;1) 273.00 -24207; 6000.00 N +REF:34 ! +PARAMETER L(LIQUID,AL,MG,SI;2) 273.00 -38223; 6000.00 N +REF:34 ! + +$ +$ FCC_A1 +$ + PHASE FCC_A1 % 2 1 1 > Al-Matrix phase, face-centered cubic >> 6 ! + CONSTITUENT FCC_A1 : AL%,MG,SI : VA : ! + +PARAMETER G(FCC_A1,AL:VA;0) 273.00 +GHSERAL#; 2900.00 N +REF:0 ! +PARAMETER G(FCC_A1,MG:VA;0) 273.00 +2600-0.90*T+GHSERMG#; 6000.00 N +REF:0 ! +PARAMETER G(FCC_A1,SI:VA;0) 273.00 +51000-21.8*T+GHSERSI#; 3600.00 N +REF:0 ! + +PARAMETER L(FCC_A1,AL,MG:VA;0) 273.00 +1*LDF0ALMG#; 6000.00 N +REF:41 ! +PARAMETER L(FCC_A1,AL,MG:VA;1) 273.00 +1*LDF1ALMG#; 6000.00 N +REF:41 ! +PARAMETER L(FCC_A1,AL,MG:VA;2) 273.00 +1*LDF2ALMG#; 6000.00 N +REF:41 ! +PARAMETER L(FCC_A1,AL,SI:VA;0) 273.00 +1*LDF0ALSI#; 6000.00 N +REF:41 ! +PARAMETER L(FCC_A1,AL,SI:VA;1) 273.00 +1*LDF1ALSI#; 6000.00 N +REF:37 ! +PARAMETER L(FCC_A1,AL,SI:VA;2) 273.00 +1*LDF2ALSI#; 6000.00 N +REF:37 ! +PARAMETER L(FCC_A1,MG,SI:VA;0) 273.00 +1*LDF0SIMG#; 6000.00 N +REF:41 ! +PARAMETER L(FCC_A1,MG,SI:VA;1) 273.00 +1*LDF1SIMG#; 6000.00 N +REF:31 ! +PARAMETER L(FCC_A1,MG,SI:VA;2) 273.00 +1*LDF2SIMG#; 6000.00 N +REF:31 ! + +$ +$ SI_DIAMOND_A4 +$ + PHASE SI_DIAMOND_A4 % 1 1 > +Silicon precipitate. Space group Fd3m, prototype: C(diamond) +>> 4 ! + CONSTITUENT SI_DIAMOND_A4 : AL,MG,SI% : ! +PARAMETER G(SI_DIAMOND_A4,AL;0) 273.00 +30.0*T+GHSERAL#; 6000.00 N +REF:31 ! +PARAMETER G(SI_DIAMOND_A4,MG;0) 273.00 +GHSERMG#; 6000.00 N +REF:41 ! +PARAMETER G(SI_DIAMOND_A4,SI;0) 273.00 +GHSERSI#; 6000.00 N +REF:31 ! +PARAMETER L(SI_DIAMOND_A4,AL,SI;0) 273.00 +111417.7-46.1392*T; 6000.00 N +REF:37 ! +PARAMETER L(SI_DIAMOND_A4,MG,SI;0) 273.00 +65000; 6000.00 N +REF:41 ! + +$ +$ MG2SI_B +$ + PHASE MG2SI_B % 2 2 1 > +Face-centered cubic equilibrium phase. +Incoherent precipitates (plates or cubes) in the overaging regime, 6xxx alloys. [REF:C31,C32] +>> 5 ! + CONSTITUENT MG2SI_B : MG : SI : ! +PARAMETER G(MG2SI_B,MG:SI;0) 273.00 GMG2SI; 6000.00 N +REF:31 ! + +$ +$ BETA_AL3MG2 +$ + PHASE BETA_AL3MG2 % 2 89 140 > +Cubic (Al,Zn)3Mg2 equilibrium phase, prototype: Al3Mg2. +>> 2 ! + CONSTITUENT BETA_AL3MG2 : MG : AL : ! +PARAMETER G(BETA_AL3MG2,MG:AL;0) 273.00 -246175.0-675.5500*T + +89*GHSERMG#+140*GHSERAL#; 6000.00 N +REF:31 ! + +$ +$ E_AL30MG23 +$ + PHASE E_AL30MG23 % 2 23 30 > +Epsilon equilibrium phase, prototype: Co5Cr2Mo3 +>> 1 ! + CONSTITUENT E_AL30MG23 : MG : AL : ! +PARAMETER G(E_AL30MG23,MG:AL;0) 273.00 -52565.4-173.1775*T + +23*GHSERMG#+30*GHSERAL#; 6000.00 N +REF:31 ! + +$ +$ G_AL12MG17 +$ + PHASE G_AL12MG17 % 3 10 24 24 > +Gamma equilibrium phase, space group: I43m, prototype: Alpha-Mn. +Precipitate in Al-Mg-Zn alloy +>> 2 ! + CONSTITUENT G_AL12MG17 : MG : AL,MG% : AL : ! +PARAMETER G(G_AL12MG17,MG:MG:MG;0) 273.00 +266939.2-174.638*T+58*GHSERMG#; 6000.00 N +REF:40 ! +PARAMETER G(G_AL12MG17,MG:AL:AL;0) 273.00 +195750-203*T + +10*GHSERMG#+48*GHSERAL#; 6000.00 N +REF:40 ! +PARAMETER G(G_AL12MG17,MG:MG:AL;0) 273.00 -105560-101.5*T + +34*GHSERMG#+24*GHSERAL#; 6000.00 N +REF:40 ! +PARAMETER G(G_AL12MG17,MG:AL:MG;0) 273.00 +568249.2-276.138*T + +34*GHSERMG#+24*GHSERAL#; 6000.00 N +REF:40 ! +PARAMETER L(G_AL12MG17,MG:AL:AL,MG;0) 273.00 +226200-29*T; 6000.00 N +REF:40 ! +PARAMETER L(G_AL12MG17,MG:MG:AL,MG;0) 273.00 +226200-29*T; 6000.00 N +REF:40 ! + +$ +$ B_PRIME_L +$ + PHASE B_PRIME_L % 3 3 9 7 > +Metastable B´ phase - low-T type reflecting lowest energy modification from 1st principles. +Structure can be related to the hexagonal structure of Q-Phase, with empty Cu-sites. [REF:C11,C37] +>> 2 ! + CONSTITUENT B_PRIME_L : AL : MG : SI : ! +PARAMETER G(B_PRIME_L,AL:MG:SI;0) 273.00 -140000-10*T+3*GHSERAL#+9*GHSERMG#+7*GHSERSI#; 6000.00 N +REF:41 ! + +$ +$ MGSI_B_P +$ + PHASE MGSI_B_P % 2 1.8 1 > +Beta´, metastable hexagonal close-packed rod-like Mg-Si precipitates in 6xxx alloys. [REF:C31,C32,C34] +>> 5 ! + CONSTITUENT MGSI_B_P : MG : SI : ! + +PARAMETER G(MGSI_B_P,MG:SI;0) 273.00 GMG2SI + 24250 - 40.4*T + 5.9*T*LN(T) - 0.0042*T**2 - 130000*T**(-1); 6000.00 N +REF:41 ! + +$ +$ MG5SI6_B_DP +$ + PHASE MG5SI6_B_DP % 2 5 6 > +Main metastable hardening phase in 6xxx, monoclinic with space group C2/m. Al-free Mg5Si6. +Semicoherent needles. [REF:C31,C32,C35]. +>> 5 ! + CONSTITUENT MG5SI6_B_DP : MG : SI : ! +PARAMETER G(MG5SI6_B_DP,MG:SI;0) 273.00 -5000-30*T-0.0096*T**2 + -1e-7*T**3+5*GHSERMG#+6*GHSERSI#; 6000.00 N +REF:41 ! + +$ +$ U1_PHASE +$ + PHASE U1_PHASE % 3 2 1 2 > +Needle-like precipitate with trigonal structure observed in 6xxx in the beta´ precipitation regime. [REF:C37] +>> 3 ! + CONSTITUENT U1_PHASE : AL : MG : SI : ! +PARAMETER G(U1_PHASE,AL:MG:SI;0) 273.00 -5000-10*T-0.0055*T**2 + +3e-6*T**3+150000*T**(-1)+2*GHSERAL#+GHSERMG#+2*GHSERSI#; 6000.00 N +REF:41 ! + +$ +$ U2_PHASE +$ + PHASE U2_PHASE % 3 1 1 1 > +Needle-like precipitate with orthorhombic structure in 6xxx in the beta' precipitation regime. [REF:C37] +>> 3 ! + CONSTITUENT U2_PHASE : AL : MG : SI : ! +PARAMETER G(U2_PHASE,AL:MG:SI;0) 273.00 -14000-3.75*T-0.0015*T**2 + +7.5e-7*T**3+62500*T**(-1)+1*GHSERAL#+1*GHSERMG#+1*GHSERSI#; 6000.00 N +REF:41 ! + +$ +$ Mobility terms +$ +PARAMETER MQ(FCC_A1&AL,*) 273.00 -127200+R*T*LN(1.39e-5); 6000.00 N +Ref:41 ! + +PARAMETER MQ(FCC_A1&MG,AL:*) 273.00 -119000+R*T*LN(3.7e-5); 6000.00 N +Ref:41! +PARAMETER MQ(FCC_A1&MG,MG:*) 273.00 -112499+R*T*LN(5.7e-5); 6000.00 N +Ref:41! +PARAMETER MQ(FCC_A1&MG,MG,AL:*) 273.00 54511; 6000.00 N +Ref:41! +PARAMETER MQ(FCC_A1&MG,SI:*) 273.00 -119000+R*T*LN(3.7e-5); 6000.00 N +Ref:41! + +PARAMETER MQ(FCC_A1&SI,AL:*) 273.00 -136400+R*T*LN(2.31e-4); 6000.00 N +Ref:41 ! +PARAMETER MQ(FCC_A1&SI,MG:*) 273.00 -136400+R*T*LN(2.31e-4); 6000.00 N +Ref:41 ! +PARAMETER MQ(FCC_A1&SI,SI:*) 273.00 -448400+R*T*LN(154e-4); 6000.00 N +Ref:41 ! + +$ +$ References +$ + +LIST_OF_REFERENCES + +A00201-0 unary A.T. Dinsdale, SGTE Data of pure elements, CALPHAD, Vol. 15, No. 4, pp 317-425, 1991. + 31 bin, tern N. Saunders, COST 507: Thermochemical database for light metal alloys, Vol. 2, pp 23-27, 1998. +A00166-34 Al-Mg-Si J. Lacaze and R. Valdes, CALPHAD-type assessment of the Al-Mg-Si system, Monatshefte f. Chemie, Vol. 136, A00169-37 Al-Fe-Si Z.-K. Liu, Y.A. Chang, Thermodynamic assessment of the Al-Fe-Si system, Metall. Mater. Trans A, Vol. 30A, pp 1081-1095, 1999. +A00172-39 Mg-Si-Li D. Kevorkov, R. Schmid-Fetzer, F. Zhang, Phase equilibria and thermodynamics of the Mg-Si-Li system and remodeling of the Mg-Si system, J. Phase Equilib. Diffusion, Vol. 25, pp 140-151, 2004. +A00173-40 Al-Mg-Zn P. Liang et al., Experimental investigation and thermodynamic calculation of the Al-Mg-Zn system, Thermochim. Acta, Vol. 314, pp 87-110, 1998. + 41 E. Povoden-Karadeniz et al, Calphad modeling of metastable phases in the Al-Mg-Si system, CALPHAD, Vol. 42 pp 94-104, 1991 +$ ################################################################################################################################################################################################################################################################################ + +$ References of phase descriptions + + C31 Al-Mg-Si J.P. Lynch, L.M. Brown, M.H.Jacobs, Microanalysis of age-hardening precipitates in Aluminium-alloys, Acta metall. mater. 30 (1982) 1389. +C00025-C32 Al-Mg-Si G.A. Edwards, K. Stiller, G.L. Dunlop, M.J. Couper, The precipitaton sequence in Al-Mg-Si alloys, Acta mater. 46 (1998) 3893-3904. +C00026-C33 Al-Mg-Si, GP-zones K. Matsuda, H. Gamada, K. Fujii, Y. Uetani, T. Sato, A. Kamio, S. Ikeno, High-resolution electron microscopy on the structure of Guinier-Preston zones in an Al-1.6mass% Mg2Si alloy, Metall. mater. trans. A 29 (1998) 1161-1167. +C00027-C34 Mg-Si beta´ R. Vissers, M.A. van Huis, J. Jansen, H.W. Zandbergen, C.D. Marioara, S.J. Andersen, The structure of the beta´ phase in Al-Mg-Si alloys, Acta mater. 55 (2007) 3815-3823. +C00028-C35 Mg-Si beta´´ H.W. Zandbergen, S.J. Andersen, J. Jansen, Structure determination of Mg5Si6 particles in Al by dynamic electron diffraction studies, Science 277 (1997) 1221-1225. + C36 Al-Mg-Si H.S. Hasting, A.G. Froseth, S.J. Andersen, R. Vissers, J.C. Walmsley, C.D. Marioara, F. Danoix, W. Lefebvre, R. Holmestad, Composition of beta´´ precipitates in Al-Mg-Si alloys by atom probe tomography and first principles calculations, J. appl. phys. 106 (2009) 123527. +C00029-C37 Al-Mg-Si, U-phases S.J. Andersen, C.D. Marioara, R. Vissers, A. Froseth, H.W. Zandbergen, The structural relation between precipitates in Al-Mg-Si alloys, the Al-matrix and diamond silicon, with emphasis on the trigonal U1-MgAl2Si2, Mater. sci. eng. A 444 (2007) 157-169. + + 11 Smithells Metals Reference Book, Seventh Edition, Butterworth-Heinemann, Oxford, 1999. + 32 J. Yao, Y.W. Cui, H. Liu, H. Kou, J. Li, L. Zhou, Computer Coupling of Phase Diagrams and Thermochemistry Vol.32, 602-607, 2008. +""" + +CUNI_TDB = """ +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +$$ Cu-Ni thermodynamic database +$$ +$$ Unaries from SGTE 1991 +$$ Binary assessment from S. Mey, Calphad 16:3 (1992) 255 +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +ELEMENT VA VACUUM 0.0000E+00 0.0000E+00 0.0000E+00 ! +ELEMENT CU FCC_A1 6.3546E+01 5.0041E+03 3.3150E+01 ! +ELEMENT NI FCC_A1 5.8690E+01 4.7870E+03 2.9796E+01 ! + + TYPE_DEFINITION % SEQ *! + DEFINE_SYSTEM_DEFAULT SPECIE 2 ! + DEFAULT_COMMAND DEF_SYS_ELEMENT VA ! + + TYPE_DEFINITION ( GES A_P_D FCC_A1 MAGNETIC -3.0 0.28 ! + PHASE FCC_A1 %( 2 1 1 ! + CONSTITUENT FCC_A1 : CU,NI : VA : ! + + PHASE LIQUID:L % 1 1 ! + CONSTITUENT LIQUID:L : CU,NI : ! + +$ Cu +$ ------------------------------------- + FUNCTION GHSERCU 298.15 + -7770.458+130.485235*T-24.112392*T*LN(T)-2.65684E-3*T**2+0.129223E-6*T**3 + +52478*T**(-1); 1357.77 Y + -13542.026+183.803828*T-31.38*T*LN(T)+364.167E27*T**(-9); 3200.00 N ! + + FUNCTION GBCCCU 298.15 4017-1.255*T+GHSERCU; 3200 N ! + + FUNCTION GHCPCU 298.15 600+0.2*T+GHSERCU; 3200 N ! + + FUNCTION GLIQCU 298.15 12964.735-9.511904*T-584.89E-23*T**7+GHSERCU; 1357.77 Y + -46.545+173.881484*T-31.38*T*LN(T); 3200 N ! + +$ Ni +$ ------------------------------------- + FUNCTION GHSERNI 298.15 + -5179.159+117.854*T-22.096*T*LN(T)-4.8407E-3*T**2; 1728.00 Y + -27840.620+279.134977*T-43.1*T*LN(T)+1127.54E28*T**(-9); 3000.00 N ! + + FUNCTION GLIQNI 298.15 16414.686-9.397*T-382.318E-23*T**7+GHSERNI; 1728 Y + -9549.817+268.597977*T-43.1*T*LN(T); 3000 N ! + + FUNCTION GBCCNI 298.15 8715.084-3.556*T+GHSERNI; 3000 N ! + + FUNCTION GHCPNI 298.15 1046+1.2552*T+GHSERNI; 3000 N ! + +$ Unaries parameters + PARAMETER G(FCC_A1,CU:VA;0) 298.15 GHSERCU; 3200 N ! + PARAMETER G(LIQUID,CU;0) 298.15 GLIQCU; 3200 N ! + + PARAMETER G(FCC_A1,NI:VA;0) 298.15 GHSERNI; 3000 N ! + PARAMETER TC(FCC_A1,NI:VA;0) 298.15 633; 3000 N ! + PARAMETER BM(FCC_A1,NI:VA;0) 298.15 0.52; 3000 N ! + PARAMETER G(LIQUID,NI;0) 298.15 GLIQNI; 3000 N ! + +$ Binary parameters + PARAMETER G(FCC_A1,CU,NI:VA;0) 298.15 8047.72 + 3.42217*T; 6000 N ! + PARAMETER G(FCC_A1,CU,NI:VA;1) 298.15 -2041.30 + 0.99714*T; 6000 N ! + PARAMETER TC(FCC_A1,CU,NI:VA;0) 298.15 -935.5; 3000 N ! + PARAMETER TC(FCC_A1,CU,NI:VA;1) 298.15 -594.9; 3000 N ! + PARAMETER BM(FCC_A1,CU,NI:VA;0) 298.15 -0.732; 3000 N ! + PARAMETER BM(FCC_A1,CU,NI:VA;1) 298.15 -0.317; 3000 N ! + + PARAMETER G(LIQUID,CU,NI;0) 298.15 12048.61 + 1.29093*T; 6000 N ! + PARAMETER G(LIQUID,CU,NI;1) 298.15 -1861.61 + 0.94201*T; 6000 N ! +""" + +FECRC_DB = """ +$ +$ Database for Cr-Fe-C from A.V. Khvan and B. Hallstedt, 2013 +$ +$ ---------------------------------------------------------------------------- + TEMP-LIM 298.15 6000.00 ! +$ +$ELEMENT NAME REF. STATE ATOMIC MASS H298-H0 S298 ! +$ + ELEMENT VA VACUUM 0.0 0.0 0.0 ! + ELEMENT C GRAPHITE 12.011 1054.0 5.7423 ! + ELEMENT CR BCC_A2 51.996 4050.0 23.5429 ! + ELEMENT FE BCC_A2 55.847 4489.0 27.2797 ! +$ ---------------------------------------------------------------------------- +$ Phase definitions +$ + PHASE LIQUID:L % 1 1 ! + CONST LIQUID:L : C CR FE : ! +$ +$ Fcc (cF4, Fm-3m) and MeX (cF8, Fm-3m) +$ + PHASE FCC_A1 %A 2 1 1 ! + CONST FCC_A1 : CR FE% : C VA% : ! +$ +$ Bcc (cI2, Im-3m) +$ + PHASE BCC_A2 %B 2 1 3 ! + CONST BCC_A2 : CR FE : C VA% : ! +$ +$ Hcp (hP2, P6_3/mmc) and Me2X (NiAs-type, hP4, P6_3/mmc, B8_1) +$ + PHASE HCP_A3 % 2 1 0.5 ! + CONST HCP_A3 : CR FE : C VA% : ! +$ +$ Prototype C (cF8, Fd-3m) +$ + PHASE DIAMOND_A4 % 1 1 ! + CONST DIAMOND_A4 : C : ! +$ +$ Prototype C (hP4, P6_3/mmc) +$ + PHASE GRAPHITE % 1 1 ! + CONST GRAPHITE : C : ! +$ +$ Prototype Fe3C (oP16, Pnma) +$ + PHASE CEMENTITE_D011 %A 2 3 1 ! + CONST CEMENTITE_D011 : CR FE : C : ! +$ +$ Prototype Cr3C2 (oP20, Pnma) +$ + PHASE CR3C2_D510 % 2 3 2 ! + CONST CR3C2_D510 : CR : C : ! +$ +$ Prototype Cr7C3 (oP40, Pnma) +$ + PHASE M7C3_D101 % 2 7 3 ! + CONST M7C3_D101 : CR FE : C : ! +$ +$ Prototype Cr23C6 (cF116, Fm-3m) +$ + PHASE M23C6_D84 % 3 20 3 6 ! + CONST M23C6_D84 : CR FE : CR FE : C : ! +$ +$ Prototype Cr23C6 (cF116, Fm-3m) +$ + PHASE M23C6_S % 2 23 6 ! + CONST M23C6_S : CR FE : C : ! +$ +$ Prototype CrFe (tP30, P4_2/mnm) +$ + PHASE SIGMA_D8B % 3 10 4 16 ! + CONST SIGMA_D8B : FE : CR : CR FE : ! +$ +$ Sigma in TCFE 2000 and SSOL V4 +$ + PHASE SIGMA_OLD % 3 8 4 18 ! + CONST SIGMA_OLD : FE : CR : CR FE : ! +$ ---------------------------------------------------------------------------- +$ Defaults +$ + DEFAULT-COM DEFINE_SYSTEM_ELEMENT VA ! + DEFAULT-COM REJECT_PHASE SIGMA_OLD M23C6_S ! + TYPE-DEF % SEQ * ! + TYPE-DEF A GES AMEND_PHASE_DESCRIPTION @ MAGNETIC -3 0.28 ! + TYPE-DEF B GES AMEND_PHASE_DESCRIPTION @ MAGNETIC -1 0.4 ! + FUNCTION ZERO 298.15 0; 6000 N ! + FUNCTION UN_ASS 298.15 0; 6000 N ! +$ ---------------------------------------------------------------------------- +$ Element data +$ ---------------------------------------------------------------------------- +$ C +$ + PAR G(GRAPHITE,C),, +GHSERCC;,, N 91Din ! + PAR G(DIAMOND_A4,C),, +GDIACC;,, N 91Din ! + PAR G(LIQUID,C),, +GHSERCC+117369-24.63*T;,, N 91Din ! +$ + FUNCTION GHSERCC 298.15 -17368.441+170.73*T-24.3*T*LN(T) + -4.723E-04*T**2+2562600*T**(-1)-2.643E+08*T**(-2)+1.2E+10*T**(-3); + 6000.00 N ! + FUNCTION GDIACC 298.15 -16359.441+175.61*T-24.31*T*LN(T) + -4.723E-04*T**2+2698000*T**(-1)-2.61E+08*T**(-2)+1.11E+10*T**(-3); + 6000.00 N ! +$ ---------------------------------------------------------------------------- +$ Cr +$ + PAR G(BCC_A2,CR:VA),, +GHSERCR;,, N 91Din ! + PAR TC(BCC_A2,CR:VA),, -311.50;,, N 91Din ! + PAR BM(BCC_A2,CR:VA),, -0.008;,, N 91Din ! + PAR G(FCC_A1,CR:VA),, +GHSERCR+7284+0.163*T;,, N 91Din ! + PAR TC(FCC_A1,CR:VA),, -1109.00;,, N 91Din ! + PAR BM(FCC_A1,CR:VA),, -2.46;,, N 91Din ! + PAR G(HCP_A3,CR:VA),, +GHSERCR+4438;,, N 91Din ! + PAR TC(HCP_A3,CR:VA),, -1109.00;,, N 91Din ! + PAR BM(HCP_A3,CR:VA),, -2.46;,, N 91Din ! + PAR G(LIQUID,CR),, +GLIQCR;,, N 91Din ! +$ + FUNCTION GHSERCR 298.15 -8856.94+157.48*T-26.908*T*LN(T) + +0.00189435*T**2-1.47721E-06*T**3+139250*T**(-1); + 2180.00 Y -34869.344+344.18*T-50*T*LN(T)-2.88526E+32*T**(-9); + 6000.00 N ! + FUNCTION GLIQCR 298.15 +24339.955-11.420225*T+GHSERCR+2.37615E-21*T**7; + 2180.00 Y -16459.984+335.616316*T-50*T*LN(T); + 6000.00 N ! + FUNCTION GFCCCR 298.15 +GHSERCR+7284+0.163*T; 6000 N ! +$ ---------------------------------------------------------------------------- +$ Fe +$ + PAR G(BCC_A2,FE:VA),, +GHSERFE;,, N 91Din ! + PAR TC(BCC_A2,FE:VA),, 1043.00;,, N 91Din ! + PAR BM(BCC_A2,FE:VA),, 2.22;,, N 91Din ! + PAR G(FCC_A1,FE:VA),, +GFCCFE;,, N 91Din ! + PAR TC(FCC_A1,FE:VA),, -201.00;,, N 91Din ! + PAR BM(FCC_A1,FE:VA),, -2.10;,, N 91Din ! + PAR G(HCP_A3,FE:VA),, +GHCPFE;,, N 91Din ! + PAR G(CBCC_A12,FE:VA),, +GHSERFE+4745;,, N 91Din ! + PAR G(CUB_A13,FE:VA),, +GHSERFE+3745;,, N 91Din ! + PAR G(LIQUID,FE),, +GLIQFE;,, N 91Din ! +$ + FUNCTION GHSERFE 298.15 +1225.7+124.134*T-23.5143*T*LN(T) + -0.00439752*T**2-5.8927E-08*T**3+77359*T**(-1); + 1811.00 Y -25383.581+299.31255*T-46*T*LN(T)+2.29603E+31*T**(-9); + 6000.00 N ! + FUNCTION GFCCFE 298.15 -1462.4+8.282*T-1.15*T*LN(T) + +6.4E-04*T**2+GHSERFE; + 1811.00 Y -1713.815+0.940009*T+GHSERFE+4.9251E+30*T**(-9); + 6000.00 N ! + FUNCTION GHCPFE 298.15 -3705.78+12.591*T-1.15*T*LN(T) + +6.4E-04*T**2+GHSERFE; + 1811.00 Y -3957.195+5.249009*T+GHSERFE+4.9251E+30*T**(-9); + 6000.00 N ! + FUNCTION GLIQFE 298.15 +12040.17-6.55843*T+GHSERFE-3.67516E-21*T**7; + 1811.00 Y -10838.83+291.302*T-46*T*LN(T); + 6000.00 N ! +$ ---------------------------------------------------------------------------- +$ Binary systems +$ ---------------------------------------------------------------------------- +$ Cr-Fe +$ +$ From J.-O. Andersson and B. Sundman 1987 (included in LB Vol. 2) +$ Liquid changed by B.-J. Lee 1993 +$ +$ The SIGMA_D8B and SIGMA_OLD phase fields are very similar. +$ Checked against LB. Checked at 6000 K. +$ + PAR L(LIQUID,CR,FE;0),, -17737+7.996546*T;,, N 93Lee1 ! + PAR L(LIQUID,CR,FE;1),, -1331;,, N 93Lee1 ! +$PAR L(LIQUID,CR,FE;0),, -14550+6.65*T;,, N 87And1 ! +$ + PAR L(BCC_A2,CR,FE:VA;0),, +20500-9.68*T;,, N 87And1 ! + PAR BM(BCC_A2,CR,FE:VA;0),, -0.85;,, N 87And1 ! + PAR TC(BCC_A2,CR,FE:VA;0),, +1650;,, N 87And1 ! + PAR TC(BCC_A2,CR,FE:VA;1),, +550;,, N 87And1 ! +$ + PAR L(FCC_A1,CR,FE:VA;0),, +10833-7.477*T;,, N 87And1 ! + PAR L(FCC_A1,CR,FE:VA;1),, +1410;,, N 87And1 ! +$ + PAR G(SIGMA_D8B,FE:CR:CR),, +10*GFCCFE+20*GHSERCR + +83844-111.32*T;,, N 00Wes ! + PAR G(SIGMA_D8B,FE:CR:FE),, +10*GFCCFE+4*GHSERCR + +16*GHSERFE+140515-111.32*T;,, N 00Wes ! +$ + PAR G(SIGMA_OLD,FE:CR:CR),, +8*GFCCFE+22*GHSERCR + +92300-95.96*T;,, N 87And1 ! + PAR G(SIGMA_OLD,FE:CR:FE),, +8*GFCCFE+4*GHSERCR + +18*GHSERFE+117300-95.96*T;,, N 87And1 ! +$ +$ metastable +$ + PAR L(HCP_A3,CR,FE:VA;0),, +10833-7.477*T;,, N 90Fri1 ! +$ ---------------------------------------------------------------------------- +$ Cr-C +$ +$ A.V. Khvan, B. Hallstedt, K. Chang, Calphad, 39, 54-61(2012). +$ +$ Checked against paper. Checked at 6000 K. +$ +$ The liquid interaction has been changed compared to 92Lee. +$ There is still very nearly a stable miscibility gap on the C-rich side. +$ +$ M7C3 and M3C2 become stable again above 9000K. This is a result of the +$ T**2 terms and is not important. +$ +$ The enthalpies and Gibbs energies of formation compare well with recent +$ data from Kleykamp (J. Alloys Compd., 321, 138-45(2001)) and +$ Meschel and Kleppa on Cr7C3 (J. Alloys Compd., 257, 227-33(1997)). +$ The standard entropies and cp at 298K are not quite as good as they +$ could (or should) be, but it doesn't motivate a reassessment. +$ + PAR L(LIQUID,C,CR;0),, -69245-35*T;,, N 12Khv1 ! + PAR L(LIQUID,C,CR;1),, +83242;,, N 12Khv1 ! + PAR L(LIQUID,C,CR;2),, +88000;,, N 12Khv1 ! +$ + PAR G(BCC_A2,CR:C),, +GHSERCR+3*GHSERCC+416000;,, N 87And2 ! + PAR TC(BCC_A2,CR:C),, -311.50;,, N 90Kaj ! + PAR BM(BCC_A2,CR:C),, -0.008;,, N 90Kaj ! + PAR L(BCC_A2,CR:C,VA;0),, -190*T;,, N 87And2 ! +$ + PAR G(M23C6_D84,CR:CR:C),, +GCRM23C6;,, N 87And2 ! + PAR G(M23C6_S,CR:C),, +GCRM23C6;,, N 87And2 ! + PAR G(CR3C2_D510,CR:C),, -100823.8+530.66989*T + -89.6694*T*LN(T)-0.0301188*T**2;,, N 92Lee ! + PAR G(M7C3_D101,CR:C),, -201690+1103.128*T + -190.177*T*LN(T)-0.0578207*T**2;,, N 92Lee ! +$ +$ metastable +$ + PAR G(FCC_A1,CR:C),, +GHSERCR+GHSERCC + +1200-1.94*T;,, N 92Fer ! +$ The parameter below turned out to be the old one. +$PAR G(FCC_A1,CR:C),, -32690+248.42*T +$ -41.678*T*LN(T)-0.00301955*T**2;,, N 04Bra ! + PAR L(FCC_A1,CR:C,VA;0),, -11977+6.8194*T;,, N 92Lee ! +$ + PAR G(HCP_A3,CR:C),, +GHSERCR+0.5*GHSERCC + -18504+9.4173*T-2.4997*T*LN(T)+0.001386*T**2;,, N 92Lee ! + PAR L(HCP_A3,CR:C,VA;0),, +4165;,, N 88Gus5 ! +$ + PAR G(CEMENTITE_D011,CR:C),, +3*GHSERCR+GHSERCC + -48000-9.2888*T;,, N 92Fer ! +$ + PAR G(FE4N_L1,CR:C),, +UN_ASS;,, N ! +$ + PAR G(KSI_CARBIDE,CR:C),, +3*GHSERCR+GHSERCC + +114060-47.2519*T;,, N 92Qiu ! +$ + FUNCTION GCRM23C6 298.15 -521983+3622.24*T-620.965*T*LN(T)-0.126431*T**2; + 6000.00 N ! +$ ---------------------------------------------------------------------------- +$ Fe-C +$ +$ Database for Fe-C from B. Hallstedt et al. 2010 +$ +$ B. Hallstedt, D. Djurovic, J. von Appen, R. Dronskowski, A. Dick, +$ F. Koermann, T. Hickel, J. Neugebauer, Calphad, 34, 129-33(2010). +$ +$ Based on the assessment by P. Gustafson 1985. +$ Cementite has been changed. Bcc-Fe, graphite and cementite have Gibbs energy +$ expressions valid from 0.01 K in the paper, but here the standard SGTE +$ expressions are kept. +$ +$ The eutectoid (bcc+fcc+cem) temperature changed from 999.78 to 999.68 K. +$ The eutectic (fcc+liq+cem) temperature changed from 1421.51 to 1421.31 K. +$ The congruent melting point of cementite changed from 1497.8 to 1497.1 K. +$ +$ BCC_A2 is stable above 4000 K around x(C)=0.33. +$ There is an inverse miscibility gap in the liquid with a minimum at +$ 5559 K and x(C)=0.53. +$ + PAR L(LIQUID,C,FE;0),, -124320+28.5*T;,, N 85Gus ! + PAR L(LIQUID,C,FE;1),, +19300;,, N 85Gus ! + PAR L(LIQUID,C,FE;2),, +49260-19*T;,, N 85Gus ! +$ + PAR G(BCC_A2,FE:C),, +GHSERFE+3*GHSERCC + +322050+75.667*T;,, N 85Gus ! + PAR TC(BCC_A2,FE:C),, 1043.00;,, N 85Gus ! + PAR BM(BCC_A2,FE:C),, 2.22;,, N 85Gus ! + PAR L(BCC_A2,FE:C,VA;0),, -190*T;,, N 85Gus ! +$ + PAR G(FCC_A1,FE:C),, +GFCCFE+GHSERCC + +77207-15.877*T;,, N 85Gus ! + PAR TC(FCC_A1,FE:C),, -201.00;,, N 85Gus ! + PAR BM(FCC_A1,FE:C),, -2.10;,, N 85Gus ! + PAR L(FCC_A1,FE:C,VA;0),, -34671;,, N 85Gus ! +$ + PAR G(CEMENTITE_D011,FE:C) 0.01 +GFECEM;,, N 10Hal ! + PAR TC(CEMENTITE_D011,FE:C) 0.01 485.00;,, N 10Hal ! +$ For Fe3C + PAR BM(CEMENTITE_D011,FE:C) 0.01 1.008;,, N 10Hal ! +$ +$ metastable +$ + PAR G(HCP_A3,FE:C),, +GFCCFE+0.5*GHSERCC + +52905-11.9075*T;,, N 88And2 ! + PAR L(HCP_A3,FE:C,VA;0),, -17335;,, N 88And2 ! +$ + PAR G(CBCC_A12,FE:C),, +GHSERFE+GHSERCC+80000;,, N 90Hua2 ! + PAR L(CBCC_A12,FE:C,VA;0),, -34671;,, N 90Hua2 ! +$ + PAR G(CUB_A13,FE:C),, +GHSERFE+GHSERCC+90000;,, N 90Hua2 ! + PAR L(CUB_A13,FE:C,VA;0),, -34671;,, N 90Hua2 ! +$ + PAR G(M7C3_D101,FE:C),, +2.333333*GFECEM + +0.666667*GHSERCC+13200;,, N 11Dju ! +$PAR G(M7C3_D101,FE:C),, +7*GHSERFE+3*GHSERCC +$ +75000-48.2168*T;,, N 92Lee ! + PAR G(M23C6_D84,FE:FE:C),, +GFEM23C6;,, N 11Dju ! + PAR G(M23C6_S,FE:C),, +GFEM23C6;,, N 11Dju ! + PAR G(M5C2,FE:C),, +1.666667*GFECEM + +0.333333*GHSERCC+6200;,, N 11Dju ! +$PAR G(M5C2,FE:C),, +5*GHSERFE+2*GHSERCC +$ +54852-33.7518*T;,, N 93Lee2 ! + PAR G(FE4N_L1,FE:C),, +4*GHSERFE+GHSERCC+23224;,, N 91Du ! + PAR G(FECN_CHI,FE:C),, +2.2*GHSERFE+GHSERCC + +9131-4.539*T;,, N 91Du ! + PAR G(KSI_CARBIDE,FE:C),, +3*GHSERFE+GHSERCC + +14540+20*T;,, N 88And2 ! + PAR G(V3C2,FE:C),, +7250+741.566*T + -125.833*T*LN(T)+779485*T**(-1);,, N 91Hua ! +$ + FUNCTION GFECEM 0.01 +11369.937746-5.641259263*T-8.333E-6*T**4; + 43.00 Y +11622.647246-59.537709263*T+15.74232*T*LN(T) + -0.27565*T**2; + 163.00 Y -10195.860754+690.949887637*T-118.47637*T*LN(T) + -0.0007*T**2+590527*T**(-1); + 6000.00 N ! + FUNCTION GFEM23C6 298.15 +7.666667*GFECEM-1.666667*GHSERCC+15000; 6000 N ! +$ Function from 88And3 below +$FUNCTION GFEM23C6 298.15 +7.666667*GFECEM-1.666667*GHSERCC +$ +66920-40*T; +$ 6000.00 N ! +$ ------------------------------------------------------------------------------ +$ Ternary system +$ +$ From A.V. Khvan and B. Hallstedt, 2013 +$ + PAR L(LIQUID,C,CR,FE;0),, -528500;,, N 13Khv ! + PAR L(LIQUID,C,CR,FE;1),, +57150;,, N 13Khv ! + PAR L(LIQUID,C,CR,FE;2),, +62630;,, N 13Khv ! +$ + PAR L(BCC_A2,CR,FE:C;0),, -1320000+667.7*T;,, N 13Khv ! + PAR BM(BCC_A2,CR,FE:C;0),, -0.85;,, N 88And3 ! + PAR TC(BCC_A2,CR,FE:C;0),, +1650;,, N 88And3 ! + PAR TC(BCC_A2,CR,FE:C;1),, +550;,, N 88And3 ! +$ + PAR L(FCC_A1,CR,FE:C;0),, -69534+3.2353*T;,, N 13Khv ! +$ + PAR L(CEMENTITE_D011,CR,FE:C;0),, +14586-9.18*T;,, N 13Khv ! +$ + PAR G(M23C6_D84,FE:CR:C),, +0.130435*GCRM23C6 + +0.869565*GFEM23C6;,, N 88And3 ! + PAR G(M23C6_D84,CR:FE:C),, +0.869565*GCRM23C6 + +0.130435*GFEM23C6;,, N 88And3 ! + PAR L(M23C6_D84,CR,FE:CR:C;0),, +6609;,, N 13Khv ! + PAR L(M23C6_D84,CR,FE:FE:C;0),, +6609;,, N 13Khv ! + PAR L(M23C6_D84,CR:CR,FE:C;0),, +991;,, N 13Khv ! + PAR L(M23C6_D84,FE:CR,FE:C;0),, +991;,, N 13Khv ! + PAR L(M23C6_D84,CR,FE:CR:C;1),, -43600;,, N 13Khv ! + PAR L(M23C6_D84,CR,FE:FE:C;1),, -43600;,, N 13Khv ! + PAR L(M23C6_D84,CR:CR,FE:C;1),, -6540;,, N 13Khv ! + PAR L(M23C6_D84,FE:CR,FE:C;1),, -6540;,, N 13Khv ! +$ + PAR L(M23C6_S,CR,FE:C;0),, +7600;,, N 13Khv ! + PAR L(M23C6_S,CR,FE:C;1),, -50140;,, N 13Khv ! +$ + PAR L(M7C3_D101,CR,FE:C;0),, +81940-61.86*T;,, N 13Khv ! + PAR L(M7C3_D101,CR,FE:C;1),, -7310;,, N 13Khv ! + PAR L(M7C3_D101,CR,FE:C;2),, +27050;,, N 13Khv ! +$ ------------------------------------------------------------------------------ +$ +$ + +$ D = 0.18 exp(-64500/RT) in cm2/s +PAR MQ(FCC_A1&FE,FE:*;0) 298.15 -64500*4.184 + 8.314*T*LOG(0.18e-4); 6000 N ! + +PAR MQ(FCC_A1&C,FE:VA;0) 298.15 -147723*(1-0.4*T/1801) + 8.314*T*LOG(4.53e-7); 6000 N ! +PAR MQ(FCC_A1&C,FE:C;0) 298.15 72077*(1-0.4*T/1801) + 8.314*T*LOG(4.53e-7); 6000 N ! + + + LIST-OF-REFERENCE + NUMBER SOURCE + Null 'Unknown source' + REFLAV 'Laves phase convention: G(LAVES,X:X)=+3*GHSERXX+15000' + 85Gus 'P. Gustafson, Scand. J. Metall., 14, 259-67(1985); Fe-C' + 87And1 'J.-O. Andersson, B. Sundman, Calphad, 11, 83-92(1987); Cr-Fe' + 87And2 'J.-O. Andersson, Calphad, 11, 271-76(1987); Cr-C' + 88And2 'J.-O. Andersson, Calphad, 12, 9-23(1988); Fe-Mo-C' + 88And3 'J.-O. Andersson, Metall. Trans A, 19A, 627-36(1988); Cr-Fe-C' + 88And4 'J.-O. Andersson, N. Lange, + Metall. Trans. A, 19A, 1385-94(1988); Cr-Fe-Mo' + 88Gus4 'P. Gustafson, Metall. Trans. A, 19A, 2531-46(1988); Cr-Fe-W' + 88Gus5 'P. Gustafson, Metall. Trans. A, 19A, 2547-54(1988); Cr-Fe-W-C' + 90Fri1 'K. Frisk, Metall. Trans. A, 21A, 2477-88(1990); Cr-Fe-N' + 90Hua2 'W. Huang, Metall. Trans. A, 21A, 2115-23(1990); Fe-Mn-C' + 90Kaj 'M. Kajihara, M. Hillert, + Metall. Mater. Trans. A, 21A, 2777-87(1990); Cr-C' + 91Din 'A.T. Dinsdale, Calphad, 15, 317-425(1991).' + 91Du 'H. Du, M. Hillert, Z. Metallkd., 82, 310-16(1991); Fe-C-N' + 91Hua 'W. Huang, Metall. Trans. A, 22A, 1911-20(1991); Fe-Mn-V-C' + 92Fer 'A. Fernandez-Guillermet, G. Grimvall, + J. Phys. Chem. Solids, 53, 105-25(1992); Cr-C' + 92Lee 'B.-J. Lee, Calphad, 16, 121-49(1992); Cr-C, Cr-Fe-C' + 92Qiu 'C. Qiu, ISIJ Int., 32, 1117-27(1992); Cr-Fe-Mo-C' + 93Lee1 'B.-J. Lee, Calphad, 17, 251-68(1993); Cr-Fe, Cr-Fe-C' + 93Lee2 'B.-J. Lee, Metall. Trans. A, 24A, 1017-25(1993); Cr-Fe-Mn-C' + 99Lee 'B.-J. Lee, unpublished, 1999' + 00Wes 'S. Westman, unpublished, 2000; Cr-Fe' + 04Bra 'J. Bratberg, K. Frisk, Metall. Mater. Trans. A, + 35A, 3649-63(2004); Cr-Fe-V-C' + 10Hal 'B. Hallstedt, D. Djurovic, J. von Appen, R. Dronskowski, A. Dick, + F. Koermann, T. Hickel, J. Neugebauer, + Calphad, 34, 129-33(2010); Fe-C' + 11Dju 'D. Djurovic, B. Hallstedt, J. von Appen, R. Dronskowski, + Calphad, 35, 479-91(2011); Fe-Mn, Fe-Mn-C' + 12Khv1 'A.V. Khvan, B. Hallstedt, K. Chang, Calphad, 39, 54-61(2012); Cr-C' + 13Khv 'A.V. Khvan, B. Hallstedt, unpublished, 2013; Cr-Fe-C' +! +""" \ No newline at end of file diff --git a/kawin/tests/datasets.py b/kawin/tests/datasets.py index 6b2e5a9..c06c0a4 100644 --- a/kawin/tests/datasets.py +++ b/kawin/tests/datasets.py @@ -1,2926 +1,249 @@ ''' -Databases for unit testing +Espei datasets for unit testing ''' -ALZR_TDB = """ -$Al-Zr database -$From T. Wang, Z. Jin, J. Zhao, Journal of Phase Equilibria, 22 (2001) p. 544 -$ -TEMP_LIM 298.15 6000 ! -$Element Standard state mass [g/mol] H_298 S_298 -ELEMENT /- ELECTRON_GAS 0.0 0.0 0.0 ! -ELEMENT VA VACUUM 0.0000E+00 0.0000E+00 0.0000E+00 ! -ELEMENT AL FCC_A1 2.6982E+01 4.5773E+03 2.8322E+01 ! -ELEMENT ZR HCP_A3 9.1224E+01 5.5663E+03 3.9181E+01 ! -$ -$ - TYPE_DEFINITION % SEQ *! -$ -$PHASE AL3ZR -PHASE AL3ZR % 2 0.75 0.25 ! -CONST AL3ZR : AL : ZR : ! -$ -$PHASE FCC_A1 -PHASE FCC_A1 % 2 1 1 ! -CONST FCC_A1 : AL%,ZR : VA : ! -$ -$ -$ -$ -$UNARY DATA -$ -$AL (FCC_A1) -FUNCTION GHSERAL 298.15 -7976.15+137.093038*T-24.3671976*T*LOG(T) - -1.884662E-3*T**2-0.877664E-6*T**3+74092*T**(-1); - 700.00 Y -11276.24+223.048446*T-38.5844296*T*LOG(T) - +18.531982E-3*T**2-5.764227E-6*T**3+74092*T**(-1); - 933.47 Y -11278.378+188.684153*T-31.748192*T*LOG(T) - -1230.524E25*T**(-9); 2900.00 N ! -$ -$ ZIRCONIUM (GHSERZR FOR HCP_A3) -$ -FUNCTION GHSERZR 130.00 -7827.595+125.64905*T-24.1618*T*LOG(T) - -4.37791E-3*T**2+34971*T**(-1); - 2128.00 Y -26085.921+262.724183*T-42.144*T*LOG(T) - -1342.895E28*T**(-9); 6000.00 N ! - -$ -$ PHASE FCC_A1 -$ -PARAMETER G(FCC_A1,AL:VA;0) 298.15 GHSERAL; 6000.00 N ! -PARAMETER G(FCC_A1,ZR:VA;0) 298.15 7600.00-0.9*T+GHSERZR; 6000.00 N ! -PARAMETER G(FCC_A1,AL,ZR:VA;0) 298.15 -152947+21.3*T; 6000.00 N ! - -$ -$ PHASE AL3ZR -$ -PARAMETER G(AL3ZR,AL:ZR;0) 298.15 -47381 - 24.373*T + 3.894*T*LOG(T) - +0.75*GHSERAL+0.25*GHSERZR; 6000.00 N ! - -$ -$ Diffusion parameters -$ -PARAMETER DF(FCC_A1&ZR,*:VA;0) 298.15 -2.56655 * 8.314 * T; 6000 N ! -PARAMETER DQ(FCC_A1&ZR,*:VA;0) 298.15 -242000; 6000 N ! -""" - -ALZR_TDB_NO_MOB = """ -$Al-Zr database without any mobility parameters -$From T. Wang, Z. Jin, J. Zhao, Journal of Phase Equilibria, 22 (2001) p. 544 -$ -TEMP_LIM 298.15 6000 ! -$Element Standard state mass [g/mol] H_298 S_298 -ELEMENT /- ELECTRON_GAS 0.0 0.0 0.0 ! -ELEMENT VA VACUUM 0.0000E+00 0.0000E+00 0.0000E+00 ! -ELEMENT AL FCC_A1 2.6982E+01 4.5773E+03 2.8322E+01 ! -ELEMENT ZR HCP_A3 9.1224E+01 5.5663E+03 3.9181E+01 ! -$ -$ - TYPE_DEFINITION % SEQ *! -$ -$PHASE AL3ZR -PHASE AL3ZR % 2 0.75 0.25 ! -CONST AL3ZR : AL : ZR : ! -$ -$PHASE FCC_A1 -PHASE FCC_A1 % 2 1 1 ! -CONST FCC_A1 : AL%,ZR : VA : ! -$ -$ -$ -$ -$UNARY DATA -$ -$AL (FCC_A1) -FUNCTION GHSERAL 298.15 -7976.15+137.093038*T-24.3671976*T*LOG(T) - -1.884662E-3*T**2-0.877664E-6*T**3+74092*T**(-1); - 700.00 Y -11276.24+223.048446*T-38.5844296*T*LOG(T) - +18.531982E-3*T**2-5.764227E-6*T**3+74092*T**(-1); - 933.47 Y -11278.378+188.684153*T-31.748192*T*LOG(T) - -1230.524E25*T**(-9); 2900.00 N ! -$ -$ ZIRCONIUM (GHSERZR FOR HCP_A3) -$ -FUNCTION GHSERZR 130.00 -7827.595+125.64905*T-24.1618*T*LOG(T) - -4.37791E-3*T**2+34971*T**(-1); - 2128.00 Y -26085.921+262.724183*T-42.144*T*LOG(T) - -1342.895E28*T**(-9); 6000.00 N ! - -$ -$ PHASE FCC_A1 -$ -PARAMETER G(FCC_A1,AL:VA;0) 298.15 GHSERAL; 6000.00 N ! -PARAMETER G(FCC_A1,ZR:VA;0) 298.15 7600.00-0.9*T+GHSERZR; 6000.00 N ! -PARAMETER G(FCC_A1,AL,ZR:VA;0) 298.15 -152947+21.3*T; 6000.00 N ! - -$ -$ PHASE AL3ZR -$ -PARAMETER G(AL3ZR,AL:ZR;0) 298.15 -47381 - 24.373*T + 3.894*T*LOG(T) - +0.75*GHSERAL+0.25*GHSERZR; 6000.00 N ! -""" - -NICRAL_TDB = """ - -$ The parameters of the following database follows the publication -$ N. Dupin, I. Ansara, Thermodynamic Re-Assessment of the Ternary System -$ Al-Cr-Ni, Calphad, 25 (2), 279-298 (2001). -$ -$ - -$Element Standard state mass [g/mol] H_298 S_298 - ELEMENT /- ELECTRON_GAS .0000E+00 .0000E+00 .0000E+00! - ELEMENT VA VACUUM .0000E+00 .0000E+00 .0000E+00! - ELEMENT AL FCC_A1 2.6982E+01 4.5773E+03 2.8322E+01! - ELEMENT CR BCC_A2 5.1996E+01 4.0500E+03 2.3560E+01! - ELEMENT NI FCC_A1 5.8690E+01 4.7870E+03 2.9796E+01! - - SPECIES AL2 AL2! - SPECIES CR2 CR2! - SPECIES NI2 NI2! - - - FUNCTION UNASS 298.15 0;,,N ! - - - TYPE_DEFINITION % SEQ *! - DEFINE_SYSTEM_DEFAULT E 2 ! - DEFAULT_COMMAND DEF_SYS_ELEMENT VA ! - DEFAULT_COMMAND REJECT_PHASE NEWSIGMA ! - - DATABASE_INFO ''' - BASE TC-Ni, version 29-09-99' - - ' - ELEMENTS : Al, Cr, Ni' - ' - ASSESSED SYSTEMS :' - ' - BINARIES' - Al-Cr, Al-Ni, Cr-Ni' - TERNARIES' - Al-Cr-Ni' -' - MODELLING ORDER/DISORDER:' -' - A1 and L12 phases are modelled with a single Gibbs energy curve.' - They are FCC_L12#1 (A1) based on (Ni) and FCC_L12#2 (L12) based on' - Ni3Al, differing by their site occupation.' - The same type of relation exists for the A2 and B2 phases. There are' - several possible sets for the phase named BCC_B2. They are either' - disordered (A2) and correspond to the solid solution based on Cr,' - or ordered based on the B2 compound AlNi.' - ! - -ASSESSED_SYSTEMS - AL-CR(;G5 MAJ:BCC_B2/CR:CR:VA ;P3 STP:.75/1200/1) - AL-NI(;P3 STP:.75/1200/1) - CR-NI(;G5 MAJ:BCC_B2/CR:CR:VA C_S:BCC_B2/NI:NI:VA - ;P3 STP:.5/1200/2) - ! - - TYPE_DEFINITION A GES A_P_D FCC_L12 MAGNETIC -3.0 .28 ! - TYPE_DEFINITION E GES A_P_D FCC_A1 MAGNETIC -3.0 .28 ! - TYPE_DEFINITION B GES A_P_D BCC_B2 MAGNETIC -1.0 .40 ! - TYPE_DEFINITION F GES A_P_D BCC_A2 MAGNETIC -1.0 .40 ! - - TYPE_DEFINITION C GES A_P_D BCC_B2 DIS_PART BCC_A2 ! - TYPE_DEFINITION D GES A_P_D FCC_L12 DIS_PART FCC_A1 ! - -$ TYPE_DEFINITION G GES A_P_D FCC_L12 C_S 2 NI:AL:VA ! -$ TYPE_DEFINITION G GES A_P_D FCC_L12 MAJ 1 NI:NI:VA ! -$ TYPE_DEFINITION W GES A_P_D BCC_B2 C_S,, NI:AL:VA ! -$ TYPE_DEFINITION W GES A_P_D BCC_B2 MAJ 1 CR:CR:VA ! - - PHASE GAS:G % 1 1.0 ! - CONST GAS:G :AL,AL2,CR,CR2,NI,NI2 : ! - - PHASE LIQUID:L % 1 1.0 ! - CONST LIQUID:L :AL,CR,NI : ! - - PHASE FCC_A1 %E 2 1 1 ! - CONST FCC_A1 :AL,CR,NI% : VA% : ! - - PHASE BCC_A2 %F 2 1 3 ! - CONST BCC_A2 :AL,CR%,NI,VA : VA : ! - - PHASE HCP_A3 %A 2 1 .5 ! - CONST HCP_A3 :AL,CR,NI : VA% : ! - - PHASE BCC_B2 %BC 3 .5 .5 3 ! - CONST BCC_B2 :AL,CR,NI%,VA : AL%,CR,NI,VA : VA: ! - - PHASE FCC_L12 %AD 3 .75 .25 1 ! - CONST FCC_L12 :AL,CR,NI : AL,CR,NI : VA : ! - - - PHASE C14_LAVES % 2 2.0 1.0 ! - CONST C14_LAVES : AL,CR%,NI : AL,CR,NI : ! - - PHASE C15_LAVES % 2 2.0 1.0 ! - CONST C15_LAVES : AL,CR%,NI : AL,CR,NI : ! - - PHASE C36_LAVES % 2 2.0 1.0 ! - CONST C36_LAVES : AL,CR%,NI : AL,CR,NI : ! - - PHASE SIGMA % 3 8 4 18 ! - CONSTITUENT SIGMA :AL,NI : CR : AL,CR%,NI : ! - - PHASE NEWSIGMA % 3 10 4 16 ! - CONSTITUENT NEWSIGMA :AL,NI : CR : AL,CR,NI : ! - - PHASE CHI_A12 % 3 24 10 24 ! - CONST CHI_A12 :CR,NI : CR : CR,NI : ! - - PHASE MTI2 % 2 1.0 2.0 ! - CONST MTI2 : CR,NI% : AL,CR,NI : ! - - - FUNCTION ZERO 298.15 0;,,N ! - FUNCTION DP 298.15 +P-101325;,,N ! - FUNCTION TROIS 298.15 3;,,N ! - FUNCTION UNTIER 298.15 TROIS**(-1);,,N ! - -$**************************************************************************** -$ -$ UNARY PARAMETERS -$ -$---------------------------------------------------------------------------- -$ -$ Al -$ -$ FUNCTIONS -$ - FUNCTION F154T 298.15 - +323947.58-25.1480943*T-20.859*T*LN(T) - +4.5665E-05*T**2-3.942E-09*T**3-24275.5*T**(-1); - 4300.0 Y - +342017.233-54.0526109*T-17.7891*T*LN(T)+6.822E-05*T**2 - -1.91111667E-08*T**3-14782200*T**(-1); - 8200.0 Y - +542396.07-411.214335*T+22.2419*T*LN(T)-.00349619*T**2 - +4.0491E-08*T**3-2.0366965E+08*T**(-1); 1.00000E+04 N ! -$ - FUNCTION F625T 298.15 - +496408.232+35.479739*T-41.6397*T*LN(T) - +.00249636*T**2-4.90507333E-07*T**3+85390.3*T**(-1); - 900.00 Y - +497613.221+17.368131*T-38.85476*T*LN(T)-2.249805E-04*T**2 - -9.49003167E-09*T**3-5287.23*T**(-1); 2.80000E+03 N ! -$ - FUNCTION GHSERAL 298.15 - -7976.15+137.093038*T-24.3671976*T*LN(T) - -.001884662*T**2-8.77664E-07*T**3+74092*T**(-1); - 700.00 Y - -11276.24+223.048446*T-38.5844296*T*LN(T) - +.018531982*T**2-5.764227E-06*T**3+74092*T**(-1); - 933.60 Y - -11278.378+188.684153*T-31.748192*T*LN(T) - -1.231E+28*T**(-9);,, N ! -$ - FUNCTION GHCPAL 298.15 +5481-1.8*T+GHSERAL;,,N ! -$ - FUNCTION GBCCAL 298.15 +10083-4.813*T+GHSERAL;,,N ! -$ - FUNCTION GLIQAL 298.14 - +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL; - 933.59 Y - +10482.282-11.253974*T+1.231E+28*T**(-9)+GHSERAL;,,N ! -$ -$ GAS PHASE -$ - PARAMETER G(GAS,AL;0) 298.15 +F154T+R*T*LN(1E-05*P);,,N REF184 ! - PARAMETER G(GAS,AL2;0) 298.15 +F625T+R*T*LN(1E-05*P);,,N REF448 ! -$ -$ LIQUID PHASE -$ - PARAMETER G(LIQUID,AL;0) 298.13 - +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL; - 933.60 Y - +10482.382-11.253974*T+1.231E+28*T**(-9) - +GHSERAL;,,N 91DIN ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,AL:VA;0) 298.15 +GHSERAL;,,N 91DIN ! -$ -$ BCC_A2 PHASE -$ - PARAMETER G(BCC_A2,AL:VA;0) 298.15 +GBCCAL;,,N 91DIN ! - FUNC B2ALVA 295.15 10000-T;,,N ! - FUNC LB2ALVA 298.15 150000;,,N ! - PARAMETER L(BCC_A2,AL,VA:VA;0) 298.15 B2ALVA+LB2ALVA;,,N 99DUP ! -$ -$ HCP_A3 PHASE -$ - PARAMETER G(HCP_A3,AL:VA;0) 298.15 +GHCPAL;,,N 91DIN ! -$ -$ BCC_B2 PHASE -$ - PARAMETER G(BCC_B2,AL:VA:VA;0) 298.15 .5*B2ALVA-.5*LB2ALVA;,,N 99DUP ! - PARAMETER G(BCC_B2,VA:AL:VA;0) 298.15 .5*B2ALVA-.5*LB2ALVA;,,N 99DUP ! -$ -$ ALTI_L10 PHASE -$ - PARAMETER G(ALTI_L10,AL:AL;0) 298.15 2*GHSERAL+4;,,N COST507 ! -$ -$ ALTI3_DO19 PHASE -$ - PARAMETER G(ALTI3_DO19,AL:AL;0) 298.15 +4*GHCPAL;,,N COST507 ! -$ -$ C14_LAVES PHASE -$ - PARAMETER G(C14_LAVES,AL:AL;0) 298.15 +3*GHSERAL+15000;,,N 95DUP8 ! -$ -$ C15_LAVES PHASE -$ - PARAMETER G(C15_LAVES,AL:AL;0) 298.15 +3*GHSERAL+15000;,,N REFLAV ! -$ -$ C36_LAVES PHASE -$ - PARAMETER G(C36_LAVES,AL:AL;0) 298.15 +3*GHSERAL+15000;,,N REFLAV ! -$ -$ H_L21 PHASE -$ - PARAMETER G(H_L21,AL:AL:VA;0) 298.15 +10000-T+GBCCAL;,,N 95DUP8 ! -$ -$ NI3TI_DO24 PHASE -$ - PARAMETER G(NI3TI_DO24,AL:AL;0) 298.15 GHCPAL;,,N 95DUP8 ! -$ -$---------------------------------------------------------------------------- -$ -$ Cr -$ -$ FUNCTIONS -$ - FUNCTION F7454T 298.15 - +390765.331-31.5192154*T-21.36083*T*LN(T) - +7.253215E-04*T**2-1.588679E-07*T**3+10285.15*T**(-1); - 1100.0 Y - +393886.928-44.107465*T-19.96003*T*LN(T)+.001513089*T**2 - -4.23648333E-07*T**3-722515*T**(-1); - 2000.0 Y - +421372.003-231.888524*T+5.362886*T*LN(T)-.00848877*T**2 - +2.984635E-07*T**3-6015405*T**(-1); - 3300.0 Y - +305164.698+251.019831*T-55.20304*T*LN(T)+.005324585*T**2 - -2.850405E-07*T**3+34951485*T**(-1); - 5100.0 Y - +1069921.1-1708.93262*T+175.0508*T*LN(T)-.025574185*T**2 - +4.94447E-07*T**3-4.4276355E+08*T**(-1); - 7600.0 Y - -871952.838+1686.47356*T-204.5589*T*LN(T)+.007475225*T**2 - -4.618745E-08*T**3+1.423504E+09*T**(-1); 1.00000E+04 N ! -$ - FUNCTION F7735T 298.15 +598511.402+41.5353219*T-40.56798*T*LN(T) - +.004961847*T**2-1.61216717E-06*T**3+154422.85*T**(-1); - 800.00 Y - +613345.232-104.20799*T-19.7643*T*LN(T)-.007085085*T**2 - -4.69883E-07*T**3-1738066.5*T**(-1); - 1400.0 Y - +642608.843-369.286259*T+17.64743*T*LN(T)-.02767321*T**2 - +1.605906E-06*T**3-5831655*T**(-1); - 2300.0 Y - +553119.895+159.188556*T-52.07969*T*LN(T)-.004229401*T**2 - +1.5939925E-07*T**3+14793625*T**(-1); - 3900.0 Y - +347492.339+623.137624*T-105.0428*T*LN(T)+3.9699545E-04*T**2 - +1.51783483E-07*T**3+1.4843765E+08*T**(-1); - 5800.0 Y - -484185.055+2598.25559*T-334.7145*T*LN(T)+.028597625*T**2 - -4.97520167E-07*T**3+7.135805E+08*T**(-1); 6.00000E+03 N ! -$ - FUNCTION GHSERCR 298.14 - -8856.94+157.48*T-26.908*T*LN(T) - +.00189435*T**2-1.47721E-06*T**3+139250*T**(-1); - 2180.0 Y - -34869.344+344.18*T-50*T*LN(T)-2.88526E+32*T**(-9);,,N ! -$ - FUNCTION GCRLIQ 298.15 - +24339.955-11.420225*T+2.37615E-21*T**7+GHSERCR; - 2180.0 Y - -16459.984+335.616316*T-50*T*LN(T);,,N ! -$ - FUNCTION GFCCCR 298.15 +7284+.163*T+GHSERCR;,,N ! -$ - FUNCTION GHCPCR 298.15 +4438+GHSERCR;,,N ! -$ - FUNCTION ACRBCC 298.15 +1.7E-05*T+9.2E-09*T**2;,,N ! - FUNCTION BCRBCC 298.15 +1+2.6E-11*P;,,N ! - FUNCTION CCRBCC 298.15 2.08E-11;,,N ! - FUNCTION DCRBCC 298.15 +1*LN(BCRBCC);,,N ! - FUNCTION VCRBCC 298.15 +7.188E-06*EXP(ACRBCC);,,N ! - FUNCTION ECRBCC 298.15 +1*LN(CCRBCC);,,N ! - FUNCTION XCRBCC 298.15 +1*EXP(.8*DCRBCC)-1;,,N ! - FUNCTION YCRBCC 298.15 +VCRBCC*EXP(-ECRBCC);,,N ! - FUNCTION ZCRBCC 298.15 +1*LN(XCRBCC);,,N ! - FUNCTION GPCRBCC 298.15 +YCRBCC*EXP(ZCRBCC);,,N ! -$ - FUNCTION ACRLIQ 298.15 +1.7E-05*T+9.2E-09*T**2;,,N ! - FUNCTION BCRLIQ 298.15 +1+4.65E-11*P;,,N ! - FUNCTION CCRLIQ 298.15 3.72E-11;,,N ! - FUNCTION DCRLIQ 298.15 +1*LN(BCRLIQ);,,N ! - FUNCTION VCRLIQ 298.15 +7.653E-06*EXP(ACRLIQ);,,N ! - FUNCTION ECRLIQ 298.15 +1*LN(CCRLIQ);,,N ! - FUNCTION XCRLIQ 298.15 +1*EXP(.8*DCRLIQ)-1;,,N ! - FUNCTION YCRLIQ 298.15 +VCRLIQ*EXP(-ECRLIQ);,,N ! - FUNCTION ZCRLIQ 298.15 +1*LN(XCRLIQ);,,N ! - FUNCTION GPCRLIQ 298.15 +YCRLIQ*EXP(ZCRLIQ);,,N ! -$ -$ GAS PHASE -$ - PARAMETER G(GAS,CR;0) 298.15 +F7454T+R*T*LN(1E-05*P);,,N REF4465 ! - PARAMETER G(GAS,CR2;0) 298.15 +F7735T+R*T*LN(1E-05*P);,, N REF4591 ! -$ -$ LIQUID PHASE -$ - PARAMETER G(LIQUID,CR;0) 298.15 +GCRLIQ+GPCRLIQ;,, N 91DIN ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,CR:VA;0) 298.15 +GFCCCR+GPCRBCC;,,N 89DIN ! - PARAMETER TC(FCC_A1,CR:VA;0) 298.15 -1109;,,N 89DIN ! - PARAMETER BMAGN(FCC_A1,CR:VA;0) 298.15 -2.46;,,N 89DIN ! -$ -$ BCC_A2 PHASE -$ - PARAMETER G(BCC_A2,CR:VA;0) 298.15 +GHSERCR+GPCRBCC;,,N 91DIN ! - PARAMETER TC(BCC_A2,CR:VA;0) 298.15 -311.5;,,N 89DIN ! - PARAMETER BMAGN(BCC_A2,CR:VA;0) 298.15 -.008;,,N 89DIN ! - PARAMETER L(BCC_A2,CR,VA:VA;0) 298.15 100000;,,N 99DUP6 ! -$ -$ HCP_A3 PHASE -$ - PARAMETER G(HCP_A3,CR:VA;0) 298.15 +GHCPCR;,,N 91DIN ! - PARAMETER TC(HCP_A3,CR:VA;0) 298.15 -1109;,,N 89DIN ! - PARAMETER BMAGN(HCP_A3,CR:VA;0) 298.15 -2.46;,,N 89DIN ! -$ -$ BCC_B2 PHASE -$ - PARAMETER G(BCC_B2,CR:VA:VA;0) 298.15 0;,,N 99DUP6 ! - PARAMETER G(BCC_B2,VA:CR:VA;0) 298.15 0;,,N 99DUP6 ! -$ -$ CHI_A12 PHASE -$ - PARAMETER G(CHI_A12,CR:CR:CR;0) 298.15 - +48*GFCCCR+10*GHSERCR+109000+123*T;,,N 87GUS ! -$ -$ ALTI3_DO19 PHASE -$ - PARAMETER G(ALTI3_DO19,CR:CR;0) 298.15 +4*GHCPCR;,,N COST507 ! -$ -$ C14_LAVES PHASE -$ - PARAMETER G(C14_LAVES,CR:CR;0) 298.15 +3*GHSERCR+15000;,,N REFLAV ! -$ -$ C15_LAVES PHASE -$ - PARAMETER G(C15_LAVES,CR:CR;0) 298.15 +3*GHSERCR+15000;,,N REFLAV ! -$ -$ C36_LAVES PHASE -$ - PARAMETER G(C36_LAVES,CR:CR;0) 298.15 +3*GHSERCR+15000;,,N REFLAV ! -$ -$ MTI2 PHASE -$ - PARAMETER G(MTI2,CR:CR;0) 298.15 3*GHSERCR+15000;,,N 99DUP9 ! -$ -$ NI3TI_DO24 PHASE -$ - PARAMETER G(NI3TI_DO24,CR:CR;0) 298.15 GHCPCR;,,N 95DUP9 ! -$ -$ ALTI_L10 PHASE -$ - PARAMETER G(ALTI_L10,CR:CR;0) 298.15 2*GFCCCR;,,N COST507 ! -$ -$---------------------------------------------------------------------------- -$ -$ Ni -$ -$ FUNCTIONS -$ - FUNCTION F13191T 298.15 - +417658.868-44.7777921*T-20.056*T*LN(T) - -.0060415*T**2+1.24774E-06*T**3-16320*T**(-1); - 800.00 Y - +413885.448+9.41787679*T-28.332*T*LN(T)+.00173115*T**2 - -8.399E-08*T**3+289050*T**(-1); - 3900.0 Y - +440866.732-62.5810038*T-19.819*T*LN(T)+5.067E-04*T**2 - -4.93233333E-08*T**3-15879735*T**(-1); - 7600.0 Y - +848806.287-813.398164*T+64.69*T*LN(T)-.00731865*T**2 - +8.71833333E-08*T**3-3.875846E+08*T**(-1); 10000. N ! -$ - FUNCTION F13265T 298.15 - +638073.279-68.1901928*T-24.897*T*LN(T) - -.0313584*T**2+5.93355333E-06*T**3-14215*T**(-1); - 800.00 Y - +611401.772+268.084821*T-75.25401*T*LN(T)+.01088525*T**2 - -7.08741667E-07*T**3+2633835*T**(-1); - 2100.0 Y - +637459.339+72.0712678*T-48.587*T*LN(T)-9.09E-05*T**2 - +9.12933333E-08*T**3-1191755*T**(-1); - 4500.0 Y - +564540.781+329.599011*T-80.11301*T*LN(T)+.00578085*T**2 - -1.08841667E-07*T**3+29137900*T**(-1); 6000.0 N ! -$ - FUNCTION GHSERNI 298.14 - -5179.159+117.854*T-22.096*T*LN(T) - -.0048407*T**2; - 1728.0 Y - -27840.655+279.135*T-43.1*T*LN(T)+1.12754E+31*T**(-9);,, N ! -$ - FUNCTION GHCPNI 298.15 +1046+1.2552*T+GHSERNI;,,N ! -$ - FUNCTION GBCCNI 298.15 +8715.084-3.556*T+GHSERNI;,,, N ! -$ -$ GAS PHASE -$ - PARAMETER G(GAS,NI;0) 298.15 +F13191T+R*T*LN(1E-05*P);,,N REF7504 ! - PARAMETER G(GAS,NI2;0) 298.15 +F13265T+R*T*LN(1E-05*P);,,N REF7553 ! -$ -$ LIQUID PHASE -$ - PARAMETER G(LIQUID,NI;0) 298.13 - +16414.686-9.397*T-3.82318E-21*T**7+GHSERNI; - 1728.0 Y - +18290.88-10.537*T-1.12754E+31*T**(-9) - +GHSERNI;,,N 91DIN ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,NI:VA;0) 298.15 +GHSERNI;,,N 91DIN ! - PARAMETER TC(FCC_A1,NI:VA;0) 298.15 633;,,N 89DIN ! - PARAMETER BMAGN(FCC_A1,NI:VA;0) 298.15 .52;,,N 89DIN ! -$ -$ BCC_A2 PHASE -$ - PARAMETER G(BCC_A2,NI:VA;0) 298.15 +GBCCNI;,,N 91DIN ! - PARAMETER TC(BCC_A2,NI:VA;0) 298.15 575;,,N 89DIN ! - PARAMETER BMAGN(BCC_A2,NI:VA;0) 298.15 .85;,,N 89DIN ! - FUNC B2NIVA 295.15 +162397.3-27.40575*T;,,N ! - FUNC LB2NIVA 298.15 -64024.38+26.49419*T;,,N ! - PARAMETER L(BCC_A2,NI,VA:VA;0) 298.15 B2NIVA+LB2NIVA;,,N 99DUP ! -$ -$ HCP_A3 PHASE -$ - PARAMETER G(HCP_A3,NI:VA;0) 298.15 +GHCPNI;,,N 91DIN ! - PARAMETER TC(HCP_A3,NI:VA;0) 298.15 633;,,N 86FER1 ! - PARAMETER BMAGN(HCP_A3,NI:VA;0) 298.15 .52;,,N 86FER1 ! -$ -$ BCC_B2 PHASE -$ - PARAMETER G(BCC_B2,VA:NI:VA;0) 298.15 .5*B2NIVA-.5*LB2NIVA;,,N 99DUP ! - PARAMETER G(BCC_B2,NI:VA:VA;0) 298.15 .5*B2NIVA-.5*LB2NIVA;,,N 99DUP ! -$ -$ NI3TI_DO24 PHASE -$ - PARAMETER G(NI3TI_DO24,NI:NI;0) 298.15 +GHCPNI;,,N 90SAU ! -$ -$ ALTI3_DO19 PHASE -$ - PARAMETER G(ALTI3_DO19,NI:NI;0) 298.15 +4*GHCPNI;,,N COST507 ! -$ -$ C14_LAVES PHASE -$ - PARAMETER G(C14_LAVES,NI:NI;0) 298.15 +15000+3*GHSERNI;,,N REFLAV ! -$ -$ C15_LAVES PHASE -$ - PARAMETER G(C15_LAVES,NI:NI;0) 298.15 +15000+3*GHSERNI;,,N REFLAV ! -$ -$ C36_LAVES PHASE -$ - PARAMETER G(C36_LAVES,NI:NI;0) 298.15 +15000+3*GHSERNI;,,N REFLAV ! -$ -$ H_L21 PHASE -$ - PARAMETER G(H_L21,NI:NI:NI;0) 298.15 +2*GBCCNI;,,N 95DUP8 ! - PARAMETER G(H_L21,NI:NI:VA;0) 298.15 +100000+GHSERNI;,,N 95DUP8 ! -$ -$ MTI2 PHASE -$ - PARAMETER G(MTI2,NI:NI;0) 298.15 3*GHSERNI+15000;,,N 99DUP9 ! -$ -$**************************************************************************** -$ -$ BINARY PARAMETERS -$ -$---------------------------------------------------------------------------- -$ -$ Al-Cr -$ Mainly from Saunders (COST507) -$ Metastable B2 and L12 from revision of Al-Cr-Ni -$ -$ LIQUID PHASE -$ - PARAMETER L(LIQUID,AL,CR;0) 298.15 -29000;,,N 91SAU1 ! - PARAMETER L(LIQUID,AL,CR;1) 298.15 -11000;,,N 91SAU1 ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,AL,CR:VA;0) 298.15 -45900+6*T;,,N 91SAU1 ! -$ -$ BCC_A2 PHASE -$ - PARAMETER G(BCC_A2,AL,CR:VA;0) 298.15 -54900+10*T;,,N 91SAU1 ! -$ -$ BCC_B2 PHASE -$ metastable -$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. The B2 -$ phase is not stabilized enough to become stable in the Al-Cr. It is -$ thus not in agreement with "T. Helander, and O. Tolochko, J. of Phase -$ Eq, 20 (1) 1999, 57-60." Further study on the extension of the B2 phase -$ towards AlCr in Al-Cr-Ni would be desirable. - PARAMETER G(BCC_B2,AL:CR:VA;0) 298.15 -2000;,,N 99DUP6 ! - PARAMETER G(BCC_B2,CR:AL:VA;0) 298.15 -2000;,,N 99DUP6 ! -$ -$ FCC_L12 PHASE -$ metastable -$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. - FUN U1ALCR 298.15 -830;,,N 99DUP6 ! - FUN U3ALCR 298.15 0.0; 6000.00 99DUP6 ! - FUN U4ALCR 298.15 0.0; 6000.00 N 99DUP6 ! - FUNCTION L04ALCR 298.15 U3ALCR;,,N ! - FUNCTION L14ALCR 298.15 U4ALCR;,,N ! - FUNCTION ALCR3 298.15 3*U1ALCR;,,N ! - FUNCTION AL2CR2 298.15 4*U1ALCR;,,N ! - FUNCTION AL3CR 298.15 3*U1ALCR;,,N ! - PARAMETER G(FCC_L12,CR:AL:VA;0) 298.15 +ALCR3;,, N 99DUP6 ! - PARAMETER G(FCC_L12,AL:CR:VA;0) 298.15 +AL3CR;,, N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:AL:VA;0) 298.15 - -1.5*ALCR3+1.5*AL2CR2+1.5*AL3CR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:CR:VA;0) 298.15 - +1.5*ALCR3+1.5*AL2CR2-1.5*AL3CR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:AL:VA;1) 298.15 - +0.5*ALCR3-1.5*AL2CR2+1.5*AL3CR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:CR:VA;1) 298.15 - -1.5*ALCR3+1.5*AL2CR2-0.5*AL3CR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,*:AL,CR:VA;0) 298.15 +L04ALCR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,*:AL,CR:VA;1) 298.15 +L14ALCR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:*:VA;0) 298.15 +3*L04ALCR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:*:VA;1) 298.15 +3*L14ALCR;,,N 99DUP6 ! -$ -$ AL11CR2 PHASE -$ - PHASE AL11CR2 % 3 10 1 2 ! - CONST AL11CR2 :AL : AL : CR : ! - PARAMETER G(AL11CR2,AL:AL:CR;0) 298.15 - +11*GHSERAL+2*GHSERCR-175500+25.805*T;,,N 91SAU1 ! -$ -$ AL13CR2 PHASE -$ - PHASE AL13CR2 % 2 13 2 ! - CONST AL13CR2 :AL : CR : ! - PARAMETER G(AL13CR2,AL:CR;0) 298.15 - +13*GHSERAL+2*GHSERCR-174405+22.2*T;,,N 91SAU1 ! -$ -$ AL4CR PHASE -$ - PHASE AL4CR % 2 4 1 ! - CONST AL4CR :AL : CR : ! - PARAMETER G(AL4CR,AL:CR;0) 298.15 - +4*GHSERAL+GHSERCR-89025+19.05*T;,,N 91SAU1 ! -$ -$ AL8CR5_H PHASE -$ - PHASE AL8CR5_H % 2 8 5 ! - CONST AL8CR5_H :AL : CR : ! - PARAMETER G(AL8CR5_H,AL:CR;0) 298.15 - +8*GHSERAL+5*GHSERCR-147732-58.5*T;,,N 91SAU1 ! -$ -$ AL8CR5_L PHASE -$ - PHASE AL8CR5_L % 2 8 5 ! - CONST AL8CR5_L :AL : CR : ! - PARAMETER G(AL8CR5_L,AL:CR;0) 298.15 - +8*GHSERAL+5*GHSERCR-229515;,,N 91SAU1 ! -$ -$ AL9CR4_H PHASE -$ - PHASE AL9CR4_H % 2 9 4 ! - CONST AL9CR4_H :AL : CR : ! - PARAMETER G(AL9CR4_H,AL:CR;0) 298.15 - +9*GHSERAL+4*GHSERCR-134433-56.16*T;,,N 91SAU1 ! -$ -$ AL9CR4_L PHASE -$ - PHASE AL9CR4_L % 2 9 4 ! - CONST AL9CR4_L :AL : CR : ! - PARAMETER G(AL9CR4_L,AL:CR;0) 298.15 - +9*GHSERAL+4*GHSERCR-230750+16.094*T;,,N 91SAU1 ! -$ -$ ALCR2 PHASE -$ - PHASE ALCR2 % 2 1 2 ! - CONST ALCR2 :AL : CR : ! - PARAMETER G(ALCR2,AL:CR;0) 298.15 - +GHSERAL+2*GHSERCR-32700-8.79*T;,,N 91SAU1 ! -$ -$ AL3TI_DO22 PHASE -$ metastable -$ - PARAMETER G(AL3TI_DO22,AL:CR;0) 298.15 - +3*GHSERAL+GHSERCR-53000;,,N COST507 ! -$ -$ NI3TI_DO24 PHASE -$ metastable -$ - PARA G(NI3TI_DO24,CR:AL;0) 298.15 .25*GHCPAL+.75*GHCPCR;,,N LINEAR ! - PARA G(NI3TI_DO24,AL:CR;0) 298.15 .75*GHCPAL+.25*GHCPCR;,,N LINEAR ! -$ -$ MTI2 PHASE -$ metastable -$ - PARA G(MTI2,CR:AL;0) 298.15 +GHSERCR+2*GHSERAL;,,N LINEAR ! -$ -$ ALTI3_DO19 PHASE -$ metastable -$ - PARA G(ALTI3_DO19,CR:AL;0) 298.15 +GHCPAL+3*GHCPCR;,,N COST507 ! - PARA G(ALTI3_DO19,AL:CR;0) 298.15 +3*GHCPAL+GHCPCR;,,N COST507 ! - PARA L(ALTI3_DO19,AL,CR:AL;0) 298.15 1E-04;,,N COST507 ! - PARA L(ALTI3_DO19,AL:AL,CR;0) 298.15 1E-04;,,N COST507 ! - PARA L(ALTI3_DO19,CR:AL,CR;0) 298.15 1E-04;,,N COST507 ! - PARA L(ALTI3_DO19,AL,CR:CR;0) 298.15 1E-04;,,N COST507 ! -$ -$ ALTI_L10 PHASE -$ metastable -$ - PARA G(ALTI_L10,CR:AL;0) 298.15 -25000+3*T+GHSERAL+GFCCCR;,,N COST507 ! - PARA G(ALTI_L10,AL:CR;0) 298.15 -25000+3*T+GHSERAL+GFCCCR;,,N COST507 ! - PARA L(ALTI_L10,AL,CR:AL;0) 298.15 1E-04;,,N COST507 ! - PARA L(ALTI_L10,AL:AL,CR;0) 298.15 1E-04;,,N COST507 ! - PARA L(ALTI_L10,CR:AL,CR;0) 298.15 1E-04;,,N COST507 ! - PARA L(ALTI_L10,AL,CR:CR;0) 298.15 1E-04;,,N COST507 ! -$ -$ SIGMA PHASE -$ metastable -$ - PARA G(SIGMA,AL:CR:AL;0) 298.15 - 8*GHSERAL+4*GHSERCR+18*GBCCAL+UNASS;,,N 99LEE ! - PARA G(SIGMA,AL:CR:CR;0) 298.15 - 8*GHSERAL+4*GHSERCR+18*GHSERCR+UNASS;,,N 99LEE ! -$ -$ NEWSIGMA PHASE -$ metastable -$ - PARA G(NEWSIGMA,AL:CR:AL;0) 298.15 - +10*GHSERAL+4*GHSERCR+16*GBCCAL;,,N LINEAR ! - PARA G(NEWSIGMA,AL:CR:CR;0) 298.15 - +10*GHSERAL+4*GHSERCR+16*GHSERCR;,,N LINEAR ! -$ -$ C14_LAVES PHASE -$ metastable -$ - PARAMETER G(C14_LAVES,CR:AL;0) 298.15 - +2*GHSERCR+GHSERAL;,,N LINEAR ! - PARAMETER G(C14_LAVES,AL:CR;0) 298.15 - +GHSERCR+2*GHSERAL;,,N LINEAR ! -$ -$ C15_LAVES PHASE -$ metastable -$ - PARAMETER G(C15_LAVES,CR:AL;0) 298.15 - +2*GHSERCR+GHSERAL;,,N LINEAR ! - PARAMETER G(C15_LAVES,AL:CR;0) 298.15 - +GHSERCR+2*GHSERAL;,,N LINEAR ! -$ -$ C36_LAVES PHASE -$ metastable -$ - PARAMETER G(C36_LAVES,CR:AL;0) 298.15 - +2*GHSERCR+GHSERAL;,,N LINEAR ! - PARAMETER G(C36_LAVES,AL:CR;0) 298.15 - +GHSERCR+2*GHSERAL;,,N LINEAR ! -$ -$---------------------------------------------------------------------------- -$ -$ Al-Ni -$ Mainly from ND thesis, -$ slighly revised to get better solvus at low temperature -$ -$ LIQUID PHASE -$ - PARAMETER L(LIQUID,AL,NI;0) 298.15 -207109.28+41.31501*T;,,N 95DUP3 ! - PARAMETER L(LIQUID,AL,NI;1) 298.15 -10185.79+5.8714*T;,,N 95DUP3 ! - PARAMETER L(LIQUID,AL,NI;2) 298.15 +81204.81-31.95713*T;,,N 95DUP3 ! - PARAMETER L(LIQUID,AL,NI;3) 298.15 +4365.35-2.51632*T;,,N 95DUP3 ! - PARAMETER L(LIQUID,AL,NI;4) 298.15 -22101.64+13.16341*T;,,N 95DUP3 ! -$ -$ FCC_A1 PHASE -$ - PARAMETER TC(FCC_A1,AL,NI:VA;0) 298.15 -1112;,,N 95DUP3 ! - PARAMETER TC(FCC_A1,AL,NI:VA;1) 298.15 1745;,,N 95DUP3 ! - PARAMETER G(FCC_A1,AL,NI:VA;0) 298.15 -162407.75+16.212965*T;,,N 95DUP3 ! - PARAMETER G(FCC_A1,AL,NI:VA;1) 298.15 +73417.798-34.914168*T;,,N 95DUP3 ! - PARAMETER G(FCC_A1,AL,NI:VA;2) 298.15 +33471.014-9.8373558*T;,,N 95DUP3 ! - PARAMETER G(FCC_A1,AL,NI:VA;3) 298.15 -30758.01+10.25267*T;,,N 95DUP3 ! -$ -$ BCC_A2 PHASE -$ metastable -$ - FUNC B2ALNI 295.15 -152397.3+26.40575*T;,,N ! - FUNC LB2ALNI 298.15 -52440.88+11.30117*T;,,N ! - PARAMETER L(BCC_A2,AL,NI:VA;0) 298.15 B2ALNI+LB2ALNI;,,N 99DUP! -$ -$ HCP_A3 PHASE -$ metastable -$ - PARAMETER TC(HCP_A3,AL,NI:VA;0) 298.15 -1112;,,N 95DUP8 ! - PARAMETER TC(HCP_A3,AL,NI:VA;1) 298.15 1745;,,N 95DUP8 ! - PARAMETER L(HCP_A3,AL,NI:VA;0) 298.15 -162407.75+16.212965*T;,,N 95DUP8 ! - PARAMETER L(HCP_A3,AL,NI:VA;1) 298.15 +73417.798-34.914168*T;,,N 95DUP8 ! - PARAMETER L(HCP_A3,AL,NI:VA;2) 298.15 +33471.014-9.8373558*T;,,N 95DUP8 ! - PARAMETER L(HCP_A3,AL,NI:VA;3) 298.15 -30758.01+10.25267*T;,,N 95DUP8 ! -$ -$ BCC_B2 PHASE -$ - PARAMETER G(BCC_B2,AL:NI:VA;0) 298.15 .5*B2ALNI-.5*LB2ALNI;,,N 99DUP ! - PARAMETER G(BCC_B2,NI:AL:VA;0) 298.15 .5*B2ALNI-.5*LB2ALNI;,,N 99DUP ! -$ -$ FCC_L12 PHASE -$ - FUN UALNI 298.15 -22212.8931+4.39570389*T;,,,N 99DUP3 ! - FUN U1ALNI 298.15 2*UNTIER*UALNI;,,,N 99DUP3 ! - FUN U3ALNI 298.15 0;,,,N 99DUP3 ! - FUN U4ALNI 298.15 7203.60609-3.74273030*T;,,,N 99DUP3 ! - FUNCTION L04ALNI 298.15 U3ALNI;,,N 99DUP3 ! - FUNCTION L14ALNI 298.15 U4ALNI;,,N 99DUP3 ! - FUNCTION ALNI3 298.15 +3*U1ALNI;,,,N 99DUP3 ! - FUNCTION AL2NI2 298.15 +4*U1ALNI;,,,N 99DUP3 ! - FUNCTION AL3NI 298.15 +3*U1ALNI;,,,N 99DUP3 ! - PARAMETER G(FCC_L12,NI:AL:VA;0) 298.15 +ALNI3;,,N 99DUP3 ! - PARAMETER G(FCC_L12,AL:NI:VA;0) 298.15 +AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:AL:VA;0) 298.15 - -1.5*ALNI3+1.5*AL2NI2+1.5*AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:NI:VA;0) 298.15 - +1.5*ALNI3+1.5*AL2NI2-1.5*AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:AL:VA;1) 298.15 - +0.5*ALNI3-1.5*AL2NI2+1.5*AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:NI:VA;1) 298.15 - -1.5*ALNI3+1.5*AL2NI2-0.5*AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,*:AL,NI:VA;0) 298.15 +L04ALNI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,*:AL,NI:VA;1) 298.15 +L14ALNI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:*:VA;0) 298.15 +3*L04ALNI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:*:VA;1) 298.15 +3*L14ALNI;,,N 99DUP3 ! -$ -$ AL3NI1 PHASE -$ - PHASE AL3NI1 % 2 .75 .25 ! - CONST AL3NI1 :AL : NI : ! - PARAMETER G(AL3NI1,AL:NI;0) 298.15 - -48483.73+12.29913*T - +.75*GHSERAL+.25*GHSERNI;,,N 95DUP3 ! -$ -$ AL3NI2 PHASE -$ - PHASE AL3NI2 % 3 3 2 1 ! - CONST AL3NI2 :AL : AL,NI% : NI,VA% : ! - PARAMETER G(AL3NI2,AL:AL:NI;0) 298.15 +5*GBCCAL+GBCCNI - -39465.978+7.89525*T;,,N 95DUP3 ! - PARAMETER G(AL3NI2,AL:NI:NI;0) 298.15 +3*GBCCAL+3*GBCCNI - -427191.9+79.21725*T;,,N 95DUP3 ! - PARAMETER G(AL3NI2,AL:AL:VA;0) 298.15 +5*GBCCAL - +30000-3*T;,,N 95DUP3 ! - PARAMETER G(AL3NI2,AL:NI:VA;0) 298.15 +3*GBCCAL+2*GBCCNI - -357725.92+68.322*T;,,N 95DUP3 ! - PARAMETER L(AL3NI2,AL:AL,NI:*;0) 298.15 - -193484.18+131.79*T;,,N 95DUP3 ! - PARAMETER L(AL3NI2,AL:*:NI,VA;0) 298.15 - -22001.7+7.0332*T;,,N 95DUP3 ! -$ -$ AL3NI5 PHASE -$ - PHASE AL3NI5 % 2 .375 .625 ! - CONST AL3NI5 :AL : NI : ! - PARAMETER G(AL3NI5,AL:NI;0) 298.15 +.375*GHSERAL+.625*GHSERNI - -55507.7594+7.2648103*T;,,N 95DUP3 ! -$ -$ MTI2 PHASE -$ metastable -$ - PARAMETER G(MTI2,NI:AL;0) 298.15 GHSERNI+2*GHSERAL+80810;,,N 95DUP8 ! -$ -$ C14_LAVES PHASE -$ metastable -$ - PARAMETER G(C14_LAVES,NI:AL;0) 298.15 - +2*GHSERNI+GHSERAL+130000;,,N 99DUP8 ! - PARAMETER G(C14_LAVES,AL:NI;0) 298.15 - +GHSERNI+2*GHSERAL-100000;,,N 99DUP8 ! -$ -$ C15_LAVES PHASE -$ metastable -$ - PARAMETER G(C15_LAVES,NI:AL;0) 298.15 - +2*GHSERNI+GHSERAL+130000-2000;,,N 99DUP8 ! - PARAMETER G(C15_LAVES,AL:NI;0) 298.15 - +GHSERNI+2*GHSERAL-100000+2000;,,N 99DUP8 ! -$ -$ C36_LAVES PHASE -$ metastable -$ - PARAMETER G(C36_LAVES,NI:AL;0) 298.15 - +2*GHSERNI+GHSERAL+130000-3000;,,N 99DUP8 ! - PARAMETER G(C36_LAVES,AL:NI;0) 298.15 - +GHSERNI+2*GHSERAL-100000+3000;,,N 99DUP8 ! -$ -$ H_L21 PHASE -$ metastable -$ - FUNCTION GHALNI 298.15 -152397.3+26.40575*T+GBCCAL+GBCCNI+4000;,,N 99DUP8 ! - PARAMETER G(H_L21,AL:AL:NI;0) 298.15 +GHALNI;,,N 99DUP8 ! - PARAMETER G(H_L21,NI:AL:NI;0) 298.15 +.5*GHALNI+GBCCNI;,,N 99DUP8 ! - PARAMETER G(H_L21,AL:NI:NI;0) 298.15 +.5*GHALNI+GBCCNI;,,N 99DUP8 ! - PARAMETER G(H_L21,NI:AL:VA;0) 298.15 +.5*GBCCAL+.5*GHSERNI - +55000-.5*T;,,N 99DUP8 ! - PARAMETER G(H_L21,AL:NI:VA;0) 298.15 +.5*GBCCAL+.5*GHSERNI - +55000-.5*T;,,N 99DUP8 ! -$ -$ NI3TI_DO24 PHASE -$ metastable -$ - FUN DO24NIAL 298.15 +3*GHCPNI+GHCPAL-80000;,,N 99DUP8 ! - PARAMETER G(NI3TI_DO24,NI:AL;0) 298.15 - .25*DO24NIAL;,,N 99DUP8 ! - PARAMETER G(NI3TI_DO24,AL:NI;0) 298.15 - +.75*GHCPAL+.25*GHCPNI;,,N 95DUP8 ! -$ -$ ALTI3_DO19 PHASE -$ metastable -$ - PARAMETER G(ALTI3_DO19,NI:AL;0) 298.15 - 3*GHCPNI+GHCPAL;,,N 99DUP8 ! - PARAMETER G(ALTI3_DO19,AL:NI;0) 298.15 - 3*GHCPAL+GHCPNI;,,N 95DUP8 ! -$ -$---------------------------------------------------------------------------- -$ -$ Cr-Ni -$ Mainly from SSOL -$ Metastable B2 and L12 from revision of Al-Cr-Ni -$ -$ LIQUID PHASE -$ - PARAMETER L(LIQUID,CR,NI;0) 298.15 +318-7.3318*T;,,N 91LEE ! - PARAMETER L(LIQUID,CR,NI;1) 298.15 +16941-6.3696*T;,,N 91LEE ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,CR,NI:VA;0) 298.15 +8030-12.8801*T;,,N 91LEE ! - PARAMETER G(FCC_A1,CR,NI:VA;1) 298.15 +33080-16.0362*T;,,N 91LEE ! - PARAMETER TC(FCC_A1,CR,NI:VA;0) 298.15 -3605;,,N 86DIN ! - PARAMETER BMAGN(FCC_A1,CR,NI:VA;0) 298.15 -1.91;,,N 86DIN ! -$ -$ BCC_A2 PHASE -$ - PARAMETER G(BCC_A2,CR,NI:VA;0) 298.15 +17170-11.8199*T;,,N 91LEE ! - PARAMETER G(BCC_A2,CR,NI:VA;1) 298.15 +34418-11.8577*T;,,N 91LEE ! - PARAMETER TC(BCC_A2,CR,NI:VA;0) 298.15 2373;,,N 86DIN ! - PARAMETER TC(BCC_A2,CR,NI:VA;1) 298.15 617;,,N 86DIN ! - PARAMETER BMAGN(BCC_A2,CR,NI:VA;0) 298.15 4;,,N 86DIN ! -$ -$ HCP_A3 PHASE -$ metastable -$ - PARAMETER G(HCP_A3,CR,NI:VA;0) 298.15 50000;,,N 95DUP6 ! - PARAMETER TC(HCP_A3,CR,NI:VA;0) 298.15 -3605;,,N 95DUP6 ! - PARAMETER BMAGN(HCP_A3,CR,NI:VA;0) 298.15 -1.91;,,N 95DUP6 ! -$ -$ BCC_B2 PHASE -$ metastable -$ -$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. - PARAMETER G(BCC_B2,CR:NI:VA;0) 298.15 4000;,,N 99DUP6 ! - PARAMETER G(BCC_B2,NI:CR:VA;0) 298.15 4000;,,N 99DUP6 ! -$ -$ FCC_L12 PHASE -$ metastable -$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. -$ The L12 phase is metastable in the binary Cr-Ni while it was stable in NDTH. - FUN U1CRNI 298.15 -1980;,,,N 99DUP6 ! -$ FUN U1CRNI 298.15 -7060+3.63*T;,,,N 99DUP6 ! - FUN U3CRNI 298.15 0;,,,N 99DUP6 ! - FUN U4CRNI 298.15 0;,,,N 99DUP6 ! - FUNCTION L04CRNI 298.15 U3CRNI;,,N 99DUP6 ! - FUNCTION L14CRNI 298.15 U4CRNI;,,N 99DUP6 ! - FUNCTION CRNI3 298.15 +3*U1CRNI;,,,N 99DUP6 ! - FUNCTION CR2NI2 298.15 +4*U1CRNI;,,,N 99DUP6 ! - FUNCTION CR3NI 298.15 +3*U1CRNI;,,,N 99DUP6 ! - PARAMETER G(FCC_L12,NI:CR:VA;0) 298.15 +CRNI3;,, N 99DUP6 ! - PARAMETER G(FCC_L12,CR:NI:VA;0) 298.15 +CR3NI;,, N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:CR:VA;0) 298.15 - -1.5*CRNI3+1.5*CR2NI2+1.5*CR3NI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:NI:VA;0) 298.15 - +1.5*CRNI3+1.5*CR2NI2-1.5*CR3NI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:CR:VA;1) 298.15 - +0.5*CRNI3-1.5*CR2NI2+1.5*CR3NI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:NI:VA;1) 298.15 - -1.5*CRNI3+1.5*CR2NI2-0.5*CR3NI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,*:CR,NI:VA;0) 298.15 +L04CRNI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,*:CR,NI:VA;1) 298.15 +L14CRNI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:*:VA;0) 298.15 +3*L04CRNI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:*:VA;1) 298.15 +3*L14CRNI;,,N 99DUP6 ! -$ -$ SIGMA PHASE -$ metastable -$ - PARAMETER G(SIGMA,NI:CR:CR;0) 298.15 - +8*GHSERNI+4*GHSERCR+18*GHSERCR+221157-227*T;,,N 91LEE ! - PARAMETER G(SIGMA,NI:CR:NI;0) 298.15 - +8*GHSERNI+4*GHSERCR+18*GBCCNI+175400;,,N 86GUS ! -$ -$ NEWSIGMA PHASE -$ metastable -$ - PARAMETER G(NEWSIGMA,NI:CR:CR;0) 298.15 - +10*GHSERNI+4*GHSERCR+16*GHSERCR+221157-227*T;,,N SIG10416 ! - PARAMETER G(NEWSIGMA,NI:CR:NI;0) 298.15 - +10*GHSERNI+4*GHSERCR+16*GBCCNI+175400;,,N SIG10416 ! -$ -$ CHI_A12 PHASE -$ metastable -$ - PARAMETER G(CHI_A12,NI:CR:CR;0) 298.15 - +24*GHSERNI+10*GHSERCR+24*GFCCCR;,, N 99LEE ! - PARAMETER G(CHI_A12,CR:CR:NI;0) 298.15 - +24*GFCCCR+10*GHSERCR+24*GHSERNI;,, N 99LEE ! - PARAMETER G(CHI_A12,NI:CR:NI;0) 298.15 - +24*GHSERNI+10*GHSERCR+24*GHSERNI;,, N 99LEE ! -$ -$ C14_LAVES PHASE -$ metastable -$ - PARAMETER G(C14_LAVES,NI:CR;0) 298.15 2*GHSERNI+GHSERCR+15000;,,N 95DUP4 ! - PARAMETER G(C14_LAVES,CR:NI;0) 298.15 2*GHSERCR+GHSERNI+15000;,,N 95DUP4 ! -$ -$ C15_LAVES PHASE -$ metastable -$ - PARAMETER G(C15_LAVES,NI:CR;0) 298.15 +2*GHSERNI+GHSERCR+15000;,,N 95DUP4 ! - PARAMETER G(C15_LAVES,CR:NI;0) 298.15 +2*GHSERNI+GHSERCR+15000;,,N 95DUP4 ! -$ -$ C36_LAVES PHASE -$ metastable -$ - PARAMETER G(C36_LAVES,NI:CR;0) 298.15 +2*GHSERNI+GHSERCR+15000;,,N 99DUP9 ! - PARAMETER G(C36_LAVES,CR:NI;0) 298.15 +2*GHSERNI+GHSERCR+15000;,,N 99DUP9 ! -$ -$ MTI2 PHASE -$ metastable -$ - PARAMETER G(MTI2,NI:CR;0) 298.15 GHSERNI+2*GHSERCR+5000;,,N 95DUP9 ! - PARAMETER G(MTI2,CR:NI;0) 298.15 GHSERCR+2*GHSERNI+5000;,,N 95DUP9 ! -$ -$ NI3TI_DO24 PHASE -$ metastable -$ - PARAMETER G(NI3TI_DO24,CR:NI;0) 298.15 .75*GHCPCR+.25*GHCPNI;,,N 95DUP9 ! - PARAMETER G(NI3TI_DO24,NI:CR;0) 298.15 .75*GHCPNI+.25*GHCPCR;,,N 95DUP9 ! -$ -$ ALTI3_DO19 PHASE -$ metastable -$ - PARAMETER G(ALTI3_DO19,NI:CR;0) 298.15 - 3*GHCPNI+GHCPCR;,,N LINEAR ! - PARAMETER G(ALTI3_DO19,CR:NI;0) 298.15 - 3*GHCPCR+GHCPNI;,,N LINEAR ! -$ -$**************************************************************************** -$ -$ TERNARY PARAMETERS -$ -$---------------------------------------------------------------------------- -$ -$ Al-Cr-Ni -$ July 1999, ND -$ Revision. Main changes: -$ - description of the A2/B2 -$ - new liquidus data taken into account -$ - simpler ternary interaction parameters -$ -$ LIQUID PHASE -$ - PARAMETER L(LIQUID,AL,CR,NI;0) 298.15 16000;,,N 99DUP6 ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,AL,CR,NI:VA;0) 298.15 30300;,,N 99DUP6 ! -$ -$ BCC_A2 PHASE -$ - PARAMETER G(BCC_A2,AL,CR,NI:VA;0) 298.15 42500;,,N 99DUP6 ! -$ -$ FCC_L12 PHASE -$ - FUN U1ALCRNI 298.15 6650;,,N 99DUP6 ! - FUN U2ALCRNI 298.15 0;,,N 99DUP6 ! - FUN U3ALCRNI 298.15 0;,,N 99DUP6 ! - FUN ALCRNI2 298.15 U1ALCR+2*U1ALNI+2*U1CRNI+U1ALCRNI;,,N 99DUP6 ! - FUN ALCR2NI 298.15 2*U1ALCR+U1ALNI+2*U1CRNI+U2ALCRNI;,,N 99DUP6 ! - FUN AL2CRNI 298.15 2*U1ALCR+2*U1ALNI+U1CRNI+U3ALCRNI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR,NI:AL:VA;0) 298.15 - -1.5*ALCRNI2-1.5*ALCR2NI+ALCR3+ALNI3+6*AL2CRNI - -1.5*AL2CR2-1.5*AL2NI2-1.5*AL3CR-1.5*AL3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR,NI:CR:VA;0) 298.15 - -1.5*ALCRNI2+6*ALCR2NI-1.5*ALCR3-1.5*AL2CRNI - -1.5*AL2CR2+AL3CR+CRNI3-1.5*CR2NI2-1.5*CR3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR,NI:NI:VA;0) 298.15 - +6*ALCRNI2-1.5*ALCR2NI-1.5*ALNI3-1.5*AL2CRNI - -1.5*AL2NI2+AL3NI-1.5*CRNI3-1.5*CR2NI2+CR3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR:NI:VA;0) 298.15 - +1.5*ALCR2NI+1.5*AL2CRNI-1.5*AL3NI-1.5*CR3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,NI:CR:VA;0) 298.15 - +1.5*ALCRNI2+1.5*AL2CRNI-1.5*AL3CR-1.5*CRNI3;,,N 99DUP6 ! - PARA L(FCC_L12,CR,NI:AL:VA;0) 298.15 - +1.5*ALCRNI2+1.5*ALCR2NI-1.5*ALCR3-1.5*ALNI3;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR:NI:VA;1) 298.15 - -1.5*ALCR2NI+1.5*AL2CRNI-0.5*AL3NI+0.5*CR3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,NI:CR:VA;1) 298.15 - -1.5*ALCRNI2+1.5*AL2CRNI-0.5*AL3CR+0.5*CRNI3;,,N 99DUP6 ! - PARA L(FCC_L12,CR,NI:AL:VA;1) 298.15 - -1.5*ALCRNI2+1.5*ALCR2NI-0.5*ALCR3+0.5*ALNI3;,,N 99DUP6 ! -$ -$ SIGMA PHASE -$ metastable - PARA G(SIGMA,NI:CR:AL;0) 298.15 - +8*GHSERNI+4*GHSERCR+18*GBCCAL+UNASS;,, N 99LEE ! - PARA G(SIGMA,AL:CR:NI;0) 298.15 - +8*GHSERAL+4*GHSERCR+18*GBCCNI+UNASS;,, N 99LEE ! -$ -$ NEWSIGMA PHASE -$ metastable - PARA G(NEWSIGMA,NI:CR:AL;0) 298.15 - +10*GHSERNI+4*GHSERCR+16*GBCCAL;,, N LINEAR ! - PARA G(NEWSIGMA,AL:CR:NI;0) 298.15 - +10*GHSERAL+4*GHSERCR+16*GBCCNI;,, N LINEAR ! -$ -$ -$**************************************************************************** -$ Diffusion parameters -$ -PARAMETER MQ(FCC_A1&AL,NI;0) 298.15 -284000+R*T*LN(7.5E-4); - 6.000E+3 N 96Eng ! -PARAMETER MQ(FCC_A1&AL,AL;0) 298.15 -142000+R*T*LN(1.71E-4); - 6.000E+3 N 96Eng ! -PARAMETER MQ(FCC_A1&AL,AL,NI;0) 298.15 -41300-91.2*T; - 6.000E+3 N 96Eng ! -PARAMETER MQ(FCC_A1&AL,CR;0) 298.15 -235000-82*T; 6000 N 96Eng ! -PARAMETER MQ(FCC_A1&AL,CR,NI;0) 298.15 -53200; 6000 N 96Eng ! -PARAMETER MQ(FCC_A1&AL,Al,Cr;0) 298.15 +335000; 6000 N 96Eng ! - -PARAMETER MQ(FCC_A1&NI,AL;0) 298.15 -145900+R*T*LN(4.4E-4); - 6.000E+3 N 96Eng ! -PARAMETER MQ(FCC_A1&NI,NI;0)298.15 -287000-69.8*T; - 6.000E+3 N 96Eng ! -PARAMETER MQ(FCC_A1&NI,AL,NI;0) 298.15 -113000+65.5*T; - 6.000E+3 N 96Eng ! -PARAMETER MQ(FCC_A1&NI,CR;0) 298.15 -235000-82*T; 6000 N 96Eng ! -PARAMETER MQ(FCC_A1&NI,CR,NI;0) 298.15 -81000; 6000 N 96Eng ! -PARAMETER MQ(FCC_A1&NI,AL,CR;0) 298.15 211000; 6000 N 96Eng ! - - -PARAMETER MQ(FCC_A1&CR,AL;0) 298.15 -261700+R*T*LN(0.64); - 6000 N 96Eng ! -PARAMETER MQ(FCC_A1&CR,CR;0) 298.15 -235000-82*T; 6000 N 96Eng ! -PARAMETER MQ(FCC_A1&CR,NI;0) 298.15 -287000-64.4*T; 6000 N 96Eng ! -PARAMETER MQ(FCC_A1&CR,AL,CR;0) 298.15 +487000; 6000 N 96Eng ! -PARAMETER MQ(FCC_A1&CR,AL,NI;0) 298.15 -118000; 6000 N 96Eng ! -PARAMETER MQ(FCC_A1&CR,CR,NI;0) 298.15 -68000; 6000 N 96Eng ! - -$ Parameters for A2 - -PARAMETER MQ(BCC_A2&NI,AL;0) 298.15 -204000; 6000 N ! -PARAMETER MQ(BCC_A2&NI,NI;0) 298.15 -204000; 6000 N 95Jon ! -PARAMETER MQ(BCC_A2&NI,CR;0) 298.15 -407000; 6000 N 95Jon ! - -PARAMETER MF(BCC_A2&NI,AL;0) 298.15 -90.837*T; 6000 N ! -PARAMETER MF(BCC_A2&NI,NI;0) 298.15 -90.837*T; 6000 N 95Jon ! -PARAMETER MF(BCC_A2&NI,CR;0) 298.15 -17.2*T; 6000 N 95Jon ! - - -PARAMETER MQ(BCC_A2&CR,AL;0) 298.15 -218000; 6000 N ! -PARAMETER MQ(BCC_A2&CR,NI;0) 298.15 -218000; 6000 N 95Jon ! -PARAMETER MQ(BCC_A2&CR,CR;0) 298.15 -407000; 6000 N 95Jon ! - -PARAMETER MF(BCC_A2&CR,AL;0) 298.15 +R*T*LN(8.5E-05); 6000 N ! -PARAMETER MF(BCC_A2&CR,NI;0) 298.15 +R*T*LN(8.5E-05); 6000 N 95Jon ! -PARAMETER MF(BCC_A2&CR,CR;0) 298.15 -35.6*T; 6000 N 95Jon ! - -PARAMETER MQ(BCC_A2&AL,AL;0) 298.15 -215000; 6000 N ! -PARAMETER MQ(BCC_A2&AL,NI;0) 298.15 -215000; 6000 N ! -PARAMETER MQ(BCC_A2&AL,CR;0) 298.15 -215000; 6000 N ! - -PARAMETER MF(BCC_A2&AL,AL;0) 298.15 -80.20*T; 6000 N ! -PARAMETER MF(BCC_A2&AL,NI;0) 298.15 -80.20*T; 6000 N ! -PARAMETER MF(BCC_A2&AL,CR;0) 298.15 -80.20*T; 6000 N ! - -PARAMETER MQ(BCC_A2&AL,AL,NI;0) 298.15 +327400; 6000 N ! -PARAMETER MQ(BCC_A2&NI,AL,NI;0) 298.15 +327400; 6000 N ! -PARAMETER MQ(BCC_A2&CR,CR,NI;0) 298.15 +350000; 6000 N 95Jon ! -PARAMETER MQ(BCC_A2&NI,CR,NI;0) 298.15 +350000; 6000 N 95Jon ! - -$$ Order Parameters for B2 - -PARAMETER MQ(BCC_B2&Al,NI:AL;0) 298.15 -3.458048E+5; 6000 N ! -PARAMETER MQ(BCC_B2&AL,AL:NI;0) 298.15 -3.458048E+5; 6000 N ! -PARAMETER MQ(BCC_B2&Al,AL:VA;0) 298.15 +2.534667E+5; 6000 N ! -PARAMETER MQ(BCC_B2&AL,VA:AL;0) 298.15 +2.534667E+5; 6000 N ! - -$$$ Dummy PARAMETERS for CR -PARAMETER MQ(BCC_B2&Al,CR:AL;0) 298.15 -3.458048E+5; 6000 N ! -PARAMETER MQ(BCC_B2&Al,AL:CR;0) 298.15 -3.458048E+5; 6000 N ! -PARAMETER MQ(BCC_B2&AL,CR:NI;0) 298.15 -9.19170E+5; 6000 N ! -PARAMETER MQ(BCC_B2&AL,NI:CR;0) 298.15 -9.19170E+5; 6000 N ! -PARAMETER MQ(BCC_B2&Al,CR:VA;0) 298.15 +0; 6000 N ! -PARAMETER MQ(BCC_B2&AL,VA:CR;0) 298.15 +0; 6000 N ! - -PARAMETER MQ(BCC_B2&NI,NI:AL;0) 298.15 -3.193892E+5; 6000 N ! -PARAMETER MQ(BCC_B2&NI,AL:NI;0) 298.15 -3.193892E+5; 6000 N ! -PARAMETER MQ(BCC_B2&NI,AL:VA;0) 298.15 -2.260378E+5; 6000 N ! -PARAMETER MQ(BCC_B2&NI,VA:AL;0) 298.15 -2.260378E+5; 6000 N ! - -$$$ Dummy PARAMETERS for CR -PARAMETER MQ(BCC_B2&NI,CR:AL;0) 298.15 -3.193892E+5; 6000 N ! -PARAMETER MQ(BCC_B2&NI,AL:CR;0) 298.15 -3.193892E+5; 6000 N ! -PARAMETER MQ(BCC_B2&NI,CR:NI;0) 298.15 -3.9048E+5; 6000 N ! -PARAMETER MQ(BCC_B2&NI,NI:CR;0) 298.15 -3.9048E+5; 6000 N ! - - -$$$ Dummy PARAMETERS for CR -PARAMETER MQ(BCC_B2&CR,CR:AL;0) 298.15 -3.193892E+5; 6000 N ! -PARAMETER MQ(BCC_B2&CR,AL:CR;0) 298.15 -3.193892E+5; 6000 N ! -PARAMETER MQ(BCC_B2&CR,CR:NI;0) 298.15 -3.9048E+5; 6000 N ! -PARAMETER MQ(BCC_B2&CR,NI:CR;0) 298.15 -3.9048E+5; 6000 N ! -PARAMETER MQ(BCC_B2&CR,NI:AL;0) 298.15 -7.4291E+4; 6000 N ! -PARAMETER MQ(BCC_B2&CR,AL:NI;0) 298.15 -7.4291E+4; 6000 N ! -PARAMETER MQ(BCC_B2&CR,AL:VA;0) 298.15 -2.260378E+5; 6000 N ! -PARAMETER MQ(BCC_B2&CR,VA:AL;0) 298.15 -2.260378E+5; 6000 N ! -$ -$**************************************************************************** - - LIST_OF_REFERENCES - NUMBER SOURCE - LINEAR 'Unassessed parameter, linear combination of unary data. (MU, - SIGMA)' - REFLAV 'G(LAVES,AA)=3*G(SER,AA)+15000' - 86DIN 'A. Dinsdale, T. Chart, MTDS NPL, Unpublished work (1986); CR-NI' - 86FER1 'A. Fernandez Guillermet, - Z metallkde, Vol 78 (1987) p 639-647, - TRITA-MAC 324B (1986); CO-NI' - 86GUS 'P. Gustafson, Calphad Vol 11 (1987) p 277-292, - TRITA-MAC 320 (1986); CR-NI-W ' - 87GUS 'P. Gustafson, TRITA-MAC 342, (1987); CR-FE-W' - 89DIN 'Alan Dinsdale, SGTE Data for Pure Elements, - NPL Report DMA(A)195 September 1989' - 91DIN 'Alan Dinsdale, SGTE Data for Pure Elements, NPL Report - DMA(A)195 Rev. August 1990' - 91LEE 'Byeong-Joo Lee, unpublished revision (1991); C-Cr-Fe-Ni' - 91SAU1 'Nigel Saunders, 1991, based on - N. Saunders, V.G. Rivlin - Z. metallkde, 78 (11), 795-801 (1987); Al-Cr' - 91DIN 'Alan Dinsdale, SGTE Data for Pure Elements, - Calphad Vol 15(1991) p 317-425, - also in NPL Report DMA(A)195 Rev. August 1990' - 95DUP3 'N. Dupin, Thesis, LTPCM, France, 1995; - Al-Ni, - also in I. Ansara, N. Dupin, H.L. Lukas, B. SUndman - J. Alloys Compds, 247 (1-2), 20-30 (1997)' - 95DUP4 'N. Dupin, Thesis, LTPCM, France, 1995; - Cr-Ni-Ta' - 95DUP6 'N. Dupin, Thesis, LTPCM, France, 1995; - Al-Cr-Ni' - 95DUP8 'N. Dupin, Thesis, LTPCM, France, 1995; - Al-Ni-Ti' - 95DUP9 'N. Dupin, Thesis, LTPCM, France, 1995; - Cr-Ni-Ti' - 99DUP 'N. Dupin, I. Ansara, - Z. metallkd., Vol 90 (1999) p 76-85; - Al-Ni' - 99DUP3 'N. Dupin, - July 1999, unpublished revision - ; Al-Ni' - 99DUP6 'N. Dupin, - July 1999, unpublished revision - ; Al-Cr-Ni' - 99DUP8 'N. Dupin, - August 1999, unpublished revision - ; Al-Ni-Ti' - 99DUP9 'N. Dupin, - August 1999, unpublished revision - ; Cr-Ni-Ti' - 99LEE 'Byeong-Joo Lee, unpublished work at KTH (1999); - update of steel database' - REF184 'AL1 CODATA KEY VALUES SGTE ** - ALUMINIUM - Cp values similar in Codata Key Values and IVTAN Vol. 3' - REF448 'AL2 CHATILLON(1992) - Enthalpy of formation for Al1 taken from Codata Key Values. - Enthalpy of form. from TPIS dissociation energy mean Value - corrected with new fef from Sunil K.K. and Jordan K.D. - (J.Phys. Chem. 92(1988)2774) ab initio calculations.' - REF4465 'CR1 T.C.R.A.S. Class: 1 - CHROMIUM ' - REF4591 'CR2 T.C.R.A.S. Class: 6' - REF7504 'NI1 T.C.R.A.S Class: 1 - Data provided by T.C.R.A.S. October 1996' - REF7553 'NI2 T.C.R.A.S Class: 5 - Data provided by T.C.R.A.S. October 1996' - ! -""" - -NICRAL_TDB_DIFF = """ - -$ Same as NICRAL_TDB with the following changes -$ Shortened to include just FCC_A1, FCC_L12, LIQUID -$ Mobility parameters replaced with arbitrary diffusivity parameter to test diffusivity and tracer outputs -$ - - - ELEMENT /- ELECTRON_GAS .0000E+00 .0000E+00 .0000E+00! - ELEMENT VA VACUUM .0000E+00 .0000E+00 .0000E+00! - ELEMENT AL FCC_A1 2.6982E+01 4.5773E+03 2.8322E+01! - ELEMENT CR BCC_A2 5.1996E+01 4.0500E+03 2.3560E+01! - ELEMENT NI FCC_A1 5.8690E+01 4.7870E+03 2.9796E+01! - - SPECIES AL2 AL2! - SPECIES CR2 CR2! - SPECIES NI2 NI2! - - - FUNCTION UNASS 298.15 0;,,N ! - - - TYPE_DEFINITION % SEQ *! - DEFINE_SYSTEM_DEFAULT E 2 ! - DEFAULT_COMMAND DEF_SYS_ELEMENT VA ! - DEFAULT_COMMAND REJECT_PHASE NEWSIGMA ! - - TYPE_DEFINITION A GES A_P_D FCC_L12 MAGNETIC -3.0 .28 ! - TYPE_DEFINITION E GES A_P_D FCC_A1 MAGNETIC -3.0 .28 ! - - TYPE_DEFINITION D GES A_P_D FCC_L12 DIS_PART FCC_A1 ! - - PHASE GAS:G % 1 1.0 ! - CONST GAS:G :AL,AL2,CR,CR2,NI,NI2 : ! - - PHASE LIQUID:L % 1 1.0 ! - CONST LIQUID:L :AL,CR,NI : ! - - PHASE FCC_A1 %E 2 1 1 ! - CONST FCC_A1 :AL,CR,NI% : VA% : ! - -$ PHASE FCC_L12 %ADG 3 .75 .25 1 ! - PHASE FCC_L12 %AD 3 .75 .25 1 ! - CONST FCC_L12 :AL,CR,NI : AL,CR,NI : VA : ! - - FUNCTION ZERO 298.15 0;,,N ! - FUNCTION DP 298.15 +P-101325;,,N ! - FUNCTION TROIS 298.15 3;,,N ! - FUNCTION UNTIER 298.15 TROIS**(-1);,,N ! - -$**************************************************************************** -$ -$ UNARY PARAMETERS -$ -$---------------------------------------------------------------------------- -$ -$ Al -$ -$ FUNCTIONS -$ - FUNCTION F154T 298.15 - +323947.58-25.1480943*T-20.859*T*LN(T) - +4.5665E-05*T**2-3.942E-09*T**3-24275.5*T**(-1); - 4300.0 Y - +342017.233-54.0526109*T-17.7891*T*LN(T)+6.822E-05*T**2 - -1.91111667E-08*T**3-14782200*T**(-1); - 8200.0 Y - +542396.07-411.214335*T+22.2419*T*LN(T)-.00349619*T**2 - +4.0491E-08*T**3-2.0366965E+08*T**(-1); 1.00000E+04 N ! -$ - FUNCTION F625T 298.15 - +496408.232+35.479739*T-41.6397*T*LN(T) - +.00249636*T**2-4.90507333E-07*T**3+85390.3*T**(-1); - 900.00 Y - +497613.221+17.368131*T-38.85476*T*LN(T)-2.249805E-04*T**2 - -9.49003167E-09*T**3-5287.23*T**(-1); 2.80000E+03 N ! -$ - FUNCTION GHSERAL 298.15 - -7976.15+137.093038*T-24.3671976*T*LN(T) - -.001884662*T**2-8.77664E-07*T**3+74092*T**(-1); - 700.00 Y - -11276.24+223.048446*T-38.5844296*T*LN(T) - +.018531982*T**2-5.764227E-06*T**3+74092*T**(-1); - 933.60 Y - -11278.378+188.684153*T-31.748192*T*LN(T) - -1.231E+28*T**(-9);,, N ! -$ - FUNCTION GHCPAL 298.15 +5481-1.8*T+GHSERAL;,,N ! -$ - FUNCTION GBCCAL 298.15 +10083-4.813*T+GHSERAL;,,N ! -$ - FUNCTION GLIQAL 298.14 - +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL; - 933.59 Y - +10482.282-11.253974*T+1.231E+28*T**(-9)+GHSERAL;,,N ! -$ -$ GAS PHASE -$ - PARAMETER G(GAS,AL;0) 298.15 +F154T+R*T*LN(1E-05*P);,,N REF184 ! - PARAMETER G(GAS,AL2;0) 298.15 +F625T+R*T*LN(1E-05*P);,,N REF448 ! -$ -$ LIQUID PHASE -$ - PARAMETER G(LIQUID,AL;0) 298.13 - +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL; - 933.60 Y - +10482.382-11.253974*T+1.231E+28*T**(-9) - +GHSERAL;,,N 91DIN ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,AL:VA;0) 298.15 +GHSERAL;,,N 91DIN ! -$ -$ -$---------------------------------------------------------------------------- -$ -$ Cr -$ -$ FUNCTIONS -$ - FUNCTION F7454T 298.15 - +390765.331-31.5192154*T-21.36083*T*LN(T) - +7.253215E-04*T**2-1.588679E-07*T**3+10285.15*T**(-1); - 1100.0 Y - +393886.928-44.107465*T-19.96003*T*LN(T)+.001513089*T**2 - -4.23648333E-07*T**3-722515*T**(-1); - 2000.0 Y - +421372.003-231.888524*T+5.362886*T*LN(T)-.00848877*T**2 - +2.984635E-07*T**3-6015405*T**(-1); - 3300.0 Y - +305164.698+251.019831*T-55.20304*T*LN(T)+.005324585*T**2 - -2.850405E-07*T**3+34951485*T**(-1); - 5100.0 Y - +1069921.1-1708.93262*T+175.0508*T*LN(T)-.025574185*T**2 - +4.94447E-07*T**3-4.4276355E+08*T**(-1); - 7600.0 Y - -871952.838+1686.47356*T-204.5589*T*LN(T)+.007475225*T**2 - -4.618745E-08*T**3+1.423504E+09*T**(-1); 1.00000E+04 N ! -$ - FUNCTION F7735T 298.15 +598511.402+41.5353219*T-40.56798*T*LN(T) - +.004961847*T**2-1.61216717E-06*T**3+154422.85*T**(-1); - 800.00 Y - +613345.232-104.20799*T-19.7643*T*LN(T)-.007085085*T**2 - -4.69883E-07*T**3-1738066.5*T**(-1); - 1400.0 Y - +642608.843-369.286259*T+17.64743*T*LN(T)-.02767321*T**2 - +1.605906E-06*T**3-5831655*T**(-1); - 2300.0 Y - +553119.895+159.188556*T-52.07969*T*LN(T)-.004229401*T**2 - +1.5939925E-07*T**3+14793625*T**(-1); - 3900.0 Y - +347492.339+623.137624*T-105.0428*T*LN(T)+3.9699545E-04*T**2 - +1.51783483E-07*T**3+1.4843765E+08*T**(-1); - 5800.0 Y - -484185.055+2598.25559*T-334.7145*T*LN(T)+.028597625*T**2 - -4.97520167E-07*T**3+7.135805E+08*T**(-1); 6.00000E+03 N ! -$ - FUNCTION GHSERCR 298.14 - -8856.94+157.48*T-26.908*T*LN(T) - +.00189435*T**2-1.47721E-06*T**3+139250*T**(-1); - 2180.0 Y - -34869.344+344.18*T-50*T*LN(T)-2.88526E+32*T**(-9);,,N ! -$ - FUNCTION GCRLIQ 298.15 - +24339.955-11.420225*T+2.37615E-21*T**7+GHSERCR; - 2180.0 Y - -16459.984+335.616316*T-50*T*LN(T);,,N ! -$ - FUNCTION GFCCCR 298.15 +7284+.163*T+GHSERCR;,,N ! -$ - FUNCTION GHCPCR 298.15 +4438+GHSERCR;,,N ! -$ - FUNCTION ACRBCC 298.15 +1.7E-05*T+9.2E-09*T**2;,,N ! - FUNCTION BCRBCC 298.15 +1+2.6E-11*P;,,N ! - FUNCTION CCRBCC 298.15 2.08E-11;,,N ! - FUNCTION DCRBCC 298.15 +1*LN(BCRBCC);,,N ! - FUNCTION VCRBCC 298.15 +7.188E-06*EXP(ACRBCC);,,N ! - FUNCTION ECRBCC 298.15 +1*LN(CCRBCC);,,N ! - FUNCTION XCRBCC 298.15 +1*EXP(.8*DCRBCC)-1;,,N ! - FUNCTION YCRBCC 298.15 +VCRBCC*EXP(-ECRBCC);,,N ! - FUNCTION ZCRBCC 298.15 +1*LN(XCRBCC);,,N ! - FUNCTION GPCRBCC 298.15 +YCRBCC*EXP(ZCRBCC);,,N ! -$ - FUNCTION ACRLIQ 298.15 +1.7E-05*T+9.2E-09*T**2;,,N ! - FUNCTION BCRLIQ 298.15 +1+4.65E-11*P;,,N ! - FUNCTION CCRLIQ 298.15 3.72E-11;,,N ! - FUNCTION DCRLIQ 298.15 +1*LN(BCRLIQ);,,N ! - FUNCTION VCRLIQ 298.15 +7.653E-06*EXP(ACRLIQ);,,N ! - FUNCTION ECRLIQ 298.15 +1*LN(CCRLIQ);,,N ! - FUNCTION XCRLIQ 298.15 +1*EXP(.8*DCRLIQ)-1;,,N ! - FUNCTION YCRLIQ 298.15 +VCRLIQ*EXP(-ECRLIQ);,,N ! - FUNCTION ZCRLIQ 298.15 +1*LN(XCRLIQ);,,N ! - FUNCTION GPCRLIQ 298.15 +YCRLIQ*EXP(ZCRLIQ);,,N ! -$ -$ GAS PHASE -$ - PARAMETER G(GAS,CR;0) 298.15 +F7454T+R*T*LN(1E-05*P);,,N REF4465 ! - PARAMETER G(GAS,CR2;0) 298.15 +F7735T+R*T*LN(1E-05*P);,, N REF4591 ! -$ -$ LIQUID PHASE -$ - PARAMETER G(LIQUID,CR;0) 298.15 +GCRLIQ+GPCRLIQ;,, N 91DIN ! -$ -$ FCC_A1 PHASE -$ -$ -$---------------------------------------------------------------------------- -$ -$ Ni -$ -$ FUNCTIONS -$ - FUNCTION F13191T 298.15 - +417658.868-44.7777921*T-20.056*T*LN(T) - -.0060415*T**2+1.24774E-06*T**3-16320*T**(-1); - 800.00 Y - +413885.448+9.41787679*T-28.332*T*LN(T)+.00173115*T**2 - -8.399E-08*T**3+289050*T**(-1); - 3900.0 Y - +440866.732-62.5810038*T-19.819*T*LN(T)+5.067E-04*T**2 - -4.93233333E-08*T**3-15879735*T**(-1); - 7600.0 Y - +848806.287-813.398164*T+64.69*T*LN(T)-.00731865*T**2 - +8.71833333E-08*T**3-3.875846E+08*T**(-1); 10000. N ! -$ - FUNCTION F13265T 298.15 - +638073.279-68.1901928*T-24.897*T*LN(T) - -.0313584*T**2+5.93355333E-06*T**3-14215*T**(-1); - 800.00 Y - +611401.772+268.084821*T-75.25401*T*LN(T)+.01088525*T**2 - -7.08741667E-07*T**3+2633835*T**(-1); - 2100.0 Y - +637459.339+72.0712678*T-48.587*T*LN(T)-9.09E-05*T**2 - +9.12933333E-08*T**3-1191755*T**(-1); - 4500.0 Y - +564540.781+329.599011*T-80.11301*T*LN(T)+.00578085*T**2 - -1.08841667E-07*T**3+29137900*T**(-1); 6000.0 N ! -$ - FUNCTION GHSERNI 298.14 - -5179.159+117.854*T-22.096*T*LN(T) - -.0048407*T**2; - 1728.0 Y - -27840.655+279.135*T-43.1*T*LN(T)+1.12754E+31*T**(-9);,, N ! -$ - FUNCTION GHCPNI 298.15 +1046+1.2552*T+GHSERNI;,,N ! -$ - FUNCTION GBCCNI 298.15 +8715.084-3.556*T+GHSERNI;,,, N ! -$ -$ GAS PHASE -$ - PARAMETER G(GAS,NI;0) 298.15 +F13191T+R*T*LN(1E-05*P);,,N REF7504 ! - PARAMETER G(GAS,NI2;0) 298.15 +F13265T+R*T*LN(1E-05*P);,,N REF7553 ! -$ -$ LIQUID PHASE -$ - PARAMETER G(LIQUID,NI;0) 298.13 - +16414.686-9.397*T-3.82318E-21*T**7+GHSERNI; - 1728.0 Y - +18290.88-10.537*T-1.12754E+31*T**(-9) - +GHSERNI;,,N 91DIN ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,NI:VA;0) 298.15 +GHSERNI;,,N 91DIN ! - PARAMETER TC(FCC_A1,NI:VA;0) 298.15 633;,,N 89DIN ! - PARAMETER BMAGN(FCC_A1,NI:VA;0) 298.15 .52;,,N 89DIN ! -$ -$ -$**************************************************************************** -$ -$ BINARY PARAMETERS -$ -$---------------------------------------------------------------------------- -$ -$ Al-Cr -$ Mainly from Saunders (COST507) -$ Metastable B2 and L12 from revision of Al-Cr-Ni -$ -$ LIQUID PHASE -$ - PARAMETER L(LIQUID,AL,CR;0) 298.15 -29000;,,N 91SAU1 ! - PARAMETER L(LIQUID,AL,CR;1) 298.15 -11000;,,N 91SAU1 ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,AL,CR:VA;0) 298.15 -45900+6*T;,,N 91SAU1 ! -$ -$ -$ FCC_L12 PHASE -$ metastable -$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. - FUN U1ALCR 298.15 -830;,,N 99DUP6 ! - FUN U3ALCR 298.15 0.0; 6000.00 99DUP6 ! - FUN U4ALCR 298.15 0.0; 6000.00 N 99DUP6 ! - FUNCTION L04ALCR 298.15 U3ALCR;,,N ! - FUNCTION L14ALCR 298.15 U4ALCR;,,N ! - FUNCTION ALCR3 298.15 3*U1ALCR;,,N ! - FUNCTION AL2CR2 298.15 4*U1ALCR;,,N ! - FUNCTION AL3CR 298.15 3*U1ALCR;,,N ! - PARAMETER G(FCC_L12,CR:AL:VA;0) 298.15 +ALCR3;,, N 99DUP6 ! - PARAMETER G(FCC_L12,AL:CR:VA;0) 298.15 +AL3CR;,, N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:AL:VA;0) 298.15 - -1.5*ALCR3+1.5*AL2CR2+1.5*AL3CR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:CR:VA;0) 298.15 - +1.5*ALCR3+1.5*AL2CR2-1.5*AL3CR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:AL:VA;1) 298.15 - +0.5*ALCR3-1.5*AL2CR2+1.5*AL3CR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:CR:VA;1) 298.15 - -1.5*ALCR3+1.5*AL2CR2-0.5*AL3CR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,*:AL,CR:VA;0) 298.15 +L04ALCR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,*:AL,CR:VA;1) 298.15 +L14ALCR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:*:VA;0) 298.15 +3*L04ALCR;,,N 99DUP6 ! - PARAMETER L(FCC_L12,AL,CR:*:VA;1) 298.15 +3*L14ALCR;,,N 99DUP6 ! -$ -$ -$---------------------------------------------------------------------------- -$ -$ Al-Ni -$ Mainly from ND thesis, -$ slighly revised to get better solvus at low temperature -$ -$ LIQUID PHASE -$ - PARAMETER L(LIQUID,AL,NI;0) 298.15 -207109.28+41.31501*T;,,N 95DUP3 ! - PARAMETER L(LIQUID,AL,NI;1) 298.15 -10185.79+5.8714*T;,,N 95DUP3 ! - PARAMETER L(LIQUID,AL,NI;2) 298.15 +81204.81-31.95713*T;,,N 95DUP3 ! - PARAMETER L(LIQUID,AL,NI;3) 298.15 +4365.35-2.51632*T;,,N 95DUP3 ! - PARAMETER L(LIQUID,AL,NI;4) 298.15 -22101.64+13.16341*T;,,N 95DUP3 ! -$ -$ FCC_A1 PHASE -$ - PARAMETER TC(FCC_A1,AL,NI:VA;0) 298.15 -1112;,,N 95DUP3 ! - PARAMETER TC(FCC_A1,AL,NI:VA;1) 298.15 1745;,,N 95DUP3 ! - PARAMETER G(FCC_A1,AL,NI:VA;0) 298.15 -162407.75+16.212965*T;,,N 95DUP3 ! - PARAMETER G(FCC_A1,AL,NI:VA;1) 298.15 +73417.798-34.914168*T;,,N 95DUP3 ! - PARAMETER G(FCC_A1,AL,NI:VA;2) 298.15 +33471.014-9.8373558*T;,,N 95DUP3 ! - PARAMETER G(FCC_A1,AL,NI:VA;3) 298.15 -30758.01+10.25267*T;,,N 95DUP3 ! -$ -$ FCC_L12 PHASE -$ - FUN UALNI 298.15 -22212.8931+4.39570389*T;,,,N 99DUP3 ! - FUN U1ALNI 298.15 2*UNTIER*UALNI;,,,N 99DUP3 ! - FUN U3ALNI 298.15 0;,,,N 99DUP3 ! - FUN U4ALNI 298.15 7203.60609-3.74273030*T;,,,N 99DUP3 ! - FUNCTION L04ALNI 298.15 U3ALNI;,,N 99DUP3 ! - FUNCTION L14ALNI 298.15 U4ALNI;,,N 99DUP3 ! - FUNCTION ALNI3 298.15 +3*U1ALNI;,,,N 99DUP3 ! - FUNCTION AL2NI2 298.15 +4*U1ALNI;,,,N 99DUP3 ! - FUNCTION AL3NI 298.15 +3*U1ALNI;,,,N 99DUP3 ! - PARAMETER G(FCC_L12,NI:AL:VA;0) 298.15 +ALNI3;,,N 99DUP3 ! - PARAMETER G(FCC_L12,AL:NI:VA;0) 298.15 +AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:AL:VA;0) 298.15 - -1.5*ALNI3+1.5*AL2NI2+1.5*AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:NI:VA;0) 298.15 - +1.5*ALNI3+1.5*AL2NI2-1.5*AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:AL:VA;1) 298.15 - +0.5*ALNI3-1.5*AL2NI2+1.5*AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:NI:VA;1) 298.15 - -1.5*ALNI3+1.5*AL2NI2-0.5*AL3NI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,*:AL,NI:VA;0) 298.15 +L04ALNI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,*:AL,NI:VA;1) 298.15 +L14ALNI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:*:VA;0) 298.15 +3*L04ALNI;,,N 99DUP3 ! - PARAMETER L(FCC_L12,AL,NI:*:VA;1) 298.15 +3*L14ALNI;,,N 99DUP3 ! -$ -$ -$---------------------------------------------------------------------------- -$ -$ Cr-Ni -$ Mainly from SSOL -$ Metastable B2 and L12 from revision of Al-Cr-Ni -$ -$ LIQUID PHASE -$ - PARAMETER L(LIQUID,CR,NI;0) 298.15 +318-7.3318*T;,,N 91LEE ! - PARAMETER L(LIQUID,CR,NI;1) 298.15 +16941-6.3696*T;,,N 91LEE ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,CR,NI:VA;0) 298.15 +8030-12.8801*T;,,N 91LEE ! - PARAMETER G(FCC_A1,CR,NI:VA;1) 298.15 +33080-16.0362*T;,,N 91LEE ! - PARAMETER TC(FCC_A1,CR,NI:VA;0) 298.15 -3605;,,N 86DIN ! - PARAMETER BMAGN(FCC_A1,CR,NI:VA;0) 298.15 -1.91;,,N 86DIN ! -$ -$ -$ FCC_L12 PHASE -$ metastable -$ Present work: july 1999, study of Al-Cr-Ni, revision of NDTH. -$ The L12 phase is metastable in the binary Cr-Ni while it was stable in NDTH. - FUN U1CRNI 298.15 -1980;,,,N 99DUP6 ! -$ FUN U1CRNI 298.15 -7060+3.63*T;,,,N 99DUP6 ! - FUN U3CRNI 298.15 0;,,,N 99DUP6 ! - FUN U4CRNI 298.15 0;,,,N 99DUP6 ! - FUNCTION L04CRNI 298.15 U3CRNI;,,N 99DUP6 ! - FUNCTION L14CRNI 298.15 U4CRNI;,,N 99DUP6 ! - FUNCTION CRNI3 298.15 +3*U1CRNI;,,,N 99DUP6 ! - FUNCTION CR2NI2 298.15 +4*U1CRNI;,,,N 99DUP6 ! - FUNCTION CR3NI 298.15 +3*U1CRNI;,,,N 99DUP6 ! - PARAMETER G(FCC_L12,NI:CR:VA;0) 298.15 +CRNI3;,, N 99DUP6 ! - PARAMETER G(FCC_L12,CR:NI:VA;0) 298.15 +CR3NI;,, N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:CR:VA;0) 298.15 - -1.5*CRNI3+1.5*CR2NI2+1.5*CR3NI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:NI:VA;0) 298.15 - +1.5*CRNI3+1.5*CR2NI2-1.5*CR3NI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:CR:VA;1) 298.15 - +0.5*CRNI3-1.5*CR2NI2+1.5*CR3NI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:NI:VA;1) 298.15 - -1.5*CRNI3+1.5*CR2NI2-0.5*CR3NI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,*:CR,NI:VA;0) 298.15 +L04CRNI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,*:CR,NI:VA;1) 298.15 +L14CRNI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:*:VA;0) 298.15 +3*L04CRNI;,,N 99DUP6 ! - PARAMETER L(FCC_L12,CR,NI:*:VA;1) 298.15 +3*L14CRNI;,,N 99DUP6 ! -$ -$ -$**************************************************************************** -$ -$ TERNARY PARAMETERS -$ -$---------------------------------------------------------------------------- -$ -$ Al-Cr-Ni -$ July 1999, ND -$ Revision. Main changes: -$ - description of the A2/B2 -$ - new liquidus data taken into account -$ - simpler ternary interaction parameters -$ -$ LIQUID PHASE -$ - PARAMETER L(LIQUID,AL,CR,NI;0) 298.15 16000;,,N 99DUP6 ! -$ -$ FCC_A1 PHASE -$ - PARAMETER G(FCC_A1,AL,CR,NI:VA;0) 298.15 30300;,,N 99DUP6 ! -$ -$ -$ FCC_L12 PHASE -$ - FUN U1ALCRNI 298.15 6650;,,N 99DUP6 ! - FUN U2ALCRNI 298.15 0;,,N 99DUP6 ! - FUN U3ALCRNI 298.15 0;,,N 99DUP6 ! - FUN ALCRNI2 298.15 U1ALCR+2*U1ALNI+2*U1CRNI+U1ALCRNI;,,N 99DUP6 ! - FUN ALCR2NI 298.15 2*U1ALCR+U1ALNI+2*U1CRNI+U2ALCRNI;,,N 99DUP6 ! - FUN AL2CRNI 298.15 2*U1ALCR+2*U1ALNI+U1CRNI+U3ALCRNI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR,NI:AL:VA;0) 298.15 - -1.5*ALCRNI2-1.5*ALCR2NI+ALCR3+ALNI3+6*AL2CRNI - -1.5*AL2CR2-1.5*AL2NI2-1.5*AL3CR-1.5*AL3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR,NI:CR:VA;0) 298.15 - -1.5*ALCRNI2+6*ALCR2NI-1.5*ALCR3-1.5*AL2CRNI - -1.5*AL2CR2+AL3CR+CRNI3-1.5*CR2NI2-1.5*CR3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR,NI:NI:VA;0) 298.15 - +6*ALCRNI2-1.5*ALCR2NI-1.5*ALNI3-1.5*AL2CRNI - -1.5*AL2NI2+AL3NI-1.5*CRNI3-1.5*CR2NI2+CR3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR:NI:VA;0) 298.15 - +1.5*ALCR2NI+1.5*AL2CRNI-1.5*AL3NI-1.5*CR3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,NI:CR:VA;0) 298.15 - +1.5*ALCRNI2+1.5*AL2CRNI-1.5*AL3CR-1.5*CRNI3;,,N 99DUP6 ! - PARA L(FCC_L12,CR,NI:AL:VA;0) 298.15 - +1.5*ALCRNI2+1.5*ALCR2NI-1.5*ALCR3-1.5*ALNI3;,,N 99DUP6 ! - PARA L(FCC_L12,AL,CR:NI:VA;1) 298.15 - -1.5*ALCR2NI+1.5*AL2CRNI-0.5*AL3NI+0.5*CR3NI;,,N 99DUP6 ! - PARA L(FCC_L12,AL,NI:CR:VA;1) 298.15 - -1.5*ALCRNI2+1.5*AL2CRNI-0.5*AL3CR+0.5*CRNI3;,,N 99DUP6 ! - PARA L(FCC_L12,CR,NI:AL:VA;1) 298.15 - -1.5*ALCRNI2+1.5*ALCR2NI-0.5*ALCR3+0.5*ALNI3;,,N 99DUP6 ! -$ -$**************************************************************************** -$ Diffusion parameters -$ -PARAMETER DQ(FCC_A1&AL,*;0) 298.15 -70000+R*T*LN(5E-5); 6000 N ! -PARAMETER DQ(FCC_A1&CR,*;0) 298.15 -40800+R*T*LN(3e-6); 6000 N ! -PARAMETER DQ(FCC_A1&NI,*;0) 298.15 -271960+R*T*LN(1.27E-4); 6000 N ! -$ -""" - -FECRNI_DB = """ -$ FeCrNi database using parameters taken from MatCalc open steel database mc_fe_v2.060.tdb -$ -$ The mc_fe_v2.059.tdb database is made available under the -$ Open Database License: http://opendatacommons.org/licenses/odbl/1.0/. -$ Any rights in individual contents of the database are licensed under the -$ Database Contents License: http://opendatacommons.org/licenses/dbcl/1.0/. -$ -$ ########################################################################## - -ELEMENT VA VACUUM 0.0 0.00 0.00 ! -ELEMENT CR BCC_A2 51.996 4050.0 23.5429 ! -ELEMENT FE BCC_A2 55.847 4489.0 27.2797 ! -ELEMENT NI FCC_A1 58.69 4787.0 29.7955 ! - -FUNCTION GHSERCR - 273.00 -8856.94+157.48*T-26.908*T*LN(T) - +0.00189435*T**2-1.47721E-6*T**3+139250*T**(-1); 2180.00 Y - -34869.344+344.18*T-50*T*LN(T)-2.88526E+32*T**(-9); 6000.00 N -REF:0 ! -FUNCTION GCRFCC - 273.00 +7284+0.163*T+GHSERCR#; 6000.00 N -REF:0 ! -FUNCTION GHSERFE - 273.00 +1225.7+124.134*T-23.5143*T*LN(T)-0.00439752*T**2 - -5.89269E-8*T**3+77358.5*T**(-1); 1811.00 Y - -25383.581+299.31255*T-46*T*LN(T)+2.2960305E+31*T**(-9); 6000.00 N -REF:0 ! -FUNCTION GFEFCC - 273.00 -1462.4+8.282*T-1.15*T*LN(T)+6.4E-04*T**2+GHSERFE#; 1811.00 Y - -27098.266+300.25256*T-46*T*LN(T)+2.78854E+31*T**(-9); 6000.00 N -REF:0 ! -FUNCTION GHSERNI - 273.00 -5179.159+117.854*T-22.096*T*LN(T)-4.8407E-3*T**2; 1728.00 Y - -27840.655+279.135*T-43.10*T*LN(T)+1.12754E+31*T**(-9); 6000.00 N -REF:0 ! -FUNCTION GNIBCC - 273.00 +8715.084-3.556*T+GHSERNI#; 6000.00 N -REF:0 ! - -$FCC_A1 phase - -TYPE_DEFINITION ' GES A_P_D FCC_A1 MAGNETIC -3.0 0.28 ! -TYPE_DEFINITION % SEQ *! -PHASE FCC_A1 %' 2 1 1 ! -CONSTITUENT FCC_A1 : CR,FE%,NI : VA% : ! - -PARAMETER G(FCC_A1,CR:VA;0) 273.00 +7284+0.163*T+GHSERCR#; 6000.00 N -REF:0 ! -PARAMETER G(FCC_A1,FE:VA;0) 273.00 -1462.4+8.282*T-1.15*T*LN(T) - +0.00064*T**2+GHSERFE#; 1811.00 Y - -1713.815+0.94001*T+0.4925095E+31*T**(-9)+GHSERFE#; 6000.00 N -REF:0 ! -PARAMETER G(FCC_A1,NI:VA;0) 273.00 +GHSERNI#; 3000.00 N -REF:0 ! -PARAMETER L(FCC_A1,CR,FE:VA;0) 273.00 +10833-7.477*T; 6000.00 N -REF:11 ! -PARAMETER L(FCC_A1,CR,FE:VA;1) 273.00 +1410; 6000.00 N -REF:11 ! -PARAMETER L(FCC_A1,CR,NI:VA;0) 273.00 +8030-12.8801*T; 6000.00 N -REF:11 ! -PARAMETER L(FCC_A1,CR,NI:VA;1) 273.00 +33080-16.0362*T; 6000.00 N -REF:11 ! -PARAMETER L(FCC_A1,FE,NI:VA;0) 273.00 -12054.355+3.27413*T; 6000.00 N -REF:20 ! -PARAMETER L(FCC_A1,FE,NI:VA;1) 273.00 +11082.1315-4.45077*T; 6000.00 N -REF:20 ! -PARAMETER L(FCC_A1,FE,NI:VA;2) 273.00 -725.805174; 6000.00 N -REF:20 ! -PARAMETER L(FCC_A1,CR,FE,NI:VA;0) 273.00 +8000-8*T; 6000.00 N -REF:jac17 ! -PARAMETER L(FCC_A1,CR,FE,NI:VA;1) 273.00 -6500; 6000.00 N -REF:jac17 ! -PARAMETER L(FCC_A1,CR,FE,NI:VA;2) 273.00 +30000; 6000.00 N -REF:jac17 ! -PARAMETER TC(FCC_A1,CR:VA;0) 273.00 -1109; 6000.00 N -REF:11 ! -PARAMETER BMAGN(FCC_A1,CR:VA;0) 273.00 -2.46; 6000.00 N -REF:11 ! -PARAMETER TC(FCC_A1,CR,NI:VA;0) 273.00 -3605; 6000.00 N -REF:11 ! -PARAMETER BMAGN(FCC_A1,CR,NI:VA;0) 273.00 -1.91; 6000.00 N -REF:11 ! -PARAMETER TC(FCC_A1,FE:VA;0) 273.00 -201; 6000.00 N -REF:20 ! -PARAMETER BMAGN(FCC_A1,FE:VA;0) 273.00 -2.1; 6000.00 N -REF:20 ! -PARAMETER TC(FCC_A1,FE,NI:VA;0) 273.00 +2133; 6000.00 N -REF:20 ! -PARAMETER TC(FCC_A1,FE,NI:VA;1) 273.00 -682; 6000.00 N -REF:20 ! -PARAMETER BMAGN(FCC_A1,FE,NI:VA;0) 273.00 +9.55; 6000.00 N -REF:20 ! -PARAMETER BMAGN(FCC_A1,FE,NI:VA;1) 273.00 +7.23; 6000.00 N -REF:20 ! -PARAMETER BMAGN(FCC_A1,FE,NI:VA;2) 273.00 +5.93; 6000.00 N -REF:20 ! -PARAMETER BMAGN(FCC_A1,FE,NI:VA;3) 273.00 +6.18; 6000.00 N -REF:20 ! -PARAMETER TC(FCC_A1,NI:VA;0) 273.00 +633; 6000.00 N -REF:0 ! -PARAMETER BMAGN(FCC_A1,NI:VA;0) 273.00 +0.52; 6000.00 N -REF:0 ! - -$BCC_A2 phase - -TYPE_DEFINITION & GES A_P_D BCC_A2 MAGNETIC -1.0 0.4 ! -PHASE BCC_A2 %& 2 1 3 ! -CONSTITUENT BCC_A2 : CR,FE%,NI : VA% : ! - -PARAMETER G(BCC_A2,CR:VA;0) 273.00 +GHSERCR#; 6000.00 N -REF:0 ! -PARAMETER G(BCC_A2,FE:VA;0) 273.00 +GHSERFE#; 6000.00 N -REF:0 ! -PARAMETER G(BCC_A2,NI:VA;0) 273.00 +8715.084-3.556*T+GHSERNI#; 3000.00 N -REF:0 ! -PARAMETER L(BCC_A2,CR,FE:VA;0) 273.00 +20500-9.68*T; 6000.00 N -REF:11 ! -PARAMETER L(BCC_A2,CR,NI:VA;0) 273.00 +17170-11.8199*T; 6000.00 N -REF:11 ! -PARAMETER L(BCC_A2,CR,NI:VA;1) 273.00 +34418-11.8577*T; 6000.00 N -REF:11 ! -PARAMETER L(BCC_A2,CR,NI:VA;2) 273.00 +1e-8; 6000.00 N -REF:11 ! -PARAMETER L(BCC_A2,FE,NI:VA;0) 273.00 -956.63-1.28726*T; 6000.00 N -REF:20 ! -PARAMETER L(BCC_A2,FE,NI:VA;1) 273.00 +5000-5*T; 6000.00 N -REF:pov12 ! -PARAMETER L(BCC_A2,CR,FE,NI:VA;0) 273.00 +3000+5*T; 6000.00 N -REF:jac17 ! -PARAMETER L(BCC_A2,CR,FE,NI:VA;1) 273.00 +9000-6*T; 6000.00 N -REF:jac17 ! -PARAMETER L(BCC_A2,CR,FE,NI:VA;2) 273.00 -30000+20*T; 6000.00 N -REF:jac17 ! -PARAMETER TC(BCC_A2,CR:VA;0) 273.00 -311.5; 6000.00 N -REF:22 ! -PARAMETER BMAGN(BCC_A2,CR:VA;0) 273.00 -0.008; 6000.00 N -REF:0 ! -PARAMETER TC(BCC_A2,FE:VA;0) 273.00 +1043; 6000.00 N -REF:0 ! -PARAMETER BMAGN(BCC_A2,FE:VA;0) 273.00 +2.22; 6000.00 N -REF:0 ! -PARAMETER TC(BCC_A2,NI:VA;0) 273.00 +575; 6000.00 N -REF:0 ! -PARAMETER BMAGN(BCC_A2,NI:VA;0) 273.00 +0.85; 6000.00 N -REF:0 ! -PARAMETER TC(BCC_A2,CR,FE:VA;0) 273.00 +1650; 6000.00 N -REF:11 ! -PARAMETER TC(BCC_A2,CR,FE:VA;1) 273.00 +550; 6000.00 N -REF:11 ! -PARAMETER BMAGN(BCC_A2,CR,FE:VA;0) 273.00 -0.85; 6000.00 N -REF:pov09 ! -PARAMETER TC(BCC_A2,CR,NI:VA;0) 273.00 +2373; 6000.00 N -REF:11 ! -PARAMETER TC(BCC_A2,CR,NI:VA;1) 273.00 +617; 6000.00 N -REF:11 ! -PARAMETER BMAGN(BCC_A2,CR,NI:VA;0) 273.00 +4; 6000.00 N -REF:11 ! - -$SIGMA phase - -PHASE SIGMA % 3 8 4 18 ! -CONSTITUENT SIGMA : FE%,NI : CR% : CR,FE,NI :! - -PARAMETER G(SIGMA,FE:CR:CR;0) 273.00 +8*GFEFCC#+22*GHSERCR# - +92300-95.96*T; 6000.00 N -REF:62 ! -PARAMETER G(SIGMA,FE:CR:FE;0) 273.00 +117300-95.96*T+8*GFEFCC# - +4*GHSERCR#+18*GHSERFE#; 6000.00 N -REF:62 ! -PARAMETER G(SIGMA,FE:CR:NI;0) 273.00 -50000+32*T+8*GFEFCC#+4*GHSERCR# - +18*GNIBCC#; 6000.00 N -REF:pov13 ! -PARAMETER G(SIGMA,NI:CR:CR;0) 273.00 +8*GHSERNI#+22*GHSERCR# - +180000-170*T; 6000.00 N -REF:13 ! -PARAMETER G(SIGMA,NI:CR:FE;0) 273.00 +8*GHSERNI#+4*GHSERCR# - +18*GHSERFE#-50000+32*T; 6000.00 N -REF:pov13 ! -PARAMETER G(SIGMA,NI:CR:NI;0) 273.00 +8*GHSERNI#+4*GHSERCR# - +18*GNIBCC#+175400; 6000.00 N -REF:13 ! -PARAMETER L(SIGMA,FE:CR:CR,NI;0) 273.00 +1e-8; 6000.00 N -REF:pov12 ! -PARAMETER L(SIGMA,FE:CR:FE,NI;0) 273.00 -200000; 6000.00 N -REF:pov13 ! - -$FCC mobility -$CR - -PARAMETER MQ(FCC_A1&CR,CR:*) 273.00 -235000-82.0*T; 6000.00 N -Ref:19 ! -PARAMETER MQ(FCC_A1&CR,FE:*) 273.00 -286000-71.9*T; 6000.00 N -Ref:19 ! -PARAMETER MQ(FCC_A1&CR,NI:*) 273.00 -287000-64.4*T; 6000.00 N -Ref:19 ! -PARAMETER MQ(FCC_A1&CR,CR,FE:*;0) 273.00 -105000; 6000.00 N -Ref:19 ! -PARAMETER MQ(FCC_A1&CR,CR,NI:*;0) 273.00 -68000; 6000.00 N -Ref:41 ! -PARAMETER MQ(FCC_A1&CR,FE,NI:*;0) 273.00 +16100; 6000.00 N -Ref:17 ! -PARAMETER MQ(FCC_A1&CR,CR,FE,NI:*;0) 273.00 +310000; 6000.00 N -Ref:17 ! -PARAMETER MQ(FCC_A1&CR,CR,FE,NI:*;1) 273.00 +320000; 6000.00 N -Ref:17 ! -PARAMETER MQ(FCC_A1&CR,CR,FE,NI:*;2) 273.00 +120000; 6000.00 N -Ref:17 ! - -$FE - -PARAMETER MQ(FCC_A1&FE,CR:*) 273.00 -235000-82.0*T; 6000.00 N -Ref:19 ! -PARAMETER MQ(FCC_A1&FE,FE:*) 273.00 -286000+R*T*LN(7.0E-5); 6000.00 N -Ref:18 ! -PARAMETER MQ(FCC_A1&FE,NI:*) 273.00 -287000-67.5*T; 6000.00 N -Ref:18 ! -PARAMETER MQ(FCC_A1&FE,CR,FE:*;0) 273.00 +15900; 6000.00 N -Ref:19 ! -PARAMETER MQ(FCC_A1&FE,CR,NI:*;0) 273.00 -77500; 6000.00 N -Ref:17 ! -PARAMETER MQ(FCC_A1&FE,FE,NI:*;0) 273.00 -115000+104*T; 6000.00 N -Ref:18 ! -PARAMETER MQ(FCC_A1&FE,FE,NI:*;1) 273.00 +78800-73.3*T; 6000.00 N -Ref:18 ! -PARAMETER MQ(FCC_A1&FE,CR,FE,NI:*;0) 273.00 -740000; 6000.00 N -Ref:17 ! -PARAMETER MQ(FCC_A1&FE,CR,FE,NI:*;1) 273.00 -540000; 6000.00 N -Ref:17 ! -PARAMETER MQ(FCC_A1&FE,CR,FE,NI:*;2) 273.00 +750000; 6000.00 N -Ref:17 ! - -$NI - -PARAMETER MQ(FCC_A1&NI,CR:*) 273.00 -235000-82.0*T; 6000.00 N -Ref:19 ! -PARAMETER MQ(FCC_A1&NI,FE:*) 273.00 -286000-86.0*T; 6000.00 N -Ref:18 ! -PARAMETER MQ(FCC_A1&NI,NI:*) 273.00 -287000-69.8*T; 6000.00 N -Ref:18 ! -PARAMETER MQ(FCC_A1&NI,CR,FE:*;0) 273.00 -119000; 6000.00 N -Ref:17 ! -PARAMETER MQ(FCC_A1&NI,CR,NI:*;0) 273.00 -81000; 6000.00 N -Ref:19 ! -PARAMETER MQ(FCC_A1&NI,FE,NI:*;0) 273.00 +124000-51.4*T; 6000.00 N -Ref:18 ! -PARAMETER MQ(FCC_A1&NI,FE,NI:*;1) 273.00 -300000+213*T; 6000.00 N -Ref:18 ! -PARAMETER MQ(FCC_A1&NI,CR,FE,NI:*;0) 273.00 +1840000; 6000.00 N -Ref:17 ! -PARAMETER MQ(FCC_A1&NI,CR,FE,NI:*;1) 273.00 +670000; 6000.00 N -Ref:17 ! -PARAMETER MQ(FCC_A1&NI,CR,FE,NI:*;2) 273.00 -1120000; 6000.00 N -Ref:17 ! - -$BCC Mobility - -$CR - -PARAMETER MQ(BCC_A2&CR,CR:*) 273.00 -407000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,CR:*) 273.00 -35.6*T; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,FE:*) 273.00 -218000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,FE:*) 273.00 +R*T*LN(8.5E-5); 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,NI:*) 273.00 -218000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,NI:*) 273.00 +R*T*LN(8.5E-5); 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,CR,FE:*;0) 273.00 +361000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,CR,FE:*;0) 273.00 -116*T; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,CR,FE:*;1) 273.00 +2820; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,CR,FE:*;1) 273.00 +37.5*T; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,CR,NI:*;0) 273.00 +350000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,CR,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,FE,NI:*;0) 273.00 +150000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,FE,NI:*;1) 273.00 +150000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,FE,NI:*;1) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,CR,FE,NI:*;1) 273.00 -2400000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,CR,FE,NI:*;1) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&CR,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&CR,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N -Ref:14 ! - -$FE - -PARAMETER MQ(BCC_A2&FE,CR:*) 273.00 -407000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,CR:*) 273.00 -17.2*T; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&FE,FE:*) 273.00 -218000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,FE:*) 273.00 +R*T*LN(4.6E-5); 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&FE,NI:*) 273.00 -218000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,NI:*) 273.00 +R*T*LN(4.6E-5); 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&FE,CR,FE:*;0) 273.00 +267000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,CR,FE:*;0) 273.00 -117*T; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&FE,CR,FE:*;1) 273.00 -416000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,CR,FE:*;1) 273.00 +348*T; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&FE,CR,NI:*;0) 273.00 +350000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,CR,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&FE,FE,NI:*;0) 273.00 +150000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,FE,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&FE,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&FE,CR,FE,NI:*;1) 273.00 +1400000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,CR,FE,NI:*;1) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&FE,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&FE,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N -Ref:14 ! - -$NI - -PARAMETER MQ(BCC_A2&NI,CR:*) 273.00 -407000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&NI,CR:*) 273.00 -17.2*T; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&NI,FE:*) 273.00 -204000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&NI,FE:*) 273.00 +R*T*LN(1.8E-5); 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&NI,NI:*) 273.00 -204000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&NI,NI:*) 273.00 +R*T*LN(1.8E-5); 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&NI,CR,FE:*;0) 273.00 +88000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&NI,CR,FE:*;0) 273.00 +10*T; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&NI,CR,NI:*;0) 273.00 +350000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&NI,CR,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&NI,FE,NI:*;0) 273.00 +150000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&NI,FE,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&NI,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&NI,CR,FE,NI:*;0) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&NI,CR,FE,NI:*;1) 273.00 -500000; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&NI,CR,FE,NI:*;1) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MQ(BCC_A2&NI,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N -Ref:14 ! -PARAMETER MF(BCC_A2&NI,CR,FE,NI:*;2) 273.00 +1e-8; 6000.00 N -Ref:14 ! - -""" - -ALMGSI_DB = """ - - -$ AL-MG-SI system with metastable phases -$ -$ Parameters for metastable phases and mobility -$ taken from E. Povoden-Karadeniz et al, CALPHAD 43 (2011) p. 94 -$ - -$Element Standard state mass [g/mol] H_298 S_298 -ELEMENT VA VACUUM 0.0 0.00 0.00 ! -ELEMENT AL FCC_A1 26.98154 4540 28.30 ! -ELEMENT MG HCP_A3 24.305 4998.0 32.671 ! -ELEMENT SI DIA_A4 28.0855 3217. 18.81 ! - - -$ -$FUNCTIONS FOR PURE ELEMENT -$ -FUNCTION GHSERAL - 273.00 -7976.15+137.093038*T-24.3671976*T*LN(T) - -1.884662E-3*T**2-0.877664E-6*T**3+74092*T**(-1); 700.00 Y - -11276.24+223.048446*T-38.5844296*T*LN(T) - +18.531982E-3*T**2-5.764227E-6*T**3+74092*T**(-1); 933.47 Y - -11278.378+188.684153*T-31.748192*T*LN(T)-1.231E+28*T**(-9); 2900.00 N -REF:0 ! -FUNCTION GHSERMG - 273.00 -8367.34+143.675547*T-26.1849782*T*LN(T)+0.4858E-3*T**2 - -1.393669E-6*T**3+78950*T**(-1); 923.00 Y - -14130.185+204.716215*T-34.3088*T*LN(T)+1038.192E25*T**(-9); 3000.00 N -REF:0 ! -FUNCTION GHSERSI - 273.00 -8162.609+137.236859*T-22.8317533*T*LN(T) - -1.912904E-3*T**2-0.003552E-6*T**3+176667*T**(-1); 1687.00 Y - -9457.642+167.271767*T-27.196*T*LN(T)-4.2037E+30*T**(-9); 3600.00 N -REF:0 ! - -$ -$ OTHER FUNCTIONS -$ -FUNCTION R - 273.00 +8.31451; 6000.00 N ! -FUNCTION GMG2SI 273.00 -92250.0+440.4*T-75.9*T*LN(T) - -0.0018*T**2+630000*T**(-1); 6000.00 N -REF:31 ! - -$ -$ LIQUID -$ - TYPE-DEF % SEQ * ! - PHASE LIQUID % 1 1.0 > -Random substitutional model. ->> 6 ! - CONSTITUENT LIQUID : AL,MG,SI: ! - -PARAMETER G(LIQUID,AL;0) - 273.00 +11005.029-11.841867*T+7.934E-20*T**7+GHSERAL#; 700.00 Y - +11005.03-11.841867*T+7.9337E-20*T**7+GHSERAL#; 933.47 Y - +10482.382-11.253974*T+1.231E+28*T**(-9)+GHSERAL#; 2900.00 N -REF:0 ! -PARAMETER G(LIQUID,MG;0) - 273.00 +8202.243-8.83693*T+GHSERMG#-8.0176E-20*T**7; 923.00 Y - +8690.316-9.392158*T+GHSERMG#-1.038192E+28*T**(-9); 6000.00 N -REF:31 ! -PARAMETER G(LIQUID,SI;0) - 273.00 +50696.36-30.099439*T+2.0931E-21*T**7+GHSERSI#; 1687.00 Y - +49828.165-29.559068*T+4.2037E+30*T**(-9)+GHSERSI#; 3600.00 N -REF:0 ! - -PARAMETER L(LIQUID,AL,MG;0) 273.00 -12000.0+8.566*T; 6000.00 N -REF:31 ! -PARAMETER L(LIQUID,AL,MG;1) 273.00 +1894.0-3.000*T; 6000.00 N -REF:31 ! -PARAMETER L(LIQUID,AL,MG;2) 273.00 +2000.0; 6000.00 N -REF:31 ! -PARAMETER L(LIQUID,AL,SI;0) 273.00 -11655.93-0.92934*T; 6000.00 N -REF:37 ! -PARAMETER L(LIQUID,AL,SI;1) 273.00 -2873.45+0.2945*T; 6000.00 N -REF:37 ! -PARAMETER L(LIQUID,AL,SI;2) 273.00 +2520; 6000.00 N -REF:37 ! -PARAMETER L(LIQUID,MG,SI;0) 273.00 -70055+24.98*T; 6000.00 N -REF:39 ! -PARAMETER L(LIQUID,MG,SI;1) 273.00 -1300; 6000.00 N -REF:39 ! -PARAMETER L(LIQUID,MG,SI;2) 273.00 +6272; 6000.00 N -REF:39 ! - -PARAMETER L(LIQUID,AL,MG,SI;0) 273.00 +11882; 6000.00 N -REF:34 ! -PARAMETER L(LIQUID,AL,MG,SI;1) 273.00 -24207; 6000.00 N -REF:34 ! -PARAMETER L(LIQUID,AL,MG,SI;2) 273.00 -38223; 6000.00 N -REF:34 ! - -$ -$ FCC_A1 -$ - PHASE FCC_A1 % 2 1 1 > Al-Matrix phase, face-centered cubic >> 6 ! - CONSTITUENT FCC_A1 : AL%,MG,SI : VA : ! - -PARAMETER G(FCC_A1,AL:VA;0) 273.00 +GHSERAL#; 2900.00 N -REF:0 ! -PARAMETER G(FCC_A1,MG:VA;0) 273.00 +2600-0.90*T+GHSERMG#; 6000.00 N -REF:0 ! -PARAMETER G(FCC_A1,SI:VA;0) 273.00 +51000-21.8*T+GHSERSI#; 3600.00 N -REF:0 ! - -PARAMETER L(FCC_A1,AL,MG:VA;0) 273.00 +1*LDF0ALMG#; 6000.00 N -REF:41 ! -PARAMETER L(FCC_A1,AL,MG:VA;1) 273.00 +1*LDF1ALMG#; 6000.00 N -REF:41 ! -PARAMETER L(FCC_A1,AL,MG:VA;2) 273.00 +1*LDF2ALMG#; 6000.00 N -REF:41 ! -PARAMETER L(FCC_A1,AL,SI:VA;0) 273.00 +1*LDF0ALSI#; 6000.00 N -REF:41 ! -PARAMETER L(FCC_A1,AL,SI:VA;1) 273.00 +1*LDF1ALSI#; 6000.00 N -REF:37 ! -PARAMETER L(FCC_A1,AL,SI:VA;2) 273.00 +1*LDF2ALSI#; 6000.00 N -REF:37 ! -PARAMETER L(FCC_A1,MG,SI:VA;0) 273.00 +1*LDF0SIMG#; 6000.00 N -REF:41 ! -PARAMETER L(FCC_A1,MG,SI:VA;1) 273.00 +1*LDF1SIMG#; 6000.00 N -REF:31 ! -PARAMETER L(FCC_A1,MG,SI:VA;2) 273.00 +1*LDF2SIMG#; 6000.00 N -REF:31 ! - -$ -$ SI_DIAMOND_A4 -$ - PHASE SI_DIAMOND_A4 % 1 1 > -Silicon precipitate. Space group Fd3m, prototype: C(diamond) ->> 4 ! - CONSTITUENT SI_DIAMOND_A4 : AL,MG,SI% : ! -PARAMETER G(SI_DIAMOND_A4,AL;0) 273.00 +30.0*T+GHSERAL#; 6000.00 N -REF:31 ! -PARAMETER G(SI_DIAMOND_A4,MG;0) 273.00 +GHSERMG#; 6000.00 N -REF:41 ! -PARAMETER G(SI_DIAMOND_A4,SI;0) 273.00 +GHSERSI#; 6000.00 N -REF:31 ! -PARAMETER L(SI_DIAMOND_A4,AL,SI;0) 273.00 +111417.7-46.1392*T; 6000.00 N -REF:37 ! -PARAMETER L(SI_DIAMOND_A4,MG,SI;0) 273.00 +65000; 6000.00 N -REF:41 ! - -$ -$ MG2SI_B -$ - PHASE MG2SI_B % 2 2 1 > -Face-centered cubic equilibrium phase. -Incoherent precipitates (plates or cubes) in the overaging regime, 6xxx alloys. [REF:C31,C32] ->> 5 ! - CONSTITUENT MG2SI_B : MG : SI : ! -PARAMETER G(MG2SI_B,MG:SI;0) 273.00 GMG2SI; 6000.00 N -REF:31 ! - -$ -$ BETA_AL3MG2 -$ - PHASE BETA_AL3MG2 % 2 89 140 > -Cubic (Al,Zn)3Mg2 equilibrium phase, prototype: Al3Mg2. ->> 2 ! - CONSTITUENT BETA_AL3MG2 : MG : AL : ! -PARAMETER G(BETA_AL3MG2,MG:AL;0) 273.00 -246175.0-675.5500*T - +89*GHSERMG#+140*GHSERAL#; 6000.00 N -REF:31 ! - -$ -$ E_AL30MG23 -$ - PHASE E_AL30MG23 % 2 23 30 > -Epsilon equilibrium phase, prototype: Co5Cr2Mo3 ->> 1 ! - CONSTITUENT E_AL30MG23 : MG : AL : ! -PARAMETER G(E_AL30MG23,MG:AL;0) 273.00 -52565.4-173.1775*T - +23*GHSERMG#+30*GHSERAL#; 6000.00 N -REF:31 ! - -$ -$ G_AL12MG17 -$ - PHASE G_AL12MG17 % 3 10 24 24 > -Gamma equilibrium phase, space group: I43m, prototype: Alpha-Mn. -Precipitate in Al-Mg-Zn alloy ->> 2 ! - CONSTITUENT G_AL12MG17 : MG : AL,MG% : AL : ! -PARAMETER G(G_AL12MG17,MG:MG:MG;0) 273.00 +266939.2-174.638*T+58*GHSERMG#; 6000.00 N -REF:40 ! -PARAMETER G(G_AL12MG17,MG:AL:AL;0) 273.00 +195750-203*T - +10*GHSERMG#+48*GHSERAL#; 6000.00 N -REF:40 ! -PARAMETER G(G_AL12MG17,MG:MG:AL;0) 273.00 -105560-101.5*T - +34*GHSERMG#+24*GHSERAL#; 6000.00 N -REF:40 ! -PARAMETER G(G_AL12MG17,MG:AL:MG;0) 273.00 +568249.2-276.138*T - +34*GHSERMG#+24*GHSERAL#; 6000.00 N -REF:40 ! -PARAMETER L(G_AL12MG17,MG:AL:AL,MG;0) 273.00 +226200-29*T; 6000.00 N -REF:40 ! -PARAMETER L(G_AL12MG17,MG:MG:AL,MG;0) 273.00 +226200-29*T; 6000.00 N -REF:40 ! - -$ -$ B_PRIME_L -$ - PHASE B_PRIME_L % 3 3 9 7 > -Metastable B´ phase - low-T type reflecting lowest energy modification from 1st principles. -Structure can be related to the hexagonal structure of Q-Phase, with empty Cu-sites. [REF:C11,C37] ->> 2 ! - CONSTITUENT B_PRIME_L : AL : MG : SI : ! -PARAMETER G(B_PRIME_L,AL:MG:SI;0) 273.00 -140000-10*T+3*GHSERAL#+9*GHSERMG#+7*GHSERSI#; 6000.00 N -REF:41 ! - -$ -$ MGSI_B_P -$ - PHASE MGSI_B_P % 2 1.8 1 > -Beta´, metastable hexagonal close-packed rod-like Mg-Si precipitates in 6xxx alloys. [REF:C31,C32,C34] ->> 5 ! - CONSTITUENT MGSI_B_P : MG : SI : ! - -PARAMETER G(MGSI_B_P,MG:SI;0) 273.00 GMG2SI + 24250 - 40.4*T + 5.9*T*LN(T) - 0.0042*T**2 - 130000*T**(-1); 6000.00 N -REF:41 ! - -$ -$ MG5SI6_B_DP -$ - PHASE MG5SI6_B_DP % 2 5 6 > -Main metastable hardening phase in 6xxx, monoclinic with space group C2/m. Al-free Mg5Si6. -Semicoherent needles. [REF:C31,C32,C35]. ->> 5 ! - CONSTITUENT MG5SI6_B_DP : MG : SI : ! -PARAMETER G(MG5SI6_B_DP,MG:SI;0) 273.00 -5000-30*T-0.0096*T**2 - -1e-7*T**3+5*GHSERMG#+6*GHSERSI#; 6000.00 N -REF:41 ! - -$ -$ U1_PHASE -$ - PHASE U1_PHASE % 3 2 1 2 > -Needle-like precipitate with trigonal structure observed in 6xxx in the beta´ precipitation regime. [REF:C37] ->> 3 ! - CONSTITUENT U1_PHASE : AL : MG : SI : ! -PARAMETER G(U1_PHASE,AL:MG:SI;0) 273.00 -5000-10*T-0.0055*T**2 - +3e-6*T**3+150000*T**(-1)+2*GHSERAL#+GHSERMG#+2*GHSERSI#; 6000.00 N -REF:41 ! - -$ -$ U2_PHASE -$ - PHASE U2_PHASE % 3 1 1 1 > -Needle-like precipitate with orthorhombic structure in 6xxx in the beta' precipitation regime. [REF:C37] ->> 3 ! - CONSTITUENT U2_PHASE : AL : MG : SI : ! -PARAMETER G(U2_PHASE,AL:MG:SI;0) 273.00 -14000-3.75*T-0.0015*T**2 - +7.5e-7*T**3+62500*T**(-1)+1*GHSERAL#+1*GHSERMG#+1*GHSERSI#; 6000.00 N -REF:41 ! - -$ -$ Mobility terms -$ -PARAMETER MQ(FCC_A1&AL,*) 273.00 -127200+R*T*LN(1.39e-5); 6000.00 N -Ref:41 ! - -PARAMETER MQ(FCC_A1&MG,AL:*) 273.00 -119000+R*T*LN(3.7e-5); 6000.00 N -Ref:41! -PARAMETER MQ(FCC_A1&MG,MG:*) 273.00 -112499+R*T*LN(5.7e-5); 6000.00 N -Ref:41! -PARAMETER MQ(FCC_A1&MG,MG,AL:*) 273.00 54511; 6000.00 N -Ref:41! -PARAMETER MQ(FCC_A1&MG,SI:*) 273.00 -119000+R*T*LN(3.7e-5); 6000.00 N -Ref:41! - -PARAMETER MQ(FCC_A1&SI,AL:*) 273.00 -136400+R*T*LN(2.31e-4); 6000.00 N -Ref:41 ! -PARAMETER MQ(FCC_A1&SI,MG:*) 273.00 -136400+R*T*LN(2.31e-4); 6000.00 N -Ref:41 ! -PARAMETER MQ(FCC_A1&SI,SI:*) 273.00 -448400+R*T*LN(154e-4); 6000.00 N -Ref:41 ! - -$ -$ References -$ - -LIST_OF_REFERENCES - -A00201-0 unary A.T. Dinsdale, SGTE Data of pure elements, CALPHAD, Vol. 15, No. 4, pp 317-425, 1991. - 31 bin, tern N. Saunders, COST 507: Thermochemical database for light metal alloys, Vol. 2, pp 23-27, 1998. -A00166-34 Al-Mg-Si J. Lacaze and R. Valdes, CALPHAD-type assessment of the Al-Mg-Si system, Monatshefte f. Chemie, Vol. 136, A00169-37 Al-Fe-Si Z.-K. Liu, Y.A. Chang, Thermodynamic assessment of the Al-Fe-Si system, Metall. Mater. Trans A, Vol. 30A, pp 1081-1095, 1999. -A00172-39 Mg-Si-Li D. Kevorkov, R. Schmid-Fetzer, F. Zhang, Phase equilibria and thermodynamics of the Mg-Si-Li system and remodeling of the Mg-Si system, J. Phase Equilib. Diffusion, Vol. 25, pp 140-151, 2004. -A00173-40 Al-Mg-Zn P. Liang et al., Experimental investigation and thermodynamic calculation of the Al-Mg-Zn system, Thermochim. Acta, Vol. 314, pp 87-110, 1998. - 41 E. Povoden-Karadeniz et al, Calphad modeling of metastable phases in the Al-Mg-Si system, CALPHAD, Vol. 42 pp 94-104, 1991 -$ ################################################################################################################################################################################################################################################################################ - -$ References of phase descriptions - - C31 Al-Mg-Si J.P. Lynch, L.M. Brown, M.H.Jacobs, Microanalysis of age-hardening precipitates in Aluminium-alloys, Acta metall. mater. 30 (1982) 1389. -C00025-C32 Al-Mg-Si G.A. Edwards, K. Stiller, G.L. Dunlop, M.J. Couper, The precipitaton sequence in Al-Mg-Si alloys, Acta mater. 46 (1998) 3893-3904. -C00026-C33 Al-Mg-Si, GP-zones K. Matsuda, H. Gamada, K. Fujii, Y. Uetani, T. Sato, A. Kamio, S. Ikeno, High-resolution electron microscopy on the structure of Guinier-Preston zones in an Al-1.6mass% Mg2Si alloy, Metall. mater. trans. A 29 (1998) 1161-1167. -C00027-C34 Mg-Si beta´ R. Vissers, M.A. van Huis, J. Jansen, H.W. Zandbergen, C.D. Marioara, S.J. Andersen, The structure of the beta´ phase in Al-Mg-Si alloys, Acta mater. 55 (2007) 3815-3823. -C00028-C35 Mg-Si beta´´ H.W. Zandbergen, S.J. Andersen, J. Jansen, Structure determination of Mg5Si6 particles in Al by dynamic electron diffraction studies, Science 277 (1997) 1221-1225. - C36 Al-Mg-Si H.S. Hasting, A.G. Froseth, S.J. Andersen, R. Vissers, J.C. Walmsley, C.D. Marioara, F. Danoix, W. Lefebvre, R. Holmestad, Composition of beta´´ precipitates in Al-Mg-Si alloys by atom probe tomography and first principles calculations, J. appl. phys. 106 (2009) 123527. -C00029-C37 Al-Mg-Si, U-phases S.J. Andersen, C.D. Marioara, R. Vissers, A. Froseth, H.W. Zandbergen, The structural relation between precipitates in Al-Mg-Si alloys, the Al-matrix and diamond silicon, with emphasis on the trigonal U1-MgAl2Si2, Mater. sci. eng. A 444 (2007) 157-169. - - 11 Smithells Metals Reference Book, Seventh Edition, Butterworth-Heinemann, Oxford, 1999. - 32 J. Yao, Y.W. Cui, H. Liu, H. Kou, J. Li, L. Zhou, Computer Coupling of Phase Diagrams and Thermochemistry Vol.32, 602-607, 2008. -""" - -FECRC_DB = """ -$ -$ Database for Cr-Fe-C from A.V. Khvan and B. Hallstedt, 2013 -$ -$ ---------------------------------------------------------------------------- - TEMP-LIM 298.15 6000.00 ! -$ -$ELEMENT NAME REF. STATE ATOMIC MASS H298-H0 S298 ! -$ - ELEMENT VA VACUUM 0.0 0.0 0.0 ! - ELEMENT C GRAPHITE 12.011 1054.0 5.7423 ! - ELEMENT CR BCC_A2 51.996 4050.0 23.5429 ! - ELEMENT FE BCC_A2 55.847 4489.0 27.2797 ! -$ ---------------------------------------------------------------------------- -$ Phase definitions -$ - PHASE LIQUID:L % 1 1 ! - CONST LIQUID:L : C CR FE : ! -$ -$ Fcc (cF4, Fm-3m) and MeX (cF8, Fm-3m) -$ - PHASE FCC_A1 %A 2 1 1 ! - CONST FCC_A1 : CR FE% : C VA% : ! -$ -$ Bcc (cI2, Im-3m) -$ - PHASE BCC_A2 %B 2 1 3 ! - CONST BCC_A2 : CR FE : C VA% : ! -$ -$ Hcp (hP2, P6_3/mmc) and Me2X (NiAs-type, hP4, P6_3/mmc, B8_1) -$ - PHASE HCP_A3 % 2 1 0.5 ! - CONST HCP_A3 : CR FE : C VA% : ! -$ -$ Prototype C (cF8, Fd-3m) -$ - PHASE DIAMOND_A4 % 1 1 ! - CONST DIAMOND_A4 : C : ! -$ -$ Prototype C (hP4, P6_3/mmc) -$ - PHASE GRAPHITE % 1 1 ! - CONST GRAPHITE : C : ! -$ -$ Prototype Fe3C (oP16, Pnma) -$ - PHASE CEMENTITE_D011 %A 2 3 1 ! - CONST CEMENTITE_D011 : CR FE : C : ! -$ -$ Prototype Cr3C2 (oP20, Pnma) -$ - PHASE CR3C2_D510 % 2 3 2 ! - CONST CR3C2_D510 : CR : C : ! -$ -$ Prototype Cr7C3 (oP40, Pnma) -$ - PHASE M7C3_D101 % 2 7 3 ! - CONST M7C3_D101 : CR FE : C : ! -$ -$ Prototype Cr23C6 (cF116, Fm-3m) -$ - PHASE M23C6_D84 % 3 20 3 6 ! - CONST M23C6_D84 : CR FE : CR FE : C : ! -$ -$ Prototype Cr23C6 (cF116, Fm-3m) -$ - PHASE M23C6_S % 2 23 6 ! - CONST M23C6_S : CR FE : C : ! -$ -$ Prototype CrFe (tP30, P4_2/mnm) -$ - PHASE SIGMA_D8B % 3 10 4 16 ! - CONST SIGMA_D8B : FE : CR : CR FE : ! -$ -$ Sigma in TCFE 2000 and SSOL V4 -$ - PHASE SIGMA_OLD % 3 8 4 18 ! - CONST SIGMA_OLD : FE : CR : CR FE : ! -$ ---------------------------------------------------------------------------- -$ Defaults -$ - DEFAULT-COM DEFINE_SYSTEM_ELEMENT VA ! - DEFAULT-COM REJECT_PHASE SIGMA_OLD M23C6_S ! - TYPE-DEF % SEQ * ! - TYPE-DEF A GES AMEND_PHASE_DESCRIPTION @ MAGNETIC -3 0.28 ! - TYPE-DEF B GES AMEND_PHASE_DESCRIPTION @ MAGNETIC -1 0.4 ! - FUNCTION ZERO 298.15 0; 6000 N ! - FUNCTION UN_ASS 298.15 0; 6000 N ! -$ ---------------------------------------------------------------------------- -$ Element data -$ ---------------------------------------------------------------------------- -$ C -$ - PAR G(GRAPHITE,C),, +GHSERCC;,, N 91Din ! - PAR G(DIAMOND_A4,C),, +GDIACC;,, N 91Din ! - PAR G(LIQUID,C),, +GHSERCC+117369-24.63*T;,, N 91Din ! -$ - FUNCTION GHSERCC 298.15 -17368.441+170.73*T-24.3*T*LN(T) - -4.723E-04*T**2+2562600*T**(-1)-2.643E+08*T**(-2)+1.2E+10*T**(-3); - 6000.00 N ! - FUNCTION GDIACC 298.15 -16359.441+175.61*T-24.31*T*LN(T) - -4.723E-04*T**2+2698000*T**(-1)-2.61E+08*T**(-2)+1.11E+10*T**(-3); - 6000.00 N ! -$ ---------------------------------------------------------------------------- -$ Cr -$ - PAR G(BCC_A2,CR:VA),, +GHSERCR;,, N 91Din ! - PAR TC(BCC_A2,CR:VA),, -311.50;,, N 91Din ! - PAR BM(BCC_A2,CR:VA),, -0.008;,, N 91Din ! - PAR G(FCC_A1,CR:VA),, +GHSERCR+7284+0.163*T;,, N 91Din ! - PAR TC(FCC_A1,CR:VA),, -1109.00;,, N 91Din ! - PAR BM(FCC_A1,CR:VA),, -2.46;,, N 91Din ! - PAR G(HCP_A3,CR:VA),, +GHSERCR+4438;,, N 91Din ! - PAR TC(HCP_A3,CR:VA),, -1109.00;,, N 91Din ! - PAR BM(HCP_A3,CR:VA),, -2.46;,, N 91Din ! - PAR G(LIQUID,CR),, +GLIQCR;,, N 91Din ! -$ - FUNCTION GHSERCR 298.15 -8856.94+157.48*T-26.908*T*LN(T) - +0.00189435*T**2-1.47721E-06*T**3+139250*T**(-1); - 2180.00 Y -34869.344+344.18*T-50*T*LN(T)-2.88526E+32*T**(-9); - 6000.00 N ! - FUNCTION GLIQCR 298.15 +24339.955-11.420225*T+GHSERCR+2.37615E-21*T**7; - 2180.00 Y -16459.984+335.616316*T-50*T*LN(T); - 6000.00 N ! - FUNCTION GFCCCR 298.15 +GHSERCR+7284+0.163*T; 6000 N ! -$ ---------------------------------------------------------------------------- -$ Fe -$ - PAR G(BCC_A2,FE:VA),, +GHSERFE;,, N 91Din ! - PAR TC(BCC_A2,FE:VA),, 1043.00;,, N 91Din ! - PAR BM(BCC_A2,FE:VA),, 2.22;,, N 91Din ! - PAR G(FCC_A1,FE:VA),, +GFCCFE;,, N 91Din ! - PAR TC(FCC_A1,FE:VA),, -201.00;,, N 91Din ! - PAR BM(FCC_A1,FE:VA),, -2.10;,, N 91Din ! - PAR G(HCP_A3,FE:VA),, +GHCPFE;,, N 91Din ! - PAR G(CBCC_A12,FE:VA),, +GHSERFE+4745;,, N 91Din ! - PAR G(CUB_A13,FE:VA),, +GHSERFE+3745;,, N 91Din ! - PAR G(LIQUID,FE),, +GLIQFE;,, N 91Din ! -$ - FUNCTION GHSERFE 298.15 +1225.7+124.134*T-23.5143*T*LN(T) - -0.00439752*T**2-5.8927E-08*T**3+77359*T**(-1); - 1811.00 Y -25383.581+299.31255*T-46*T*LN(T)+2.29603E+31*T**(-9); - 6000.00 N ! - FUNCTION GFCCFE 298.15 -1462.4+8.282*T-1.15*T*LN(T) - +6.4E-04*T**2+GHSERFE; - 1811.00 Y -1713.815+0.940009*T+GHSERFE+4.9251E+30*T**(-9); - 6000.00 N ! - FUNCTION GHCPFE 298.15 -3705.78+12.591*T-1.15*T*LN(T) - +6.4E-04*T**2+GHSERFE; - 1811.00 Y -3957.195+5.249009*T+GHSERFE+4.9251E+30*T**(-9); - 6000.00 N ! - FUNCTION GLIQFE 298.15 +12040.17-6.55843*T+GHSERFE-3.67516E-21*T**7; - 1811.00 Y -10838.83+291.302*T-46*T*LN(T); - 6000.00 N ! -$ ---------------------------------------------------------------------------- -$ Binary systems -$ ---------------------------------------------------------------------------- -$ Cr-Fe -$ -$ From J.-O. Andersson and B. Sundman 1987 (included in LB Vol. 2) -$ Liquid changed by B.-J. Lee 1993 -$ -$ The SIGMA_D8B and SIGMA_OLD phase fields are very similar. -$ Checked against LB. Checked at 6000 K. -$ - PAR L(LIQUID,CR,FE;0),, -17737+7.996546*T;,, N 93Lee1 ! - PAR L(LIQUID,CR,FE;1),, -1331;,, N 93Lee1 ! -$PAR L(LIQUID,CR,FE;0),, -14550+6.65*T;,, N 87And1 ! -$ - PAR L(BCC_A2,CR,FE:VA;0),, +20500-9.68*T;,, N 87And1 ! - PAR BM(BCC_A2,CR,FE:VA;0),, -0.85;,, N 87And1 ! - PAR TC(BCC_A2,CR,FE:VA;0),, +1650;,, N 87And1 ! - PAR TC(BCC_A2,CR,FE:VA;1),, +550;,, N 87And1 ! -$ - PAR L(FCC_A1,CR,FE:VA;0),, +10833-7.477*T;,, N 87And1 ! - PAR L(FCC_A1,CR,FE:VA;1),, +1410;,, N 87And1 ! -$ - PAR G(SIGMA_D8B,FE:CR:CR),, +10*GFCCFE+20*GHSERCR - +83844-111.32*T;,, N 00Wes ! - PAR G(SIGMA_D8B,FE:CR:FE),, +10*GFCCFE+4*GHSERCR - +16*GHSERFE+140515-111.32*T;,, N 00Wes ! -$ - PAR G(SIGMA_OLD,FE:CR:CR),, +8*GFCCFE+22*GHSERCR - +92300-95.96*T;,, N 87And1 ! - PAR G(SIGMA_OLD,FE:CR:FE),, +8*GFCCFE+4*GHSERCR - +18*GHSERFE+117300-95.96*T;,, N 87And1 ! -$ -$ metastable -$ - PAR L(HCP_A3,CR,FE:VA;0),, +10833-7.477*T;,, N 90Fri1 ! -$ ---------------------------------------------------------------------------- -$ Cr-C -$ -$ A.V. Khvan, B. Hallstedt, K. Chang, Calphad, 39, 54-61(2012). -$ -$ Checked against paper. Checked at 6000 K. -$ -$ The liquid interaction has been changed compared to 92Lee. -$ There is still very nearly a stable miscibility gap on the C-rich side. -$ -$ M7C3 and M3C2 become stable again above 9000K. This is a result of the -$ T**2 terms and is not important. -$ -$ The enthalpies and Gibbs energies of formation compare well with recent -$ data from Kleykamp (J. Alloys Compd., 321, 138-45(2001)) and -$ Meschel and Kleppa on Cr7C3 (J. Alloys Compd., 257, 227-33(1997)). -$ The standard entropies and cp at 298K are not quite as good as they -$ could (or should) be, but it doesn't motivate a reassessment. -$ - PAR L(LIQUID,C,CR;0),, -69245-35*T;,, N 12Khv1 ! - PAR L(LIQUID,C,CR;1),, +83242;,, N 12Khv1 ! - PAR L(LIQUID,C,CR;2),, +88000;,, N 12Khv1 ! -$ - PAR G(BCC_A2,CR:C),, +GHSERCR+3*GHSERCC+416000;,, N 87And2 ! - PAR TC(BCC_A2,CR:C),, -311.50;,, N 90Kaj ! - PAR BM(BCC_A2,CR:C),, -0.008;,, N 90Kaj ! - PAR L(BCC_A2,CR:C,VA;0),, -190*T;,, N 87And2 ! -$ - PAR G(M23C6_D84,CR:CR:C),, +GCRM23C6;,, N 87And2 ! - PAR G(M23C6_S,CR:C),, +GCRM23C6;,, N 87And2 ! - PAR G(CR3C2_D510,CR:C),, -100823.8+530.66989*T - -89.6694*T*LN(T)-0.0301188*T**2;,, N 92Lee ! - PAR G(M7C3_D101,CR:C),, -201690+1103.128*T - -190.177*T*LN(T)-0.0578207*T**2;,, N 92Lee ! -$ -$ metastable -$ - PAR G(FCC_A1,CR:C),, +GHSERCR+GHSERCC - +1200-1.94*T;,, N 92Fer ! -$ The parameter below turned out to be the old one. -$PAR G(FCC_A1,CR:C),, -32690+248.42*T -$ -41.678*T*LN(T)-0.00301955*T**2;,, N 04Bra ! - PAR L(FCC_A1,CR:C,VA;0),, -11977+6.8194*T;,, N 92Lee ! -$ - PAR G(HCP_A3,CR:C),, +GHSERCR+0.5*GHSERCC - -18504+9.4173*T-2.4997*T*LN(T)+0.001386*T**2;,, N 92Lee ! - PAR L(HCP_A3,CR:C,VA;0),, +4165;,, N 88Gus5 ! -$ - PAR G(CEMENTITE_D011,CR:C),, +3*GHSERCR+GHSERCC - -48000-9.2888*T;,, N 92Fer ! -$ - PAR G(FE4N_L1,CR:C),, +UN_ASS;,, N ! -$ - PAR G(KSI_CARBIDE,CR:C),, +3*GHSERCR+GHSERCC - +114060-47.2519*T;,, N 92Qiu ! -$ - FUNCTION GCRM23C6 298.15 -521983+3622.24*T-620.965*T*LN(T)-0.126431*T**2; - 6000.00 N ! -$ ---------------------------------------------------------------------------- -$ Fe-C -$ -$ Database for Fe-C from B. Hallstedt et al. 2010 -$ -$ B. Hallstedt, D. Djurovic, J. von Appen, R. Dronskowski, A. Dick, -$ F. Koermann, T. Hickel, J. Neugebauer, Calphad, 34, 129-33(2010). -$ -$ Based on the assessment by P. Gustafson 1985. -$ Cementite has been changed. Bcc-Fe, graphite and cementite have Gibbs energy -$ expressions valid from 0.01 K in the paper, but here the standard SGTE -$ expressions are kept. -$ -$ The eutectoid (bcc+fcc+cem) temperature changed from 999.78 to 999.68 K. -$ The eutectic (fcc+liq+cem) temperature changed from 1421.51 to 1421.31 K. -$ The congruent melting point of cementite changed from 1497.8 to 1497.1 K. -$ -$ BCC_A2 is stable above 4000 K around x(C)=0.33. -$ There is an inverse miscibility gap in the liquid with a minimum at -$ 5559 K and x(C)=0.53. -$ - PAR L(LIQUID,C,FE;0),, -124320+28.5*T;,, N 85Gus ! - PAR L(LIQUID,C,FE;1),, +19300;,, N 85Gus ! - PAR L(LIQUID,C,FE;2),, +49260-19*T;,, N 85Gus ! -$ - PAR G(BCC_A2,FE:C),, +GHSERFE+3*GHSERCC - +322050+75.667*T;,, N 85Gus ! - PAR TC(BCC_A2,FE:C),, 1043.00;,, N 85Gus ! - PAR BM(BCC_A2,FE:C),, 2.22;,, N 85Gus ! - PAR L(BCC_A2,FE:C,VA;0),, -190*T;,, N 85Gus ! -$ - PAR G(FCC_A1,FE:C),, +GFCCFE+GHSERCC - +77207-15.877*T;,, N 85Gus ! - PAR TC(FCC_A1,FE:C),, -201.00;,, N 85Gus ! - PAR BM(FCC_A1,FE:C),, -2.10;,, N 85Gus ! - PAR L(FCC_A1,FE:C,VA;0),, -34671;,, N 85Gus ! -$ - PAR G(CEMENTITE_D011,FE:C) 0.01 +GFECEM;,, N 10Hal ! - PAR TC(CEMENTITE_D011,FE:C) 0.01 485.00;,, N 10Hal ! -$ For Fe3C - PAR BM(CEMENTITE_D011,FE:C) 0.01 1.008;,, N 10Hal ! -$ -$ metastable -$ - PAR G(HCP_A3,FE:C),, +GFCCFE+0.5*GHSERCC - +52905-11.9075*T;,, N 88And2 ! - PAR L(HCP_A3,FE:C,VA;0),, -17335;,, N 88And2 ! -$ - PAR G(CBCC_A12,FE:C),, +GHSERFE+GHSERCC+80000;,, N 90Hua2 ! - PAR L(CBCC_A12,FE:C,VA;0),, -34671;,, N 90Hua2 ! -$ - PAR G(CUB_A13,FE:C),, +GHSERFE+GHSERCC+90000;,, N 90Hua2 ! - PAR L(CUB_A13,FE:C,VA;0),, -34671;,, N 90Hua2 ! -$ - PAR G(M7C3_D101,FE:C),, +2.333333*GFECEM - +0.666667*GHSERCC+13200;,, N 11Dju ! -$PAR G(M7C3_D101,FE:C),, +7*GHSERFE+3*GHSERCC -$ +75000-48.2168*T;,, N 92Lee ! - PAR G(M23C6_D84,FE:FE:C),, +GFEM23C6;,, N 11Dju ! - PAR G(M23C6_S,FE:C),, +GFEM23C6;,, N 11Dju ! - PAR G(M5C2,FE:C),, +1.666667*GFECEM - +0.333333*GHSERCC+6200;,, N 11Dju ! -$PAR G(M5C2,FE:C),, +5*GHSERFE+2*GHSERCC -$ +54852-33.7518*T;,, N 93Lee2 ! - PAR G(FE4N_L1,FE:C),, +4*GHSERFE+GHSERCC+23224;,, N 91Du ! - PAR G(FECN_CHI,FE:C),, +2.2*GHSERFE+GHSERCC - +9131-4.539*T;,, N 91Du ! - PAR G(KSI_CARBIDE,FE:C),, +3*GHSERFE+GHSERCC - +14540+20*T;,, N 88And2 ! - PAR G(V3C2,FE:C),, +7250+741.566*T - -125.833*T*LN(T)+779485*T**(-1);,, N 91Hua ! -$ - FUNCTION GFECEM 0.01 +11369.937746-5.641259263*T-8.333E-6*T**4; - 43.00 Y +11622.647246-59.537709263*T+15.74232*T*LN(T) - -0.27565*T**2; - 163.00 Y -10195.860754+690.949887637*T-118.47637*T*LN(T) - -0.0007*T**2+590527*T**(-1); - 6000.00 N ! - FUNCTION GFEM23C6 298.15 +7.666667*GFECEM-1.666667*GHSERCC+15000; 6000 N ! -$ Function from 88And3 below -$FUNCTION GFEM23C6 298.15 +7.666667*GFECEM-1.666667*GHSERCC -$ +66920-40*T; -$ 6000.00 N ! -$ ------------------------------------------------------------------------------ -$ Ternary system -$ -$ From A.V. Khvan and B. Hallstedt, 2013 -$ - PAR L(LIQUID,C,CR,FE;0),, -528500;,, N 13Khv ! - PAR L(LIQUID,C,CR,FE;1),, +57150;,, N 13Khv ! - PAR L(LIQUID,C,CR,FE;2),, +62630;,, N 13Khv ! -$ - PAR L(BCC_A2,CR,FE:C;0),, -1320000+667.7*T;,, N 13Khv ! - PAR BM(BCC_A2,CR,FE:C;0),, -0.85;,, N 88And3 ! - PAR TC(BCC_A2,CR,FE:C;0),, +1650;,, N 88And3 ! - PAR TC(BCC_A2,CR,FE:C;1),, +550;,, N 88And3 ! -$ - PAR L(FCC_A1,CR,FE:C;0),, -69534+3.2353*T;,, N 13Khv ! -$ - PAR L(CEMENTITE_D011,CR,FE:C;0),, +14586-9.18*T;,, N 13Khv ! -$ - PAR G(M23C6_D84,FE:CR:C),, +0.130435*GCRM23C6 - +0.869565*GFEM23C6;,, N 88And3 ! - PAR G(M23C6_D84,CR:FE:C),, +0.869565*GCRM23C6 - +0.130435*GFEM23C6;,, N 88And3 ! - PAR L(M23C6_D84,CR,FE:CR:C;0),, +6609;,, N 13Khv ! - PAR L(M23C6_D84,CR,FE:FE:C;0),, +6609;,, N 13Khv ! - PAR L(M23C6_D84,CR:CR,FE:C;0),, +991;,, N 13Khv ! - PAR L(M23C6_D84,FE:CR,FE:C;0),, +991;,, N 13Khv ! - PAR L(M23C6_D84,CR,FE:CR:C;1),, -43600;,, N 13Khv ! - PAR L(M23C6_D84,CR,FE:FE:C;1),, -43600;,, N 13Khv ! - PAR L(M23C6_D84,CR:CR,FE:C;1),, -6540;,, N 13Khv ! - PAR L(M23C6_D84,FE:CR,FE:C;1),, -6540;,, N 13Khv ! -$ - PAR L(M23C6_S,CR,FE:C;0),, +7600;,, N 13Khv ! - PAR L(M23C6_S,CR,FE:C;1),, -50140;,, N 13Khv ! -$ - PAR L(M7C3_D101,CR,FE:C;0),, +81940-61.86*T;,, N 13Khv ! - PAR L(M7C3_D101,CR,FE:C;1),, -7310;,, N 13Khv ! - PAR L(M7C3_D101,CR,FE:C;2),, +27050;,, N 13Khv ! -$ ------------------------------------------------------------------------------ -$ -$ - -$ D = 0.18 exp(-64500/RT) in cm2/s -PAR MQ(FCC_A1&FE,FE:*;0) 298.15 -64500*4.184 + 8.314*T*LOG(0.18e-4); 6000 N ! - -PAR MQ(FCC_A1&C,FE:VA;0) 298.15 -147723*(1-0.4*T/1801) + 8.314*T*LOG(4.53e-7); 6000 N ! -PAR MQ(FCC_A1&C,FE:C;0) 298.15 72077*(1-0.4*T/1801) + 8.314*T*LOG(4.53e-7); 6000 N ! - - - LIST-OF-REFERENCE - NUMBER SOURCE - Null 'Unknown source' - REFLAV 'Laves phase convention: G(LAVES,X:X)=+3*GHSERXX+15000' - 85Gus 'P. Gustafson, Scand. J. Metall., 14, 259-67(1985); Fe-C' - 87And1 'J.-O. Andersson, B. Sundman, Calphad, 11, 83-92(1987); Cr-Fe' - 87And2 'J.-O. Andersson, Calphad, 11, 271-76(1987); Cr-C' - 88And2 'J.-O. Andersson, Calphad, 12, 9-23(1988); Fe-Mo-C' - 88And3 'J.-O. Andersson, Metall. Trans A, 19A, 627-36(1988); Cr-Fe-C' - 88And4 'J.-O. Andersson, N. Lange, - Metall. Trans. A, 19A, 1385-94(1988); Cr-Fe-Mo' - 88Gus4 'P. Gustafson, Metall. Trans. A, 19A, 2531-46(1988); Cr-Fe-W' - 88Gus5 'P. Gustafson, Metall. Trans. A, 19A, 2547-54(1988); Cr-Fe-W-C' - 90Fri1 'K. Frisk, Metall. Trans. A, 21A, 2477-88(1990); Cr-Fe-N' - 90Hua2 'W. Huang, Metall. Trans. A, 21A, 2115-23(1990); Fe-Mn-C' - 90Kaj 'M. Kajihara, M. Hillert, - Metall. Mater. Trans. A, 21A, 2777-87(1990); Cr-C' - 91Din 'A.T. Dinsdale, Calphad, 15, 317-425(1991).' - 91Du 'H. Du, M. Hillert, Z. Metallkd., 82, 310-16(1991); Fe-C-N' - 91Hua 'W. Huang, Metall. Trans. A, 22A, 1911-20(1991); Fe-Mn-V-C' - 92Fer 'A. Fernandez-Guillermet, G. Grimvall, - J. Phys. Chem. Solids, 53, 105-25(1992); Cr-C' - 92Lee 'B.-J. Lee, Calphad, 16, 121-49(1992); Cr-C, Cr-Fe-C' - 92Qiu 'C. Qiu, ISIJ Int., 32, 1117-27(1992); Cr-Fe-Mo-C' - 93Lee1 'B.-J. Lee, Calphad, 17, 251-68(1993); Cr-Fe, Cr-Fe-C' - 93Lee2 'B.-J. Lee, Metall. Trans. A, 24A, 1017-25(1993); Cr-Fe-Mn-C' - 99Lee 'B.-J. Lee, unpublished, 1999' - 00Wes 'S. Westman, unpublished, 2000; Cr-Fe' - 04Bra 'J. Bratberg, K. Frisk, Metall. Mater. Trans. A, - 35A, 3649-63(2004); Cr-Fe-V-C' - 10Hal 'B. Hallstedt, D. Djurovic, J. von Appen, R. Dronskowski, A. Dick, - F. Koermann, T. Hickel, J. Neugebauer, - Calphad, 34, 129-33(2010); Fe-C' - 11Dju 'D. Djurovic, B. Hallstedt, J. von Appen, R. Dronskowski, - Calphad, 35, 479-91(2011); Fe-Mn, Fe-Mn-C' - 12Khv1 'A.V. Khvan, B. Hallstedt, K. Chang, Calphad, 39, 54-61(2012); Cr-C' - 13Khv 'A.V. Khvan, B. Hallstedt, unpublished, 2013; Cr-Fe-C' -! -""" \ No newline at end of file +CuNi_datasets = [ + # D0 for Cu in Cu + { + "components": ["CU", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": 1273}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["CU", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_D0_CU", + "values": [[[4.89e-5]]], + "reference": "Ghosh2001" + }, + # Q for Cu in Cu + { + "components": ["CU", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": 1273}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["CU", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_Q_CU", + "values": [[[205872]]], + "reference": "Ghosh2001" + }, + # D0 for Cu in Ni + { + "components": ["NI", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": 1273}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["NI", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_D0_CU", + "values": [[[7.24e-5]]], + "reference": "Anand1965" + }, + # Q for Cu in Ni + { + "components": ["NI", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": 1273}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["NI", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_Q_CU", + "values": [[[255224]]], + "reference": "Anand1965" + }, + # D0 for Cu in Cu-Ni + { + "components": ["CU", "NI", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": 1273}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [ [["CU", "NI"], "VA"], [["CU", "NI"], "VA"], [["CU", "NI"], "VA"]], + "sublattice_occupancies": [ [[0.7173, 0.2827], 1], [[0.8028, 0.1972], 1], [[0.9008, 0.0992], 1]] + }, + "output": "TRACER_D0_CU", + "values": [[[2.67e-5, 1.63e-5, 4.14e-5]]], + "reference": "Anusavice1972" + }, + # Q for Cu in Cu-Ni + { + "components": ["CU", "NI", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": 1273}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [[["CU", "NI"], "VA"], [["CU", "NI"], "VA"], [["CU", "NI"], "VA"]], + "sublattice_occupancies": [ [[0.7173, 0.2827], 1], [[0.8028, 0.1972], 1], [[0.9008, 0.0992], 1]] + }, + "output": "TRACER_Q_CU", + "values": [[[215847, 205847, 210162]]], + "reference": "Anusavice1972" + }, + # D0 for Ni in Cu + { + "components": ["CU", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": 1273}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["CU", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_D0_NI", + "values": [[[1.94e-4]]], + "reference": "Anusavice1972" + }, + # Q for Ni in Cu + { + "components": ["CU", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": 1273}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["CU", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_Q_NI", + "values": [[[232826]]], + "reference": "Anusavice1972" + }, + # Q for Ni in Ni + { + "components": ["NI", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": 1273}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["NI", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_Q_NI", + "values": [[[285142]]], + "reference": "Bakker1968" + } +] + +Cu_tracer_diff_datasets = [ + { + "components": ["CU", "VA"], "phases": ["FCC_A1"], + "conditions": {"P": 101325, "T": [1013, 1080, 1103, 1185, 1210, 1248, 1283, 1318]}, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [["CU", "VA"]], + "sublattice_occupancies": [[1, 1]] + }, + "output": "TRACER_DIFF_CU", + "values": [[[0.115e-14], [0.501e-14], [0.858e-14], [3.55e-14], [5.74e-14], [11e-14], [17.5e-14], [30.2e-14]]], + "reference": "Ghosh2001" + } +] + +AlSi_tracer_D0_Al = { + "components": ["AL", "SI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 298.15 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [[["AL", "SI"], "VA"]], + "sublattice_occupancies": [[[0.9, 0.1], 1]] + }, + "output": "TRACER_D0_AL", + "values": [[[1.75e-5]]] +} + +AlSi_tracer_Q_Si = { + "components": ["AL", "SI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 298.15 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [[["AL", "SI"], "VA"]], + "sublattice_occupancies": [[[0.9, 0.1], 1]] + }, + "output": "TRACER_Q_SI", + "values": [[[160000]]] +} + +AlSi_tracer_diff_Mg = { + "components": ["AL", "SI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 298.15 + }, + "solver": { + "mode": "manual", + "sublattice_site_ratios": [1, 3], + "sublattice_configurations": [[["AL", "SI"], "VA"]], + "sublattice_occupancies": [[[0.9, 0.1], 1]] + }, + "output": "TRACER_DIFF_MG", + "values": [[[5.2e-26]]] +} + +AlSi_eq_tracer_D0_Al = { + "components": ["AL", "SI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 298.15, + "X_SI": 0.1 + }, + "output": "TRACER_D0_AL", + "values": [[[1.75e-5]]] +} + +AlSi_eq_tracer_Q_Si = { + "components": ["AL", "SI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 298.15, + "X_SI": 0.1 + }, + "output": "TRACER_Q_SI", + "values": [[[160000]]] +} + +AlSi_eq_diff_Mg = { + "components": ["AL", "SI", "VA"], + "phases": ["FCC_A1"], + "conditions": { + "P": 101325, + "T": 298.15, + "X_SI": 0.1 + }, + "output": "TRACER_DIFF_MG", + "values": [[[5.2e-26]]] +} + +AlSi_eq_interdiff = { + "components": ["AL", "MG", "VA"], + "phases": ["FCC_A1"], + "ref_el": ["AL"], + "dependent_el": ["MG", "MG"], + "conditions": { + "P": 101325, + "T": 298.15, + "X_MG": 0.1 + }, + "output": "INTER_DIFF", + "values": [[[4.6e-25]]] +} diff --git a/kawin/tests/test_diffusion.py b/kawin/tests/test_diffusion.py index 2ddf8e4..5e869f3 100644 --- a/kawin/tests/test_diffusion.py +++ b/kawin/tests/test_diffusion.py @@ -10,7 +10,7 @@ from kawin.diffusion.DiffusionParameters import computeMobility, _computeSingleMobility, TemperatureParameters, HashTable from kawin.diffusion.HomogenizationParameters import HomogenizationParameters, computeHomogenizationFunction from kawin.thermo import GeneralThermodynamics -from kawin.tests.datasets import * +from kawin.tests.databases import * NiCrTherm = GeneralThermodynamics(NICRAL_TDB, ['NI', 'CR'], ['FCC_A1', 'BCC_A2']) NiCrAlTherm = GeneralThermodynamics(NICRAL_TDB, ['NI', 'CR', 'AL'], ['FCC_A1', 'BCC_A2']) diff --git a/kawin/tests/test_mobility_generation.py b/kawin/tests/test_mobility_generation.py new file mode 100644 index 0000000..0e0c623 --- /dev/null +++ b/kawin/tests/test_mobility_generation.py @@ -0,0 +1,220 @@ +from numpy.testing import assert_allclose +from tinydb import where +from tinydb.storages import MemoryStorage + +from pycalphad import Database, variables as v +from espei.utils import PickleableTinyDB + +from kawin.mobility_fitting import generate_mobility, MobilityTemplate, EquilibriumSiteFractionGenerator +from kawin.mobility_fitting import generate_liquid_mobility_liu, LiuSpecies, generate_liquid_mobility_su, SuSpecies +from kawin.mobility_fitting.manual_fitting import grab_tracer_datasets, fit_prefactor, fit_activation_energy, select_best_model +from kawin.mobility_fitting.utils import find_last_variable, get_used_database_symbols + +from kawin.tests.databases import CUNI_TDB +from kawin.tests.datasets import CuNi_datasets, Cu_tracer_diff_datasets + +def test_espei_mobility_generation(): + ''' + Test espei mobility generation from activation energy and pre-factor data + ''' + phase_models = { + "components": ["CU", "NI", "VA"], + "phases": { + "FCC_A1": {"sublattice_model": [["CU", "NI"], ["VA"]], "sublattice_site_ratios": [1, 1]}, + } + } + + with PickleableTinyDB(storage=MemoryStorage) as datasets_db: + for ds in CuNi_datasets: + datasets_db.insert(ds) + + aicc = {'FCC_A1': {'TRACER_Q_CU': 2, 'TRACER_D0_CU': 2}} + dbf = generate_mobility(phase_models, datasets_db, aicc_penalty_factor=aicc) + #print(dbf.to_string(fmt='tdb')) + vv_symbols = [s for s in dbf.symbols if s.startswith('VV00')] + vv_vals = [dbf.symbols[s] for s in vv_symbols] + # dbf should have 9 symbols (2 for Cu in Cu, 2 for Cu in Ni, 2 for Ni in Cu, 1 for Ni in Ni, and 2 for Cu in Cu-Ni) + assert len(vv_symbols) == 9 + sym_vals = [-82.5275, -205872.0, -71.0695, -232826.0, -79.2647, -255224.0, -285142.0, -39.2064, 32429.60] + assert_allclose(vv_vals, sym_vals, rtol=1e-3) + + dbf_ni = generate_mobility(phase_models, datasets_db, diffusing_species=['NI']) + #print(dbf_ni.to_string(fmt='tdb')) + vv_symbols = [s for s in dbf_ni.symbols if s.startswith('VV00')] + vv_vals = [dbf_ni.symbols[s] for s in vv_symbols] + # dbf should have 3 symbols (2 for Ni in Cu and 1 for Ni in Ni) + assert len(vv_symbols) == 3 + sym_vals = [-71.0695, -232826.0, -285142.0] + assert_allclose(vv_vals, sym_vals, rtol=1e-3) + +def test_espei_mobility_generation_from_tracer_diff(): + ''' + Test espei mobility generation from tracer diffusivity data + ''' + phase_models = { + "components": ["CU", "VA"], + "phases": { + "FCC_A1": {"sublattice_model": [["CU"], ["VA"]], "sublattice_site_ratios": [1, 1]}, + } + } + + with PickleableTinyDB(storage=MemoryStorage) as datasets_db: + for ds in Cu_tracer_diff_datasets: + datasets_db.insert(ds) + + dbf = generate_mobility(phase_models, datasets_db, fit_to_tracer=True) + #print(dbf.to_string(fmt='tdb')) + vv_symbols = [s for s in dbf.symbols if s.startswith('VV00')] + vv_vals = [dbf.symbols[s] for s in vv_symbols] + # dbf should have 2 symbols for Cu in Cu + assert len(vv_symbols) == 2 + sym_vals = [-202181.0, -86.4134] + assert_allclose(vv_vals, sym_vals, rtol=1e-3) + +def test_manual_mobility_generation(): + ''' + Tests manual mobility generation from activation and prefactor data and + that selected model templates can be added to database + ''' + dbf = Database(CUNI_TDB) + eqgen = EquilibriumSiteFractionGenerator(dbf) + + phase = 'FCC_A1' + sublattice_model = [1, 1] + constituents = [['CU', 'NI'], ['VA']] + diffusing_species = 'CU' + + # Create mobility templates. We'll do three options here: + # a) no mixing term, b) 1st order mixing, c) 1st and 2nd order mixing + t0 = MobilityTemplate(phase, diffusing_species, sublattice_model, constituents) + + t1 = MobilityTemplate(phase, diffusing_species, sublattice_model, constituents) + t1.add_activation_energy([['CU', 'NI'], ['VA']], 0) + t1.add_prefactor([['CU', 'NI'], ['VA']], 0) + + t2 = MobilityTemplate(phase, diffusing_species, sublattice_model, constituents) + t2.add_activation_energy([['CU', 'NI'], ['VA']], [0, 1]) + t2.add_prefactor([['CU', 'NI'], ['VA']], [0, 1]) + + with PickleableTinyDB(storage=MemoryStorage) as datasets_db: + for ds in CuNi_datasets: + datasets_db.insert(ds) + + # Fit prefactor parameters to data + d_data = grab_tracer_datasets(datasets_db, 'D0', phase, ['CU', 'NI', 'VA'], diffusing_species) + d_model, d_results = select_best_model(d_data, [t0, t1, t2], fit_prefactor, eqgen, p=0.1, return_all_models = True) + assert_allclose(d_model.aicc, -13.633828, rtol=1e-3) + + # Fit activation energy parameters to data + q_data = grab_tracer_datasets(datasets_db, 'Q', phase, ['CU', 'NI', 'VA'], diffusing_species) + q_model, q_results = select_best_model(q_data, [t0, t1, t2], fit_activation_energy, eqgen, return_all_models = True) + + assert_allclose(q_model.aicc, 92.05808) + + d_model.template.add_to_database(dbf, d_model.parameters) + q_model.template.add_to_database(dbf, q_model.parameters) + #print(dbf.to_string(fmt='tdb')) + vv_symbols = [s for s in dbf.symbols if s.startswith('VV00')] + vv_vals = [dbf.symbols[s] for s in vv_symbols] + # dbf should have 6 symbols (2 for Cu in Cu, 2 for Cu in Ni, 2 for D0 mixing) + assert len(vv_symbols) == 6 + sym_vals = [-81.78946, -79.25679, -18.55759, -45.44596, -202291.969, -253898.678] + assert_allclose(vv_vals, sym_vals, rtol=1e-3) + +def test_liquid_mobility(): + ''' + Test Liu and Su liquid mobility models and that they can be added to the database + ''' + dbf = Database(CUNI_TDB) + eqgen = EquilibriumSiteFractionGenerator(dbf) + + # Create mobility parameters using the Liu model + liu_species = [ + LiuSpecies('CU', diameter=2.55, atomic_number=29, Tm=1358, melting_phase='FCC_A1'), + LiuSpecies('NI', diameter=2.49, atomic_number=28, Tm=1728, melting_phase='FCC_A1'), + ] + liu_templates = generate_liquid_mobility_liu(dbf, liu_species) + + liq_mob_params = dbf.search((where('parameter_type') == 'MQ') & (where('phase_name') == 'LIQUID')) + # 4 liquid parameters for Cu in Cu, Cu in Ni, Ni in Cu and Ni in Ni + assert len(liq_mob_params) == 4 + + # Create mobility parameters using the Su model + su_species = [ + SuSpecies('CU', atomic_mass=63.55, density=8.96, Tm=1358), + SuSpecies('NI', atomic_mass=58.69, density=8.90, Tm=1728), + ] + # We could disable adding the liquid mobility models to the database + su_templates = generate_liquid_mobility_su(dbf, su_species, add_to_database=False) + + # Assert correctness of liquid mobility models + conditions = {v.T: 2000, v.P: 101325, v.X('CU'): 0.3} + vals = {'CU': 2.988006e-13, 'NI': 3.060001e-13} + for s in liu_templates: + y = liu_templates[s].evaluate(liu_templates[s].mobility_function, {}, eqgen, conditions) + assert_allclose(y, vals[s], rtol=1e-3) + + mq = liu_templates[s].evaluate(liu_templates[s].MQ, {}, eqgen, conditions) + d0 = liu_templates[s].evaluate(liu_templates[s].prefactor, {}, eqgen, conditions) + q = liu_templates[s].evaluate(liu_templates[s].activation_energy, {}, eqgen, conditions) + print(mq, d0, q) + + vals = {'CU': 3.331584e-13, 'NI': 3.413458e-13} + for s in su_templates: + y = su_templates[s].evaluate(su_templates[s].mobility_function, {}, eqgen, conditions) + assert_allclose(y, vals[s], rtol=1e-3) + +def test_template_evaluation(): + ''' + Test that template can evaluate mobility, MQ, prefactor and activation energy + Test that evaluation can also work when 1 dependent variable is present + ''' + dbf = Database(CUNI_TDB) + eqgen = EquilibriumSiteFractionGenerator(dbf) + + species = LiuSpecies('CU', diameter=2.55, atomic_number=29, Tm=1358, melting_phase='FCC_A1') + templates = generate_liquid_mobility_liu(dbf, [species]) + + conditions = {v.T: 2000, v.P: 101325} + d = templates['CU'].evaluate(templates['CU'].mobility_function, {}, eqgen, conditions) + mq = templates['CU'].evaluate(templates['CU'].MQ, {}, eqgen, conditions) + d0 = templates['CU'].evaluate(templates['CU'].prefactor, {}, eqgen, conditions) + q = templates['CU'].evaluate(templates['CU'].activation_energy, {}, eqgen, conditions) + + assert_allclose(d, 4.581566e-13, rtol=1e-3) + assert_allclose(mq, -310840.27, rtol=1e-3) + assert_allclose(d0, -16.4996237, rtol=1e-3) + assert_allclose(q, 36468.03076, rtol=1e-3) + + # Test conditions with 1 dependent value + conditions = {v.T: (2000, 3000, 100), v.P: 101325} + t, d, variable = templates['CU'].evaluate(templates['CU'].mobility_function, {}, eqgen, conditions) + assert len(t) == len(d) + assert variable == v.T + +def test_database_variable_utilities(): + phase_models = { + "components": ["CU", "NI", "VA"], + "phases": { + "FCC_A1": {"sublattice_model": [["CU", "NI"], ["VA"]], "sublattice_site_ratios": [1, 1]}, + } + } + + with PickleableTinyDB(storage=MemoryStorage) as datasets_db: + for ds in CuNi_datasets: + datasets_db.insert(ds) + + aicc = {'FCC_A1': {'TRACER_Q_CU': 2, 'TRACER_D0_CU': 2}} + dbf = generate_mobility(phase_models, datasets_db, aicc_penalty_factor=aicc) + + last_variable = find_last_variable(dbf) + # generate_mobility will generate 9 symbols, so next variable should be VV0009 + assert last_variable == 9 + + # Only mixing parameters of Cu mobility (2 symbols in total) + free_syms = get_used_database_symbols(dbf, ['CU', 'NI'], 'CU', ['FCC_A1'], include_subsystems=False) + assert len(set(free_syms).symmetric_difference({'VV0007', 'VV0008'})) == 0 + + # Endmember and mixing parameters of Cu mobility (6 symbols in total) + free_syms_endmembers = get_used_database_symbols(dbf, ['CU', 'NI'], 'CU', ['FCC_A1'], include_subsystems=True) + assert len(set(free_syms_endmembers).symmetric_difference({'VV0000', 'VV0001', 'VV0004', 'VV0005', 'VV0007', 'VV0008'})) == 0 \ No newline at end of file diff --git a/kawin/tests/test_mobility_mcmc.py b/kawin/tests/test_mobility_mcmc.py new file mode 100644 index 0000000..8d5d3fb --- /dev/null +++ b/kawin/tests/test_mobility_mcmc.py @@ -0,0 +1,219 @@ +import numpy as np + +from pycalphad import Database +from espei.utils import PickleableTinyDB, MemoryStorage +from espei.phase_models import PhaseModelSpecification +from espei.error_functions.context import setup_context + +from kawin.mobility_fitting.error_functions import NonEquilibriumMobilityResidual, EquilibriumMobilityResidual +from kawin.tests.databases import * +from kawin.tests.datasets import * + +def test_non_eq_tracer_D0(): + phase_models = { + "components": ["AL", "SI", "VA"], + "phases": { + "FCC_A1": { + "sublattice_model": [["AL", "SI"], ["VA"]], + "sublattice_site_ratios": [1, 3] + } + } + } + phase_models = PhaseModelSpecification(**phase_models) + + datasets_db = PickleableTinyDB(storage=MemoryStorage) + datasets_db.insert(AlSi_tracer_D0_Al) + dbf = Database(ALMGSI_DB) + residual_func = NonEquilibriumMobilityResidual(dbf, datasets_db, phase_models=phase_models, symbols_to_fit=[]) + + residuals, weights = residual_func.get_residuals(np.asarray([])) + assert np.isclose(residuals, [-0.1], rtol=1e-3) + + likelihood = residual_func.get_likelihood(np.asarray([])) + assert np.isclose(likelihood, 0.88341, rtol=1e-3) + +def test_non_eq_tracer_Q(): + phase_models = { + "components": ["AL", "SI", "VA"], + "phases": { + "FCC_A1": { + "sublattice_model": [["AL", "SI"], ["VA"]], + "sublattice_site_ratios": [1, 3] + } + } + } + phase_models = PhaseModelSpecification(**phase_models) + + datasets_db = PickleableTinyDB(storage=MemoryStorage) + datasets_db.insert(AlSi_tracer_Q_Si) + dbf = Database(ALMGSI_DB) + residual_func = NonEquilibriumMobilityResidual(dbf, datasets_db, phase_models=phase_models, symbols_to_fit=[]) + + residuals, weights = residual_func.get_residuals(np.asarray([])) + assert np.isclose(residuals, [7600], rtol=1e-3) + + likelihood = residual_func.get_likelihood(np.asarray([])) + assert np.isclose(likelihood, -10.41807, rtol=1e-3) + +def test_non_eq_tracer_diff(): + phase_models = { + "components": ["AL", "SI", "VA"], + "phases": { + "FCC_A1": { + "sublattice_model": [["AL", "SI"], ["VA"]], + "sublattice_site_ratios": [1, 3] + } + } + } + phase_models = PhaseModelSpecification(**phase_models) + + datasets_db = PickleableTinyDB(storage=MemoryStorage) + datasets_db.insert(AlSi_tracer_diff_Mg) + dbf = Database(ALMGSI_DB) + residual_func = NonEquilibriumMobilityResidual(dbf, datasets_db, phase_models=phase_models, symbols_to_fit=[]) + + residuals, weights = residual_func.get_residuals(np.asarray([])) + assert np.isclose(residuals, [0.00436798], rtol=1e-3) + + likelihood = residual_func.get_likelihood(np.asarray([])) + assert np.isclose(likelihood, 1.3826926, rtol=1e-3) + +def test_eq_tracer_D0(): + phase_models = { + "components": ["AL", "SI", "VA"], + "phases": { + "FCC_A1": { + "sublattice_model": [["AL", "SI"], ["VA"]], + "sublattice_site_ratios": [1, 3] + } + } + } + phase_models = PhaseModelSpecification(**phase_models) + + datasets_db = PickleableTinyDB(storage=MemoryStorage) + datasets_db.insert(AlSi_eq_tracer_D0_Al) + dbf = Database(ALMGSI_DB) + residual_func = EquilibriumMobilityResidual(dbf, datasets_db, phase_models=phase_models, symbols_to_fit=[]) + + residuals, weights = residual_func.get_residuals(np.asarray([])) + assert np.isclose(residuals, [-0.1], rtol=1e-3) + + likelihood = residual_func.get_likelihood(np.asarray([])) + assert np.isclose(likelihood, 0.88341, rtol=1e-3) + +def test_eq_tracer_Q(): + phase_models = { + "components": ["AL", "SI", "VA"], + "phases": { + "FCC_A1": { + "sublattice_model": [["AL", "SI"], ["VA"]], + "sublattice_site_ratios": [1, 3] + } + } + } + phase_models = PhaseModelSpecification(**phase_models) + + datasets_db = PickleableTinyDB(storage=MemoryStorage) + datasets_db.insert(AlSi_eq_tracer_Q_Si) + dbf = Database(ALMGSI_DB) + residual_func = EquilibriumMobilityResidual(dbf, datasets_db, phase_models=phase_models, symbols_to_fit=[]) + + residuals, weights = residual_func.get_residuals(np.asarray([])) + assert np.isclose(residuals, [7600], rtol=1e-3) + + likelihood = residual_func.get_likelihood(np.asarray([])) + assert np.isclose(likelihood, -10.41807, rtol=1e-3) + +def test_eq_tracer_diff(): + phase_models = { + "components": ["AL", "SI", "VA"], + "phases": { + "FCC_A1": { + "sublattice_model": [["AL", "SI"], ["VA"]], + "sublattice_site_ratios": [1, 3] + } + } + } + phase_models = PhaseModelSpecification(**phase_models) + + datasets_db = PickleableTinyDB(storage=MemoryStorage) + datasets_db.insert(AlSi_eq_diff_Mg) + dbf = Database(ALMGSI_DB) + residual_func = EquilibriumMobilityResidual(dbf, datasets_db, phase_models=phase_models, symbols_to_fit=[]) + + residuals, weights = residual_func.get_residuals(np.asarray([])) + assert np.isclose(residuals, [0.00436798], rtol=1e-3) + + likelihood = residual_func.get_likelihood(np.asarray([])) + assert np.isclose(likelihood, 1.3826926, rtol=1e-3) + +def test_eq_tracer_interdiff(): + phase_models = { + "components": ["AL", "MG", "VA"], + "phases": { + "FCC_A1": { + "sublattice_model": [["AL", "MG"], ["VA"]], + "sublattice_site_ratios": [1, 3] + } + } + } + phase_models = PhaseModelSpecification(**phase_models) + + datasets_db = PickleableTinyDB(storage=MemoryStorage) + datasets_db.insert(AlSi_eq_interdiff) + dbf = Database(ALMGSI_DB) + residual_func = EquilibriumMobilityResidual(dbf, datasets_db, phase_models=phase_models, symbols_to_fit=[]) + + residuals, weights = residual_func.get_residuals(np.asarray([])) + assert np.isclose(residuals, [0.00409745], rtol=1e-3) + + likelihood = residual_func.get_likelihood(np.asarray([])) + assert np.isclose(likelihood, 1.382807, rtol=1e-3) + +def test_espei_compatibility(): + ''' + Tests that mobility residuals are recognized by espei and datasets are properly loaded in + + Main things to test: + - mobility residuals can compute without error even if no datasets exist + - mobility data is picked up by mobility residuals and not by built-in espei residuals + ''' + dbf = Database(ALMGSI_DB) + # add symbol to create context + dbf.symbols["VV0000"] = 0 + + phase_models = { + "components": ["AL", "MG", "SI", "VA"], + "phases": { + "FCC_A1": { + "sublattice_model": [["AL", "MG", "SI"], ["VA"]], + "sublattice_site_ratios": [1, 3] + } + } + } + + datasets_db = PickleableTinyDB(storage=MemoryStorage) + + # First test that everything can run without datasets + ctx = setup_context(dbf, datasets_db, None, phase_models=phase_models, make_callables=False) + for residual_obj in ctx['residual_objs']: + likelihood = residual_obj.get_likelihood(np.asarray([0], dtype=np.float64)) + + datasets_db.insert(AlSi_tracer_D0_Al) + datasets_db.insert(AlSi_tracer_Q_Si) + datasets_db.insert(AlSi_tracer_diff_Mg) + datasets_db.insert(AlSi_eq_tracer_D0_Al) + datasets_db.insert(AlSi_eq_tracer_Q_Si) + datasets_db.insert(AlSi_eq_diff_Mg) + datasets_db.insert(AlSi_eq_interdiff) + + # Test that everything can run with datasets and that NonEquilibriumMobilityResidual and EquilibriumMobilityResidual give non-zero values + # and that every other residual gives 0 for likelihood + ctx = setup_context(dbf, datasets_db, None, phase_models=phase_models, make_callables=False) + for residual_obj in ctx['residual_objs']: + likelihood = residual_obj.get_likelihood(np.asarray([0], dtype=np.float64)) + if isinstance(residual_obj, NonEquilibriumMobilityResidual) or isinstance(residual_obj, EquilibriumMobilityResidual): + assert likelihood != 0 + else: + assert likelihood == 0 + diff --git a/kawin/tests/test_plotting.py b/kawin/tests/test_plotting.py index 7f1ed3f..aba8c7d 100644 --- a/kawin/tests/test_plotting.py +++ b/kawin/tests/test_plotting.py @@ -10,7 +10,7 @@ from kawin.precipitation.Plot import plotPrecipitateResults from kawin.diffusion.Plot import plot1D, plot1DFlux, plot1DPhases, plot1DTwoAxis, plot2D, plot2DFluxes, plot2DPhases -from kawin.tests.datasets import NICRAL_TDB +from kawin.tests.databases import NICRAL_TDB binPrecTherm = BinaryThermodynamics(NICRAL_TDB, ['NI', 'AL'], ['FCC_A1', 'FCC_L12', 'C14_LAVES', 'C15_LAVES'], drivingForceMethod='tangent') ternPrecTherm = MulticomponentThermodynamics(NICRAL_TDB, ['NI', 'AL', 'CR'], ['FCC_A1', 'FCC_L12', 'C14_LAVES', 'C15_LAVES'], drivingForceMethod='tangent') diff --git a/kawin/tests/test_precipitation.py b/kawin/tests/test_precipitation.py index 9011537..cea6f5d 100644 --- a/kawin/tests/test_precipitation.py +++ b/kawin/tests/test_precipitation.py @@ -4,7 +4,7 @@ from numpy.testing import assert_allclose import matplotlib.pyplot as plt -from kawin.tests.datasets import ALZR_TDB, NICRAL_TDB, ALMGSI_DB +from kawin.tests.databases import ALZR_TDB, NICRAL_TDB, ALMGSI_DB from kawin.precipitation import PrecipitateModel from kawin.precipitation import VolumeParameter, PrecipitateParameters, MatrixParameters, TemperatureParameters from kawin.thermo import BinaryThermodynamics, MulticomponentThermodynamics diff --git a/kawin/tests/test_solver.py b/kawin/tests/test_solver.py index 0105c34..769c5e5 100644 --- a/kawin/tests/test_solver.py +++ b/kawin/tests/test_solver.py @@ -7,7 +7,7 @@ from kawin.thermo import BinaryThermodynamics, MulticomponentThermodynamics from kawin.GenericModel import GenericModel, Coupler from kawin.solver import explicitEulerIterator, rk4Iterator -from kawin.tests.datasets import * +from kawin.tests.databases import * AlZrTherm = BinaryThermodynamics(ALZR_TDB, ['AL', 'ZR'], ['FCC_A1', 'AL3ZR'], drivingForceMethod='tangent') NiAlCrTherm = MulticomponentThermodynamics(NICRAL_TDB, ['NI', 'AL', 'CR'], ['FCC_A1', 'FCC_L12'], drivingForceMethod='tangent') diff --git a/kawin/tests/test_surrogate.py b/kawin/tests/test_surrogate.py index 0a96ecf..d6e39f0 100644 --- a/kawin/tests/test_surrogate.py +++ b/kawin/tests/test_surrogate.py @@ -5,7 +5,7 @@ import pytest from kawin.thermo import BinaryThermodynamics, MulticomponentThermodynamics, BinarySurrogate, MulticomponentSurrogate -from kawin.tests.datasets import * +from kawin.tests.databases import * AlZrTherm = BinaryThermodynamics(ALZR_TDB, ['AL', 'ZR'], ['FCC_A1', 'AL3ZR'], drivingForceMethod='approximate') NiCrAlTherm = MulticomponentThermodynamics(NICRAL_TDB, ['NI', 'CR', 'AL'], ['FCC_A1', 'FCC_L12'], drivingForceMethod='approximate') diff --git a/kawin/tests/test_thermodynamics.py b/kawin/tests/test_thermodynamics.py index 4a90200..3824f42 100644 --- a/kawin/tests/test_thermodynamics.py +++ b/kawin/tests/test_thermodynamics.py @@ -4,8 +4,8 @@ from pycalphad import Database from kawin.thermo import GeneralThermodynamics, BinaryThermodynamics, MulticomponentThermodynamics +from kawin.tests.databases import * from kawin.thermo.Mobility import expand_x_frac, expand_u_frac, x_to_u_frac, u_to_x_frac -from kawin.tests.datasets import * #Default driving force method will be 'tangent' AlZrTherm = BinaryThermodynamics(ALZR_TDB, ['AL', 'ZR'], ['FCC_A1', 'AL3ZR'], drivingForceMethod='tangent') diff --git a/kawin/thermo/LocalEquilibrium.py b/kawin/thermo/LocalEquilibrium.py index 0e91b61..cfdb228 100644 --- a/kawin/thermo/LocalEquilibrium.py +++ b/kawin/thermo/LocalEquilibrium.py @@ -51,7 +51,11 @@ def local_equilibrium(dbf, comps, phases, conds, models, phase_records, composit pdens=pDens, model=models, phase_records=phase_records, conditions=local_phase_conds) idx_p = np.argmin(calc_p.GM.values.squeeze()) compset = CompositionSet(phase_records[phases[0]]) + #For phases with a single site fraction (e.g. stoichiometric at a pure composition), + #squeezing will result in a 0D array, so we make sure the site fractions are at least 1D site_fractions = np.array(calc_p.Y.isel(points=idx_p).values.squeeze()) + if len(site_fractions.shape) == 0: + site_fractions = np.array([site_fractions]) compset.update(site_fractions, 1.0, state_variables) composition_sets.append(compset) else: diff --git a/kawin/thermo/Mobility.py b/kawin/thermo/Mobility.py index d8f45e4..4a27d55 100644 --- a/kawin/thermo/Mobility.py +++ b/kawin/thermo/Mobility.py @@ -53,18 +53,18 @@ def x_to_u_frac(x_frac, elements, interstitial_list, return_usum = False): return np.squeeze(u_frac), Usum else: return np.squeeze(u_frac) - + def u_to_x_frac(u_frac, elements, interstitial_list): u_frac = np.atleast_2d(u_frac) # a_ij = (\delta_ij - u_i) if j is substitutional - # a_ij = \delta_ij if j is interstitial + # a_ij = \delta_ij if j is interstitial a = np.eye(len(elements))[np.newaxis,:,:] - u_frac[:,:,np.newaxis] for i, e in enumerate(elements): if e in interstitial_list: a[:,:,i] = 0 a[:,i,i] = 1 - + b = np.zeros((*u_frac.shape, 1)) # Summation constraint (sum(x) = 1) # We can replace first row of a here @@ -95,8 +95,29 @@ class MobilityModel(Model): Dictionary of symbols in diffusivity functions for each element ''' def __init__(self, dbe, comps, phase_name, parameters=None): + self.diffusing_species = None + super().__init__(dbe, comps, phase_name, parameters) + self._setup_mobility_models(dbe) + + def set_diffusing_species(self, dbe, diffusing_species): + ''' + Allows user to override diffusing species + + This will rebuild all the models, which is a bit + inefficient, but I can't seem to add a parameter to + the constructor due to the _dispatch_on function in + pycalphad.model.Model + ''' + # diffusing_species is list[v.Species] to be similar to components + self.diffusing_species = [v.Species(s) for s in diffusing_species] + #We only need to rebuild the mobility models since we're just changing + #what mobility models we have + self.mobility, self.diffusivity = self.build_mobility(dbe) + self._setup_mobility_models(dbe) + + def _setup_mobility_models(self, dbe): symbols = {Symbol(s): val for s, val in dbe.symbols.items()} if self._parameters_arg is not None: if isinstance(self._parameters_arg, dict): @@ -113,11 +134,17 @@ def __init__(self, dbe, comps, phase_name, parameters=None): setattr(self, 'MOB_'+name, self.mobility[name]) setattr(self, 'MQ_'+name, self.symbol_replace(getattr(self, 'MQ_'+name), symbols).xreplace(get_supported_variables())) + setattr(self, 'lnM0_'+name, getattr(self, 'MQ_'+name).diff(v.T)/v.R) + setattr(self, 'MQa_'+name, v.T*getattr(self, 'MQ_'+name).diff(v.T) - getattr(self, 'MQ_'+name)) + for name, value in self.diffusivity.items(): self.diffusivity[name] = self.symbol_replace(value, symbols).xreplace(get_supported_variables()) setattr(self, 'DIFF_'+name, self.diffusivity[name]) setattr(self, 'DQ_'+name, self.symbol_replace(getattr(self, 'DQ_'+name), symbols).xreplace(get_supported_variables())) + setattr(self, 'lnD0_'+name, getattr(self, 'DQ_'+name).diff(v.T)/v.R) + setattr(self, 'DQa_'+name, v.T*getattr(self, 'DQ_'+name).diff(v.T) - getattr(self, 'DQ_'+name)) + self.mob_site_fractions = {c: sorted([x for x in self.mobility_variables[c] if isinstance(x, v.SiteFraction)], key=str) for c in self.mobility} self.diff_site_fractions = {c: sorted([x for x in self.diffusivity_variables[c] if isinstance(x, v.SiteFraction)], key=str) for c in self.diffusivity} self.mob_state_variables = {c: sorted([x for x in self.mobility_variables[c] if not isinstance(x, v.SiteFraction)], key=str) for c in self.mobility} @@ -166,7 +193,7 @@ def _mobility_validity(self, constituent_array): if not (set(param_sublattice).issubset(model_sublattice) or (param_sublattice[0] == v.Species('*'))): return False return True - + def build_mobility(self, dbe): ''' Builds mobility/diffusivity models as abstract syntax tree @@ -175,6 +202,9 @@ def build_mobility(self, dbe): ---------- dbe : Database ''' + if self.diffusing_species is None: + self.diffusing_species = self.components + phase = dbe.phases[self.phase_name] param_search = dbe.search @@ -184,7 +214,7 @@ def build_mobility(self, dbe): param_names = ['MF', 'MQ', 'DF', 'DQ'] - for c in self.components: + for c in self.diffusing_species: if c.name != 'VA': for name in param_names: param_query = ( @@ -217,7 +247,7 @@ def build_mobility(self, dbe): self.mob_models[p[1]][c.name] += rk self.checkOrderingContribution(dbe) - for c in self.components: + for c in self.diffusing_species: if c.name != 'VA': #In thermo-calc, the mobility model is defined as exp(sum(MF)/RT) * exp(sum(MQ)/RT) / RT #The diffusivity model is defined either as dilute - exp(sum(DF)/RT) * exp(sum(DQ)/RT) @@ -235,7 +265,7 @@ def build_mobility(self, dbe): setattr(self, 'DQ_'+str(c.name).upper(), dqsum) return mob, diff - + def checkOrderingContribution(self, dbe): ''' Checks if phase is an ordered part of a order-disorder model @@ -253,12 +283,16 @@ def checkOrderingContribution(self, dbe): #If not order-disorder model, then return as unchanged if phase.name != ordered_phase_name: return - + ordered_phase = dbe.phases[ordered_phase_name] constituents = [sorted(set(c).intersection(self.components)) for c in ordered_phase.constituents] disordered_phase = dbe.phases[disordered_phase_name] disordered_model = self.__class__(dbe, sorted(self.components), disordered_phase_name) + #If diffusing species are different, then set diffusing species for disordered model + if set(self.components).symmetric_difference(self.diffusing_species) != 0: + disordered_model.set_diffusing_species(dbe, self.diffusing_species) + disordered_subl_constituents = disordered_phase.constituents[0] ordered_constituents = ordered_phase.constituents substitutional_sublattice_idxs = [] @@ -276,7 +310,7 @@ def checkOrderingContribution(self, dbe): f'({num_ordered_interstitial_subls}) do not match. Got ' f'substitutional sublattice indices of {substitutional_sublattice_idxs}.' ) - + for c in self.mob_models['MF']: ordered_mobQ = Add(self.mob_models['MQ'][c]) ordered_mobF = Add(self.mob_models['MF'][c]) @@ -315,22 +349,37 @@ def checkOrderingContribution(self, dbe): shifted_subl_index = atom.sublattice_index + num_substitutional_sublattice_idxs - 1 variable_rename_dict[atom] = \ v.SiteFraction(ordered_phase_name, shifted_subl_index, atom.species) - + self.mob_models['MQ'][c] = self._partitioned_expr(disordered_model.mob_models['MQ'][c], ordered_mobQ, variable_rename_dict, molefraction_dict) self.mob_models['MF'][c] = self._partitioned_expr(disordered_model.mob_models['MF'][c], ordered_mobF, variable_rename_dict, molefraction_dict) self.mob_models['DQ'][c] = self._partitioned_expr(disordered_model.mob_models['DQ'][c], ordered_diffQ, variable_rename_dict, molefraction_dict) self.mob_models['DF'][c] = self._partitioned_expr(disordered_model.mob_models['DF'][c], ordered_diffF, variable_rename_dict, molefraction_dict) return - -def _get_mobility_arguments(composition_set, parameters): + +def _get_mobility_arguments(cs_dof, parameters): param_keys, param_values = extract_parameters(parameters) if len(param_values) > 0: - callableInput = np.concatenate((composition_set.dof, param_values[0]), dtype=np.float64) + callableInput = np.concatenate((cs_dof, param_values[0]), dtype=np.float64) else: - callableInput = composition_set.dof + callableInput = cs_dof return callableInput +def mobility_from_dof(dof, elements, mobility_callables = None, mobility_correction = None, parameters = {}): + if mobility_callables is None: + raise ValueError('mobility_callables is required') + + #Set mobility correction if not set + if mobility_correction is None: + mobility_correction = {A: 1 for A in elements} + else: + for A in elements: + if A not in mobility_correction: + mobility_correction[A] = 1 + + callableInput = _get_mobility_arguments(dof, parameters) + return np.array([mobility_correction[elements[A]] * mobility_callables[elements[A]](callableInput) for A in range(len(elements))]) + def mobility_from_composition_set(composition_set, mobility_callables = None, mobility_correction = None, parameters = {}): ''' Computes mobility from equilibrium results @@ -349,22 +398,104 @@ def mobility_from_composition_set(composition_set, mobility_callables = None, mo ------- Array for floats for mobility of each element (alphabetical order) ''' - if mobility_callables is None: - raise ValueError('mobility_callables is required') - elements = list(composition_set.phase_record.nonvacant_elements) + return mobility_from_dof(composition_set.dof, elements, mobility_callables, mobility_correction, parameters) - #Set mobility correction if not set - if mobility_correction is None: - mobility_correction = {A: 1 for A in elements} - else: - for A in elements: - if A not in mobility_correction: - mobility_correction[A] = 1 +def compute_phase_record_func_from_dof(dof, prf, phase, symbol, parameters={}): + prop = prf.get_phase_property(phase, symbol, include_grad=False, include_hess=False) + callableInput = _get_mobility_arguments(dof, parameters) + return prop.func(callableInput) + +def mobility_from_dof_phase_record(dof, prf, phase, elements, parameters = {}): + return np.array([compute_phase_record_func_from_dof(dof, prf, phase, f'MOB_{e}', parameters) for e in elements], + dtype=np.float64) + +def activation_energy_from_dof_phase_record(dof, prf, phase, elements, parameters = {}): + return np.array([compute_phase_record_func_from_dof(dof, prf, phase, f'MQa_{e}', parameters) for e in elements], + dtype=np.float64) + +def prefactor_from_dof_phase_record(dof, prf, phase, elements, parameters = {}): + return np.array([compute_phase_record_func_from_dof(dof, prf, phase, f'lnM0_{e}', parameters) for e in elements], + dtype=np.float64) + +def compute_phase_record_func_from_composition_set(composition_set, prf, phase, symbol, parameters={}): + ''' + Computes mobility symbol from equilibrium results using symbolic model + + NOTE: We don't build the callables for activation energy so this is a directly substitution + into the symengine model. However, since this function isn't used often, the slower + performance of this shouldn't be much of an issue + + Parameters + ---------- + composition_set : pycalphad.core.composition_set.CompositionSet + mobility_model : MobilityModel object + symbol : str + Name of symbol as symbol_el in model + parameters : dict {str : float} + List of parameters to override free symbols in the model + + Returns + ------- + Array for floats for activation energy of each element (alphabetical order) + ''' + return compute_phase_record_func_from_composition_set(composition_set.dof, prf, phase, symbol, parameters) + +def mobility_from_composition_set_phase_record(composition_set, prf, phase, elements, parameters = {}): + ''' + Computes mobility from equilibrium results using symbolic model + + Parameters + ---------- + composition_set : pycalphad.core.composition_set.CompositionSet + mobility_model : MobilityModel object + parameters : dict {str : float} + List of parameters to override free symbols in the model + + Returns + ------- + Array for floats for activation energy of each element (alphabetical order) + ''' + return mobility_from_dof_phase_record(composition_set.dof, prf, phase, elements, parameters) + +def activation_energy_from_composition_set_phase_record(composition_set, prf, phase, elements, parameters = {}): + ''' + Computes activation energy for mobility from equilibrium results + + Parameters + ---------- + composition_set : pycalphad.core.composition_set.CompositionSet + mobility_model : MobilityModel object + parameters : dict {str : float} + List of parameters to override free symbols in the model + + Returns + ------- + Array for floats for activation energy of each element (alphabetical order) + ''' + return activation_energy_from_dof_phase_record(composition_set.dof, prf, phase, elements, parameters) + +def prefactor_from_composition_set_phase_record(composition_set, prf, phase, elements, parameters = {}): + ''' + Computes prefactor term, ln(M0), for mobility from equilibrium results + + Parameters + ---------- + composition_set : pycalphad.core.composition_set.CompositionSet + mobility_model : MobilityModel object + parameters : dict {str : float} + List of parameters to override free symbols in the model + + Returns + ------- + Array for floats for activation energy of each element (alphabetical order) + ''' + return prefactor_from_dof_phase_record(composition_set.dof, prf, phase, elements, parameters) + +def tracer_diffusivity_from_mobility(T, mob_value): + R = 8.314 + return R*T*mob_value - callableInput = _get_mobility_arguments(composition_set, parameters) - return np.array([mobility_correction[elements[A]] * mobility_callables[elements[A]](callableInput) for A in range(len(elements))]) - def tracer_diffusivity(composition_set, mobility_callables = None, mobility_correction = None, parameters = {}): ''' Computes tracer diffusivity for given equilibrium results @@ -384,12 +515,11 @@ def tracer_diffusivity(composition_set, mobility_callables = None, mobility_corr ''' if mobility_callables is None: raise ValueError('mobility_callables is required') - - R = 8.314 T = composition_set.dof[composition_set.phase_record.state_variables.index(v.T)] - return R * T * mobility_from_composition_set(composition_set, mobility_callables, mobility_correction, parameters) + mob_values = mobility_from_composition_set(composition_set, mobility_callables, mobility_correction, parameters) + return tracer_diffusivity_from_mobility(T, mob_values) -def mobility_matrix(composition_set, mobility_callables = None, mobility_correction = None, vacancy_poor_interstitial_sublattice = False, parameters = {}): +def mobility_matrix_from_dof(dof, composition, elements, mob_values, phase_record, vacancy_poor_interstitial_sublattice = False): ''' Mobility matrix Used to obtain diffusivity when multipled with free energy hessian @@ -412,16 +542,16 @@ def mobility_matrix(composition_set, mobility_callables = None, mobility_correct - Substitutional and interstitial components are modeled differently based off the following assumptions: 1. Substitutional components contribute to the volume of the alloy while interstitials have zero volume 2. Vacancy fraction in substitutional sublattice is near 0 while vacancy fraction in interstitial sublattice is near 1 - + - Assumption 1 is accounted by considering u-fraction of other components for substitutional and accounting for reference element when computing interdiffusivity. Interstitials do not account for this since they do not contribute to the volume - Assumption 2 is accounted for by multiplying the vacancy site fraction on interstitial mobility - - Mobility is defined in terms of a kinetic parameter (\Omega) that describes the rate of exchange for a component given that + - Mobility is defined in terms of a kinetic parameter (omega) that describes the rate of exchange for a component given that it is near a vacancy - - For substitutionals, we define mobility M = y_VA * \Omega, so the mobility term itself includes the vacancy fraction + - For substitutionals, we define mobility M = y_VA * omega, so the mobility term itself includes the vacancy fraction since in practice, the vacancy fraction is near 0 - - For interstitials, we define mobility M = \Omega, so it does not factor in the vacancy fraction. Thus we have to + - For interstitials, we define mobility M = omega, so it does not factor in the vacancy fraction. Thus we have to include the vacancy fraction to represent the probability that the component is near a vacancy - We can override this assumption for interstitials using the vacancy_poor_interstitial_sublattice parameter. This can be useful for compounds like carbides, where the interstitial sublattice is mostly carbon and the vacancy fraction is near 0 @@ -431,13 +561,10 @@ def mobility_matrix(composition_set, mobility_callables = None, mobility_correct Matrix of floats Each index along an axis correspond to elements in alphabetical order ''' - elements = list(composition_set.phase_record.nonvacant_elements) - X = composition_set.X - U, Usum = x_to_u_frac(X, elements, interstitials, return_usum=True) + U, Usum = x_to_u_frac(composition, elements, interstitials, return_usum=True) #Multiply mobility by U-fraction for ease of use when constructing the mobility matrix - computedMob = mobility_from_composition_set(composition_set, mobility_callables, mobility_correction, parameters) - mob = np.array([U[A] * computedMob[A] for A in range(len(elements))]) + mob = np.array([U[A] * mob_values[A] for A in range(len(elements))]) #Find vacancy site fractions for multiplying with interstitials when making the mobility matrix #If vacancies are not found on the same sublattice, we'll defualt to 1 so there's at least some mobility and not 0 @@ -445,20 +572,20 @@ def mobility_matrix(composition_set, mobility_callables = None, mobility_correct # In addition, as we're working with interstitals, the vacancies are going to be close to 1, so this assumption wouldn't hurt vaTerms = {} #Maps sublattice index to site fraction index for vacancies interstitialTerms = {} #Maps interstitial to sublattice index - index = len(composition_set.phase_record.state_variables) - for i in range(len(composition_set.phase_record.variables)): - if composition_set.phase_record.variables[i].species.name == 'VA': - vaTerms[composition_set.phase_record.variables[i].sublattice_index] = composition_set.dof[index+i] - if composition_set.phase_record.variables[i].species.name in interstitials: - interstitialTerms[composition_set.phase_record.variables[i].species.name] = composition_set.phase_record.variables[i].sublattice_index - - #For interstitials + index = len(phase_record.state_variables) + for i in range(len(phase_record.variables)): + if phase_record.variables[i].species.name == 'VA': + vaTerms[phase_record.variables[i].sublattice_index] = dof[index+i] + if phase_record.variables[i].species.name in interstitials: + interstitialTerms[phase_record.variables[i].species.name] = phase_record.variables[i].sublattice_index + + # For interstitials # M_aa = y_Va * M_a # y_Va is taken from the same sublattice that a is on, where more vacancies on the sublattice implies faster diffusion - #For substitutionals + # For substitutionals # M_aa = (1-U_a) * U_a * M_a # M_ab = -U_a * U_b * M_b - #There are no entries for M_ab if one index is interstitial and the other is substitutional + # There are no entries for M_ab if one index is interstitial and the other is substitutional mobMatrix = np.zeros((len(elements), len(elements))) for a in range(len(elements)): if elements[a] in interstitials: @@ -481,56 +608,73 @@ def mobility_matrix(composition_set, mobility_callables = None, mobility_correct return mobMatrix -def chemical_diffusivity(chemical_potentials, composition_set, mobility_callables, mobility_correction = None, returnHessian = False, vacancy_poor_interstitial_sublattice = False, parameters = {}): +def mobility_matrix(composition_set, mobility_callables = None, mobility_correction = None, vacancy_poor_interstitial_sublattice = False, parameters = {}): ''' - Chemical diffusivity (D_kj) - D_kj = sum((delta_ik - U_k) * U_i * M_i) * dmu_i/dU_j - D_ab = mobility matrix * free energy hessian + Mobility matrix + Used to obtain diffusivity when multipled with free energy hessian Parameters ---------- - chemical_potentials : 1-D ndarray composition_set : pycalphad.core.composition_set.CompositionSet - mobility_callables : dict + mobility_callables : dict (optional) Pre-computed mobility callables for each element mobility_correction : dict (optional) Factor to multiply mobility by for each given element (defaults to 1) - returnHessian : bool (optional) - Whether to return chemical potential derivative (defaults to False) + vacancy_poor_interstitial_sublattice : bool (optional) + Denotes whether the interstitial sublattice is to be modeled assuming that vacancy fraction is near 0 (see notes below) + Defaults to False + parameters : dict (optional) + Maps free parameters names to parameter values + + Notes + ----- + - Substitutional and interstitial components are modeled differently based off the following assumptions: + 1. Substitutional components contribute to the volume of the alloy while interstitials have zero volume + 2. Vacancy fraction in substitutional sublattice is near 0 while vacancy fraction in interstitial sublattice is near 1 + + - Assumption 1 is accounted by considering u-fraction of other components for substitutional and accounting for reference element + when computing interdiffusivity. Interstitials do not account for this since they do not contribute to the volume + + - Assumption 2 is accounted for by multiplying the vacancy site fraction on interstitial mobility + - Mobility is defined in terms of a kinetic parameter (omega) that describes the rate of exchange for a component given that + it is near a vacancy + - For substitutionals, we define mobility M = y_VA * omega, so the mobility term itself includes the vacancy fraction + since in practice, the vacancy fraction is near 0 + - For interstitials, we define mobility M = omega, so it does not factor in the vacancy fraction. Thus we have to + include the vacancy fraction to represent the probability that the component is near a vacancy + - We can override this assumption for interstitials using the vacancy_poor_interstitial_sublattice parameter. This can + be useful for compounds like carbides, where the interstitial sublattice is mostly carbon and the vacancy fraction is near 0 Returns ------- - (matrix of floats, free energy hessian) + Matrix of floats Each index along an axis correspond to elements in alphabetical order - free energy hessian will be None if returnHessian is False ''' - dmudx = partialdMudX(chemical_potentials, composition_set) - mobMatrix = mobility_matrix(composition_set=composition_set, - mobility_callables=mobility_callables, - mobility_correction=mobility_correction, - vacancy_poor_interstitial_sublattice=vacancy_poor_interstitial_sublattice, - parameters=parameters) - Dkj = np.matmul(mobMatrix, dmudx) - + elements = list(composition_set.phase_record.nonvacant_elements) + X = composition_set.X + computedMob = mobility_from_composition_set(composition_set, mobility_callables, mobility_correction, parameters) + + return mobility_matrix_from_dof(composition_set.dof, X, elements, computedMob, composition_set.phase_record, vacancy_poor_interstitial_sublattice) + +def chemical_diffusivity_from_mob(dmudx, mob_matrix, returnHessian = False): + Dkj = np.matmul(mob_matrix, dmudx) + if returnHessian: return Dkj, dmudx else: return Dkj, None -def interdiffusivity(chemical_potentials, composition_set, refElement, mobility_callables = None, mobility_correction = None, returnHessian = False, vacancy_poor_interstitial_sublattice = False, parameters = {}): +def chemical_diffusivity(chemical_potentials, composition_set, mobility_callables, mobility_correction = None, returnHessian = False, vacancy_poor_interstitial_sublattice = False, parameters = {}): ''' - Interdiffusivity (D^n_ab) - - D^n_ab = D_ab - D_an (for substitutional element) - D^n_ab = D_ab (for interstitial element) + Chemical diffusivity (D_kj) + D_kj = sum((delta_ik - U_k) * U_i * M_i) * dmu_i/dU_j + D_ab = mobility matrix * free energy hessian Parameters ---------- chemical_potentials : 1-D ndarray composition_set : pycalphad.core.composition_set.CompositionSet - refElement : str - Reference element n - mobility_callables : dict (optional) + mobility_callables : dict Pre-computed mobility callables for each element mobility_correction : dict (optional) Factor to multiply mobility by for each given element (defaults to 1) @@ -540,18 +684,18 @@ def interdiffusivity(chemical_potentials, composition_set, refElement, mobility_ Returns ------- (matrix of floats, free energy hessian) - Each index along an axis correspond to elements in - alphabetical order excluding reference element + Each index along an axis correspond to elements in alphabetical order free energy hessian will be None if returnHessian is False ''' - Dkj, hessian = chemical_diffusivity(chemical_potentials=chemical_potentials, - composition_set=composition_set, - mobility_callables=mobility_callables, - mobility_correction=mobility_correction, - returnHessian=returnHessian, - vacancy_poor_interstitial_sublattice=vacancy_poor_interstitial_sublattice, - parameters=parameters) - elements = list(composition_set.phase_record.nonvacant_elements) + dmudx = partialdMudX(chemical_potentials, composition_set) + mobMatrix = mobility_matrix(composition_set=composition_set, + mobility_callables=mobility_callables, + mobility_correction=mobility_correction, + vacancy_poor_interstitial_sublattice=vacancy_poor_interstitial_sublattice, + parameters=parameters) + return chemical_diffusivity_from_mob(dmudx, mobMatrix, returnHessian) + +def interdiffusivity_from_Dkj(Dkj, hessian, elements, refElement): #Build Dnkj, skipping the reference element refIndex = elements.index(refElement) @@ -572,9 +716,46 @@ def interdiffusivity(chemical_potentials, composition_set, refElement, mobility_ return Dnkj, hessian +def interdiffusivity(chemical_potentials, composition_set, refElement, mobility_callables = None, mobility_correction = None, returnHessian = False, vacancy_poor_interstitial_sublattice = False, parameters = {}): + ''' + Interdiffusivity (D^n_ab) + + D^n_ab = D_ab - D_an (for substitutional element) + D^n_ab = D_ab (for interstitial element) + + Parameters + ---------- + chemical_potentials : 1-D ndarray + composition_set : pycalphad.core.composition_set.CompositionSet + refElement : str + Reference element n + mobility_callables : dict (optional) + Pre-computed mobility callables for each element + mobility_correction : dict (optional) + Factor to multiply mobility by for each given element (defaults to 1) + returnHessian : bool (optional) + Whether to return chemical potential derivative (defaults to False) + + Returns + ------- + (matrix of floats, free energy hessian) + Each index along an axis correspond to elements in + alphabetical order excluding reference element + free energy hessian will be None if returnHessian is False + ''' + Dkj, hessian = chemical_diffusivity(chemical_potentials=chemical_potentials, + composition_set=composition_set, + mobility_callables=mobility_callables, + mobility_correction=mobility_correction, + returnHessian=True, + vacancy_poor_interstitial_sublattice=vacancy_poor_interstitial_sublattice, + parameters=parameters) + elements = list(composition_set.phase_record.nonvacant_elements) + return interdiffusivity_from_Dkj(Dkj, hessian, elements, refElement) + def inverseMobility(chemical_potentials, composition_set, refElement, mobility_callables, mobility_correction = None, returnOther = True, vacancy_poor_interstitial_sublattice = False, parameters = {}): ''' - Inverse mobility matrix for determining interfacial composition from + Inverse mobility matrix for determining interfacial composition from Philippe and P. W. Voorhees, Acta Materialia 61 (2013) p. 4237 M^-1 = (free energy hessian) * Dnkj^-1 @@ -597,20 +778,20 @@ def inverseMobility(chemical_potentials, composition_set, refElement, mobility_c (interdiffusivity, hessian, inverse mobility) Interdiffusivity and hessian will be None if returnOther is False ''' - Dnkj, _ = interdiffusivity(chemical_potentials=chemical_potentials, - composition_set=composition_set, - refElement=refElement, - mobility_callables=mobility_callables, - mobility_correction=mobility_correction, - returnHessian=False, - vacancy_poor_interstitial_sublattice=vacancy_poor_interstitial_sublattice, + Dnkj, _ = interdiffusivity(chemical_potentials=chemical_potentials, + composition_set=composition_set, + refElement=refElement, + mobility_callables=mobility_callables, + mobility_correction=mobility_correction, + returnHessian=False, + vacancy_poor_interstitial_sublattice=vacancy_poor_interstitial_sublattice, parameters=parameters) totalH = dMudX(chemical_potentials, composition_set, refElement) if returnOther: return Dnkj, totalH, np.matmul(totalH, np.linalg.inv(Dnkj)) else: return None, None, np.matmul(totalH, np.linalg.inv(Dnkj)) - + def tracer_diffusivity_from_diff(composition_set, diffusivity_callables = None, diffusivity_correction = None, parameters = {}): ''' Tracer diffusivity from diffusivity callables @@ -642,7 +823,7 @@ def tracer_diffusivity_from_diff(composition_set, diffusivity_callables = None, if A not in diffusivity_correction: diffusivity_correction[A] = 1 - callableInput = _get_mobility_arguments(composition_set, parameters) + callableInput = _get_mobility_arguments(composition_set.dof, parameters) return np.array([diffusivity_correction[elements[A]] * diffusivity_callables[elements[A]](callableInput) for A in range(len(elements))]) def interdiffusivity_from_diff(composition_set, refElement, diffusivity_callables, diffusivity_correction = None, parameters = {}): @@ -666,7 +847,7 @@ def interdiffusivity_from_diff(composition_set, refElement, diffusivity_callable Returns ------- matrix of floats - Each index along an axis correspond to elements in + Each index along an axis correspond to elements in alphabetical order excluding reference element ''' elements = list(composition_set.phase_record.nonvacant_elements) @@ -678,13 +859,13 @@ def interdiffusivity_from_diff(composition_set, refElement, diffusivity_callable if A not in diffusivity_correction: diffusivity_correction[A] = 1 - callableInput = _get_mobility_arguments(composition_set, parameters) + callableInput = _get_mobility_arguments(composition_set.dof, parameters) Dnkj = np.zeros((len(elements) - 1, len(elements) - 1)) eleIndex = 0 for a in range(len(elements) - 1): if elements[eleIndex] == refElement: eleIndex += 1 - + Daa = diffusivity_correction[elements[eleIndex]] * diffusivity_callables[elements[eleIndex]](callableInput) Dnkj[a, a] = Daa eleIndex += 1 @@ -715,10 +896,10 @@ def inverseMobility_from_diffusivity(chemical_potentials, composition_set, refEl (interdiffusivity, hessian, inverse mobility) Interdiffusivity and hessian will be None if returnOther is False ''' - Dnkj = interdiffusivity_from_diff(composition_set=composition_set, - refElement=refElement, - diffusivity_callables=diffusivity_callables, - diffusivity_correction=diffusivity_correction, + Dnkj = interdiffusivity_from_diff(composition_set=composition_set, + refElement=refElement, + diffusivity_callables=diffusivity_callables, + diffusivity_correction=diffusivity_correction, parameters=parameters) totalH = dMudX(chemical_potentials, composition_set, refElement) diff --git a/pyproject.toml b/pyproject.toml index 4212906..fdb14e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,7 @@ [build-system] requires = [ - "setuptools>=42", + "setuptools>=61", + "setuptools_scm[toml]>=8.0", "wheel" ] @@ -8,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "kawin" -version = "0.4.0" +version = "0.5.0" authors = [ {name = "Nicholas Ury", email = "nury12n@gmail.com"}, ] @@ -28,8 +29,9 @@ dependencies = [ "matplotlib>=3.3", "numpy>=2.0", "pycalphad>=0.11", + "espei", "scipy", - "setuptools_scm[toml]>=6.0", + "setuptools_scm[toml]>=8.0", ] [project.urls]