예제 #1
0
    def test_WriteMdpa(self):
        mp = CreateFullModelPart()
        additional_header_info = "The very cool model"
        file_name = "full_model_part.mdpa"
        write_mdpa.WriteMdpa(mp, file_name, additional_header_info)

        CompareMdpaWithReferenceFile(file_name, self)
예제 #2
0
    def test_WriteEntitiesMdpa_multiple_elements(self):
        mp = ModelPart()
        for i in range(6):
            mp.CreateNewNode(i + 1, 0.0, 0.0,
                             0.0)  # coordinates do not matter here

        props_1 = mp.CreateNewProperties(1)
        props_2 = mp.CreateNewProperties(15)

        for i in range(10):
            if i % 3 == 0:
                props = props_2
            else:
                props = props_1

            mp.CreateNewElement("CustomElement", i + 1, [i % 3 + 1, i % 6 + 1],
                                props)

        for i in range(10, 15):
            mp.CreateNewElement("ShellElement", i + 1,
                                [i % 3 + 1, i % 6 + 1, i % 4 + 1, i % 5 + 1],
                                props_1)

        for i in range(15, 23):
            mp.CreateNewElement("TriangleSolidElement", i + 1,
                                [i % 6 + 1, i % 4 + 1, i % 5 + 1], props_2)

        file_name = "multiple_elements.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteEntitiesMdpa(mp.Elements, "Element", mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
