コード例 #1
0
ファイル: test_datainit.py プロジェクト: petersbingham/reskit
 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.
コード例 #2
0
ファイル: test_datainit.py プロジェクト: petersbingham/reskit
 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.
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
    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
コード例 #7
0
ファイル: chart.py プロジェクト: petersbingham/reskit
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")

コード例 #8
0
 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)
コード例 #9
0
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()