Custom python T-matrix generator test.
This commit is contained in:
parent
a5b137847a
commit
b12fc991e5
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
from qpms import TMatrixGenerator, BaseSpec, eV, hbar
|
||||||
|
import numpy as np
|
||||||
|
import sys
|
||||||
|
|
||||||
|
errors = 0
|
||||||
|
|
||||||
|
def tmg_diagonal_fun(tmatrix, omega):
|
||||||
|
'''
|
||||||
|
Example of a python function used as a custom T-matrix generator
|
||||||
|
|
||||||
|
It receives a CTMatrix argument with pre-filled BaseSpec
|
||||||
|
(in tmatrix.spec) and angular frequency.
|
||||||
|
|
||||||
|
It has to fill in the T-matrix elements tmatrix[...]
|
||||||
|
(a numpy array of shape (len(tmatrix.spec),len(tmatrix.spec)))
|
||||||
|
and return zero (on success) or other integral value on error.
|
||||||
|
|
||||||
|
Note that this in justa an example of using the API,
|
||||||
|
not supposed to be anything physical.
|
||||||
|
'''
|
||||||
|
l = tmatrix.spec.l()
|
||||||
|
tmatrix[...] = np.diag(1./l**2)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
# Wrap the function as an actual TMatrixGenerator
|
||||||
|
tmg_diagonal = TMatrixGenerator(tmg_diagonal_fun)
|
||||||
|
|
||||||
|
bspec = BaseSpec(lMax=2)
|
||||||
|
|
||||||
|
tmatrix = tmg_diagonal(bspec, (2.0+.01j) * eV/hbar)
|
||||||
|
|
||||||
|
errors += np.sum(tmatrix[...] != np.diag(1./bspec.l()**2))
|
||||||
|
|
||||||
|
sys.exit(errors)
|
||||||
|
|
Loading…
Reference in New Issue