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/weight_midpoint_binary_excision.f90'
00006
00007 include '../Module/radial_green_fn_grav_bhex_di.f90'
00008 include '../Module/radial_green_fn_grav_bhex_nb.f90'
00009 include '../Module/radial_green_fn_grav_bhex_nh.f90'
00010 include '../Module/radial_green_fn_grav_bhex_dh.f90'
00011 include '../Module/copy_array_3d.f90'
00012 include '../Module/make_char2_array_2d.f90'
00013 include '../Module/make_char1_array_2d.f90'
00014 include '../Module/make_int_array_3d.f90'
00015
00016 include '../Include_file/include_interface_modulefiles_peos.f90'
00017 include '../Module_interface/interface_error_metric.f90'
00018 include '../Module_interface/interface_error_metric_type0.f90'
00019 include '../Module_interface/interface_grdr_gridpoint_type0.f90'
00020 include '../Module_interface/interface_grdr_gridpoint_type0_nosym.f90'
00021 include '../Module_interface/interface_sourceterm_poisson_solver_test.f90'
00022 include '../Module_interface/interface_sourceterm_exsurf_eqm_binary.f90'
00023 include '../Module_interface/interface_sourceterm_surface_int.f90'
00024 include '../Module_interface/interface_sourceterm_surface_int_homosol.f90'
00025 include '../Module_interface/interface_poisson_solver_bhex_surf_int_all.f90'
00026 include '../Module_interface/interface_poisson_solver_binary_bhex.f90'
00027 include '../Module_interface/interface_poisson_solver_binary_surf_int.f90'
00028 include '../Module_interface/interface_poisson_solver_binary_vol_int.f90'
00029 include '../Module_interface/interface_poisson_solver_bhex_surf_int.f90'
00030 include '../Module_interface/interface_poisson_solver_binary_bhex_homosol.f90'
00031 include '../Module_interface/interface_poisson_solver_binary.f90'
00032 include '../Module_interface/interface_copy_to_hgfn_and_gfnsf.f90'
00033 include '../Module_interface/interface_bh_boundary_BHNS_test_mpt.f90'
00034 include '../Include_file/include_modulefiles_mpatch.f90'
00035
00036 include '../Include_file/include_subroutines_peos.f90'
00037 include '../Subroutine/IO_output_poisson_test_3D.f90'
00038
00039 include '../Subroutine/error_metric.f90'
00040 include '../Subroutine/printout_error_metric.f90'
00041 include '../Subroutine/coordinate_patch_kit_bhex.f90'
00042 include '../Subroutine/copy_hgfn_di_to_hgfn.f90'
00043 include '../Subroutine/copy_to_hgfn_and_gfnsf.f90'
00044 include '../Subroutine/sourceterm_poisson_solver_test.f90'
00045 include '../Subroutine/sourceterm_exsurf_eqm_binary.f90'
00046 include '../Subroutine/sourceterm_surface_int.f90'
00047 include '../Subroutine/sourceterm_surface_int_homosol.f90'
00048 include '../Subroutine/poisson_solver_binary_bhex.f90'
00049 include '../Subroutine/poisson_solver_binary_vol_int.f90'
00050 include '../Subroutine/poisson_solver_binary_surf_int.f90'
00051 include '../Subroutine/poisson_solver_bhex_surf_int.f90'
00052 include '../Subroutine/grdr_gridpoint_type0.f90'
00053 include '../Subroutine/grdr_gridpoint_type0_nosym.f90'
00054 include '../Subroutine/reset_bh_boundary.f90'
00055 include '../Subroutine/error_metric_type0.f90'
00056 include '../Subroutine/allocate_poisson_solver_test.f90'
00057 include '../Subroutine/allocate_metric_and_matter_BHNS_test.f90'
00058 include '../Subroutine/test_analytic_solution.f90'
00059 include '../Subroutine/poisson_solver_binary.f90'
00060 include '../Subroutine/poisson_solver_binary_bhex_homosol.f90'
00061 include '../Subroutine/poisson_solver_bhex_surf_int_all.f90'
00062 include '../Subroutine/bh_boundary_test.f90'
00063 include '../Subroutine_mpatch/allocate_metric_and_matter_BHNS_test_mpt.f90'
00064 include '../Subroutine_mpatch/copy_metric_and_matter_BHNS_test_to_mpt.f90'
00065 include '../Subroutine_mpatch/copy_metric_and_matter_BHNS_test_from_mpt.f90'
00066 include '../Subroutine_mpatch/bh_boundary_BHNS_test_mpt.f90'
00067 include '../Subroutine_mpatch/test_analytic_BHNS_solution_mpt.f90'
00068 include '../Subroutine_mpatch/test_source_mpt.f90'
00069 include '../Subroutine_mpatch/iteration_poisson_solver_test_mpt.f90'
00070 include '../Subroutine_mpatch/IO_output_poisson_test_3D_mpt.f90'
00071 include '../Subroutine_mpatch/iteration_poisson_BHNS_test_mpt.f90'
00072
00073 include '../Include_file/include_subroutines_mpatch.f90'
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084 PROGRAM Main_poisson_BHNS_test_mpt
00085
00086 use phys_constant, only : nmpt
00087 use grid_parameter, only : indata_type, outdata_type, &
00088 & iter_max
00089
00090 use grid_parameter_binary_excision
00091 use grid_points_binary_excision
00092 use weight_midpoint_binary_excision
00093 use def_vector_x
00094 use def_vector_phi
00095 use radial_green_fn_grav
00096 use radial_green_fn_grav_bhex_di
00097 use radial_green_fn_grav_bhex_nb
00098 use radial_green_fn_grav_bhex_nh
00099 use radial_green_fn_grav_bhex_dh
00100 use interface_bh_boundary_BHNS_test_mpt
00101 use interface_poisson_solver_binary_bhex_homosol
00102 use interface_poisson_solver_bhex_surf_int_all
00103 use interface_error_metric_type0
00104 use def_matter, only : rs
00105 use interface_copy_to_hgfn_and_gfnsf
00106
00107
00108 implicit none
00109 integer :: impt, iseq, iter_count, total_iteration
00110
00111
00112 call allocate_grid_parameter_mpt
00113 call allocate_grid_parameter_binary_excision_mpt
00114 call read_parameter_mpt(1)
00115 call copy_grid_parameter_to_mpt(1)
00116 call read_parameter_binary_excision_mpt(1)
00117 call copy_grid_parameter_binary_excision_to_mpt(1)
00118
00119 call read_parameter_mpt(2)
00120 call copy_grid_parameter_to_mpt(2)
00121 call read_parameter_binary_excision_mpt(2)
00122 call copy_grid_parameter_binary_excision_to_mpt(2)
00123
00124
00125 call set_allocate_size_mpt
00126
00127 call allocate_coordinate_patch_kit_grav_mpt
00128 call allocate_grid_points_binary_excision
00129 call allocate_weight_midpoint_binary_excision
00130 call allocate_vector_x
00131 call allocate_vector_phi
00132 call allocate_hgfn_bhex
00133 call allocate_hgfn_bhex_nb
00134 call allocate_hgfn_bhex_nh
00135 call allocate_hgfn_bhex_dh
00136 call allocate_metric_and_matter_BHNS_test
00137 call allocate_metric_and_matter_BHNS_test_mpt
00138
00139 call allocate_mpatch_all_test
00140
00141 do impt = 1, nmpt
00142 call copy_grid_parameter_from_mpt(impt)
00143 call copy_grid_parameter_binary_excision_from_mpt(impt)
00144 call coordinate_patch_kit_grav_mpt
00145 call calc_parameter_binary_excision
00146 call calc_grid_points_binary_excision
00147 call calc_weight_midpoint_binary_excision
00148 call calc_hgfn_bhex_nb
00149 call copy_to_hgfn_and_gfnsf(hgfn_nb,gfnsf_nb)
00150 call calc_vector_x_grav(0)
00151 call calc_vector_x_matter(0)
00152 call calc_vector_phi_grav(0)
00153 call calc_vector_phi_matter(0)
00154 call copy_to_mpatch_all_test(impt)
00155 call test_source_mpt(impt)
00156 call test_analytic_BHNS_solution_mpt(impt)
00157 call copy_metric_and_matter_BHNS_test_to_mpt(impt)
00158 end do
00159
00160 call iteration_poisson_BHNS_test_mpt(iter_count)
00161
00162 if (total_iteration.ge.iter_max) then
00163 write(6,*)' ** Solution did not converge **'
00164 end if
00165 call printout_NS_shape_seq(iseq)
00166 do impt = 1, nmpt
00167 call copy_from_mpatch_all_test(impt)
00168 call copy_metric_and_matter_BHNS_test_from_mpt(impt)
00169 if (outdata_type.eq.'3D') call IO_output_poisson_test_3D_mpt(impt)
00170 end do
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188 END PROGRAM Main_poisson_BHNS_test_mpt