Ejemplo n.º 1
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
Ejemplo n.º 2
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)