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