Nanoindentation Tip Library
Nanoindenter tip: shape / area-function and the compliance
- class micromechanics.indentation.tip.Tip(shape: Any = 'perfect', interpFunction: Callable[[ndarray], Any] | None = None, compliance: float = 0.0, plot: bool = False, verbose: int = 0)
Bases:
objectThe main class to define indenter shape and other default values.
- __init__(shape: Any = 'perfect', interpFunction: Callable[[ndarray], Any] | None = None, compliance: float = 0.0, plot: bool = False, verbose: int = 0)
Initialize indenter shape
- Parameters:
shape (list) – list of prefactors (default = “perfect”)
interpFunction (function) – tip-shape function Ac = f(hc), when it is given, other information is superseded
compliance (float) – additional compliance in test [um/mN] (sensible values: 0.0001..0.01)
plot (bool) – plot indenter shape
verbose (bool) – output
- areaFunction(h: ndarray) ndarray
AREA FUNCTION: from contact depth hc calculate area
analytical functions inside are using [nm]; the outside of this function uses [um]|br| hence at the start and end there is conversion. Interpolation functions use the outside units directly: contact depth [um] and projected area [um^2].prefactors:
“iso” type area function A=ax^2+bx^1+cx^0.5…, [nm]
“perfect” type area function of a perfect Berkovich A=3*sqrt(3)*tan(65.27)^2 hc^2 = 24.494 hc^2
- “sphere” type: A=pi(2Rh-h^2), h=depth, R indenter radius; for small h-> h^2=0
prefactors [-pi, 2piR], R in nm does not account for cone at top
- Parameters:
h – contact depth in um
- areaFunctionInverse(area: ndarray, hc0: ndarray | None = None) ndarray | None
INVERSE AREA FUNCTION: from area calculate contact depth hc
using Newton iteration with initial guess contact depth hc0prefactors:
“perfect” type area function uses the direct inverse of a perfect Berkovich tip
other monotonic area functions are inverted numerically
- Parameters:
area (numpy.array) – projected contact area
hc0 (numpy.array) – initial Guess contact depth
- Returns:
h = total penetration depth
- Return type:
numpy.array
- plotIndenterShape(maxDepth: float = 1, steps: int = 50, show: bool = True, tipLabel: str = 'this tip', fileName: str = '') None
check indenter shape: plot shape function against perfect Berkovich
analytical: perfect shape is 2.792254*x- Parameters:
maxDepth (numpy.array) – maximum depth [um] to plot; default=10um
steps (int) – number of steps for plotting
show (bool) – show figure
tipLabel (str) – label for this tip
fileName (str) – if given, save to file
- property prefactors: list[Any] | None
Backward-compatible representation of the tip area function.
- Returns:
area-function prefactors followed by the shape name, or None for interpolation tips.
- Return type:
list[Any] | None
- setInterpolationFunction(interpFunction: Callable[[ndarray], Any]) None
The interpolation of tip-shape function Ac = f(hc)
From Oliver-Pharr Method, projected area of contact Ac can be obtained by measuring contact depth hc.
When the interpolation function is given, other information is superseded.
The interpolation function takes contact depth in um and returns projected area in um^2.
- Parameters:
interpFunction (function) – interpolation function from contact depth [um] to projected area [um^2].