00001
00002 include '../Include_file/include_modulefiles_helmholtz_binary_test_3mpt.f90'
00003 include '../Include_file/include_interface_modulefiles_helmholtz_binary_test_3mpt.f90'
00004 include '../Include_file/include_subroutines_helmholtz_binary_test_3mpt.f90'
00005 include '../Include_file/include_functions.f90'
00006
00007
00008
00009
00010 PROGRAM Main_helmholtz_binary_test_3mpt
00011
00012 use phys_constant, only : nmpt
00013 use grid_parameter, only : indata_type, outdata_type, &
00014 & iter_max
00015 use grid_parameter_binary_excision
00016 use grid_points_binary_excision
00017 use grid_points_binary_excision_mpt
00018 use grid_points_asymptotic_patch
00019 use grid_points_binary_in_asympto
00020 use weight_midpoint_grav
00021 use weight_midpoint_fluid
00022 use weight_midpoint_binary_excision
00023 use def_vector_x
00024 use def_vector_phi
00025 use radial_green_fn_grav
00026 use radial_green_fn_grav_bhex_nb
00027 use radial_green_fn_grav_bhex_dd
00028 use radial_green_fn_grav_bhex_sd
00029 use radial_green_fn_helmholtz
00030 use radial_green_fn_hrethadv
00031 use radial_green_fn_hrethadv_homosol
00032 use radial_green_fn_hret_mi_hadv
00033 use radial_green_fn_hret_mi_hadv_homosol
00034 implicit none
00035 integer :: iseq, iter_count, total_iteration, impt, impt_bin
00036
00037
00038 call allocate_grid_parameter_mpt
00039 call allocate_grid_parameter_binary_excision_mpt
00040 call allocate_def_bh_parameter_mpt
00041 do impt = 1, nmpt
00042 call read_parameter_mpt(impt)
00043 call copy_grid_parameter_to_mpt(impt)
00044 call read_parameter_binary_excision_mpt(impt)
00045 call copy_grid_parameter_binary_excision_to_mpt(impt)
00046 call read_parameter_bh_mpt(impt)
00047 call copy_def_bh_parameter_to_mpt(impt)
00048 call copy_grid_parameter_to_mpt(impt)
00049 end do
00050
00051
00052 call set_allocate_size_mpt
00053
00054 call allocate_coordinate_patch_kit_grav_mpt
00055 call allocate_grid_points_binary_excision
00056 call allocate_grid_points_asymptotic_patch
00057 call allocate_grid_points_binary_in_asympto
00058 call allocate_weight_midpoint_binary_excision
00059 call allocate_hgfn_bhex
00060 call allocate_hgfn_bhex_nb
00061 call allocate_hgfn_bhex_dd
00062 call allocate_hgfn_bhex_sd
00063 call allocate_radial_green_fn_helmholtz
00064 call allocate_radial_green_fn_hrethadv
00065 call allocate_radial_green_fn_hrethadv_homosol
00066 call allocate_radial_green_fn_hret_mi_hadv
00067 call allocate_radial_green_fn_hret_mi_hadv_homosol
00068 call allocate_metric_and_matter_BHNS_test
00069
00070 call allocate_mpatch_all_BBH_CF
00071 call allocate_grid_points_asymptotic_patch_mpt
00072 call allocate_grid_points_binary_in_asympto_mpt
00073 call allocate_metric_and_matter_BHNS_test_mpt
00074
00075 do impt = 1, nmpt
00076 call copy_grid_parameter_from_mpt(impt)
00077 call copy_grid_parameter_binary_excision_from_mpt(impt)
00078 call copy_def_bh_parameter_from_mpt(impt)
00079 call coordinate_patch_kit_grav_mpt
00080 call calc_parameter_binary_excision
00081 if (impt.ne.nmpt) then
00082 call calc_grid_points_binary_excision
00083 call calc_grid_points_binary_in_asympto(impt,nmpt)
00084 call copy_grid_points_binary_in_asympto_to_mpt(impt)
00085 end if
00086 call test_source_helical_binary_mpt(impt)
00087 call calc_weight_midpoint_binary_excision
00088 call calc_vector_x_grav(0)
00089 call calc_vector_x_matter(0)
00090 call calc_vector_phi_grav(0)
00091 call calc_vector_phi_matter(0)
00092 call calc_vector_bh(0)
00093
00094 call copy_to_mpatch_all_BBH_CF(impt)
00095 call copy_metric_and_matter_BHNS_test_to_mpt(impt)
00096 end do
00097
00098 call copy_from_mpatch_all_BBH_CF(nmpt)
00099
00100 do impt = 1, 2
00101 call calc_grid_points_asymptotic_patch(impt,nmpt)
00102 call copy_grid_points_asymptotic_patch_to_mpt(impt)
00103 end do
00104
00105 call iteration_helmholtz_solver_binary_test_mpt(iter_count)
00106 if (total_iteration.ge.iter_max) then
00107 write(6,*)' ** Solution did not converge **'
00108 end if
00109
00110 call printout_physq_BBH_mpt(1)
00111 do impt = 1, nmpt
00112 call copy_from_mpatch_all_BBH_CF(impt)
00113 call copy_metric_and_matter_BHNS_test_from_mpt(impt)
00114 if (outdata_type.eq.'3D') call IO_output_poisson_test_3D_mpt(impt)
00115 end do
00116
00117
00118
00119
00120
00121 END PROGRAM Main_helmholtz_binary_test_3mpt