def _test_reduced_mesh_mixed_vector(V, reduced_mesh): reduced_V = reduced_mesh.get_reduced_function_spaces() dofs = reduced_mesh.get_dofs_list() reduced_dofs = reduced_mesh.get_reduced_dofs_list() v = TestFunction(V) (v_0, v_1) = split(v) test = 0 v_N = TestFunction(reduced_V[test]) (v_N_0, v_N_1) = split(v_N) b = assemble(v_0[0] * dx + v_0[1] * dx + v_1 * dx) b_N = assemble(v_N_0[0] * dx + v_N_0[1] * dx + v_N_1 * dx) b_dofs = evaluate_sparse_vector_at_dofs(b, dofs) b_N_reduced_dofs = evaluate_sparse_vector_at_dofs(b_N, reduced_dofs) test_logger.log(DEBUG, "b at dofs:") test_logger.log(DEBUG, str(b_dofs)) test_logger.log(DEBUG, "b_N at reduced dofs:") test_logger.log(DEBUG, str(b_N_reduced_dofs)) test_logger.log(DEBUG, "Error:") test_logger.log(DEBUG, str(b_dofs - b_N_reduced_dofs)) assert isclose(b_dofs, b_N_reduced_dofs).all()
def _test_reduced_mesh_collapsed_vector(V, reduced_mesh): reduced_V = reduced_mesh.get_reduced_function_spaces() dofs = reduced_mesh.get_dofs_list() reduced_dofs = reduced_mesh.get_reduced_dofs_list() v = TestFunction(V) test = 0 v_N = TestFunction(reduced_V[test]) b = assemble(v[0]*dx + v[1]*dx) b_N = assemble(v_N[0]*dx + v_N[1]*dx) b_dofs = evaluate_sparse_vector_at_dofs(b, dofs) b_N_reduced_dofs = evaluate_sparse_vector_at_dofs(b_N, reduced_dofs) log(PROGRESS, "b at dofs:\n" + str(b_dofs)) log(PROGRESS, "b_N at reduced dofs:\n" + str(b_N_reduced_dofs)) log(PROGRESS, "Error:\n" + str(b_dofs - b_N_reduced_dofs))
def _test_reduced_mesh_elliptic_vector(V, reduced_mesh): reduced_V = reduced_mesh.get_reduced_function_spaces() dofs = reduced_mesh.get_dofs_list() reduced_dofs = reduced_mesh.get_reduced_dofs_list() v = TestFunction(V) test = 0 v_N = TestFunction(reduced_V[test]) b = assemble(v*dx) b_N = assemble(v_N*dx) b_dofs = evaluate_sparse_vector_at_dofs(b, dofs) b_N_reduced_dofs = evaluate_sparse_vector_at_dofs(b_N, reduced_dofs) log(PROGRESS, "b at dofs:\n" + str(b_dofs)) log(PROGRESS, "b_N at reduced dofs:\n" + str(b_N_reduced_dofs)) log(PROGRESS, "Error:\n" + str(b_dofs - b_N_reduced_dofs)) assert isclose(b_dofs, b_N_reduced_dofs).all()