def test_read_npy_series_data(self): fem_data = FEMData.read_npy_directory('tests/data/npy/temperatures') np.testing.assert_almost_equal( fem_data.nodal_data.get_attribute_data('nodal_t_10'), np.array([[9.2546418], [9.3392005], [10.689137], [18.477557], [15.111514], [16.652916]])) np.testing.assert_almost_equal( fem_data.nodal_data.get_attribute_data('nodal_t_100'), np.array([[9.3394346], [9.4908689], [10.985905], [18.361863], [15.379292], [16.664873]]))
def test_read_saved_npy_mixture_shell(self): fem_data = FEMData.read_directory('obj', 'tests/data/obj/mixture_shell', read_npy=False, save=False) write_dir_name = 'tests/data/obj/write_npy_mixture_shell' if os.path.exists(write_dir_name): shutil.rmtree(write_dir_name) fem_data.save(write_dir_name) npy_fem_data = FEMData.read_npy_directory(write_dir_name) desired_elements = [ np.array([1, 2, 3, 4]), np.array([2, 3, 5]), np.array([3, 6, 7, 4]) ] for e1, e2 in zip(npy_fem_data.elements.data, desired_elements): np.testing.assert_array_equal(e1, e2)
def test_read_saved_npy_mixed_elements(self): fem_data = FEMData.read_directory('fistr', 'tests/data/fistr/mixture_solid', read_npy=False, save=False) write_dir_name = 'tests/data/fistr/write_npy_mixture_solid' if os.path.exists(write_dir_name): shutil.rmtree(write_dir_name) fem_data.settings = {} fem_data.save(write_dir_name) npy_fem_data = FEMData.read_npy_directory(write_dir_name) npy_fem_data.write('fistr', os.path.join(write_dir_name, 'mesh'), overwrite=True) np.testing.assert_array_equal( fem_data.elements['hex'].ids, npy_fem_data.elements['hex'].ids, ) np.testing.assert_array_equal( fem_data.elements['hex'].data, npy_fem_data.elements['hex'].data, ) np.testing.assert_array_equal( fem_data.elements['tet'].ids, npy_fem_data.elements['tet'].ids, ) np.testing.assert_array_equal( fem_data.elements['tet'].data, npy_fem_data.elements['tet'].data, ) if RUN_FISTR: os.system(f"cd {write_dir_name} " + "&& fistr1 > /dev/null 2>&1") written_fem_data_with_res = FEMData.read_directory('fistr', write_dir_name, read_npy=False) np.testing.assert_almost_equal( written_fem_data_with_res.nodal_data['DISPLACEMENT'].data, fem_data.nodal_data['DISPLACEMENT'].data, decimal=5)
def test_read_saved_npy(self): fem_data = FEMData.read_directory( 'fistr', 'tests/data/fistr/thermal_id_not_from_1', read_npy=False) write_dir_name = Path('tests/data/fistr/write_npy') if write_dir_name.exists(): shutil.rmtree(write_dir_name) fem_data.save(write_dir_name) npy_fem_data = FEMData.read_npy_directory(write_dir_name) npy_fem_data.write('fistr', write_dir_name / 'mesh', overwrite=True) if RUN_FISTR: subprocess.check_call("fistr1 > /dev/null 2>&1", cwd=write_dir_name, shell=True) written_fem_data_with_res = FEMData.read_directory('fistr', write_dir_name, read_npy=False) np.testing.assert_almost_equal( written_fem_data_with_res.nodal_data['DISPLACEMENT'].data, fem_data.nodal_data['DISPLACEMENT'].data, decimal=5)