-
Notifications
You must be signed in to change notification settings - Fork 6
How to access parameter values for conditional refinements
Sven Vogel edited this page Oct 8, 2022
·
3 revisions
Similar to accessing parameters to set values, e.g. `
# set values for alpha phase lattice parameters editor.set_val(key='_cell_length_a', sobj='Zr-alpha', value='3.236') editor.set_val(key='_cell_length_c', sobj='Zr-alpha', value='5.152') # set the beta lattice parameter to a likely value for residual beta at ambient editor.set_val(key='_cell_length_a', sobj='Zr-beta', value='3.57')`
one can also read parameter values in a MILK analysis script using code like this: `
editor.get_val(key='_pd_phase_atom_') phase_frac = editor.value`
This stores the results of a parameter tree query similar to the one for setting parameter values in the variable 'editor.value', which can be subsequently stored in a different variable. To execute conditional refinements, code such as the following can be used: `
phases = ['Zr-alpha', 'Zr-beta'] # THIS LINE IS NORMALLY EARLIER IN THE STEP 3 PYTHON CODE editor.get_val(key='_pd_phase_atom_') phase_frac = editor.value for i, phase in enumerate(phases): if float(phase_frac[i]) > 0.2: editor.free(key='MicroStrain', sobj=phases[i]) editor.free(key='CrystSize', sobj=phases[i]) print("Phase fraction of phase <",phases[i],"> is greater than 0.2, varying MicroStrain and CrystSize.") else: print("Phase fraction of phase <",phases[i],"> is less than 0.2, NOT varying MicroStrain and CrystSize.") if float(phase_frac[i]) > 0.05: editor.free(key='_cell_length_', sobj=phases[i]) print("Phase fraction of phase <",phases[i],"> is greater than 0.05, varying lattice parameters.") else: print("Phase fraction of phase <",phases[i],"> is less than 0.05, NOT varying lattice parameters.")