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(), }
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
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)
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)
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)
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" }, ]
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 = []