Source code for nanite.model

from . import model_conical_indenter  # noqa: F401
from . import model_hertz_paraboloidal  # noqa: F401
from . import model_hertz_three_sided_pyramid  # noqa: F401
from . import model_sneddon_spherical  # noqa: F401
from . import model_sneddon_spherical_approximation  # noqa: F401


[docs]def get_model_by_name(name): """Convenience function to obtain a model by name instead of by key""" for key in models_available: if models_available[key].model_name == name: return models_available[key] else: raise KeyError("No model with name {}".format(name))
[docs]def get_parm_name(model_key, parm_key): """Get human readable parameter label Parameters ---------- model_key: str The model key (e.g. "hertz_cone") parm_key: str The parameter key (e.g. "E") Returns ------- parm_name: str The parameter name (e.g. "Young's Modulus") """ model = models_available[model_key] idx = model.parameter_keys.index(parm_key) return model.parameter_names[idx]
[docs]def get_init_parms(model_key): """Get initial fit parameters for a model""" model = models_available[model_key] parms = model.get_parameter_defaults() return parms
models_available = {} # Populate list of available fit models loc = locals().copy() for item in loc: if item.startswith("model_"): models_available[loc[item].model_key] = loc[item]