Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 20 19:29
    maxposchmann edited #417
  • May 20 19:29
    maxposchmann opened #417
  • May 20 12:50
    maxposchmann commented #413
  • May 19 23:55
    richardotis commented #413
  • May 19 23:53

    github-actions[bot] on website

    DOC: Deploy latest docs to webs… (compare)

  • May 19 23:49

    richardotis on develop

    ENH: `CompositionSet`-based sol… (compare)

  • May 19 23:49
    richardotis closed #415
  • May 19 22:50
    richardotis commented #413
  • May 19 22:13
    bocklund commented #413
  • May 19 22:12
    bocklund commented #413
  • May 19 22:09
    bocklund commented #413
  • May 19 22:07
    maxposchmann commented #413
  • May 19 21:59
    bocklund commented #413
  • May 19 21:58
    bocklund commented #413
  • May 19 21:56
    maxposchmann commented #413
  • May 19 21:54
    richardotis commented #413
  • May 19 21:53
    richardotis commented #413
  • May 19 21:34
    bocklund commented #413
  • May 19 20:11
    codecov[bot] commented #415
  • May 19 20:05
    richardotis commented #415
JinCODER
@JinCODER
that would be cool,thank u sir.
Help a lot,thank u!
JinCODER
@JinCODER

Sir, Database("mc_fe_v2.059.pycalphad.tdb")

the traceback goes like :

File "pyCalphad_test/Bi.py",
line 6, in <module>
db_alzn = Database('FE.TDB')

File "D:\ANACONDA\envs\pycalphad-env\lib\site-packages\pycalphad\io\database.py",
line 119, in new
return cls.from_file(fname, fmt=fmt)

File "D:\ANACONDA\envs\pycalphad-env\lib\site-packages\pycalphad\io\database.py",
line 213, in from_file
format_registry[fmt.lower()].read(dbf, fd)

File "D:\ANACONDA\envs\pycalphad-env\lib\site-packages\pycalphad\io\tdb.py",
line 932, in read_tdb
lines = fd.read().upper()

UnicodeDecodeError: 'gbk' codec can't decode byte 0xbd in position 201209: illegal multibyte sequence

Richard Otis
@rotis:matrix.org
[m]
Try Database(open('FE.TDB', encoding='utf-8').read())
JinCODER
@JinCODER
It works.Thanks.;p
Taopheeck Yusuf
@yusuftosin
Hi, I am a Metallurgy student currently an intern at the steel plant automation department. I'm looking at investigating the possibility of incorporating a real-time thermodynamic model/phase diagram calculations into already existing plant models, and I just saw the highly inspiring @rotis:matrix.org's Pycalphad's tutorial on Youtube. Unfortunately, I'm still not able to install the software following the steps on pycalphad.org with Jupyter. I will be glad to get a help here; here's what I've done https://drive.google.com/file/d/1ybUOTgoWrdnZCjFjYr7Tl4incd7VSj-q/view?usp=sharing
Richard Otis
@rotis:matrix.org
[m]
@yusuftosin: Welcome! The output from your screenshot looks like it's from a successful installation. Are you able to run any of the examples from the website?
Taopheeck Yusuf
@yusuftosin
Thanks sir, you are correct because I checked this directory c:\users\yusuf\anaconda3\lib\site-packages (0.9.2) and found Pycalphad sitting there, but to check the version from Jupyter with "pip3 list" returned syntax error.
Taopheeck Yusuf
@yusuftosin
@rotis:matrix.org thanks for the pointer, I tried running the examples on the website "Plotting Isobaric Binary Phase Diagrams with binplot", I couldn't load database to my working directory. I found this above https://github.com/pycalphad/binder/tree/develop/multicomponent-databases, but I'm still trying to figure out how to load it. https://drive.google.com/file/d/1gYkoBvWxB84ejz_4YJ8EBlGYGAB94CM7/view?usp=sharing. Any help please :D
1 reply
jwsowards
@jwsowards
1 reply

