def fuelinput(wp):
    """
    function to calculate the weight percentage of MOX nuclides
    
    formulae from http://holbert.faculty.asu.edu/eee460/NumberDensity.pdf
    
    Parameters
    ----------
    wp : float
        Plutonium content in percentage
        
    Returns
    -------
    fuelstr : str
        Serpent formatted material composition
        
    Notes
    -----
    1, Right now the temperature is hard coded (ie ZAID ends with '.15c'), this can be modified.
    2, Right now the density of fuel is hard coded, this can be modified
    3, The fuel string includes Cf nuclides with 0.0w%. This is to force Serpent2 to include these
    nuclides. The reason to include them because they might be relevant in subsequent neutron coincidence
    based calculations.
    """
    u=1000*1.660539040e-27  #g
    NA=6.0221409e23   ##/mol
    M={'U235': 235.0439299*u*NA,
       'U234': 234.0409521*u*NA,
       'U238': 238.05078826*u*NA,
       'Pu238': 238.0495599*u*NA,
       'Pu239': 239.0521634*u*NA,
       'Pu240': 240.0538135*u*NA,
       'Pu241': 241.0568515*u*NA,
       'Pu242': 242.0587426*u*NA}
               
    Puvec={'Pu238':2.5/100,'Pu239':54.7/100,'Pu240':26.1/100,'Pu241':9.5/100,'Pu242':7.2/100}
    Uvec={'U234':0.0012/100,'U235':0.25/100,'U238':99.7488/100} #czsolti 0.00119 rounded to get 1
    MO16= 15.99491461956*u*NA
    rhoMOX=10.5     #g/cm3 czsolti this density falls out from the equations
    
    wp=wp/100
    
    MU=1/sum([Uvec[iso]/M[iso] for iso in Uvec])
    MPu=1/sum([Puvec[iso]/M[iso] for iso in Puvec])

    MHM=(1-wp)*MU+wp*MPu
    MMOX=MHM+2*MO16
    
    
    rhoHM=rhoMOX*(MHM/MMOX)
    rhoO=rhoMOX*(MO16/MMOX)
    
    MVOL={}
    for iso in Uvec:
        MVOL[iso] = (1-wp)*Uvec[iso]*rhoHM
    for iso in Puvec:
        MVOL[iso] = wp*Puvec[iso]*rhoHM
        
    M_O16=(rhoO*2)
    M_TOT=sum(MVOL.values())+M_O16

    fuelstr='mat MOX -10.5 burn 1'
    fuelstr=fuelstr+'\n 92234.15c  -%.8f'%(MVOL['U234']/M_TOT)
    fuelstr=fuelstr+'\n 92235.15c  -%.8f'%(MVOL['U235']/M_TOT)
    fuelstr=fuelstr+'\n 92238.15c  -%.8f'%(MVOL['U238']/M_TOT)
    fuelstr=fuelstr+'\n 94238.15c  -%.8f'%(MVOL['Pu238']/M_TOT)
    fuelstr=fuelstr+'\n 94239.15c  -%.8f'%(MVOL['Pu239']/M_TOT)
    fuelstr=fuelstr+'\n 94240.15c  -%.8f'%(MVOL['Pu240']/M_TOT)
    fuelstr=fuelstr+'\n 94241.15c  -%.8f'%(MVOL['Pu241']/M_TOT)
    fuelstr=fuelstr+'\n 94242.15c  -%.8f'%(MVOL['Pu242']/M_TOT)
    fuelstr=fuelstr+'\n 8016.15c   -%.8f'%(M_O16/M_TOT)
    fuelstr=fuelstr+'\n 98249.15c  -0.0'
    fuelstr=fuelstr+'\n 98250.15c  -0.0'
    fuelstr=fuelstr+'\n 98251.15c  -0.0'
    fuelstr=fuelstr+'\n 98252.15c  -0.0'
    fuelstr=fuelstr+'\n 98253.15c  -0.0'
    fuelstr=fuelstr+'\n 98254.15c  -0.0'
    return fuelstr