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)
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)
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)
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)
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)
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)
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)
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)
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)