|
| | local_subdomain_id |
| |
| | x_cell |
| |
| | y_cell |
| |
| | r_cell |
| |
| | integer |
| |
| str | scalar_type = 'double' |
| |
| | rads |
| |
| | rad_assignments |
| |
| | src_symbol |
| |
| | src_array_declaration |
| |
| | src_assignments |
| |
| | k_symbol |
| |
| | k_array_declaration |
| |
| | k_assignments |
| |
| str | kernel_code = "\n" |
| |
| | qp_data = quad_points_1x1 |
| |
| | qw_data = quad_weights_1x1 |
| |
| int | num_qps = 1 |
| |
| int | dim = 3 |
| |
| str | qp_array_name = "qp_array" |
| |
| str | qw_array_name = "qw_array" |
| |
| | qp_array = IndexedBase(qp_array_name, shape=(num_qps, 3), real=True) |
| |
| | qw_array = IndexedBase(qw_array_name, shape=(num_qps), real=True) |
| |
| int | num_wedges_per_hex_cell = 2 |
| |
| int | num_nodes_per_wedge_surface = 3 |
| |
| int | num_nodes_per_wedge = 6 |
| |
| | cmb_shift |
| |
| | surface_shift |
| |
| | at_surface_boundary |
| |
| | at_cmb_boundary |
| |
| | max_rad |
| |
| | treat_boundary |
| |
| | diagonal |
| |
| | postloop |
| |
| str | dst_array_name = "dst_array" |
| |
| | dst_symbol |
| |
| list | quadloop_body = [] |
| |
| list | quadloop_exprs = [] |
| |
| | q_symbol = sp.symbols("q", integer=True) |
| |
| list | qp = [qp_array[q_symbol, d] for d in range(dim)] |
| |
| | qw = qw_array[q_symbol] |
| |
| | w_symbol |
| |
| | dimi_symbol |
| |
| | dimj_symbol |
| |
| | dim_diagBC_symbol |
| |
| | k_eval_symbol = sp.symbols("k_eval", real=True) |
| |
| | k_eval |
| |
| | k_eval_replacements |
| |
| | k_eval_reduced_exprs |
| |
| | exprs |
| |
| | symbols |
| |
| | g_symbol = symbols("node_idx", integer=True) |
| |
| str | scalar_grad_name = "scalar_grad" |
| |
| | scalar_grad = IndexedBase(scalar_grad_name, shape=(num_nodes_per_wedge, dim), real=True) |
| |
| bool | jac_laterally_precomputed = False |
| |
| list | jac_exprs = [] |
| |
| | J |
| |
| | J_cse_assignments |
| |
| | J_cse_exprs |
| |
| | J_cse = sp.Matrix(3, 3, J_cse_exprs) |
| |
| | J_cse_replaced_assignments |
| |
| | J_cse_replaced |
| |
| | J_det = J_cse_replaced.det() |
| |
| | J_det_replacements |
| |
| | J_det_reduced_exprs |
| |
| | J_det_symbol = sp.symbols(f"J_det", real=True) |
| |
| | J_abs_det = abs(J_det_symbol) |
| |
| | J_inv = J_cse_replaced.adjugate() / J_det_symbol |
| |
| | J_invT = J_inv.transpose() |
| |
| | J_invT_replacements |
| |
| | J_invT_reduced_exprs |
| |
| | J_invT_cse = sp.Matrix(3, 3, J_invT_reduced_exprs) |
| |
| | J_invT_cse_assignments |
| |
| | J_invT_cse_replaced |
| |
| list | grad_exprs = [] |
| |
| list | scalar_grad_is = [] |
| |
| | scalar_grad_i_replacements |
| |
| | scalar_grad_i_reduced_exprs |
| |
| | r_inv |
| |
| | g3 |
| |
| | grad_r |
| |
| | grad_r_inv |
| |
| | real |
| |
| | g1 = IndexedBase("grad1", shape=(3)) |
| |
| | g2 = IndexedBase("grad2", shape=(3)) |
| |
| | d_symbol = symbols("d", integer=True) |
| |
| | value |
| |
| int | r = 1 / r_inv |
| |
| list | dimloop_j_body = [] |
| |
| list | dimloop_j_exprs = [] |
| |
| list | dimloop_i_body = [] |
| |
| list | dimloop_i_exprs = [] |
| |
| str | E_trial_name = "E_grad_trial" |
| |
| | E_trial = IndexedBase(E_trial_name, shape=(3, 3), real=True) |
| |
| | div_u = symbols("div_u", real=True) |
| |
| list | u_grad_loop_exprs = [] |
| |
| | E_trial_matrix = Matrix(3, 3, [E_trial[i, j] for i in range(dim) for j in range(dim)]) |
| |
| str | grad_u_name = "grad_u" |
| |
| | grad_u = IndexedBase(grad_u_name, shape=(3, 3), real=True) |
| |
| | grad_u_matrix = Matrix(3, 3, [grad_u[i, j] for i in range(dim) for j in range(dim)]) |
| |
| float | symm_grad_j = 0.5 * (E_trial_matrix + (E_trial_matrix).transpose()) |
| |
| | symm_grad_j_replacements |
| |
| | symm_grad_j_reduced_exprs |
| |
| str | E_test_name = "E_grad_test" |
| |
| | E_test = IndexedBase(E_test_name, shape=(3, 3), real=True) |
| |
| list | pairing_loop_exprs = [] |
| |
| | E_test_matrix = Matrix(3, 3, [E_test[i, j] for i in range(dim) for j in range(dim)]) |
| |
| float | symm_grad_i = 0.5 * (E_test_matrix + (E_test_matrix).transpose()) |
| |
| | symm_grad_i_replacements |
| |
| | symm_grad_i_reduced_exprs |
| |
| | pairing_replacements |
| |
| | pairing_reduced_exprs |
| |
| list | boundary_loop_exprs = [] |
| |
| str | grad_u_diag_name = "grad_u_diag" |
| |
| | grad_u_diag = IndexedBase(grad_u_diag_name, shape=(3, 3), real=True) |
| |
| | grad_u_diag_matrix |
| |
| | symm_grad_i_reduced_matrix = Matrix(3, 3, symm_grad_i_reduced_exprs[0]) |
| |
| | diag_pairing_replacements |
| |
| | diag_pairing_reduced_exprs |
| |
| list | dimloop_diagBC_body |
| |
| | encoding |
| |