Esempio n. 1
0
class OneToAllDWssParser(ObjectParser, BaseTest, TestCase):
    model = OneToAll
    _tree = {
        "gaugeconfig": "Nf211",
        "gaugeconfig.gaugeaction": "LuescherWeisz",
        "gaugeconfig.light": "Hisq",
        "gaugeconfig.strange": "Hisq",
        "gaugeconfig.charm": "Hisq",
        "gaugeconfig.light.linksmear": "Unsmeared",
        "gaugeconfig.strange.linksmear": "Unsmeared",
        "gaugeconfig.charm.linksmear": "Unsmeared",
        "fermionaction": "MobiusDW",
        "fermionaction.linksmear": "WilsonFlow",
        "sourcesmear": "GaugeCovariantGaussian",
        "sinksmear": "GaugeCovariantGaussian",
    }
    _parameters = {
        "gaugeconfig": Nf211HisqParser.get_parameters(),
        "fermionaction": MobiusDWLightWFParser.get_parameters(),
        "origin_x": "2",
        "origin_y": "10",
        "origin_z": "8",
        "origin_t": "6",
        "sourcesmear": GaugeCovariantGaussianParser.get_parameters(),
        "sinksmear": GaugeCovariantGaussianParser.get_parameters(),
    }
Esempio n. 2
0
class BaryonCoherentSeqParser(ObjectParser):
    model = BaryonCoherentSeq
    _tree = {
        "gaugeconfig": "Nf211",
        **{
            f"gaugeconfig.{key}": val
            for key, val in Nf211HisqParser.get_tree().items()
        },
        "fermionaction": "MobiusDW",
        "fermionaction.linksmear": "WilsonFlow",
        "sourcewave": "Hadron",
        "sinkwave": "Hadron",
        "sinksmear": "Point",
        "propagator0": "OneToAll",
        "propagator0.gaugeconfig": "Hisq",
    }
    _parameters = {
        "gaugeconfig": Nf211HisqParser.get_parameters(),
        "fermionaction": MobiusDWLightWFParser.get_parameters(),
        "sourcewave": HadronParser.get_parameters(),
        "sinkwave": HadronParser.get_parameters(),
        "sinksmear": PointParser.get_parameters(),
        "sinksep": "10",
    }

    @classmethod
    def first_pair(cls):
        return OneToAllDWParser.create_instance()

    @classmethod
    def create_populated_instance(cls):
        """
        """
        baryoncoherentseq = cls.create_instance()
        prop0 = cls.first_pair()
        onetoall_parameters = OneToAllDWParser.get_parameters()
        onetoall_parameters["origin_t"] = int(
            onetoall_parameters["origin_t"]) + 8
        prop1 = OneToAllDWParser.create_instance(
            parameters=onetoall_parameters, tree=OneToAllDWParser.get_tree())
        props1 = OneToAll.objects.filter(Q(pk=prop0.pk) | Q(pk=prop1.pk))
        props0 = props1.all()
        baryoncoherentseq.check_all_consistencies(props0, props1)
        baryoncoherentseq.propagator0.add(*props0)
        baryoncoherentseq.propagator1.add(*props1)
        return baryoncoherentseq
Esempio n. 3
0
    def test_gaugeconfig_id_consistency(self):
        """Tests creation of many to many field which should fail
        """
        ensemble = Ensemble.objects.create(**self.parameters)

        gaugeconfig = Nf211HisqParser.create_instance()
        self.assertEqual(Nf211.objects.all().count(), 1)

        ensemble.configurations.add(gaugeconfig)

        params = Nf211HisqParser.get_parameters()
        params["config"] = 1005
        params["stream"] = "b"
        gaugeconfig = Nf211HisqParser.create_instance(parameters=params)

        self.assertEqual(Nf211.objects.all().count(), 2)

        with self.assertRaises(ConsistencyError) as context:
            ensemble.configurations.add(gaugeconfig)
        print(context.exception.error)
Esempio n. 4
0
    def test_many_to_many(self):
        """Tests creation of many to many field which should not fail
        """
        ensemble = Ensemble.objects.create(**self.parameters)

        gaugeconfig0 = Nf211HisqParser.create_instance()

        params = Nf211HisqParser.get_parameters()
        params["config"] = 1005
        gaugeconfig1 = Nf211HisqParser.create_instance(parameters=params)

        gaugeconfigs = [gaugeconfig0, gaugeconfig1]

        ensemble.configurations.add(*gaugeconfigs)

        parameters = {"label": "test"}
        ensemble = Ensemble.objects.create(**parameters)

        with self.assertRaises(ConsistencyError) as context:
            ensemble.configurations.add(*gaugeconfigs)
        print(context.exception.error)
