Example #1
0
    def test_hex27_hex27_0(self):
        fixture_setup()
        scalarDimension = 0
        eMesh = PerceptMesh()
        p_size = eMesh.get_parallel_size()
        gmesh_spec = "1x1x" + str(p_size) + "|bbox:0,0,0,1,1," + str(p_size)
        eMesh.new_mesh(GMeshSpec(gmesh_spec))

        proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(),
                                          scalarDimension)
        breaker = Refiner(eMesh, HEX8_HEX27_1, proc_rank_field)
        eMesh.commit()
        eMesh.print_info()
        eMesh.save_as("hex27_hex27_cube1x1x" + str(p_size) + "-orig.e")
        breaker.setRemoveOldElements(True)
        breaker.doBreak()
        eMesh.save_as("hex27_hex27_cube1x1x" + str(p_size) + "_0.e")

        em1 = PerceptMesh(3)
        p_size = em1.get_parallel_size()
        em1.open("hex27_hex27_cube1x1x" + str(p_size) + "_0.e")
        proc_rank_field = em1.add_field("proc_rank", eMesh.element_rank(),
                                        scalarDimension)
        breaker = Refiner(em1, HEX27_HEX27_8, proc_rank_field)
        em1.commit()
        breaker.setIgnoreSideSets(True)
        breaker.setRemoveOldElements(True)
        breaker.doBreak()
        em1.save_as("hex27_hex27_cube1x1x" + str(p_size) + "_1.e")
Example #2
0
    def test_break_tri3_to_tri6_sierra(self):
        fixture_setup()
        pm = MPI.COMM_WORLD
        p_size = parallel_machine_size(pm)

        print p_size, "++++++++++++++++++++"
        for i in range(100):
            print "-------------------"
        if p_size <= 3:
            n = 12
            nx = n
            ny = n
            createEdgeSets = True
            fixture = QuadFixture_3(pm, nx, ny, createEdgeSets)
            isCommited = False
            eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data,
                                isCommited)
            scalarDimension = 0
            proc_rank_field = eMesh.add_field("proc_rank",
                                              eMesh.element_rank(),
                                              scalarDimension)
            eMesh.add_field("proc_rank_ede", eMesh.edge_rank(),
                            scalarDimension)
            breaker = Refiner(eMesh, TRI3_TRI6_1, proc_rank_field)
            eMesh.commit()
            fixture.generate_mesh()
            eMesh.print_info("tri mesh tri6")
            eMesh.save_as("quad_fixture_tri3_tri6_0.e")
            breaker.doBreak()
            eMesh.print_info("tri mesh enriched")
            eMesh.save_as("quad_fixture_tri6_tri6_0.e")
            eMesh.save_as("quad_fixture_tri3_tri6_1.e")
  def test_break_tri3_to_tri6_sierra(self):
    fixture_setup()
    pm = MPI.COMM_WORLD
    p_size = parallel_machine_size(pm)

    print p_size, "++++++++++++++++++++"
    for i in range(100):
      print "-------------------"
    if p_size <= 3:
      n = 12
      nx = n
      ny = n
      createEdgeSets = True
      fixture = QuadFixture_3(pm, nx, ny, createEdgeSets)
      isCommited = False
      eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data, isCommited)
      scalarDimension = 0
      proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
      eMesh.add_field("proc_rank_ede", eMesh.edge_rank(), scalarDimension)
      breaker = Refiner(eMesh, TRI3_TRI6_1, proc_rank_field)
      eMesh.commit()
      fixture.generate_mesh()
      eMesh.print_info("tri mesh tri6")
      eMesh.save_as("quad_fixture_tri3_tri6_0.e")
      breaker.doBreak()
      eMesh.print_info("tri mesh enriched")
      eMesh.save_as("quad_fixture_tri6_tri6_0.e")
      eMesh.save_as("quad_fixture_tri3_tri6_1.e")
