I'm using a Python package called lmfit
to create a model:
from lmfit import Model
def PnE(E, sigma, n, E_k, overlap):
return ((1+np.exp(-(E_k-E)*sigma))**n*overlap)
To create a model, by instruction, I will do model = Model(PnE)
.
However, I wonder if I can create a function, which allows me to replace the variables sigma
and n
with different values. In other words, I want to generate different models, which have similar structures but only differ by sigma
and n
. I tried
def fit_PnE(sigma, n):
G = functools.partial(PnE, sigma, n)
model = Model(G)
But it returns NameError: name 'E_k' is not defined
. How can I define such a function that generates similar models? Thanks!!