Greetings! Has anybody tried a Scheil calculation with a system that models the liquid phase as an ordered “ionic liquid”? I’m trying calcs with a Nb-O-Zr TDB (attached). The error I get, below, is the one i see where liquid is not being found (i.e. initial temp is too low), even after I named the liquid phase according to the ionic liquid phase in the TDB (e.g. liquid_phase_name = ‘IONIC_LIQ’). Complete code example is below. Also the binary looks funky at O > 0.6 mol fraction, and wondering if there are any thoughts there? I won’t run calcs in that region but are there any red flags with the database, etc. Thanks for any ideas.

UnboundLocalError: local variable 'current_fraction_solid' referenced before assignment

Pycalphad v.0.9.2
Scheil v.0.1.6

solvent = 'Niobium'
solute = 'Oxygen'
a = 'NB'
b = 'O'

db = Database('ONBZRDATFILE.tdb')
phases = sorted(db.phases.keys())
comps = [a, b, 'VA']

fig = plt.figure(figsize=(9,6))
axes = fig.gca()

binplot(db, comps, phases, {v.X(b):(0.,1.0,0.05), v.T: (500, 3000, 25.), v.P:101325, v.N: 1}, plot_kwargs={'ax': axes})
plt.xlim(0., 1.0)
plt.ylim(500, 3000)
plt.show()

liquid_phase_name = 'IONIC_LIQ'
initial_composition = {v.X(b): 1.0e-3}
start_temperature = 3000.0

sol_res = simulate_scheil_solidification(db, comps, phases, initial_composition, start_temperature, step_temperature=0.25, verbose=True)

for phase_name, amounts in sol_res.cum_phase_amounts.items():
plt.plot(sol_res.temperatures, amounts, label=phase_name)
plt.plot(sol_res.temperatures, sol_res.fraction_liquid, label='LIQUID')
plt.ylabel('Phase Fraction')
plt.xlabel('Temperature (K)')
plt.title(str(solvent)+'-'+str(solute)+' Scheil Simulation')
plt.legend(loc='best')

plt.yscale('log')

plt.ylim(0.000, 1.1)
plt.show()

Brandon Bocklund
@bocklund:matrix.org
[m]
jwsowards
@jwsowards
Yes, rookie mistake. Thanks, Brandon.
Brandon Bocklund
@bocklund:matrix.org
[m]
I also plotted up the energy surface at 2000 K. It looks like the energies pycalphad is seeing shows that there's single phase liquid at ~70 % O, so the binary phase diagram looks "correct" in terms of what pycalphad is seeing, but I would probably expect O-rich gas to be more stable than liquid :)
1 reply
Code for that:
from pycalphad import Database, binplot, variables as v, equilibrium, calculate
from scheil import simulate_scheil_solidification
import matplotlib.pyplot as plt

solvent = 'Niobium'
solute = 'Oxygen'
a = 'NB'
b = 'O'

db = Database('ONBZRDATFILE.tdb')
phases = sorted(db.phases.keys())
comps = [a, b, 'VA']

# Energy surface
cr = calculate(db, comps, phases, T=2000, N=1, P=101325)
fig, ax = plt.subplots()
for phase_name in sorted(set(cr.Phase.values.flatten().tolist())):
    msk_cr = cr.where(cr.Phase == phase_name)
    ax.scatter(msk_cr.X.sel(component='O').squeeze(), msk_cr.GM.squeeze(), s=2, label=phase_name)
ax.legend(loc='center left', bbox_to_anchor=(1.01, 0.5))
ax.set_ylim(cr.GM.min() - 10000, 0)
ax.set_xlabel("X(O)")
ax.set_ylabel("GM (J/mol-atom)")
ax.set_title("T = 2000 K")
fig.savefig('GM.png', bbox_inches='tight')
Noxical
@Noxical
image.png
hi guys, first of all thanks for your work. I like the pycalphad method and idea very much. I am struggling with small problem. I am able to generate heat capacity of hot metal with the following code. However I would like to be able to get the heat capacity at specific temperature say 1400 degC. I dont know how to get it from the dataset. should be easy, as I am quite new to python also
2 replies
Ross Williams
@r-williams-2

