# Maple code to compute 3-D Lagrange interpolation coefficients (orders 1-4) # $Id$ ################################################################################ # # interpolating functions # fn_3d_order1 := proc(x,y,z) # z^0 ----------- + c010*y + c000 + c100*x # z^1 ----------- + c001*z end proc; fn_3d_order2 := proc(x,y,z) # z^0 -------------------------- + c020*y^2 + c010*y + c110*x*y + c000 + c100*x + c200*x^2 # z^1 -------------------------- + c011*y*z + c001*z + c101*x*z # z^2 -------------------------- + c002*z^2 end proc; fn_3d_order3 := proc(x,y,z) # z^0 ------------------------------------------- + c030*y^3 + c020*y^2 + c120*x*y^2 + c010*y + c110*x*y + c210*x^2*y + c000 + c100*x + c200*x^2 + c300*x^3 # z^1 ------------------------------------------- + c021*y^2*z + c011*y *z + c111*x*y*z + c001 *z + c101*x *z + c201*x^2*z # z^2 ------------------------------------------- + c012*y*z^2 + c002 *z^2 + c102*x*z^2 # z^3 ------------------------------------------- + c003 *z^3 end proc; fn_3d_order4 := proc(x,y,z) # z^0 -------------------------------------------------------- + c040*y^4 + c030*y^3 + c130*x*y^3 + c020*y^2 + c120*x*y^2 + c220*x^2*y^2 + c010*y + c110*x*y + c210*x^2*y + c310*x^3*y + c000 + c100*x + c200*x^2 + c300*x^3 + c400*x^4 # z^1 ------------------------------------------- + c031*y^3*z + c021*y^2*z + c121*x*y^2*z + c011*y *z + c111*x*y *z + c211*x^2*y*z + c001 *z + c101*x *z + c201*x^2 *z + c301*x^3*z # z^2 ------------------------------------------- + c022*y^2*z^2 + c012*y *z^2 + c112*x*y*z^2 + c002 *z^2 + c102*x *z^2 + c202*x^2*z^2 # z^3 ------------------------------------------- + c013*y *z^3 + c003 *z^3 + c103*x *z^3 # z^4 ------------------------------------------- + c004 *z^4 end; ################################################################################ # # coefficients in interpolating functions # coeff_list_3d_order1 := [ # z^0 ----- c010, c000, c100, # z^1 ----- c001 ]; coeff_list_3d_order2 := [ # z^0 ----------- c020, c010, c110, c000, c100, c200, # z^1 ----------- c011, c001, c101, # z^2 ----------- c002 ]; coeff_list_3d_order3 := [ # z^0 ---------------- c030, c020, c120, c010, c110, c210, c000, c100, c200, c300, # z^1 ---------------- c021, c011, c111, c001, c101, c201, # z^2 ---------------- c012, c002, c102, # z^3 ---------------- c003 ]; coeff_list_3d_order4 := [ # z^0 ----------------------- c040, c030, c130, c020, c120, c220, c010, c110, c210, c310, c000, c100, c200, c300, c400, # z^1 ----------------------- c031, c021, c121, c011, c111, c211, c001, c101, c201, c301, # z^2 ----------------------- c022, c012, c112, c002, c102, c202, # z^3 ----------------------- c013, c003, c103, # z^4 ----------------------- c004 ]; ################################################################################ # # coordinates and interpolation points # coord_list_3d := [x,y,z]; # generate points in Fortran ordering posn_list_3d_size2 := map(ListTools[Reverse], hypercube_points([ 0, 0, 0], [+1,+1,+1])); posn_list_3d_size3 := map(ListTools[Reverse], hypercube_points([-1,-1,-1], [+1,+1,+1])); posn_list_3d_size4 := map(ListTools[Reverse], hypercube_points([-1,-1,-1], [+2,+2,+2])); posn_list_3d_size5 := map(ListTools[Reverse], hypercube_points([-2,-2,-2], [+2,+2,+2])); ################################################################################ # # generic stuff for 3d, cube, size=2 # data_var_list_3d_size2 := map(data_var_name, posn_list_3d_size2, "data_"); print_name_list_dcl(data_var_list_3d_size2, "fp", "3d.coeffs/3d.cube.size2/data-var.dcl.c"); print_data_var_assign(posn_list_3d_size2, "data_", "3d.coeffs/3d.cube.size2/data-var.assign.c"); print_interp_coeff_var_store(posn_list_3d_size2, "coeff_I_", "3d.coeffs/3d.cube.size2/coeff-I.store.c"); print_interp_coeff_var_store(posn_list_3d_size2, "coeff_dx_", "3d.coeffs/3d.cube.size2/coeff-dx.store.c"); print_interp_coeff_var_store(posn_list_3d_size2, "coeff_dy_", "3d.coeffs/3d.cube.size2/coeff-dy.store.c"); print_interp_coeff_var_store(posn_list_3d_size2, "coeff_dz_", "3d.coeffs/3d.cube.size2/coeff-dz.store.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_I_"), "fp", "3d.coeffs/3d.cube.size2/coeff-I.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_dx_"), "fp", "3d.coeffs/3d.cube.size2/coeff-dx.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_dy_"), "fp", "3d.coeffs/3d.cube.size2/coeff-dy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size2, "coeff_dz_"), "fp", "3d.coeffs/3d.cube.size2/coeff-dz.dcl.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size2, "result", "coeff_I_", "data_", "3d.coeffs/3d.cube.size2/interp-I.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size2, "result", "coeff_dx_", "data_", "3d.coeffs/3d.cube.size2/interp-dx.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size2, "result", "coeff_dy_", "data_", "3d.coeffs/3d.cube.size2/interp-dy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size2, "result", "coeff_dz_", "data_", "3d.coeffs/3d.cube.size2/interp-dz.compute.c"); ######################################## # # generic stuff for 3d, cube, size=3 # data_var_list_3d_size3 := map(data_var_name, posn_list_3d_size3, "data_"); print_name_list_dcl(data_var_list_3d_size3, "fp", "3d.coeffs/3d.cube.size3/data-var.dcl.c"); print_data_var_assign(posn_list_3d_size3, "data_", "3d.coeffs/3d.cube.size3/data-var.assign.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_I_", "3d.coeffs/3d.cube.size3/coeff-I.store.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_dx_", "3d.coeffs/3d.cube.size3/coeff-dx.store.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_dy_", "3d.coeffs/3d.cube.size3/coeff-dy.store.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_dz_", "3d.coeffs/3d.cube.size3/coeff-dz.store.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_dxx_", "3d.coeffs/3d.cube.size3/coeff-dxx.store.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_dxy_", "3d.coeffs/3d.cube.size3/coeff-dxy.store.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_dxz_", "3d.coeffs/3d.cube.size3/coeff-dxz.store.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_dyy_", "3d.coeffs/3d.cube.size3/coeff-dyy.store.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_dyz_", "3d.coeffs/3d.cube.size3/coeff-dyz.store.c"); print_interp_coeff_var_store(posn_list_3d_size3, "coeff_dzz_", "3d.coeffs/3d.cube.size3/coeff-dzz.store.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_I_"), "fp", "3d.coeffs/3d.cube.size3/coeff-I.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dx_"), "fp", "3d.coeffs/3d.cube.size3/coeff-dx.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dy_"), "fp", "3d.coeffs/3d.cube.size3/coeff-dy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dz_"), "fp", "3d.coeffs/3d.cube.size3/coeff-dz.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dxx_"), "fp", "3d.coeffs/3d.cube.size3/coeff-dxx.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dxy_"), "fp", "3d.coeffs/3d.cube.size3/coeff-dxy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dxz_"), "fp", "3d.coeffs/3d.cube.size3/coeff-dxz.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dyy_"), "fp", "3d.coeffs/3d.cube.size3/coeff-dyy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dyz_"), "fp", "3d.coeffs/3d.cube.size3/coeff-dyz.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size3, "coeff_dzz_"), "fp", "3d.coeffs/3d.cube.size3/coeff-dzz.dcl.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_I_", "data_", "3d.coeffs/3d.cube.size3/interp-I.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_dx_", "data_", "3d.coeffs/3d.cube.size3/interp-dx.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_dy_", "data_", "3d.coeffs/3d.cube.size3/interp-dy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_dz_", "data_", "3d.coeffs/3d.cube.size3/interp-dz.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_dxx_", "data_", "3d.coeffs/3d.cube.size3/interp-dxx.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_dxy_", "data_", "3d.coeffs/3d.cube.size3/interp-dxy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_dxz_", "data_", "3d.coeffs/3d.cube.size3/interp-dxz.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_dyy_", "data_", "3d.coeffs/3d.cube.size3/interp-dyy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_dyz_", "data_", "3d.coeffs/3d.cube.size3/interp-dyz.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size3, "result", "coeff_dzz_", "data_", "3d.coeffs/3d.cube.size3/interp-dzz.compute.c"); ######################################## # # generic stuff for 3d, cube, size=4 # data_var_list_3d_size4 := map(data_var_name, posn_list_3d_size4, "data_"); print_name_list_dcl(data_var_list_3d_size4, "fp", "3d.coeffs/3d.cube.size4/data-var.dcl.c"); print_data_var_assign(posn_list_3d_size4, "data_", "3d.coeffs/3d.cube.size4/data-var.assign.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_I_", "3d.coeffs/3d.cube.size4/coeff-I.store.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_dx_", "3d.coeffs/3d.cube.size4/coeff-dx.store.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_dy_", "3d.coeffs/3d.cube.size4/coeff-dy.store.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_dz_", "3d.coeffs/3d.cube.size4/coeff-dz.store.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_dxx_", "3d.coeffs/3d.cube.size4/coeff-dxx.store.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_dxy_", "3d.coeffs/3d.cube.size4/coeff-dxy.store.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_dxz_", "3d.coeffs/3d.cube.size4/coeff-dxz.store.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_dyy_", "3d.coeffs/3d.cube.size4/coeff-dyy.store.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_dyz_", "3d.coeffs/3d.cube.size4/coeff-dyz.store.c"); print_interp_coeff_var_store(posn_list_3d_size4, "coeff_dzz_", "3d.coeffs/3d.cube.size4/coeff-dzz.store.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_I_"), "fp", "3d.coeffs/3d.cube.size4/coeff-I.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dx_"), "fp", "3d.coeffs/3d.cube.size4/coeff-dx.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dy_"), "fp", "3d.coeffs/3d.cube.size4/coeff-dy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dz_"), "fp", "3d.coeffs/3d.cube.size4/coeff-dz.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dxx_"), "fp", "3d.coeffs/3d.cube.size4/coeff-dxx.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dxy_"), "fp", "3d.coeffs/3d.cube.size4/coeff-dxy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dxz_"), "fp", "3d.coeffs/3d.cube.size4/coeff-dxz.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dyy_"), "fp", "3d.coeffs/3d.cube.size4/coeff-dyy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dyz_"), "fp", "3d.coeffs/3d.cube.size4/coeff-dyz.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size4, "coeff_dzz_"), "fp", "3d.coeffs/3d.cube.size4/coeff-dzz.dcl.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_I_", "data_", "3d.coeffs/3d.cube.size4/interp-I.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_dx_", "data_", "3d.coeffs/3d.cube.size4/interp-dx.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_dy_", "data_", "3d.coeffs/3d.cube.size4/interp-dy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_dz_", "data_", "3d.coeffs/3d.cube.size4/interp-dz.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_dxx_", "data_", "3d.coeffs/3d.cube.size4/interp-dxx.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_dxy_", "data_", "3d.coeffs/3d.cube.size4/interp-dxy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_dxz_", "data_", "3d.coeffs/3d.cube.size4/interp-dxz.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_dyy_", "data_", "3d.coeffs/3d.cube.size4/interp-dyy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_dyz_", "data_", "3d.coeffs/3d.cube.size4/interp-dyz.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size4, "result", "coeff_dzz_", "data_", "3d.coeffs/3d.cube.size4/interp-dzz.compute.c"); ######################################## # # generic stuff for 3d, cube, size=5 # data_var_list_3d_size5 := map(data_var_name, posn_list_3d_size5, "data_"); print_name_list_dcl(data_var_list_3d_size5, "fp", "3d.coeffs/3d.cube.size5/data-var.dcl.c"); print_data_var_assign(posn_list_3d_size5, "data_", "3d.coeffs/3d.cube.size5/data-var.assign.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_I_", "3d.coeffs/3d.cube.size5/coeff-I.store.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_dx_", "3d.coeffs/3d.cube.size5/coeff-dx.store.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_dy_", "3d.coeffs/3d.cube.size5/coeff-dy.store.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_dz_", "3d.coeffs/3d.cube.size5/coeff-dz.store.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_dxx_", "3d.coeffs/3d.cube.size5/coeff-dxx.store.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_dxy_", "3d.coeffs/3d.cube.size5/coeff-dxy.store.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_dxz_", "3d.coeffs/3d.cube.size5/coeff-dxz.store.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_dyy_", "3d.coeffs/3d.cube.size5/coeff-dyy.store.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_dyz_", "3d.coeffs/3d.cube.size5/coeff-dyz.store.c"); print_interp_coeff_var_store(posn_list_3d_size5, "coeff_dzz_", "3d.coeffs/3d.cube.size5/coeff-dzz.store.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_I_"), "fp", "3d.coeffs/3d.cube.size5/coeff-I.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dx_"), "fp", "3d.coeffs/3d.cube.size5/coeff-dx.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dy_"), "fp", "3d.coeffs/3d.cube.size5/coeff-dy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dz_"), "fp", "3d.coeffs/3d.cube.size5/coeff-dz.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dxx_"), "fp", "3d.coeffs/3d.cube.size5/coeff-dxx.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dxy_"), "fp", "3d.coeffs/3d.cube.size5/coeff-dxy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dxz_"), "fp", "3d.coeffs/3d.cube.size5/coeff-dxz.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dyy_"), "fp", "3d.coeffs/3d.cube.size5/coeff-dyy.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dyz_"), "fp", "3d.coeffs/3d.cube.size5/coeff-dyz.dcl.c"); print_name_list_dcl(map(coeff_name, posn_list_3d_size5, "coeff_dzz_"), "fp", "3d.coeffs/3d.cube.size5/coeff-dzz.dcl.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_I_", "data_", "3d.coeffs/3d.cube.size5/interp-I.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_dx_", "data_", "3d.coeffs/3d.cube.size5/interp-dx.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_dy_", "data_", "3d.coeffs/3d.cube.size5/interp-dy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_dz_", "data_", "3d.coeffs/3d.cube.size5/interp-dz.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_dxx_", "data_", "3d.coeffs/3d.cube.size5/interp-dxx.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_dxy_", "data_", "3d.coeffs/3d.cube.size5/interp-dxy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_dxz_", "data_", "3d.coeffs/3d.cube.size5/interp-dxz.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_dyy_", "data_", "3d.coeffs/3d.cube.size5/interp-dyy.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_dyz_", "data_", "3d.coeffs/3d.cube.size5/interp-dyz.compute.c"); print_interp_cmpt__lc_of_data(posn_list_3d_size5, "result", "coeff_dzz_", "data_", "3d.coeffs/3d.cube.size5/interp-dzz.compute.c"); ################################################################################ # # 3d, cube, order=1, smoothing=0 (size=2) # # interpolating polynomial interp_3d_cube_order1_smooth0 := polynomial_interpolant(fn_3d_order1, coeff_list_3d_order1, coord_list_3d, posn_list_3d_size2); # I coeff_as_lc_of_data(%, posn_list_3d_size2); print_coeff__lc_of_data(%, "coeff_I_", "fp", "3d.coeffs/3d.cube.order1.smooth0/coeff-I.compute.c"); # d/dx simplify( diff(interp_3d_cube_order1_smooth0,x) ); coeff_as_lc_of_data(%, posn_list_3d_size2); print_coeff__lc_of_data(%, "coeff_dx_", "fp", "3d.coeffs/3d.cube.order1.smooth0/coeff-dx.compute.c"); # d/dy simplify( diff(interp_3d_cube_order1_smooth0,y) ); coeff_as_lc_of_data(%, posn_list_3d_size2); print_coeff__lc_of_data(%, "coeff_dy_", "fp", "3d.coeffs/3d.cube.order1.smooth0/coeff-dy.compute.c"); # d/dz simplify( diff(interp_3d_cube_order1_smooth0,z) ); coeff_as_lc_of_data(%, posn_list_3d_size2); print_coeff__lc_of_data(%, "coeff_dz_", "fp", "3d.coeffs/3d.cube.order1.smooth0/coeff-dz.compute.c"); ######################################## # # 3d, cube, order=2, smoothing=0 (size=3) # # interpolating polynomial interp_3d_cube_order2_smooth0 := polynomial_interpolant(fn_3d_order2, coeff_list_3d_order2, coord_list_3d, posn_list_3d_size3); # I coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_I_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-I.compute.c"); # d/dx simplify( diff(interp_3d_cube_order2_smooth0,x) ); coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_dx_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-dx.compute.c"); # d/dy simplify( diff(interp_3d_cube_order2_smooth0,y) ); coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_dy_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-dy.compute.c"); # d/dz simplify( diff(interp_3d_cube_order2_smooth0,z) ); coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_dz_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-dz.compute.c"); # d^2/dx^2 simplify( diff(interp_3d_cube_order2_smooth0,x,x) ); coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_dxx_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-dxx.compute.c"); # d^2/dxdy simplify( diff(interp_3d_cube_order2_smooth0,x,y) ); coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_dxy_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-dxy.compute.c"); # d^2/dxdz simplify( diff(interp_3d_cube_order2_smooth0,x,z) ); coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_dxz_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-dxz.compute.c"); # d^2/dy^2 simplify( diff(interp_3d_cube_order2_smooth0,y,y) ); coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_dyy_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-dyy.compute.c"); # d^2/dydz simplify( diff(interp_3d_cube_order2_smooth0,y,z) ); coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_dyz_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-dyz.compute.c"); # d^2/dz^2 simplify( diff(interp_3d_cube_order2_smooth0,z,z) ); coeff_as_lc_of_data(%, posn_list_3d_size3); print_coeff__lc_of_data(%, "coeff_dzz_", "fp", "3d.coeffs/3d.cube.order2.smooth0/coeff-dzz.compute.c"); ######################################## # # 3d, cube, order=3, smoothing=0 (size=4) # # interpolating polynomial interp_3d_cube_order3_smooth0 := polynomial_interpolant(fn_3d_order3, coeff_list_3d_order3, coord_list_3d, posn_list_3d_size4); # I coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_I_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-I.compute.c"); # d/dx simplify( diff(interp_3d_cube_order3_smooth0,x) ); coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_dx_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-dx.compute.c"); # d/dy simplify( diff(interp_3d_cube_order3_smooth0,y) ); coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_dy_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-dy.compute.c"); # d/dz simplify( diff(interp_3d_cube_order3_smooth0,z) ); coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_dz_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-dz.compute.c"); # d^2/dx^2 simplify( diff(interp_3d_cube_order3_smooth0,x,x) ); coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_dxx_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-dxx.compute.c"); # d^2/dxdy simplify( diff(interp_3d_cube_order3_smooth0,x,y) ); coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_dxy_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-dxy.compute.c"); # d^2/dxdz simplify( diff(interp_3d_cube_order3_smooth0,x,z) ); coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_dxz_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-dxz.compute.c"); # d^2/dy^2 simplify( diff(interp_3d_cube_order3_smooth0,y,y) ); coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_dyy_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-dyy.compute.c"); # d^2/dydz simplify( diff(interp_3d_cube_order3_smooth0,y,z) ); coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_dyz_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-dyz.compute.c"); # d^2/dz^2 simplify( diff(interp_3d_cube_order3_smooth0,z,z) ); coeff_as_lc_of_data(%, posn_list_3d_size4); print_coeff__lc_of_data(%, "coeff_dzz_", "fp", "3d.coeffs/3d.cube.order3.smooth0/coeff-dzz.compute.c"); ######################################## # # 3d, cube, order=4, smoothing=0 (size=5) # # interpolating polynomial interp_3d_cube_order4_smooth0 := polynomial_interpolant(fn_3d_order4, coeff_list_3d_order4, coord_list_3d, posn_list_3d_size5); # I coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_I_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-I.compute.c"); # d/dx simplify( diff(interp_3d_cube_order4_smooth0,x) ); coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_dx_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-dx.compute.c"); # d/dy simplify( diff(interp_3d_cube_order4_smooth0,y) ); coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_dy_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-dy.compute.c"); # d/dz simplify( diff(interp_3d_cube_order4_smooth0,z) ); coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_dz_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-dz.compute.c"); # d^2/dx^2 simplify( diff(interp_3d_cube_order4_smooth0,x,x) ); coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_dxx_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-dxx.compute.c"); # d^2/dxdy simplify( diff(interp_3d_cube_order4_smooth0,x,y) ); coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_dxy_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-dxy.compute.c"); # d^2/dxdz simplify( diff(interp_3d_cube_order4_smooth0,x,z) ); coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_dxz_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-dxz.compute.c"); # d^2/dy^2 simplify( diff(interp_3d_cube_order4_smooth0,y,y) ); coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_dyy_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-dyy.compute.c"); # d^2/dydz simplify( diff(interp_3d_cube_order4_smooth0,y,z) ); coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_dyz_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-dyz.compute.c"); # d^2/dz^2 simplify( diff(interp_3d_cube_order4_smooth0,z,z) ); coeff_as_lc_of_data(%, posn_list_3d_size5); print_coeff__lc_of_data(%, "coeff_dzz_", "fp", "3d.coeffs/3d.cube.order4.smooth0/coeff-dzz.compute.c"); ########################################