def runTest(self): fp = lambda e: mpmath.matrix([[e, e], [e, e]]) rk.use_mpmath_types() cal = rk.get_asym_calc(cu.rydbergs, [0, 0]) dmat = rk.get_dmat_from_continuous(rk.Smat, fp, cal, 1., 5., 10, "dum4") self.assertEqual(nw.mode, nw.mode_mpmath) self.assertEqual(nw.dps, nw.dps_default_mpmath) for mat in dmat.values(): nw.shape(mat) # Will get an exception if types are wrong.
def runTest(self): data = {} data[1.] = mpmath.matrix([[1., 1.], [1., 1.]]) data[2.] = mpmath.matrix([[2., 2.], [2., 2.]]) rk.use_mpmath_types() cal = rk.get_asym_calc(cu.rydbergs, [0, 0]) dmat = rk.get_dmat_from_discrete(rk.Smat, data, cal, "dum2") self.assertEqual(nw.mode, nw.mode_mpmath) self.assertEqual(nw.dps, nw.dps_default_mpmath) for mat in dmat.values(): nw.shape(mat) # Will get an exception if types are wrong.
def find_stable_Smat_poles(self): cal = rk.get_asym_calc(cu.hartrees, [0, 0]) csmat = rw.get_Smat_fun(1.0, 2.0, 2.0, cal, 1.0) dsmat = csmat.discretise(1., 8., 100) rk.get_tool(rk.mcsmatfit, dsmat, archive_root=TEST_ROOT, silent=True) rk.get_tool(rk.mcsmatfit, dsmat, archive_root=TEST_ROOT, silent=True) dsmat.asymcalc.units = cu.rydbergs self.assertRaises(Exception, rk.get_tool, rk.mcsmatfit, dsmat, archive_root=TEST_ROOT, silent=True)
def find_stable_Smat_poles(self): cal = rk.get_asym_calc(cu.hartrees, [0,0]) csmat = rw.get_Smat_fun(1.0,2.0,2.0,cal,1.0) dsmat = csmat.discretise(1.,8.,100) mcsmatfit = rk.get_tool(rk.mcsmatfit, dsmat, archive_root=TEST_ROOT, silent=True) mcsmatfit.get_elastic_Smat(6) cfins = mcsmatfit.get_elastic_Fins(range(2,10,2)) mcsmatfit.find_stable_Smat_poles(cfins) self.assertFalse(mcsmatfit.all_coeffs_loaded) self.assertFalse(mcsmatfit.all_roots_loaded) cfins = mcsmatfit.get_elastic_Fins(range(2,10,2)) self.assertTrue(mcsmatfit.all_coeffs_loaded) # False because we haven't called find_stable_Smat_poles yet self.assertFalse(mcsmatfit.all_roots_loaded) roots = mcsmatfit.find_Fin_roots(cfins) mcsmatfit.find_stable_Smat_poles(roots) self.assertTrue(mcsmatfit.all_roots_loaded)
def find_stable_Smat_poles(self): cal = rk.get_asym_calc(cu.hartrees, [0,0]) csmat = rw.get_Smat_fun(1.0,2.0,2.0,cal,1.0) dsmat = csmat.discretise(1.,8.,100) mcsmatfit = rk.get_tool(rk.mcsmatfit, dsmat, archive_root=TEST_ROOT, silent=True) cfins = mcsmatfit.get_elastic_Fins(range(2,4,2)) mcsmatfit.find_stable_Smat_poles(cfins) # Import again with same config and check no exception rk.get_tool(rk.mcsmatfit, dsmat, archive_root=TEST_ROOT, silent=True) testPath = fileDir+os.sep+"test_mcsmatfit_data1"+os.sep+"default.yaml" self.assertRaises(Exception, rk.get_tool, rk.mcsmatfit, dsmat, archive_root=TEST_ROOT, param_file_path=testPath, silent=True) testPath = fileDir+os.sep+"test_mcsmatfit_data2"+os.sep+"default.yaml" self.assertRaises(Exception, rk.get_tool, rk.mcsmatfit, dsmat, archive_root=TEST_ROOT, param_file_path=testPath, silent=True)
param_path = "test_configuration_3.yaml" elif desc_str == "pbq": input_data_file = "kmatrix_input_pbq.txt" ang_mom = [1,3,3] sl = slice(0,624) num_plot_points = 312 param_path = "test_configuration_2.yaml" else: raise Exception(exceptStr) rk.use_mpmath_types(dps=100) if input_data_file is None: # System is a radial well # Get a calculator with units and channel angular momentum calc = rk.get_asym_calc(rk.hartrees, ang_mom) # Get a function pointer for the S matrix csmat = tcrw.get_Smat_fun(1.0, 2.0, 2.0, calc, 1.0) # Initialise the data into the required container dmat = rk.get_dmat_from_continuous(rk.Smat, csmat, calc, 1., 8., 1200, desc_str) else: # System is a molecule # Read in the K matrix data # Get a calculator with units and channel angular momentum calc = rk.get_asym_calc(rk.rydbergs, ang_mom) kmatdict,_ = rmol.read_Kmats(input_data_file) # Initialise the data into the required container dmat = rk.get_dmat_from_discrete(rk.Kmat, kmatdict, calc, desc_str) # Slice the data set
use_pyrazine = True if sys.argv[1] == "mpmath": rk.use_mpmath_types() print "mpmath" else: print "python" TEST_ROOT = "chart" if os.path.isdir(TEST_ROOT): shutil.rmtree(TEST_ROOT) if sys.argv[2] == "radwell": calc = rk.get_asym_calc(rk.hartrees, [0,0]) csmat = rw.get_Smat_fun(1.0,2.0,2.0,calc,1.0) dmat = rk.get_dmat_from_continuous(rk.Smat, csmat, calc, 1., 8., 200, "radwell") else: # This data is only available in the distribution package. if sys.argv[2] == "pyrazine": input_data_file = "../../../../examples/kmatrix_input_pyrazine.txt" calc = rk.get_asym_calc(rk.rydbergs, [3,5,5]) else: input_data_file = "../../../../examples/kmatrix_input_pbq.txt" calc = rk.get_asym_calc(rk.rydbergs, [1,3,3]) kmatdict,_ = rmol.read_Kmats(input_data_file) dmat = rk.get_dmat_from_discrete(rk.Kmat, kmatdict, calc, "PBQ")
def get_dsmat(self): cal = rk.get_asym_calc(cu.hartrees, [0, 0]) csmat = rw.get_Smat_fun(1.0, 2.0, 2.0, cal, 1.0) return csmat.discretise(1., 8., 100)
import os import sys import shutil fileDir = os.path.dirname(os.path.realpath(__file__)) rkPath = fileDir + '/../../../..' sys.path.insert(0, rkPath) import reskit as rk import channelutil as cu import twochanradialwell as tcrw TEST_ROOT = "chart-Smat-fin-fit" if os.path.isdir(TEST_ROOT): shutil.rmtree(TEST_ROOT) calc = rk.get_asym_calc(rk.hartrees, [0, 0]) csmat = tcrw.get_Smat_fun(1.0, 2.0, 2.0, calc, 1.0) dmat = rk.get_dmat_from_continuous(rk.Smat, csmat, calc, 1., 8., 1200, "radwell") sfittool = rk.get_tool(rk.mcsmatfit, dmat, TEST_ROOT) cfin = sfittool.get_elastic_Fin(10) chart = rk.get_tool(rk.chart, cfin, TEST_ROOT) chart.plot_raw()