def init_c_overturn(step):
rbot, rtop = misc.get_rbounds(step)<EOL>xieut = step.sdat.par['<STR_LIT>']['<STR_LIT>']<EOL>k_fe = step.sdat.par['<STR_LIT>']['<STR_LIT>']<EOL>xi0l = step.sdat.par['<STR_LIT>']['<STR_LIT>']<EOL>xi0s = k_fe * xi0l<EOL>xired = xi0l / xieut<EOL>rsup = (rtop**<NUM_LIT:3> - xired**(<NUM_LIT:1> / (<NUM_LIT:1> - k_fe)) *<EOL>(rtop**<NUM_LIT:3> - rbot**<NUM_LIT:3>))**(<NUM_LIT:1> / <NUM_LIT:3>)<EOL>def initprof(rpos):<EOL><INDENT>"""<STR_LIT>"""<EOL>if rpos < rsup:<EOL><INDENT>return xi0s * ((rtop**<NUM_LIT:3> - rbot**<NUM_LIT:3>) /<EOL>(rtop**<NUM_LIT:3> - rpos**<NUM_LIT:3>))**(<NUM_LIT:1> - k_fe)<EOL><DEDENT>return xieut<EOL><DEDENT>rad = np.linspace(rbot, rtop, <NUM_LIT>)<EOL>initprof = np.vectorize(initprof)<EOL>return initprof(rad), rad<EOL>
Initial concentration.

    This compute the resulting composition profile if fractional
    crystallization of a SMO is assumed.

    Args:
        step (:class:`~stagpy.stagyydata._Step`): a step of a StagyyData
            instance.
    Returns:
        tuple of :class:`numpy.array`: the composition and the radial position
        at which it is evaluated.