Hi guys! Just a quick question regarding the concentration outputs from an equilibrium solve. Why are there so many NaNs when using eq.X.sel(component='AL').values.squeeze()? Has this got something to do with site fractions? Furthermore, why are these not only the input concentrations prescribed in

my_vars = {v.X('AL'):(np.linspace(concentrations_min[0], concentrations_max[0], num_points)),
           v.X('CO'):(np.linspace(concentrations_min[1], concentrations_max[1], num_points)),
           v.X('CR'):(np.linspace(concentrations_min[2], concentrations_max[2], num_points)),
           v.X('MO'):(np.linspace(concentrations_min[3], concentrations_max[3], num_points)),
           v.X('TI'):(np.linspace(concentrations_min[4], concentrations_max[4], num_points)),
            v.T: (Temperature),
           v.P:Pressure}

when num_points=2 and concentrations_min/_max are arrays of the lower and upper bounds of the concentration space of interest? np.shape(eq.X.sel(component='AL').values.squeeze()) yields (8, 2, 2, 2, 2, 2, 7), where there are 8 temperatures, and each of the five elements can take two values of the min and max concentrations.

The context for this question is that I want to extract the free energy at various temperatures, across a multicomponent concentration space for a single phase. I want to be able to correlate a specific concentration for each component to one of the outputs from pycalphad. If it's quicker to perform an equilibrium calculation in a for loop for each concentration set, I can do that instead.

Thanks in advance for the help!

