00001
00002 include '../Include_file/include_modulefiles_peos.f90'
00003 include '../Module/grid_parameter_binary_excision.f90'
00004 include '../Module/grid_points_binary_excision.f90'
00005 include '../Module/grid_points_asymptotic_patch.f90'
00006 include '../Module/grid_points_binary_in_asympto.f90'
00007 include '../Module/weight_midpoint_binary_excision.f90'
00008 include '../Module/radial_green_fn_grav_bhex_nb.f90'
00009 include '../Module/radial_green_fn_grav_bhex_di.f90'
00010 include '../Module/radial_green_fn_grav_bhex_dd.f90'
00011 include '../Module/radial_green_fn_grav_bhex_dh.f90'
00012 include '../Module/radial_green_fn_grav_bhex_nd.f90'
00013 include '../Module/radial_green_fn_grav_bhex_nh.f90'
00014 include '../Module/copy_array_3d.f90'
00015 include '../Module/make_char2_array_2d.f90'
00016 include '../Module/make_char1_array_2d.f90'
00017 include '../Module/make_int_array_3d.f90'
00018 include '../Module/grid_parameter_interpo.f90'
00019 include '../Module/grid_parameter_binary_excision_interpo.f90'
00020 include '../Module/coordinate_grav_extended_interpo.f90'
00021
00022 include '../Include_file/include_interface_modulefiles_peos.f90'
00023 include '../Module_interface/interface_error_metric.f90'
00024 include '../Module_interface/interface_error_metric_type0.f90'
00025 include '../Module_interface/interface_grdr_gridpoint_type0.f90'
00026 include '../Module_interface/interface_grdr_gridpoint_type0_nosym.f90'
00027 include '../Module_interface/interface_grdr_gridpoint_type0_3rd_nosym.f90'
00028 include '../Module_interface/interface_grgrad_midpoint_r3rd_type0.f90'
00029 include '../Module_interface/interface_grgrad_midpoint_r4th_type0.f90'
00030 include '../Module_interface/interface_sourceterm_poisson_solver_test.f90'
00031 include '../Module_interface/interface_sourceterm_exsurf_eqm_binary.f90'
00032 include '../Module_interface/interface_sourceterm_surface_int.f90'
00033 include '../Module_interface/interface_sourceterm_surface_int_homosol.f90'
00034 include '../Module_interface/interface_sourceterm_outsurf_interpo_from_asympto_mpt.f90'
00035 include '../Module_interface/interface_sourceterm_insurf_asympto_interpo_from_mpt.f90'
00036 include '../Module_interface/interface_sourceterm_volume_int_bbh_2pot_test.f90'
00037 include '../Module_interface/interface_sourceterm_2pot_test.f90'
00038 include '../Module_interface/interface_poisson_solver_binary.f90'
00039 include '../Module_interface/interface_poisson_solver_binary_bhex_homosol.f90'
00040 include '../Module_interface/interface_poisson_solver_binary_bhex.f90'
00041 include '../Module_interface/interface_poisson_solver_binary_surf_int.f90'
00042 include '../Module_interface/interface_poisson_solver_binary_vol_int.f90'
00043 include '../Module_interface/interface_poisson_solver_bhex_surf_int.f90'
00044 include '../Module_interface/interface_poisson_solver_bhex_surf_int_all.f90'
00045 include '../Module_interface/interface_poisson_solver_asymptotic_patch_homosol.f90'
00046 include '../Module_interface/interface_copy_to_hgfn_and_gfnsf.f90'
00047 include '../Module_interface/interface_bh_boundary_test.f90'
00048 include '../Module_interface/interface_bh_boundary_test_mpt.f90'
00049 include '../Module_interface/interface_bh_boundary_nh_psi_test.f90'
00050 include '../Module_interface/interface_bh_boundary_nh_alph_test.f90'
00051 include '../Module_interface/interface_bh_boundary_dh_psi_test.f90'
00052 include '../Module_interface/interface_bh_boundary_dh_alph_test.f90'
00053 include '../Module_interface/interface_bh_boundary_psi_test_mpt.f90'
00054 include '../Module_interface/interface_bh_boundary_alph_test_mpt.f90'
00055 include '../Module_interface/interface_bh_boundary_psi_test2_mpt.f90'
00056 include '../Module_interface/interface_bh_boundary_alph_test2_mpt.f90'
00057 include '../Module_interface/interface_interpo_gr2gr_4th_mpt.f90'
00058 include '../Module_interface/interface_interpolation_fillup_binary_mpt.f90'
00059 include '../Module_interface/interface_interpo_patch_to_active_patch_mpt.f90'
00060 include '../Include_file/include_modulefiles_mpatch.f90'
00061 include '../Module_mpatch/grid_points_asymptotic_patch_mpt.f90'
00062 include '../Module_mpatch/grid_points_binary_in_asympto_mpt.f90'
00063
00064 include '../Include_file/include_subroutines_peos.f90'
00065 include '../Subroutine/IO_output_poisson_test_3D.f90'
00066
00067 include '../Subroutine/error_metric.f90'
00068 include '../Subroutine/error_metric_type0.f90'
00069 include '../Subroutine/printout_error_metric.f90'
00070 include '../Subroutine/coordinate_patch_kit_bhex.f90'
00071 include '../Subroutine/copy_hgfn_nb_to_hgfn.f90'
00072 include '../Subroutine/copy_hgfn_di_to_hgfn.f90'
00073 include '../Subroutine/copy_hgfn_dd_to_hgfn.f90'
00074 include '../Subroutine/copy_hgfn_dh_to_hgfn.f90'
00075 include '../Subroutine/copy_to_hgfn_and_gfnsf.f90'
00076 include '../Subroutine/sourceterm_poisson_solver_test.f90'
00077 include '../Subroutine/sourceterm_exsurf_eqm_binary.f90'
00078 include '../Subroutine/sourceterm_surface_int.f90'
00079 include '../Subroutine/sourceterm_surface_int_homosol.f90'
00080 include '../Subroutine/sourceterm_volume_int_bbh_2pot_test.f90'
00081 include '../Subroutine/sourceterm_2pot_test.f90'
00082 include '../Subroutine/poisson_solver_binary.f90'
00083 include '../Subroutine/poisson_solver_binary_bhex.f90'
00084 include '../Subroutine/poisson_solver_binary_bhex_homosol.f90'
00085 include '../Subroutine/poisson_solver_binary_vol_int.f90'
00086 include '../Subroutine/poisson_solver_binary_surf_int.f90'
00087 include '../Subroutine/poisson_solver_bhex_surf_int.f90'
00088 include '../Subroutine/poisson_solver_bhex_surf_int_all.f90'
00089 include '../Subroutine/poisson_solver_asymptotic_patch_homosol.f90'
00090 include '../Subroutine/grdr_gridpoint_type0.f90'
00091 include '../Subroutine/grdr_gridpoint_type0_nosym.f90'
00092 include '../Subroutine/grdr_gridpoint_type0_3rd_nosym.f90'
00093 include '../Subroutine/grgrad_midpoint_r3rd_type0.f90'
00094 include '../Subroutine/grgrad_midpoint_r4th_type0.f90'
00095 include '../Subroutine/reset_bh_boundary.f90'
00096 include '../Subroutine/bh_boundary_test.f90'
00097 include '../Subroutine/bh_boundary_nh_psi_test.f90'
00098 include '../Subroutine/bh_boundary_nh_alph_test.f90'
00099 include '../Subroutine/bh_boundary_dh_psi_test.f90'
00100 include '../Subroutine/bh_boundary_dh_alph_test.f90'
00101 include '../Subroutine/test_source.f90'
00102 include '../Subroutine/allocate_poisson_solver_test.f90'
00103 include '../Subroutine/test_analytic_solution.f90'
00104 include '../Subroutine/allocate_metric_and_matter_BHNS_test.f90'
00105
00106 include '../Subroutine_mpatch/test_source_mpt.f90'
00107 include '../Subroutine_mpatch/IO_output_poisson_test_3D_mpt.f90'
00108
00109 include '../Subroutine_mpatch/iteration_poisson_bbh_2pot_test_3mpt.f90'
00110 include '../Subroutine_mpatch/iteration_poisson_bbh_2pot_test2_3mpt.f90'
00111 include '../Subroutine_mpatch/allocate_metric_and_matter_BHNS_test_mpt.f90'
00112 include '../Subroutine_mpatch/allocate_grid_points_asymptotic_patch_mpt.f90'
00113 include '../Subroutine_mpatch/allocate_grid_points_binary_in_asympto_mpt.f90'
00114 include '../Subroutine_mpatch/copy_grid_points_asymptotic_patch_to_mpt.f90'
00115 include '../Subroutine_mpatch/copy_grid_points_asymptotic_patch_from_mpt.f90'
00116 include '../Subroutine_mpatch/copy_grid_points_binary_in_asympto_to_mpt.f90'
00117 include '../Subroutine_mpatch/copy_grid_points_binary_in_asympto_from_mpt.f90'
00118 include '../Subroutine_mpatch/copy_metric_and_matter_BHNS_test_from_mpt.f90'
00119 include '../Subroutine_mpatch/copy_metric_and_matter_BHNS_test_to_mpt.f90'
00120 include '../Subroutine_mpatch/bh_boundary_test_mpt.f90'
00121 include '../Subroutine_mpatch/bh_boundary_psi_test_mpt.f90'
00122 include '../Subroutine_mpatch/bh_boundary_alph_test_mpt.f90'
00123 include '../Subroutine_mpatch/bh_boundary_psi_test2_mpt.f90'
00124 include '../Subroutine_mpatch/bh_boundary_alph_test2_mpt.f90'
00125 include '../Subroutine_mpatch/test_analytic_solution_bhex_mpt.f90'
00126 include '../Subroutine_mpatch/test2_analytic_solution_bhex_mpt.f90'
00127 include '../Subroutine_mpatch/interpolation_fillup_binary_mpt.f90'
00128 include '../Subroutine_mpatch/interpo_gr2gr_4th_mpt.f90'
00129 include '../Subroutine_mpatch/interpo_patch_to_active_patch_mpt.f90'
00130 include '../Subroutine_mpatch/copy_coordinate_grav_extended_interpo_from_mpt.f90'
00131 include '../Subroutine_mpatch/copy_grid_numbers_grav_from_mpt.f90'
00132 include '../Subroutine_mpatch/copy_grid_numbers_grav_interpo_from_mpt.f90'
00133 include '../Subroutine_mpatch/copy_grid_parameter_interpo_from_mpt.f90'
00134 include '../Subroutine_mpatch/copy_grid_parameter_binary_excision_interpo_from_mpt.f90'
00135
00136 include '../Include_file/include_subroutines_mpatch.f90'
00137 include '../Subroutine_mpatch/sourceterm_outsurf_interpo_from_asympto_mpt.f90'
00138 include '../Subroutine_mpatch/sourceterm_insurf_asympto_interpo_from_mpt.f90'
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149 PROGRAM Main_poisson_binary_2pot_test_3mpt
00150
00151 use phys_constant, only : nmpt
00152 use grid_parameter, only : indata_type, outdata_type, iter_max
00153
00154 use grid_parameter_binary_excision
00155 use grid_points_binary_excision
00156 use grid_points_asymptotic_patch
00157 use grid_points_binary_in_asympto
00158 use weight_midpoint_binary_excision
00159 use radial_green_fn_grav
00160 use radial_green_fn_grav_bhex_nb
00161 use radial_green_fn_grav_bhex_dd
00162 use radial_green_fn_grav_bhex_nd
00163 use radial_green_fn_grav_bhex_dh
00164 use radial_green_fn_grav_bhex_nh
00165 use interface_copy_to_hgfn_and_gfnsf
00166 use def_vector_x
00167 use def_vector_phi
00168 implicit none
00169 integer :: impt, itg
00170 integer :: iseq, iter_count, total_iteration
00171
00172
00173 call allocate_grid_parameter_mpt
00174 call allocate_grid_parameter_binary_excision_mpt
00175 do impt = 1, nmpt
00176 call read_parameter_mpt(impt)
00177 call copy_grid_parameter_to_mpt(impt)
00178 call read_parameter_binary_excision_mpt(impt)
00179 call copy_grid_parameter_binary_excision_to_mpt(impt)
00180 end do
00181
00182
00183 call set_allocate_size_mpt
00184
00185 call allocate_coordinate_patch_kit_grav_mpt
00186 call allocate_grid_points_binary_excision
00187 call allocate_grid_points_asymptotic_patch
00188 call allocate_grid_points_binary_in_asympto
00189 call allocate_weight_midpoint_binary_excision
00190 call allocate_vector_x
00191 call allocate_vector_phi
00192 call allocate_hgfn_bhex
00193 call allocate_hgfn_bhex_nb
00194 call allocate_hgfn_bhex_dd
00195 call allocate_hgfn_bhex_nd
00196 call allocate_metric_and_matter_BHNS_test
00197
00198 call allocate_mpatch_all_test
00199 call allocate_grid_points_asymptotic_patch_mpt
00200 call allocate_grid_points_binary_in_asympto_mpt
00201 call allocate_metric_and_matter_BHNS_test_mpt
00202
00203 do impt = 1, nmpt
00204 call copy_grid_parameter_from_mpt(impt)
00205 call copy_grid_parameter_binary_excision_from_mpt(impt)
00206 call coordinate_patch_kit_grav_mpt
00207 call calc_parameter_binary_excision
00208 if (impt.ne.nmpt) then
00209 call calc_grid_points_binary_excision
00210 call calc_grid_points_binary_in_asympto(impt,nmpt)
00211 call copy_grid_points_binary_in_asympto_to_mpt(impt)
00212 end if
00213 call calc_weight_midpoint_binary_excision
00214
00215 call calc_vector_x_grav(0)
00216 call calc_vector_x_matter(0)
00217 call calc_vector_phi_grav(0)
00218 call calc_vector_phi_matter(0)
00219
00220 call copy_to_mpatch_all_test(impt)
00221 call copy_metric_and_matter_BHNS_test_to_mpt(impt)
00222 end do
00223 call copy_from_mpatch_all_test(nmpt)
00224
00225 do impt = 1, 2
00226 call calc_grid_points_asymptotic_patch(impt,nmpt)
00227 call copy_grid_points_asymptotic_patch_to_mpt(impt)
00228 end do
00229
00230 do impt = 1, nmpt
00231 call copy_from_mpatch_all_test(impt)
00232 call copy_metric_and_matter_BHNS_test_from_mpt(impt)
00233 call test2_analytic_solution_bhex_mpt(impt)
00234 call copy_to_mpatch_all_test(impt)
00235 call copy_metric_and_matter_BHNS_test_to_mpt(impt)
00236 end do
00237
00238 call iteration_poisson_bbh_2pot_test2_3mpt(iter_count)
00239 if (total_iteration.ge.iter_max) then
00240 write(6,*)' ** Solution did not converge **'
00241 end if
00242
00243 do impt = 1, nmpt
00244 call copy_from_mpatch_all_test(impt)
00245 call copy_metric_and_matter_BHNS_test_from_mpt(impt)
00246 if (outdata_type.eq.'3D') call IO_output_poisson_test_3D_mpt(impt)
00247 end do
00248
00249 END PROGRAM Main_poisson_binary_2pot_test_3mpt