# epsproc.geomFunc.mfblmGeom module

epsproc.geomFunc.mfblmGeom.mfblmXprod(matEin, QNs=None, EPRX=None, p=[0], BLMtable=None, BLMtableResort=None, lambdaTerm=None, RX=None, eulerAngs=None, polProd=None, thres=0.01, thresDims='Eke', selDims={'Type': 'L', 'it': 1}, sumDims=['mu', 'mup', 'l', 'lp', 'm', 'mp'], sumDimsPol=['P', 'R', 'Rp', 'p'], symSum=True, SFflag=False, squeeze=False, phaseConvention='E', basisReturn='BLM', verbose=0, **kwargs)[source]

Implement $$\beta_{LM}^{MF}$$ calculation as product of tensors.

$\begin{split}\begin{eqnarray} \beta_{L,-M}^{\mu_{i},\mu_{f}} & = & \sum_{l,m,\mu}\sum_{l',m',\mu'}(-1)^{(\mu'-\mu_{0})}{B_{L,-M}}\nonumber \\ & \times & \sum_{P,R',R}{E_{P-R}(\hat{e})\Lambda_{R',R}(R_{\hat{n}})}I_{l,m,\mu}^{p_{i}\mu_{i},p_{f}\mu_{f}}(E)I_{l',m',\mu'}^{p_{i}\mu_{i},p_{f}\mu_{f}*}(E) \end{eqnarray}\end{split}$

Where each component is defined by fns. in :py:module:epsproc.geomFunc.geomCalc module.

12/08/22 Updating from afblmXprod routine for use with fitting functions.

Added ProductBasis return as per afblmGeom case, for use in fitting. Added **kwargs, unused but allows for arb basis dict unpack and passing from other functions. May want to pipe back to Full basis return however. Updated docs as per afblmXprod. TODO: still needs a tidy up and update, including BLM renorm options, again see afblmGeom code.

16/03/20 In progress!

Dev code:

http://localhost:8888/lab/tree/dev/ePSproc/geometric_method_dev_Betas_090320.ipynb D:codeePSprocpython_devePSproc_MFBLM_Numba_dev_tests_120220.PY

Parameters
• matE (Xarray) – Xarray containing matrix elements, with QNs (l,m), as created by readMatEle()

• settings (*** Optional calculation) –

• selDims (dict, default = {'it':1, 'Type':'L'}) – Selection parameters for calculations, may be be checked and appened herein.

• sumDims (list, default = ['mu', 'mup', 'l','lp','m','mp']) – Main summation dims, will be checked herein.

• sumDimsPol (list, default = ['P','R','Rp','p']) – Additional polarization summation dims.

• symSum (bool, default = True) – Sum over symmetries sets (=={Cont, Targ, Total}) if true.

• degenDrop (bool) – Flag to set dropping of degenerate components. NOT IMPLEMENTED FOR MF CASE - see afblmXprod.

• thres (float, default = 1e-2) – Set threshold value, used to set input matrix elements and again for outputs.

• thresDims (str, default = 'Eke') – Set threshold dimension (set to be contiguous).

• verbose (bool or int) – Print output?

*** Optional renormalisation settings (mainly for testing only)

SFflagbool, default = False

Multiply input matrix elements by complex scale-factor if true.

SFflagRenormbool, default = False

Renorm output BLMs by complex scale-factor if true. NOT IMPLEMENTED FOR MF CASE - see afblmXprod.

BLMRenormint, default = 1

Set different BLM renorm conventions. If 1 renorm by B00. See code for further details. NOT IMPLEMENTED FOR MF CASE - see afblmXprod.

squeezebool, default = False

Squeeze output array after thresholding? Note: this may cause dim issues if True.

*** Optional input data/basis functions (mainly for fitting routine use)

QNsnp.array, optional, default = None

List of QNs as generated by genllpMatE(). Will be generated if not passed.

EPRXXarray, optional, default = None

E-field parameters, as generated by EPR(). Defaults to normalised/unity field, pol = p (below).

plist or array, optional, default = [0]

Specify polarization terms p. Possibly currently only valid for p=0, TBC See https://epsproc.readthedocs.io/en/latest/methods/geometric_method_dev_260220_090420_tidy.html#E_{P,R}-tensor

BLMtable, BLMtableResortXarrays, optional, default = None

Beta calculation parameters, as defined by geomCalc.betaTerm(). BLMtableResort includes phase settings & param renaming as herein.

lambdaTermXarray, optional, default = None

Lambda term parameters, as defined by geomCalc.MFproj()

RXXarray, optional, default = None

Polarization geometries as defined by epsproc.sphCalc.setPolGeoms(). If not set, defaults are used by epsproc.geomFunc.geomCalc.MFproj(). If not set, but Euler angles are set, then these will be used.

eulerAngslist or np.array of Euler angles (p(hi), t(heta), c(hi)), optional.

Alternative definition for polarization geometries, as used by epsproc.sphCalc.setPolGeoms(). List or array [p,t,c…], shape (Nx3). List or array including set labels, [label,p,t,c…], shape (Nx4)

polProdXarray, optional, default = None

Polarization tensor as defined by EPRXresort * lambdaTermResort

phaseConventionoptional, str, default = ‘E’

Set phase conventions with epsproc.geomCalc.setPhaseConventions(). To use preset phase conventions, pass existing dictionary.

basisReturnoptional, str, default = “BLM”
• ‘BLM’ return Xarray of results only.

• ‘Full’ return Xarray of results + basis set dictionary as set during the run.

• ‘Product’, as full, but minimal basis set with products only.

• ‘Results’ or ‘Legacy’ direct return of various calc. results Xarrays.

**kwargs, unused but allows for arb basis dict unpack and passing from other functions.

Returns

• Xarray – Set of AFBLM calculation results

• dict – Dictionary of basis functions, only if basisReturn != ‘BLM’ (see basisReturn paramter notes).

Notes

Cross-section outputs currently defined as XS = direct MF calculation output.

Optionally set SFflag = True to multiply by (complex) scale-factor.

OTHER RENORM options not implemented as yet, see afblmXprod for details.