Example #4
0
    def test_mesh_diff(self):
      self.fixture_setup()
      p_size = parallel_machine_size(self.pm)

      if p_size <= 2:
        eMesh_0 = PerceptMesh(2)
        eMesh_0.open_read_only("./exodus_files/quad_fixture.e")
        eMesh_0.save_as("./exodus_files/quad_fixture_readwrite.e")

        eMesh_1 = PerceptMesh(2)
        eMesh_2 = PerceptMesh(2)
        eMesh_1.open_read_only("./exodus_files/quad_fixture_readwrite.e")
        eMesh_2.open_read_only("./exodus_files/quad_fixture.e")

      if p_size == 1:
        add_newlines = False
        eMesh_1.print_info("quad fixture", 2, add_newlines)
        eMesh_2.print_info("quad fixture", 2, add_newlines)
        #Here the unit test compares an expected output string with the output of the print_infos

      diff_msg = "diff report: "
      diff = PerceptMesh.mesh_difference(eMesh_1, eMesh_2, diff_msg, True )
      self.assertFalse(diff)      
      
      #metaData_1 = eMesh_1.get_fem_meta_data()
      #metaData_2 = eMesh_2.get_fem_meta_data()
      bulkData_1 = eMesh_1.get_bulk_data()
      #bulkData_2 = eMesh_2.get_bulk_data()
      #coordField_1 = eMesh_1.get_coordinates_field()
      #coordField_2 = eMesh_2.get_coordinates_field()

      #diff = PerceptMesh.mesh_difference(metaData_1, metaData_2, bulkData_1, bulkData_2, diff_msg, True)
      #self.assertFalse(diff)

      buckets = bulkData_1.buckets(FEMMetaData.NODE_RANK)
 def test_hex27_hex27_1(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(3)
     eMesh.open("hex_fixture.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     breaker = Refiner(eMesh, HEX8_HEX27_1, proc_rank_field)
     eMesh.commit()
     eMesh.print_info()
     eMesh.save_as("hex8_hex27_0.e")
     breaker.doBreak()
     eMesh.save_as("hex8_27_1.e")
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(3)
     eMesh.open("hex8_27_1.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     breaker = Refiner(eMesh, HEX27_HEX27_8, proc_rank_field)
     eMesh.commit()
     breaker.setRemoveOldElements(True)
     breaker.doBreak()
     eMesh.save_as("hex8_hex27_hex27_1.e")
 def test_hex27_hex27_0(self):
   fixture_setup()
   scalarDimension = 0
   eMesh = PerceptMesh()
   p_size = eMesh.get_parallel_size()
   gmesh_spec = "1x1x" + str(p_size) + "|bbox:0,0,0,1,1," + str(p_size)
   eMesh.new_mesh(GMeshSpec(gmesh_spec))
   
   proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
   breaker = Refiner(eMesh, HEX8_HEX27_1, proc_rank_field)
   eMesh.commit()
   eMesh.print_info()
   eMesh.save_as("hex27_hex27_cube1x1x" + str(p_size) + "-orig.e")
   breaker.setRemoveOldElements(True)
   breaker.doBreak()
   eMesh.save_as("hex27_hex27_cube1x1x" + str(p_size) + "_0.e")
   
   em1 = PerceptMesh(3)
   p_size = em1.get_parallel_size()
   em1.open("hex27_hex27_cube1x1x" + str(p_size) + "_0.e")
   proc_rank_field = em1.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
   breaker = Refiner(em1, HEX27_HEX27_8, proc_rank_field)
   em1.commit()
   breaker.setIgnoreSideSets(True)
   breaker.setRemoveOldElements(True)
   breaker.doBreak()
   em1.save_as("hex27_hex27_cube1x1x" + str(p_size) + "_1.e")
Example #7
0
 def test_break_tet4_tet10_tet10_1(self):
     fixture_setup()
     pm = MPI.COMM_WORLD
     p_size = parallel_machine_size(pm)
     if p_size == 1 or p_size == 3:
         eMesh = PerceptMesh(3)
         eMesh.open("tet_from_hex_fixture_0.e")
         scalarDimension = 0
         proc_rank_field = eMesh.add_field("proc_rank",
                                           eMesh.element_rank(),
                                           scalarDimension)
         breaker = Refiner(eMesh, TET4_TET10_1, proc_rank_field)
         eMesh.commit()
         eMesh.print_info("tet mesh")
         breaker.doBreak()
         eMesh.save_as("tet10_1.e")
         eMesh.print_info("tet10_1")
     if p_size == 1 or p_size == 3:
         eMesh = PerceptMesh(3)
         eMesh.open("tet10_1.e")
         scalarDimension = 0
         proc_rank_field = eMesh.add_field("proc_rank",
                                           eMesh.element_rank(),
                                           scalarDimension)
         breaker = Refiner(eMesh, TET10_TET10_8, proc_rank_field)
         eMesh.commit()
         breaker.doBreak()
         eMesh.save_as("tet10_tet10_1.e")
Example #8
0
 def test_hex27_hex27_1(self):
     fixture_setup()
     pm = MPI.COMM_WORLD
     p_size = parallel_machine_size(pm)
     if p_size == 1 or p_size == 3:
         eMesh = PerceptMesh(3)
         eMesh.open("hex_fixture.e")
         scalarDimension = 0
         proc_rank_field = eMesh.add_field("proc_rank",
                                           eMesh.element_rank(),
                                           scalarDimension)
         breaker = Refiner(eMesh, HEX8_HEX27_1, proc_rank_field)
         eMesh.commit()
         eMesh.print_info()
         eMesh.save_as("hex8_hex27_0.e")
         breaker.doBreak()
         eMesh.save_as("hex8_27_1.e")
     if p_size == 1 or p_size == 3:
         eMesh = PerceptMesh(3)
         eMesh.open("hex8_27_1.e")
         scalarDimension = 0
         proc_rank_field = eMesh.add_field("proc_rank",
                                           eMesh.element_rank(),
                                           scalarDimension)
         breaker = Refiner(eMesh, HEX27_HEX27_8, proc_rank_field)
         eMesh.commit()
         breaker.setRemoveOldElements(True)
         breaker.doBreak()
         eMesh.save_as("hex8_hex27_hex27_1.e")
Example #9
0
    def fixture_setup_1(self):

       p_size = self.pm.size 
       if p_size <= 2:
         n = 12
         nx = n
         ny = n
         fixture = QuadFixture_4(self.pm, nx, ny, 1) 
         fixture.meta_data.commit()
         fixture.generate_mesh()
         
         eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
         eMesh.print_info("quad fixture", 2)
         eMesh.save_as("./exodus_files/quad_fixture.e")
       
       if p_size <= 2:
         n = 12
         nx = n
         ny = n
       
         fixture = QuadFixture_4(self.pm, nx, ny, 0)
         fixture.meta_data.commit()
         fixture.generate_mesh()

         eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
         eMesh.print_info("quad fixture no sidesets", 2)
         eMesh.save_as("./exodus_files/quad_fixture_no_sidesets.e")
    def test_mesh_diff(self):
        self.fixture_setup()
        p_size = parallel_machine_size(self.pm)

        if p_size <= 2:
            eMesh_0 = PerceptMesh(2)
            eMesh_0.open_read_only("./exodus_files/quad_fixture.e")
            eMesh_0.save_as("./exodus_files/quad_fixture_readwrite.e")

            eMesh_1 = PerceptMesh(2)
            eMesh_2 = PerceptMesh(2)
            eMesh_1.open_read_only("./exodus_files/quad_fixture_readwrite.e")
            eMesh_2.open_read_only("./exodus_files/quad_fixture.e")

        if p_size == 1:
            add_newlines = False
            eMesh_1.print_info("quad fixture", 2, add_newlines)
            eMesh_2.print_info("quad fixture", 2, add_newlines)
            #Here the unit test compares an expected output string with the output of the print_infos

        diff_msg = "diff report: "
        diff = PerceptMesh.mesh_difference(eMesh_1, eMesh_2, diff_msg, True)
        self.assertFalse(diff)

        #metaData_1 = eMesh_1.get_fem_meta_data()
        #metaData_2 = eMesh_2.get_fem_meta_data()
        bulkData_1 = eMesh_1.get_bulk_data()
        #bulkData_2 = eMesh_2.get_bulk_data()
        #coordField_1 = eMesh_1.get_coordinates_field()
        #coordField_2 = eMesh_2.get_coordinates_field()

        #diff = PerceptMesh.mesh_difference(metaData_1, metaData_2, bulkData_1, bulkData_2, diff_msg, True)
        #self.assertFalse(diff)

        buckets = bulkData_1.buckets(FEMMetaData.NODE_RANK)
    def fixture_setup_1(self):

        p_size = self.pm.size
        if p_size <= 2:
            n = 12
            nx = n
            ny = n
            fixture = QuadFixture_4(self.pm, nx, ny, 1)
            fixture.meta_data.commit()
            fixture.generate_mesh()

            eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
            eMesh.print_info("quad fixture", 2)
            eMesh.save_as("./exodus_files/quad_fixture.e")

        if p_size <= 2:
            n = 12
            nx = n
            ny = n

            fixture = QuadFixture_4(self.pm, nx, ny, 0)
            fixture.meta_data.commit()
            fixture.generate_mesh()

            eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
            eMesh.print_info("quad fixture no sidesets", 2)
            eMesh.save_as("./exodus_files/quad_fixture_no_sidesets.e")
 def test_hex8_tet4_6_12_2(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   eMesh = PerceptMesh(3)
   eMesh.open("hex_fixture.e")
   scalarDimension = 0
   proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
   breaker = Refiner(eMesh, HEX8_TET4_6_12, proc_rank_field)
   eMesh.commit()
   eMesh.print_info()
   breaker.doBreak()
   eMesh.save_as("hex_tet_6_12_1.e")
 def test_hex8_tet4_6_12_2(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   eMesh = PerceptMesh(3)
   eMesh.open("hex_fixture.e")
   scalarDimension = 0
   proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
   breaker = Refiner(eMesh, HEX8_TET4_6_12, proc_rank_field)
   eMesh.commit()
   eMesh.print_info()
   breaker.doBreak()
   eMesh.save_as("hex_tet_6_12_1.e")
Example #14
0
 def test_break_tri_to_tri_sierra_0(self):
     fixture_setup()
     pm = MPI.COMM_WORLD
     p_size = parallel_machine_size(pm)
     if p_size <= 3:
         n = 12
         nx = n
         ny = n
         fixture = QuadFixture_3(pm, nx, ny, True)
         eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data, False)
         eMesh.commit()
         fixture.generate_mesh()
         eMesh.print_info("tri mesh")
         eMesh.save_as("quad_fixture_tri3.e")
 def test_hex8_tet4_6_12_1(self):
   fixture_setup()
   eMesh = PerceptMesh(3)
   p_size = eMesh.get_parallel_size() 
   gmesh_spec = "1x1x" + str(p_size) + "|bbox:0,0,0,1,1," + str(p_size)
   eMesh.new_mesh(GMeshSpec(gmesh_spec))
   scalarDimension = 0
   proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
   breaker = Refiner(eMesh, HEX8_TET4_6_12, proc_rank_field)
   eMesh.commit()
   eMesh.print_info()
   breaker.setRemoveOldElements(True)
   breaker.doBreak()
   eMesh.save_as("hex_tet_6_12_cube1x1x1.e")
 def test_hex8_tet4_6_12_1(self):
   fixture_setup()
   eMesh = PerceptMesh(3)
   p_size = eMesh.get_parallel_size() 
   gmesh_spec = "1x1x" + str(p_size) + "|bbox:0,0,0,1,1," + str(p_size)
   eMesh.new_mesh(GMeshSpec(gmesh_spec))
   scalarDimension = 0
   proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
   breaker = Refiner(eMesh, HEX8_TET4_6_12, proc_rank_field)
   eMesh.commit()
   eMesh.print_info()
   breaker.setRemoveOldElements(True)
   breaker.doBreak()
   eMesh.save_as("hex_tet_6_12_cube1x1x1.e")
 def test_break_quad_to_quad_sierra_sidesets(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 2:
     eMesh = PerceptMesh(2)
     eMesh.open("quad_fixture.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     breaker = Refiner(eMesh, QUAD4_QUAD4_4_SIERRA, proc_rank_field)
     eMesh.commit()
     eMesh.print_info("after refinement break_quad_to_quad_sierra_sidesets")
     breaker.doBreak()
     eMesh.save_as("quad_sidesets_sierra_out.e")
 def test_break_quad_to_quad_sierra_sidesets(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 2:
     eMesh = PerceptMesh(2)
     eMesh.open("quad_fixture.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     breaker = Refiner(eMesh, QUAD4_QUAD4_4_SIERRA, proc_rank_field)
     eMesh.commit()
     eMesh.print_info("after refinement break_quad_to_quad_sierra_sidesets")
     breaker.doBreak()
     eMesh.save_as("quad_sidesets_sierra_out.e")
 def test_break_tri_to_tri_sierra_0(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size <= 3:
     n = 12
     nx = n
     ny = n
     fixture = QuadFixture_3(pm, nx, ny, True)
     eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data, False)
     eMesh.commit()
     fixture.generate_mesh()
     eMesh.print_info("tri mesh")
     eMesh.save_as("quad_fixture_tri3.e")      
Example #20
0
 def test_quad4_quad4_test_1(self):
     fixture_setup()
     pm = MPI.COMM_WORLD
     p_size = parallel_machine_size(pm)
     if p_size <= 3:
         n = 12
         nx = n
         ny = n
         fixture = QuadFixture_4(pm, nx, ny, True)
         fixture.meta_data.commit()
         fixture.generate_mesh()
         eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
         eMesh.print_info("quad fixture")
         eMesh.save_as("quad_fixture_test_1.e")
 def test_quad4_quad4_test_1(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size <= 3:
     n = 12
     nx = n
     ny = n
     fixture = QuadFixture_4(pm,nx,ny,True)
     fixture.meta_data.commit()
     fixture.generate_mesh()
     eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
     eMesh.print_info("quad fixture")
     eMesh.save_as("quad_fixture_test_1.e")
Example #22
0
 def test_break_quad_to_quad_sierra_unit1(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(2)
     eMesh.open("quad_fixture.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", stk::topology::ELEMENT_RANK, scalarDimension)
     breaker = Refiner(eMesh, QUAD4_QUAD4_4_SIERRA, proc_rank_field)
     eMesh.commit()
     eMesh.print_info("quad mesh")
     breaker.doBreak()
     eMesh.save_as("square_quad4_sierra_ref_out.e")
 def test_break_quad_to_quad(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(2)
     eMesh.open("quad_fixture_no_sidesets.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     breaker = Refiner(eMesh, QUAD4_QUAD4_4, proc_rank_field)
     eMesh.commit()
     eMesh.print_info("quad mesh")
     breaker.setIgnoreSideSets(True)
     breaker.doBreak()
     eMesh.save_as("square_quad4_ref_out.e")
Example #24
0
 def test_break_hex8_tet4_24_1(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   eMesh = PerceptMesh(3)
   gmesh_spec = "1x1x" + str(p_size) + "|bbox:0,0,0,1,1," + str(p_size)
   eMesh.new_mesh(GMeshSpec(gmesh_spec))
   scalarDimension = 0
   proc_rank_field = eMesh.add_field("proc_rank", stk::topology::ELEMENT_RANK, scalarDimension)
   breaker = Refiner(eMesh, HEX8_TET4_24, proc_rank_field)
   eMesh.commit()
   eMesh.print_info()
   breaker.setRemoveOldElements(True)
   breaker.doBreak()
   eMesh.save_as("hex_tet_24_cube1x1x1.e")
Example #25
0
    def test_fieldFunction_demo_1_0_0(self):
        eMesh = PerceptMesh(3)
        eMesh.new_mesh(GMeshSpec("3x3x3|bbox:0,0,0,1,1,1"))
        eMesh.commit()
        eMesh.print_info("fieldFunction_demo_1_0_0", 2)

        f_coords = eMesh.get_field("coordinates")

        ff_coords = FieldFunction("ff_coords", f_coords, eMesh, 3, 3)
        x = 0.123
        y = 0.234
        z = 0.345
        time = 0.0

        eval_vec3_print(x, y, z, time, ff_coords)
Example #26
0
 def test_hex8_hex8_8_1_unit1(self):
   fixture_setup()
   eMesh = PerceptMesh(3)
   p_size = eMesh.get_parallel_size()
   gmesh_spec = "1x1x" + str(p_size) + "|bbox:0,0,0,1,1," + str(p_size)
   eMesh.new_mesh(GMeshSpec(gmesh_spec))
   scalarDimension = 0
   proc_rank_field = eMesh.add_field("proc_rank", stk::topology::ELEMENT_RANK, scalarDimension)
   breaker = Refiner(eMesh, HEX8_HEX8_8, proc_rank_field) 
   eMesh.commit()
   eMesh.print_info()
   eMesh.save_as("hex_hex_cube1x1x" + str(p_size) + "-orig.e")
   breaker.setRemoveOldElements(True)
   breaker.doBreak()
   eMesh.save_as( "hex_hex_cube1x1x" + str(p_size)+".e")
    def test_fieldFunction_demo_1_0_0(self):
       eMesh = PerceptMesh(3)
       eMesh.new_mesh(GMeshSpec("3x3x3|bbox:0,0,0,1,1,1"))
       eMesh.commit()
       eMesh.print_info("fieldFunction_demo_1_0_0", 2)

       f_coords = eMesh.get_field("coordinates")

       ff_coords = FieldFunction("ff_coords", f_coords, eMesh, 3, 3)
       x = 0.123
       y = 0.234
       z = 0.345
       time = 0.0

       eval_vec3_print(x, y, z, time, ff_coords)
Example #28
0
 def test_hex8_hex27_1_2(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(3)
     eMesh.open("hex_fixture.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", stk::topology::ELEMENT_RANK, scalarDimension)
     breaker = Refiner(eMesh, HEX8_HEX27_1, proc_rank_field)
     eMesh.commit()
     eMesh.print_info()
     eMesh.save_as("hex27_0.e")
     breaker.doBreak()
     eMesh.save_as("hex27_1.e")
 def test_break_quad_to_quad(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(2)
     eMesh.open("quad_fixture_no_sidesets.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     breaker = Refiner(eMesh, QUAD4_QUAD4_4, proc_rank_field)
     eMesh.commit()
     eMesh.print_info("quad mesh")
     breaker.setIgnoreSideSets(True)
     breaker.doBreak()
     eMesh.save_as("square_quad4_ref_out.e")
Example #30
0
 def test_break_quad_to_tri_4(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(2)
     eMesh.open("quad_fixture.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", stk::topology::ELEMENT_RANK, scalarDimension)
     breaker = Refiner(eMesh, QUAD4_TRI3_4, proc_rank_field)
     eMesh.commit()
     eMesh.print_info("quad mesh")
     breaker.setIgnoreSideSets(True)
     breaker.setRemoveOldElements(False)
     breaker.doBreak()
     eMesh.save_as("square_quad4_tri3_4_out.e")
 def test_break_tri3_to_tri6_to_tri6_sierra(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size <= 3:
     eMesh = PerceptMesh(2)
     eMesh.open("quad_fixture_tri6_tri6_0.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     eMesh.add_field("proc_rank_ede", eMesh.edge_rank(), scalarDimension)
     breaker = Refiner(eMesh, TRI6_TRI6_4, proc_rank_field)
     eMesh.commit()  
     eMesh.print_info("tri mesh tri6")
     eMesh.save_as("quad_fixture_tri6_tri6_0.e")
     breaker.doBreak()
     eMesh.print_info("tri mesh refined")
     eMesh.save_as("quad_fixture_tri6_tri6_1.e")
 def test_break_quad_to_quad_sierra(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size <= 3:
     n = 12
     nx = n
     ny = n
     fixture = QuadFixture_4(pm, nx, ny, True)
     eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data, False)
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     breaker = Refiner(eMesh, QUAD4_QUAD4_4_SIERRA, proc_rank_field)
     eMesh.commit()
     fixture.generate_mesh()
     eMesh.print_info("quad mesh")
     breaker.doBreak()
 def test_break_tri3_to_tri6_to_tri6_sierra(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size <= 3:
     eMesh = PerceptMesh(2)
     eMesh.open("quad_fixture_tri6_tri6_0.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     eMesh.add_field("proc_rank_ede", eMesh.edge_rank(), scalarDimension)
     breaker = Refiner(eMesh, TRI6_TRI6_4, proc_rank_field)
     eMesh.commit()  
     eMesh.print_info("tri mesh tri6")
     eMesh.save_as("quad_fixture_tri6_tri6_0.e")
     breaker.doBreak()
     eMesh.print_info("tri mesh refined")
     eMesh.save_as("quad_fixture_tri6_tri6_1.e")
 def test_break_quad_to_quad_sierra(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size <= 3:
     n = 12
     nx = n
     ny = n
     fixture = QuadFixture_4(pm, nx, ny, True)
     eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data, False)
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     breaker = Refiner(eMesh, QUAD4_QUAD4_4_SIERRA, proc_rank_field)
     eMesh.commit()
     fixture.generate_mesh()
     eMesh.print_info("quad mesh")
     breaker.doBreak()
 def test_break_tet4_tet10_1(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(3)
     eMesh.open_read_only("tet_fixture.e")
     eMesh.save_as("tet_from_hex_fixture_0.e")
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(3)
     eMesh.open("tet_from_hex_fixture_0.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension)
     breaker = Refiner(eMesh, TET4_TET10_1, proc_rank_field)
     eMesh.commit()
     eMesh.print_info("tet mesh")
     breaker.doBreak()
     eMesh.save_as("tet10_1.e")
Example #36
0
 def test_break_tet4_tet4_1(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(3)
     eMesh.open_read_only("tet_fixture.e")
     eMesh.save_as("tet_from_hex_fixture_0.e")
   if p_size == 1 or p_size == 3:
     eMesh = PerceptMesh(3)
     eMesh.open("tet_from_hex_fixture_0.e")
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", stk::topology::ELEMENT_RANK, scalarDimension)
     breaker = Refiner(eMesh, TET4_TET4_8, proc_rank_field)
     eMesh.commit()
     eMesh.print_info("tet mesh")
     breaker.doBreak()
     eMesh.save_as("tet4_refined_1.e")
     breaker.doBreak()
     eMesh.save_as("tet4_refined_2.e")
Example #37
0
def fixture_setup_1():
    pm = MPI.COMM_WORLD
    p_size = parallel_machine_size(pm)
    if p_size <= 3:
        n = 12
        nx = n
        ny = n
        fixture = QuadFixture_4(pm, nx, ny, True)
        fixture.meta_data.commit()
        fixture.generate_mesh()
        eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
        eMesh.print_info("quad fixture", 2)
        eMesh.save_as("quad_fixture.e")

        fixture = QuadFixture_4(pm, nx, ny, False)
        fixture.meta_data.commit()
        fixture.generate_mesh()
        eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
        eMesh.print_info("quad fixture no sidesets", 2)
        eMesh.save_as("quad_fixture_no_sidesets.e")
def fixture_setup_1():
  pm = MPI.COMM_WORLD
  p_size = parallel_machine_size(pm)
  if p_size <= 3:
    n = 12
    nx = n
    ny = n
    fixture = QuadFixture_4(pm, nx, ny, True)
    fixture.meta_data.commit()
    fixture.generate_mesh()
    eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
    eMesh.print_info("quad fixture", 2)
    eMesh.save_as("quad_fixture.e")

    fixture = QuadFixture_4(pm, nx, ny, False)
    fixture.meta_data.commit()
    fixture.generate_mesh()
    eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
    eMesh.print_info("quad fixture no sidesets", 2)
    eMesh.save_as("quad_fixture_no_sidesets.e")
Example #39
0
 def test_break_tri_to_tri_sierra_1(self):
   fixture_setup()
   pm = MPI.COMM_WORLD
   p_size = parallel_machine_size(pm)
   if p_size <= 3:
     n = 12
     nx = n
     ny = n
     createEdgeSets = True
     fixture = QuadFixture_3(pm, nx, ny, createEdgeSets)
     isCommited = False
     eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data, isCommited)
     scalarDimension = 0
     proc_rank_field = eMesh.add_field("proc_rank", stk::topology::ELEMENT_RANK, scalarDimension)
     eMesh.add_field("proc_rank_ede", eMesh.edge_rank(), scalarDimension)
     breaker = Refiner(eMesh, TRI3_TRI3_4, proc_rank_field)
     eMesh.commit()
     fixture.generate_mesh()
     eMesh.print_info("tri mesh")
     eMesh.save_as("quad_fixture_tri3_0.e")
     breaker.doBreak()
     eMesh.print_info("tri mesh refined")
     eMesh.save_as("quad_fixture_tri3_1.e")
    def test_perceptMesh_walk_nodes(self):
        self.fixture_setup()
        p_size = self.pm.size
        p_rank = self.pm.rank
        if p_size <= 2:
            n = 12
            nx = n
            ny = n

            sidesets_on = 1
            fixture = QuadFixture_4(self.pm, nx, ny, sidesets_on)
            fixture.meta_data.commit()
            fixture.generate_mesh()

            eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
            eMesh.print_info("quad fixture", 2)

            metaData = eMesh.get_fem_meta_data()
            parts = metaData.get_parts()

            nparts = len(parts)
            print "Number of parts = ", nparts

            surface_id = 2
            surface_name = "surface_" + str(surface_id)
            part = eMesh.get_part(surface_name)
            in_surface_selector = Selector(part)
            bulkData = eMesh.get_bulk_data()
            coordField = eMesh.get_coordinates_field()

            if eMesh.get_spatial_dim() == 2:
                buckets_arg = eMesh.edge_rank()
            else:
                buckets_arg = eMesh.face_rank
            buckets = bulkData.buckets(buckets_arg)
            sum = 0.0
Example #41
0
    def test_perceptMesh_walk_nodes(self):
       self.fixture_setup()
       p_size = self.pm.size
       p_rank = self.pm.rank
       if p_size <= 2:
         n = 12
         nx = n
         ny = n

         sidesets_on = 1
         fixture = QuadFixture_4(self.pm, nx, ny, sidesets_on)
         fixture.meta_data.commit()
         fixture.generate_mesh()

         eMesh = PerceptMesh(fixture.meta_data, fixture.bulk_data)
         eMesh.print_info("quad fixture", 2)

         metaData = eMesh.get_fem_meta_data()
         parts = metaData.get_parts()

         nparts = len(parts)
         print "Number of parts = ", nparts

         surface_id = 2
         surface_name = "surface_" + str(surface_id)
         part = eMesh.get_part(surface_name)
         in_surface_selector = Selector(part)
         bulkData = eMesh.get_bulk_data()
         coordField = eMesh.get_coordinates_field()

         if eMesh.get_spatial_dim() == 2:
           buckets_arg = eMesh.edge_rank()
         else:
           buckets_arg = eMesh.face_rank
         buckets = bulkData.buckets(buckets_arg)
         sum = 0.0
    def test_high_level_interface(self):
        self.fixture_setup()
        p_size = parallel_machine_size(self.pm)

        if p_size <= 2:
            eMesh = PerceptMesh(2)
            eMesh.open("./exodus_files/quad_fixture.e")

            vectorDimension = 0
            eMesh.add_field("coords_mag_field", FEMMetaData.NODE_RANK,
                            vectorDimension)
            eMesh.commit()

            f_coords = eMesh.get_field("coordinates")
            coords_mag_field = eMesh.get_field("coords_mag_field")

            ff_coords = FieldFunction("ff_coords", f_coords, eMesh, 2, 2)
            #eval_vec3_print(0.1,0.1,0.1,0.0,ff_coords)

            coords_mag_sf = StringFunction("sqrt(x*x + y*y )", "coords_mag_sf",
                                           2, 1)
            x = 0.123
            y = 0.234
            vv = sqrt(x * x + y * y)
            v1 = eval_func2(x, y, 0, coords_mag_sf)
            print "vv = ", vv, "== v1 = ", v1
            self.assertEqual(vv, v1)

            coords_mag_field_function = FieldFunction(
                "coords_mag_field_function", coords_mag_field, eMesh, 2, 1)

            coords_mag_field_function.interpolateFrom(coords_mag_sf)

            eMesh.save_as("./exodus_files/quad_fixture_with_coords_mag.e")

            ff_coords.add_alias("mc")

            sfcm = StringFunction("sqrt(mc[0]*mc[0]+mc[1]*mc[1]+mc[2]*mc[2])",
                                  "sfcm", 3, 1)

            add_newlines = True
            eMesh.print_info("quad fixture", 2, add_newlines)

            self.assertTrue(eMesh.get_spatial_dim() == 2)
            self.assertTrue(eMesh.get_number_elements() == 12 * 12)
            self.assertTrue(eMesh.get_number_nodes() == 13 * 13)

            self.assertTrue(eMesh.get_parallel_size() == p_size)

            self.assertTrue(eMesh.get_bulk_data() != 0)
            self.assertTrue(eMesh.get_fem_meta_data() != 0)

            # // entity data setter/getters
            node = eMesh.get_node(1)
            self.assertTrue(node != 0)
            cm1 = eMesh.get_field_data(coords_mag_field, node)
            co1 = [0, 0]
            co1[0] = eMesh.get_field_data(f_coords, node, 0)
            co1[1] = eMesh.get_field_data(f_coords, node, 1)
            print "cm1= ", cm1, " co1= ", co1
            eMesh.set_field_data(123.0, f_coords, node, 0)
            co1[0] = eMesh.get_field_data(f_coords, node, 0)
            print " co1= ", co1

            element = eMesh.get_element(1)
            self.assertTrue(element != 0)

            element1 = eMesh.get_entity(eMesh.element_rank(), 1)
            self.assertTrue(element == element1)

            #/// find node closest to given point
            node = eMesh.get_node(0, 0)
            self.assertTrue(node != 0)

            #/// find element that contains given point
            element = eMesh.get_element(0.01, 0.01)
            self.assertTrue(element != 0)
Example #43
0
    def test_high_level_interface(self):
      self.fixture_setup()
      p_size = parallel_machine_size(self.pm)

      if p_size <= 2:
        eMesh = PerceptMesh(2)
        eMesh.open("./exodus_files/quad_fixture.e")

        vectorDimension = 0
        eMesh.add_field("coords_mag_field", FEMMetaData.NODE_RANK, vectorDimension)
        eMesh.commit()

        f_coords = eMesh.get_field("coordinates")
        coords_mag_field = eMesh.get_field("coords_mag_field")

        ff_coords = FieldFunction("ff_coords", f_coords, eMesh, 2, 2)
        #eval_vec3_print(0.1,0.1,0.1,0.0,ff_coords)

        coords_mag_sf = StringFunction("sqrt(x*x + y*y )" , "coords_mag_sf", 2, 1)
        x = 0.123
        y = 0.234
        vv = sqrt(x*x + y*y )
        v1 = eval_func2(x,y,0,coords_mag_sf)
        print "vv = ", vv, "== v1 = ", v1
        self.assertEqual(vv, v1)

        coords_mag_field_function = FieldFunction("coords_mag_field_function", coords_mag_field, eMesh, 2, 1)

        coords_mag_field_function.interpolateFrom(coords_mag_sf)

        eMesh.save_as("./exodus_files/quad_fixture_with_coords_mag.e")

        ff_coords.add_alias("mc")

        sfcm = StringFunction("sqrt(mc[0]*mc[0]+mc[1]*mc[1]+mc[2]*mc[2])", "sfcm", 3, 1)

        add_newlines = True
        eMesh.print_info("quad fixture", 2, add_newlines)

        self.assertTrue(eMesh.get_spatial_dim() == 2)
        self.assertTrue(eMesh.get_number_elements() == 12*12)
        self.assertTrue(eMesh.get_number_nodes() == 13*13)

        self.assertTrue(eMesh.get_parallel_size() == p_size)

        self.assertTrue(eMesh.get_bulk_data() != 0)
        self.assertTrue(eMesh.get_fem_meta_data() != 0)

        # // entity data setter/getters
        node = eMesh.get_node(1)
        self.assertTrue(node != 0)
        cm1 = eMesh.get_field_data(coords_mag_field, node)
        co1 = [0,0]
        co1[0] = eMesh.get_field_data(f_coords, node, 0)
        co1[1] = eMesh.get_field_data(f_coords, node, 1)
        print "cm1= ", cm1, " co1= ", co1
        eMesh.set_field_data(123.0, f_coords, node, 0)
        co1[0] = eMesh.get_field_data(f_coords, node, 0)
        print " co1= ", co1
        
        element = eMesh.get_element(1)
        self.assertTrue(element != 0)

        element1 = eMesh.get_entity(eMesh.element_rank(), 1)
        self.assertTrue(element == element1)
        
        #/// find node closest to given point
        node = eMesh.get_node(0,0)
        self.assertTrue(node != 0)

        #/// find element that contains given point
        element = eMesh.get_element(0.01, 0.01)
        self.assertTrue(element != 0)