Esempio n. 5
0
    def test_gaugeconfig_id_consistency(self):
        gaugeconfig_parameters = Nf211HisqParser.get_parameters()
        gaugeconfig_parameters["config"] = int(
            gaugeconfig_parameters["config"]) + 5
        gaugeconfig = Nf211HisqParser.create_instance(
            parameters=gaugeconfig_parameters, tree=Nf211HisqParser.get_tree())
        fermionaction = MobiusDWLightWFParser.create_instance()
        propagator = OneToAllDWParser.create_instance()
        current = LocalParser.create_instance()
        sinksmear = GaugeCovariantGaussianParser.create_instance(
            fail_if_exists=False)

        parameters = self.get_parameters()
        parameters["gaugeconfig"] = gaugeconfig
        parameters["fermionaction"] = fermionaction
        parameters["propagator"] = propagator
        parameters["current"] = current
        parameters["sinksmear"] = sinksmear

        with self.assertRaises(ConsistencyError) as context:
            self.model.objects.create(**parameters)
        print(context.exception.error)
Esempio n. 6
0
class OneToAllHisqParser(ObjectParser):
    model = OneToAll
    _tree = {
        "gaugeconfig": "Nf211",
        "gaugeconfig.gaugeaction": "LuescherWeisz",
        "gaugeconfig.light": "Hisq",
        "gaugeconfig.strange": "Hisq",
        "gaugeconfig.charm": "Hisq",
        "gaugeconfig.light.linksmear": "Unsmeared",
        "gaugeconfig.strange.linksmear": "Unsmeared",
        "gaugeconfig.charm.linksmear": "Unsmeared",
        "fermionaction": "Hisq",
        "fermionaction.linksmear": "Unsmeared",
        "sourcesmear": "GaugeCovariantGaussian",
        "sinksmear": "GaugeCovariantGaussian",
    }
    _parameters = {
        "gaugeconfig": Nf211HisqParser.get_parameters(),
        "fermionaction": HisqLightWFParser.get_parameters(),
        "origin_x": "2",
        "origin_y": "10",
        "origin_z": "8",
        "origin_t": "6",
        "sourcesmear": GaugeCovariantGaussianParser.get_parameters(),
        "sinksmear": GaugeCovariantGaussianParser.get_parameters(),
    }
    _consistency_check_changes = [
        {
            "origin_x": "10000"
        },
        {
            "origin_y": "10000"
        },
        {
            "origin_z": "10000"
        },
        {
            "origin_t": "10000"
        },
    ]
Esempio n. 7
0
class FeynmanHellmannParser(ObjectParser):
    model = FeynmanHellmann
    _tree = {
        "gaugeconfig": "Nf211",
        "gaugeconfig.gaugeaction": "LuescherWeisz",
        "gaugeconfig.light": "Hisq",
        "gaugeconfig.strange": "Hisq",
        "gaugeconfig.charm": "Hisq",
        "gaugeconfig.light.linksmear": "Unsmeared",
        "gaugeconfig.strange.linksmear": "Unsmeared",
        "gaugeconfig.charm.linksmear": "Unsmeared",
        "fermionaction": "MobiusDW",
        "fermionaction.linksmear": "WilsonFlow",
        "propagator": "OneToAll",
        "propagator.gaugeconfig": "Nf211",
        "propagator.gaugeconfig.gaugeaction": "LuescherWeisz",
        "propagator.gaugeconfig.light": "Hisq",
        "propagator.gaugeconfig.strange": "Hisq",
        "propagator.gaugeconfig.charm": "Hisq",
        "propagator.gaugeconfig.light.linksmear": "Unsmeared",
        "propagator.gaugeconfig.strange.linksmear": "Unsmeared",
        "propagator.gaugeconfig.charm.linksmear": "Unsmeared",
        "propagator.fermionaction": "MobiusDW",
        "propagator.fermionaction.linksmear": "WilsonFlow",
        "propagator.sourcesmear": "GaugeCovariantGaussian",
        "propagator.sinksmear": "Point",
        "current": "Local",
        "sinksmear": "GaugeCovariantGaussian",
    }
    _parameters = {
        "gaugeconfig": Nf211HisqParser.get_parameters(),
        "fermionaction": MobiusDWLightWFParser.get_parameters(),
        "propagator": OneToAllDWParser.get_parameters(),
        "current": LocalParser.get_parameters(),
        "sinksmear": GaugeCovariantGaussianParser.get_parameters(),
    }
    _consistency_check_changes = []