예제 #3
0
    def test_WriteSubModelPartMdpa_SubSubModelPart(self):
        mp = CreateFullModelPart()
        smp_1 = mp.GetSubModelPart("smp_one")  # sub

        file_name = "sub_sub_model_part.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteSubModelPartsMdpa(smp_1, mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
    def test_WriteEntitiesMdpa_conditions(self):
        mp = ModelPart()
        ModelPartForTests.CreateNodesAndTriangleConditions(mp)

        file_name = "conditions.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteEntitiesMdpa(mp.Conditions, "Condition", mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
    def test_WriteEntitiesMdpa_elements(self):
        mp = ModelPart()
        ModelPartForTests.CreateNodesAndLineElements(mp)

        file_name = "elements.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteEntitiesMdpa(mp.Elements, "Element", mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
    def test_WriteNodesMdpa(self):
        mp = ModelPart()
        ModelPartForTests.CreateNodes(mp)

        file_name = "nodes.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteNodesMdpa(mp.Nodes, mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
    def test_WriteHeaderMdpa(self):
        mp = CreateFullModelPart()
        additional_header_info = "my_custom mdpa file"
        file_name = "mdpa_header.mdpa"
        write_creation_time = True
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteHeaderMdpa(mp, additional_header_info, write_creation_time, mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
예제 #8
0
    def test_WriteNodesMdpa(self):
        mp = ModelPart()
        for i in range(8):
            mp.CreateNewNode(i + 1, i**1.1, i * 2.2, 2.6)

        file_name = "nodes.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteNodesMdpa(mp.Nodes, mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
예제 #9
0
    def test_WriteEntityDataMdpa_nodes(self):
        mp = ModelPart()
        for i in range(8):
            node = mp.CreateNewNode(i + 1, i**1.1, i * 2.2, 2.6)
            node.SetValue("simple", 15.336 + i)

        file_name = "entity_data_nodes.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteEntityDataMdpa(mp.Nodes, "Nod", mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
    def test_one_mesh(self):
        mesh_description_3D = {"elements": {"Hexa": {"MyFancyElement": 0}}}

        meshes = [
            create_kratos_input_tui.SalomeMesh(self.mesh_hexa,
                                               mesh_description_3D, "domain")
        ]

        mdpa_file_name = "create_mdpa_one_mesh"
        create_kratos_input_tui.CreateMdpaFile(meshes, mdpa_file_name)

        CompareMdpaWithReferenceFile(mdpa_file_name, self)
예제 #11
0
    def test_WriteModelPartDataMdpa(self):
        mp = ModelPart()

        mp.SetValue("Card", 15.336)
        mp.SetValue("kMui", [2, 3.3])
        mp.SetValue("SomeMatrix", [[2, 3.3, 5.147], [5.3, 7.456, -13.002]])
        mp.SetValue("TheString", "SmallDisp")
        mp.SetValue("Mulz", 1)
        mp.SetValue("AAbbCC", 1.336E6)
        mp.SetValue("YOUNG", 2397)

        file_name = "model_part_data.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteModelPartDataMdpa(mp, mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
    def test_WriteModelPartDataMdpa_SubModelPart(self):
        mp = ModelPart()
        smp = mp.CreateSubModelPart("sub_1")

        smp.SetValue("Card", 15.336)
        smp.SetValue("kMui", [2, 3.3, 15.78, -33.74, 36.01, 72.1])
        smp.SetValue("SomeMatrix", [[2, 3.3, 10.4, 11.2, 0.33], [5.3, 456, 88.123, 101.3, 7.456], [1.129,2.129,3.129,4.129,5.129]])
        smp.SetValue("TheString", "SmallDisp")
        smp.SetValue("Mulz", 1)
        smp.SetValue("AAbbCC", 1.336E6)
        smp.SetValue("YOUNG", 2397)

        file_name = "sub_model_part_data.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteModelPartDataMdpa(smp, mdpa_file, level=1)

        CompareMdpaWithReferenceFile(file_name, self)
예제 #13
0
    def test_WriteEntityDataMdpa_elements(self):
        mp = ModelPart()
        mp.CreateNewNode(1, 0.0, 0.0, 0.0)  # coordinates do not matter here

        props = mp.CreateNewProperties(1)

        for i in range(10):
            elem = mp.CreateNewElement("CustomElement", i + 1, [1], props)
            elem.SetValue("Mulz", 1.66**i)
            elem.SetValue("AAbbCC", 1.336 * 10**i)
            if i % 2 == 0:
                elem.SetValue("YOUNG", 2397 - 10.369 * i)

        file_name = "entity_data_elements.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteEntityDataMdpa(mp.Elements, "Element", mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
    def test_WriteEntityDataMdpa_nodes_multiple_data(self):
        mp = ModelPart()
        for i in range(8):
            node = mp.CreateNewNode(i+1, 0.0, 0.0, 0.0) # coordinates do not matter here
            node.SetValue("Card", 15.336*i)
            if i%2==1:
                node.SetValue("kMui", [2, 3.3, -78.1, i+2]) # vector
            if i%4==3:
                node.SetValue("SomeMatrix", [[2, i+2, 3.3], [i+2, 5.3, 7.456]]) # matrix
                node.SetValue("TheString", "SmallDisp"+str(i))
            if i==6 or i==7:
                node.SetValue("CustomDisp", 5*i)
                node.SetValue("REACTION_X", -2*i)

        file_name = "multiple_entity_data_nodes.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteEntityDataMdpa(mp.Nodes, "Nod", mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
    def test_multiple_meshes(self):
        mesh_description_3D = {
            "elements": {
                "Hexa": {
                    "MyFancyElement": 1
                }
            },
            "conditions": {
                "Hexa": {
                    "VolumeLoadCondition": 0
                }
            }
        }
        mesh_description_2D = {"conditions": {"Quadrangle": {"SideForce": 23}}}
        mesh_description_1D = {
            "conditions": {
                "Edge": {
                    "LineSupportDisp": 63,
                    "LineSupportRot": 7
                }
            }
        }
        mesh_description_0D = {"elements": {"Ball": {"PointMassBall": 4}}}

        meshes = [
            create_kratos_input_tui.SalomeMesh(self.mesh_hexa,
                                               mesh_description_3D, "domain"),
            create_kratos_input_tui.SalomeMesh(self.sub_mesh_hexa_f_1,
                                               mesh_description_2D,
                                               "side_faces"),
            create_kratos_input_tui.SalomeMesh(self.group_hexa_edges,
                                               mesh_description_1D,
                                               "supports"),
            create_kratos_input_tui.SalomeMesh(self.group_hexa_ball_elements,
                                               mesh_description_0D,
                                               "domain.point_masses")
        ]

        mdpa_file_name = "create_mdpa_multiple_meshes"
        create_kratos_input_tui.CreateMdpaFile(meshes, mdpa_file_name)

        CompareMdpaWithReferenceFile(mdpa_file_name, self)
    def test_WriteEntityDataMdpa_conditions(self):
        mp = ModelPart()
        mp.CreateNewNode(1, 0.0, 0.0, 0.0) # coordinates do not matter here

        props = mp.CreateNewProperties(1)

        for i in range(14):
            cond = mp.CreateNewCondition("OneCondition", i+1, [1], props)
            cond.SetValue("Mwwz", 1+i*3)
            cond.SetValue("AAbqbCC", 1.336E6*i)
            if i%3==0:
                cond.SetValue("SomeMatrix", [[2, i+2, 3.3], [i+2, 5.3, 7.456]]) # matrix
            if i%4==0:
                cond.SetValue("YOUNG", 2397+5*i)

        file_name = "entity_data_conditions.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteEntityDataMdpa(mp.Conditions, "Condition", mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
    def test_WriteSubModelPartsMdpa(self):
        mp = ModelPart()
        smp_1 = mp.CreateSubModelPart("smp_one")
        smp_1.SetValue("wweerrtt", 12345)
        smp_1.SetValue("LITF", 852.74)

        for i in range(4):
            smp_1.CreateNewNode(i+1, i*2.2, 0.0, 0.0)

        props = mp.CreateNewProperties(15)
        for i in range(6):
            smp_1.CreateNewElement("CustomElement", i+1, [i%3+1, i%4+1], props)
        for i in range(3):
            smp_1.CreateNewCondition("TheMainCondition", i+1, [i%3+1], props)

        file_name = "sub_model_part.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteSubModelPartsMdpa(smp_1, mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
예제 #18
0
    def test_WritePropertiesMdpa(self):
        mp = ModelPart()
        mp.CreateNewProperties(0)  # left empty

        props_36 = mp.CreateNewProperties(36)
        props_36.SetValue("Card", 15.336)
        props_36.SetValue("kMui", [2, 3.3])
        props_36.SetValue("SomeMatrix", [[2, 3.3], [5.3, 7.456]])
        props_36.SetValue("TheString", "SmallDisp")

        props_2 = mp.CreateNewProperties(2)
        props_2.SetValue("Mulz", 1)
        props_2.SetValue("AAbbCC", 1.336E6)
        props_2.SetValue("YOUNG", 2397)

        file_name = "properties.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WritePropertiesMdpa(mp.Properties, mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)
예제 #19
0
    def test_WriteEntitiesMdpa_conditions(self):
        mp = ModelPart()
        for i in range(6):
            mp.CreateNewNode(i + 1, 0.0, 0.0,
                             0.0)  # coordinates do not matter here

        props_1 = mp.CreateNewProperties(1)
        props_2 = mp.CreateNewProperties(15)

        for i in range(17):
            if i % 5 == 0:
                props = props_2
            else:
                props = props_1

            mp.CreateNewCondition("MainCondition", i + 1,
                                  [i % 3 + 1, i % 6 + 1, i % 2 + 1], props)

        file_name = "conditions.mdpa"
        with open(file_name, 'w') as mdpa_file:
            write_mdpa._WriteEntitiesMdpa(mp.Conditions, "Condition",
                                          mdpa_file)

        CompareMdpaWithReferenceFile(file_name, self)