2 replies
Richard Otis
@rotis:matrix.org
[m]
Multiple copies of a phase at distinct compositions is a miscibility gap and is allowed, thermodynamically. You may have done this calculation in other codes or have other information to suggest the single phase is stable, in which case this could be a bug in pycalphad's miscibility gap detection.
1 reply
Though you shouldn't be getting 10+ distinct compositions in a 5 component system
Richard Otis
@rotis:matrix.org
[m]
@r-williams-2: That is strange. If you could share a minimal example of this behavior, I'll investigate the issue further.
1 reply
adurga21
@adurga21
Hello, I am new to pycalphad and have just started exploring it. Like some other packages, are diffusion and precipitation calculation modules also part of pycalphad? I could not find any information on this on the website, so thought would ask here. Thanks a lot!
Richard Otis
@rotis:matrix.org
[m]
@adurga21: Hello and welcome. For precipitation we recommend Kawin, which is an affiliated package which uses pycalphad for some calculations. https://kawin.org
1 reply
Ross Williams
@r-williams-2
Hi guys! Just a quick question about this example (https://pycalphad.org/docs/latest/examples/CementiteAnalysis.html). Could you just give a bit of background on why you multiply by 4, please? Is this because there are 3 iron atoms and one carbon atom in the unit cell? For gamma prime, should I also multiply by 4 (3 nickel atoms and one aluminium atom) before converting to a volumetric heat capacity using the molar volume of the mixture?
Richard Otis
@rotis:matrix.org
[m]
Yes is the answer to your first question. It all depends on whether you are looking at heat capacity per atom, or per formula-unit of a given phase
By default, pycalphad returns properties in terms of per-atom.
3 replies
wuhao-tit
@wuhao-tit
Hello guys. Is there a method to calculate para-equilibrium, not full equilibrium
Richard Otis
@rotis:matrix.org
[m]
@wuhao-tit: Welcome. The short answer is 'not yet'. pycalphad 0.10.0 added some fundamental code which will enable constraints on individual sublattice site fractions (which is what is needed for para-equilibrium), but we haven't exposed the functionality in the main interface yet. If you have some skill with Python it's possible to do it today with 30-40 lines of code, but the solution would be very much a hack. We may have the feature ready for release before the annual CALPHAD meeting in May.
wuhao-tit
@wuhao-tit
@rotis:matrix.org: Thanks for answer. I notice latest pycalphad 0.10.0 was uploaded, I want to built para-equilibrium calculator. please give me some cue on calculating individual sublattice site fraction.
Noxical
@Noxical
Hello, I am trying to find the liquidus temperature of Fe-C mixture using PyCalphad. I generate resuls over a range of Fe-C compositions and want to know at which composition X_C i will hit the liquidus line. I have the following code, however I do not know how to automate the search for phase.
image.png
Richard Otis
@rotis:matrix.org
[m]

@Noxical Here is a sketch of an idea of how to approach it. Ideally we'd be able to compute liquid temperatures directly using equilibrium, but that isn't fully supported yet.

from pycalphad import Database, equilibrium, variables as v
dbf = Database('C:/Users/rotis/git/pycalphad-binder/multicomponent-databases/steel1.TDB')
eq = equilibrium(dbf, ['FE', 'C', 'VA'], ['FCC_A1', 'BCC_A2', 'LIQUID'],
                 {v.X('C'): (1e-4, 0.3, 0.01), v.T: 650, v.P: 1e5, v.N: 1})

import matplotlib.pyplot as plt
from pycalphad.plot.utils import phase_legend

stable_phases = sorted(set(eq.Phase.values.flatten()) - {''})
phase_handles, phasemap = phase_legend(stable_phases)

plt.gca().set_title('Phase fractions vs X(C)')
plt.gca().set_xlabel('X(C)')
plt.gca().set_ylabel('Phase Fraction')
plt.gca().set_ylim((0,1.1))

for phase in stable_phases:
    plt.scatter(eq.X_C.broadcast_like(eq.NP), eq.NP.where(eq.Phase == phase), color=phasemap[phase])
plt.gca().legend(phase_handles, stable_phases, loc='center left')

import numpy as np
min_liquid_fraction_idx = eq.NP.where(eq.Phase == 'LIQUID').squeeze().fillna(np.inf).argmin(axis=0).sel(vertex=0)
min_carbon_content = eq.X_C[min_liquid_fraction_idx]
print('Carbon content where liquid first appears: ', float(min_carbon_content))

Note that this will give you a solidus temperature (where liquid first appears), not the liquidus (where all the solid is consumed and only the liquid is left).

1 reply
For the liquidus, you'd need to find the first value in the NP array corresponding to the liquid phase that is equal to 1.0, meaning the phase is the only one that is stable at that composition. The indexing looks slightly different but it's similar to what I've shown here.
JinCODER
@JinCODER

Hi,Brandon and Richard.I'm trying to load my own-made TDB file,but there's something wrong with the program.
``` (shift+enter for line break)
import matplotlib.pyplot as plt
from pycalphad import Database, binplot
import pycalphad.variables as v

dbf = Database(open('Fe-Ti.tdb', encoding='utf-8').read())
comps = ['FE', 'TI', 'VA']
phases = dbf.phases.keys()
binplot(dbf,
comps,
phases,
{v.N: 1,
v.P:101325,
v.T: (300, 1000, 10),
v.X('FE'):(0, 1, 0.02)
}
)
plt.show()
```
And the error is "pyparsing.exceptions.ParseException: Expected {{'ELEMENT' W:(-/A-Za-z){1,2} W:((-)-/-:A-Z_a-z) Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)') Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)') Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)') LineEnd} | {'SPECIES' W:(-+--9A-Z_a-z) [Suppress:('%')] Group:({{W:(A-Za-z){1,2} [Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)')]}}...) [Suppress:('/') W:(+-0-9)] LineEnd} | {'TYPE_DEFINITION' Suppress:(<SP><TAB><CR><LF>) !W:( !) SkipTo:(LineEnd)} | {'FUNCTION' W:((-)-/-:A-Z_a-z) {{Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)') | [',']...} {{SkipTo:(';') Suppress:(';') [Suppress:(',')]... [Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)')] Suppress:([(Yy)])}}... Suppress:([(Nn)])} [Suppress:(W:(-0-:A-Z_a-z))] LineEnd} | {'ASSESSED_SYSTEMS' SkipTo:(LineEnd)} | {'DEFINE_SYSTEM_DEFAULT' SkipTo:(LineEnd)} | {'DEFAULT_COMMAND' SkipTo:(LineEnd)} | {'DATABASE_INFO' SkipTo:(LineEnd)} | {'VERSION_DATE' SkipTo:(LineEnd)} | {'REFERENCE_FILE' SkipTo:(LineEnd)} | {'ADD_REFERENCES' SkipTo:(LineEnd)} | {'LIST_OF_REFERENCES' SkipTo:(LineEnd)} | {'TEMPERATURE_LIMITS' SkipTo:(LineEnd)} | {'PHASE' W:((-)-/-:A-Z_a-z) Suppress:(<SP><TAB><CR><LF>) !W:( !) Suppress:(<SP><TAB><CR><LF>) Suppress:(W:(0-9)) Group:({Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)')}...) Suppress:(SkipTo:(LineEnd))} | {'CONSTITUENT' W:((-)-/-:A-Z_a-z) Suppress:(<SP><TAB><CR><LF>) Suppress:(':') Group:(Group:({{[Suppress:(',')] W:(-+--9A-Z_a-z) [Suppress:('%')]}}...) [: Group:({{[Suppress:(',')] W:(-+--9A-Z_a-z) [Suppress:('%')]}}...)]...) Suppress:(':') LineEnd} | {'PARAMETER' {'BMAGN' | 'DF' | 'DQ' | 'ELRS' | 'G' | 'GD' | 'L' | 'MF' | 'MQ' | 'NT' | 'SIGM' | 'TC' | 'THCD' | 'THETA' | 'V0' | 'VA' | 'VC' | 'VISC' | 'VK' | 'VS' | 'XI'} Suppress:('(') W:((-)-/-:A-Z_a-z) [Suppress:('&') W:(-/A-Za-z){1,2}] Suppress:(',') Group:(Group:({{[Suppress:(',')] W:(-+--9A-Z_a-z) [Suppress:('%')]}}...) [: Group:({{[Suppress:(',')] W:(-+--9A-Z_a-z) [Suppress:('%')]}}...)]...) [Suppress:(';') W:(0-9)] Suppress:(')') {{Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)') | [',']...} {{SkipTo:(';') Suppress:(';') [Suppress:(',')]... [Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)')] Suppress:([(Yy)])}}... Suppress:([(Nn)])} [Suppress:(W:(-0-:A-Z_a-z))] LineEnd}}, found 'UN' (at char 49), (line:1, col:50)"

JinCODER
@JinCODER
import matplotlib.pyplot as plt
from pycalphad import Database, binplot
import pycalphad.variables as v

dbf = Database(open('Fe-Ti.tdb', encoding='utf-8').read())

comps = ['FE', 'TI', 'VA']
phases = dbf.phases.keys()

binplot(dbf,
        comps,
        phases,
        {v.N: 1,
         v.P:101325,
         v.T: (300, 1000, 10),
         v.X('FE'):(0, 1, 0.02)
         }
        )

plt.show()
Brandon Bocklund
@bocklund:matrix.org
[m]

At the top of the traceback for the error, it reads:

Failed while parsing:     FUNCTION ZERO 298.15 0.0; 6000.00 N FUNCTION UN_ASS 298.15 0.0; 3.00000E+02 N FUNCTION GHSERFE 298.15 1225.7+124.134*T-23.5143*T*LN(T)-4.39752E-3*T**2-0.058927E-6*T**3 +77359*T**(-1); 1811 Y -25383.581+299.31255*T-46*T*LN(T)+2296.03E28*T**(-9); 6000.00 N

the FUNCTION ZERO and FUNCTION UN_ASS lines are missing the line terminators (!)

JinCODER
@JinCODER
Thanks,Sir.
JinCODER
@JinCODER
Hi,Brandon and Richard.Sorry to bother you.How can I translate the traceback of the error by myself?It looks like a regexp.
'''
pyparsing.exceptions.ParseException: Expected {{'ELEMENT' W:(-/A-Za-z){1,2} W:((-)-/-:A-Z_a-z) Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)') Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)') Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)') LineEnd} | {'SPECIES' W:(-+--9A-Z_a-z) [Suppress:('%')] Group:({{W:(A-Za-z){1,2} [Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)')]}}...) [Suppress:('/') W:(+-0-9)] LineEnd} | {'TYPE_DEFINITION' Suppress:(<SP><TAB><CR><LF>) !W:( !) SkipTo:(LineEnd)} | {'FUNCTION' W:((-)-/-:A-Z_a-z) {{Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)') | [',']...} {{SkipTo:(';') Suppress:(';') [Suppress:(',')]... [Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)')] Suppress:([(Yy)])}}... Suppress:([(Nn)])} [Suppress:(W:(-0-:A-Z_a-z))] LineEnd} | {'ASSESSED_SYSTEMS' SkipTo:(LineEnd)} | {'DEFINE_SYSTEM_DEFAULT' SkipTo:(LineEnd)} | {'DEFAULT_COMMAND' SkipTo:(LineEnd)} | {'DATABASE_INFO' SkipTo:(LineEnd)} | {'VERSION_DATE' SkipTo:(LineEnd)} | {'REFERENCE_FILE' SkipTo:(LineEnd)} | {'ADD_REFERENCES' SkipTo:(LineEnd)} | {'LIST_OF_REFERENCES' SkipTo:(LineEnd)} | {'TEMPERATURE_LIMITS' SkipTo:(LineEnd)} | {'PHASE' W:((-)-/-:A-Z_a-z) Suppress:(<SP><TAB><CR><LF>) !W:( !) Suppress:(<SP><TAB><CR><LF>) Suppress:(W:(0-9)) Group:({Re:('[-+]?([0-9]+.(?!([0-9]|[eE])))|([0-9].?[0-9]+([eE][-+]?[0-9]+)?)')}...) Suppress:(SkipTo:(LineEnd))} | {'CONSTITUENT'
'''
2 replies
JinCODER
@JinCODER
Thanks,Brandon.I finally calculate the phase diagram out!!!!
image.png
Yangyiwei Yang
@StephenPotato
Dear Pycalphad staff! I am recently using pycalphad to do the research on the L1_2 chemical ordering of the FeNi permalloy and am interested in the quantity "degree of ordering (DOO)". I have checked the publication of the pycalphad where this DOO is mentioned (great work! btw), but couldn't find any information regarding this quantity. I would then assume that this quantity demonstrates the proportion of the atomic ordered phase in the system. The question would be then how this DOO is calculated from, e.g., the free energies using sub-lattice model.
It would be great if you can share more information/reference regarding DOO with me. Thank you in advance!
Richard Otis
@rotis:matrix.org
[m]

There's no one officially accepted way that I'm aware of to compute degree of ordering. The way it's calculated in pycalphad is shown here: https://github.com/pycalphad/pycalphad/blob/56201bfb10372fb7ef90efde4f3fa431781c36bc/pycalphad/model.py#L347
The key piece of it is Abs(v.SiteFraction(self.phase_name, idx, comp) - self.moles(comp)) / self.moles(comp). We're basically looking at the percent deviation of the sublattice content compared to the overall composition, for each component. Then we sum up all the deviations and divide by a normalization factor.

I don't have a reference for the function. I developed it during my dissertation study so I had a degree of ordering function that varied from 0 to 1 and also worked for multi-component systems. It hasn't been extensively investigated by me (or anyone, to my knowledge)

Yangyiwei Yang
@StephenPotato
Dear Richard, thank you so much for the prompt reply. Yes, I agree that it is not common to calculate this DOO in the other calphad works from my eyes. To me, it matters that I have to explain how this quantity is calculated in my work if I eventually decided to present it.
Is it possible for me to access to your dissertation? it would be a great help, thanks!
Richard Otis
@rotis:matrix.org
[m]
https://etda.libraries.psu.edu/catalog/s1784k73d - but degree of ordering calculation is not discussed in much more detail than in the pycalphad paper you've already read
Yangyiwei Yang
@StephenPotato
Thank you very much. I will then have a careful check, and maybe cite both pycalphad article as well as your dissertation if I eventually decided to present DOO in my work.
6 replies