def test_time_dep_interface(self):
        p_size = parallel_machine_size(self.pm)

        if p_size <= 2:
            eMesh = PerceptMesh(2)
            eMesh.open("./exodus_files/time-dep.e")
            eMesh.commit()

            Tnd_field = eMesh.get_field("Tnd")

            # // entity data setter/getters
            eMesh.read_database_at_time(0.0)
            node = eMesh.get_node(2, 2)
            self.assertTrue(node != 0)
            t0 = eMesh.get_field_data(Tnd_field, node)
            self.assertTrue(t0 == 0.0)
            eMesh.read_database_at_time(1.0)
            t1 = eMesh.get_field_data(Tnd_field, node)
            self.assertTrue(t1 == 11.0)

            print "t0= ", t0, " t1= ", t1
Example #2
0
    def test_time_dep_interface(self):
      p_size = parallel_machine_size(self.pm)

      if p_size <= 2:
        eMesh = PerceptMesh(2)
        eMesh.open("./exodus_files/time-dep.e")
        eMesh.commit()

        Tnd_field = eMesh.get_field("Tnd")

        # // entity data setter/getters
        eMesh.read_database_at_time(0.0)
        node = eMesh.get_node(2,2)
        self.assertTrue(node != 0)
        t0 = eMesh.get_field_data(Tnd_field, node)
        self.assertTrue(t0 == 0.0)
        eMesh.read_database_at_time(1.0)
        t1 = eMesh.get_field_data(Tnd_field, node)
        self.assertTrue(t1 == 11.0)
        
        print "t0= " , t0, " t1= " , t1
    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 #4
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 #5
0
    nodal_field = metaData.get_field(metaData.NODE_RANK, nodal_fields[0])
    ff_Tnd = FieldFunction(nodal_fields[0], nodal_field, bulkData, Dimensions(spatial_dim), Dimensions(1))

    error_string = [exact_soln_name[0]+" - "+nodal_fields[0]];
    error_name = [nodal_fields[0]+"_err"]
    print "error_string= ", error_string
    sf_Terr = StringFunction(error_string[0], error_name[0], Dimensions(spatial_dim), Dimensions(1))

    numSteps = pMesh.get_database_time_step_count()
    print "numSteps= ", numSteps, " nodal_fields[0]= ", nodal_fields[0]
    pMesh.read_database_at_step(numSteps)


    p_field = pMesh.get_field(metaData.NODE_RANK, "P")
    node = pMesh.get_node(1)
    p1 = pMesh.get_field_data(p_field, node)
    print "p1= " , p1

    p21 = eval_func2(2,1,0,ff_Tnd)
    p21_ex = eval_func2(2,1,0,sf_ex[0])
    err =  eval_func2(2,1,0,sf_Terr)
    print "p21 = ", p21, p21_ex, err

    # DEBUG
    print numSteps, pMesh.get_current_database_step(), pMesh.get_current_database_time()

    cubDegree = 2
    lInfNorm = LInfNorm(bulkData)
    lInfNorm.setCubDegree(cubDegree)

    l2Norm = L2Norm(bulkData)
Example #6
0
    nodal_field = metaData.get_field(nodal_fields[0])
    ff_Tnd = FieldFunction(nodal_fields[0], nodal_field, bulkData, Dimensions(spatial_dim), Dimensions(1))

    error_string = [exact_soln_name[0]+" - "+nodal_fields[0]];
    error_name = [nodal_fields[0]+"_err"]
    print "error_string= ", error_string
    sf_Terr = StringFunction(error_string[0], error_name[0], Dimensions(spatial_dim), Dimensions(1))

    numSteps = pMesh.get_database_time_step_count()
    print "numSteps= ", numSteps, " nodal_fields[0]= ", nodal_fields[0]
    pMesh.read_database_at_step(numSteps)


    p_field = pMesh.get_field("P")
    node = pMesh.get_node(1)
    p1 = pMesh.get_field_data(p_field, node)
    print "p1= " , p1

    p21 = eval_func2(2,1,0,ff_Tnd)
    p21_ex = eval_func2(2,1,0,sf_ex[0])
    err =  eval_func2(2,1,0,sf_Terr)
    print "p21 = ", p21, p21_ex, err

    # DEBUG
    print numSteps, pMesh.get_current_database_step(), pMesh.get_current_database_time()

    cubDegree = 2
    lInfNorm = LInfNorm(bulkData)
    lInfNorm.setCubDegree(cubDegree)

    l2Norm = L2Norm(bulkData)