[TEST]UPSTREAM: Pick some source changes from 48080d0a97

* Sync new folder structure
This commit is contained in:
2026-04-23 20:55:40 +08:00
parent c185f99ee3
commit 17109fde9b
211 changed files with 189504 additions and 189280 deletions

View File

@@ -18,7 +18,7 @@ ifeq ($(PGO_MODE),instrument)
CXXAPPFLAGS = -O3 -xHost -fma -fprofile-instr-generate -ipo \
-Dfortran3 -Dnewc -I${MKLROOT}/include $(INTERP_LB_FLAGS)
f90appflags = -O3 -xHost -fma -fprofile-instr-generate -ipo \
-align array64byte -fpp -I${MKLROOT}/include $(POLINT6_FLAG)
-align array64byte -fpp -I${MKLROOT}/include $(SRC_INC_FLAGS) $(POLINT6_FLAG)
else
## opt (default): maximum performance with PGO profile data -fprofile-instr-use=$(PROFDATA) \
## PGO has been turned off, now tested and found to be negative optimization
@@ -28,7 +28,7 @@ else
CXXAPPFLAGS = -O3 -xHost -fp-model fast=2 -fma -ipo \
-Dfortran3 -Dnewc -I${MKLROOT}/include $(INTERP_LB_FLAGS)
f90appflags = -O3 -xHost -fp-model fast=2 -fma -ipo \
-align array64byte -fpp -I${MKLROOT}/include $(POLINT6_FLAG)
-align array64byte -fpp -I${MKLROOT}/include $(SRC_INC_FLAGS) $(POLINT6_FLAG)
endif
.SUFFIXES: .o .f90 .C .for .cu
@@ -45,147 +45,199 @@ endif
.cu.o:
$(Cu) $(CUDA_APP_FLAGS) -c $< -o $@ $(CUDA_LIB_PATH)
# C rewrite of BSSN RHS kernel and helpers
bssn_rhs_c.o: bssn_rhs_c.C
${CXX} $(CXXAPPFLAGS) -c $< $(filein) -o $@
fderivs_c.o: fderivs_c.C
${CXX} $(CXXAPPFLAGS) -c $< $(filein) -o $@
fdderivs_c.o: fdderivs_c.C
${CXX} $(CXXAPPFLAGS) -c $< $(filein) -o $@
kodiss_c.o: kodiss_c.C
${CXX} $(CXXAPPFLAGS) -c $< $(filein) -o $@
lopsided_c.o: lopsided_c.C
${CXX} $(CXXAPPFLAGS) -c $< $(filein) -o $@
## TwoPunctureABE uses fixed optimal flags with its own PGO profile, independent of CXXAPPFLAGS
TP_PROFDATA = /home/$(shell whoami)/AMSS-NCKU/pgo_profile/TwoPunctureABE.profdata
TP_OPTFLAGS = -O3 -xHost -fp-model fast=2 -fma -ipo \
-fprofile-instr-use=$(TP_PROFDATA) \
-Dfortran3 -Dnewc -I${MKLROOT}/include $(SRC_INC_FLAGS)
lopsided_kodis_c.o: lopsided_kodis_c.C
${CXX} $(CXXAPPFLAGS) -c $< $(filein) -o $@
./Two_Puncture/TwoPunctures.o: ./Two_Puncture/TwoPunctures.C
${CXX} $(TP_OPTFLAGS) -qopenmp -c $< -o $@
#interp_lb_profile.o: interp_lb_profile.C interp_lb_profile.h
# ${CXX} $(CXXAPPFLAGS) -c $< $(filein) -o $@
./Two_Puncture/TwoPunctureABE.o: ./Two_Puncture/TwoPunctureABE.C
${CXX} $(TP_OPTFLAGS) -qopenmp -c $< -o $@
## TwoPunctureABE uses fixed optimal flags with its own PGO profile, independent of CXXAPPFLAGS
TP_PROFDATA = /home/$(shell whoami)/AMSS-NCKU/pgo_profile/TwoPunctureABE.profdata
TP_OPTFLAGS = -O3 -xHost -fp-model fast=2 -fma -ipo \
-fprofile-instr-use=$(TP_PROFDATA) \
-Dfortran3 -Dnewc -I${MKLROOT}/include
TwoPunctures.o: TwoPunctures.C
${CXX} $(TP_OPTFLAGS) -qopenmp -c $< -o $@
TwoPunctureABE.o: TwoPunctureABE.C
${CXX} $(TP_OPTFLAGS) -qopenmp -c $< -o $@
# Input files
## Kernel implementation switch (set USE_CXX_KERNELS=0 to fall back to Fortran)
# Input files
## Kernel implementation switch (set USE_CXX_KERNELS=0 to fall back to Fortran)
ifeq ($(USE_CXX_KERNELS),0)
# Fortran mode: no C rewrite files; bssn_rhs.o is included via F90FILES below
CFILES =
else
# C++ mode (default): C rewrite of bssn_rhs and helper kernels
CFILES = bssn_rhs_c.o fderivs_c.o fdderivs_c.o kodiss_c.o lopsided_c.o lopsided_kodis_c.o
CFILES = ./BSSN/bssn_rhs_c.o \
./Derivative/fderivs_c.o \
./Derivative/fdderivs_c.o \
./KO_dissipation/kodiss_c.o \
./BSSN/lopsided_c.o \
./BSSN/lopsided_kodis_c.o
endif
## RK4 kernel switch (independent from USE_CXX_KERNELS)
ifeq ($(USE_CXX_RK4),1)
CFILES += rungekutta4_rout_c.o
CFILES += ./Runge_Kutta/rungekutta4_rout_c.o
RK4_F90_OBJ =
else
RK4_F90_OBJ = rungekutta4_rout.o
RK4_F90_OBJ = ./Runge_Kutta/rungekutta4_rout.o
endif
C++FILES = ABE.o Ansorg.o Block.o misc.o monitor.o Parallel.o MPatch.o var.o\
cgh.o bssn_class.o surface_integral.o ShellPatch.o\
bssnEScalar_class.o perf.o Z4c_class.o NullShellPatch.o\
bssnEM_class.o cpbc_util.o z4c_rhs_point.o checkpoint.o\
Parallel_bam.o scalar_class.o transpbh.o NullShellPatch2.o\
NullShellPatch2_Evo.o writefile_f.o interp_lb_profile.o
C++FILES_GPU = ABE.o Ansorg.o Block.o misc.o monitor.o Parallel.o MPatch.o var.o\
cgh.o surface_integral.o ShellPatch.o\
bssnEScalar_class.o perf.o Z4c_class.o NullShellPatch.o\
bssnEM_class.o cpbc_util.o z4c_rhs_point.o checkpoint.o\
Parallel_bam.o scalar_class.o transpbh.o NullShellPatch2.o\
NullShellPatch2_Evo.o \
bssn_gpu_class.o bssn_step_gpu.o bssn_macro.o writefile_f.o
F90FILES_BASE = enforce_algebra.o fmisc.o initial_puncture.o prolongrestrict.o\
prolongrestrict_cell.o prolongrestrict_vertex.o\
$(RK4_F90_OBJ) diff_new.o kodiss.o kodiss_sh.o\
lopsidediff.o sommerfeld_rout.o getnp4.o diff_new_sh.o\
shellfunctions.o bssn_rhs_ss.o Set_Rho_ADM.o\
getnp4EScalar.o bssnEScalar_rhs.o bssn_constraint.o ricci_gamma.o\
fadmquantites_bssn.o Z4c_rhs.o Z4c_rhs_ss.o point_diff_new_sh.o\
cpbc.o getnp4old.o NullEvol.o initial_null.o initial_maxwell.o\
getnpem2.o empart.o NullNews.o fourdcurvature.o\
bssn2adm.o adm_constraint.o adm_ricci_gamma.o\
scalar_rhs.o initial_scalar.o NullEvol2.o initial_null2.o\
NullNews2.o tool_f.o
ifeq ($(USE_CXX_KERNELS),0)
# Fortran mode: include original bssn_rhs.o
F90FILES = $(F90FILES_BASE) bssn_rhs.o
else
# C++ mode (default): bssn_rhs.o replaced by C++ kernel
F90FILES = $(F90FILES_BASE)
endif
F77FILES = zbesh.o
AHFDOBJS = expansion.o expansion_Jacobian.o patch.o coords.o patch_info.o patch_interp.o patch_system.o \
tgrid.o fd_grid.o ghost_zone.o array.o round.o norm.o fuzzy.o error_exit.o miscfp.o \
linear_map.o cpm_map.o BH_diagnostics.o setup.o horizon_sequence.o find_horizons.o \
initial_guess.o Newton.o Jacobian.o ilucg.o IntPnts0.o IntPnts.o
TwoPunctureFILES = TwoPunctureABE.o TwoPunctures.o
CUDAFILES = bssn_gpu.o bssn_gpu_rhs_ss.o
# file dependences
$(C++FILES) $(C++FILES_GPU) $(F90FILES) $(CFILES) $(AHFDOBJS) $(CUDAFILES): macrodef.fh
$(C++FILES): Block.h enforce_algebra.h fmisc.h initial_puncture.h macrodef.h\
misc.h monitor.h MyList.h Parallel.h MPatch.h prolongrestrict.h\
rungekutta4_rout.h var.h bssn_class.h bssn_rhs.h sommerfeld_rout.h\
cgh.h surface_integral.h ShellPatch.h shellfunctions.h perf.h\
fadmquantites_bssn.h cpbc.h getnp4.h initial_null.h NullEvol.h\
NullShellPatch.h initial_maxwell.h bssnEM_class.h getnpem2.h\
empart.h NullNews.h kodiss.h Parallel_bam.h ricci_gamma.h\
initial_null2.h NullShellPatch2.h
$(C++FILES_GPU): Block.h enforce_algebra.h fmisc.h initial_puncture.h macrodef.h\
misc.h monitor.h MyList.h Parallel.h MPatch.h prolongrestrict.h\
rungekutta4_rout.h var.h bssn_rhs.h sommerfeld_rout.h\
cgh.h surface_integral.h ShellPatch.h shellfunctions.h perf.h\
fadmquantites_bssn.h cpbc.h getnp4.h initial_null.h NullEvol.h\
NullShellPatch.h initial_maxwell.h bssnEM_class.h getnpem2.h\
empart.h NullNews.h kodiss.h Parallel_bam.h ricci_gamma.h\
initial_null2.h NullShellPatch2.h \
bssn_gpu_class.h bssn_macro.h
$(AHFDOBJS): cctk.h cctk_Config.h cctk_Types.h cctk_Constants.h myglobal.h
$(C++FILES) $(C++FILES_GPU) $(CFILES) $(AHFDOBJS) $(CUDAFILES): macrodef.h
TwoPunctureFILES: TwoPunctures.h
$(CUDAFILES): bssn_gpu.h gpu_mem.h gpu_rhsSS_mem.h
misc.o : zbesh.o
# projects
ABE: $(C++FILES) $(CFILES) $(F90FILES) $(F77FILES) $(AHFDOBJS)
$(CLINKER) $(CXXAPPFLAGS) -o $@ $(C++FILES) $(CFILES) $(F90FILES) $(F77FILES) $(AHFDOBJS) $(LDLIBS)
C++FILES = ABE.o \
./Initial_Data_Solver/Ansorg.o \
./cgh/Block.o \
./misc/misc.o \
./Monitor/monitor.o \
./Parallel/Parallel.o \
./Patch/MPatch.o \
./Variable/var.o \
./cgh/cgh.o \
./BSSN/bssn_class.o \
./Surface_Integral/surface_integral.o \
./Shell_Patch/ShellPatch.o \
./Scalar/bssnEScalar_class.o \
./System_Performance/perf.o \
./Z4C/Z4c_class.o \
./Null_Evolve/NullShellPatch.o \
./BSSN/bssnEM_class.o \
./Z4C/cpbc_util.o \
./Z4C/z4c_rhs_point.o \
./Check_Point/checkpoint.o \
./Parallel/Parallel_bam.o \
./Scalar/scalar_class.o \
./BSSN/transpbh.o \
./Null_Evolve/NullShellPatch2.o \
./Null_Evolve/NullShellPatch2_Evo.o \
./Read_and_Write/writefile_f.o \
interp_lb_profile.o
C++FILES_GPU = ABE.o \
./Initial_Data_Solver/Ansorg.o \
./cgh/Block.o \
./misc/misc.o \
./Monitor/monitor.o \
./Parallel/Parallel.o \
./Patch/MPatch.o \
./Variable/var.o \
./cgh/cgh.o \
./Surface_Integral/surface_integral.o \
./Shell_Patch/ShellPatch.o \
./Scalar/bssnEScalar_class.o \
./System_Performance/perf.o \
./Z4C/Z4c_class.o \
./Null_Evolve/NullShellPatch.o \
./BSSN/bssnEM_class.o \
./Z4C/cpbc_util.o \
./Z4C/z4c_rhs_point.o \
./Check_Point/checkpoint.o \
./Parallel/Parallel_bam.o \
./Scalar/scalar_class.o \
./BSSN/transpbh.o \
./Null_Evolve/NullShellPatch2.o \
./Null_Evolve/NullShellPatch2_Evo.o \
./BSSN_GPU/bssn_gpu_class.o \
./BSSN_GPU/bssn_step_gpu.o \
./BSSN_GPU/bssn_macro.o \
./Read_and_Write/writefile_f.o
F90FILES_BASE = ./BSSN/enforce_algebra.o \
./misc/fmisc.o \
./Initial_Data_Solver/initial_puncture.o \
./BSSN/prolongrestrict.o \
./BSSN/prolongrestrict_cell.o \
./BSSN/prolongrestrict_vertex.o \
$(RK4_F90_OBJ) \
./Derivative/diff_new.o \
./KO_dissipation/kodiss.o \
./KO_dissipation/kodiss_sh.o \
./BSSN/lopsidediff.o \
./BSSN/sommerfeld_rout.o \
./Psi4/getnp4.o \
./Derivative/diff_new_sh.o \
./Shell_Patch/shellfunctions.o \
./BSSN/bssn_rhs_ss.o \
./Scalar/Set_Rho_ADM.o \
./Psi4/getnp4EScalar.o \
./Scalar/bssnEScalar_rhs.o \
./BSSN/bssn_constraint.o \
./Psi4/ricci_gamma.o \
./BSSN/fadmquantites_bssn.o \
./Z4C/Z4c_rhs.o \
./Z4C/Z4c_rhs_ss.o \
./Derivative/point_diff_new_sh.o \
./Z4C/cpbc.o \
./Psi4/getnp4old.o \
./Null_Evolve/NullEvol.o \
./Initial_Data_Solver/initial_null.o \
./Initial_Data_Solver/initial_maxwell.o \
./Psi4/getnpem2.o \
./BSSN/empart.o \
./Null_Evolve/NullNews.o \
./BSSN/fourdcurvature.o \
./BSSN/bssn2adm.o \
./BSSN/adm_constraint.o \
./Psi4/adm_ricci_gamma.o \
./Scalar/scalar_rhs.o \
./Initial_Data_Solver/initial_scalar.o \
./Null_Evolve/NullEvol2.o \
./Initial_Data_Solver/initial_null2.o \
./Null_Evolve/NullNews2.o \
./Read_and_Write/tool_f.o
ifeq ($(USE_CXX_KERNELS),0)
F90FILES = $(F90FILES_BASE) ./BSSN/bssn_rhs.o
else
F90FILES = $(F90FILES_BASE)
endif
F77FILES = ./Special_Function/zbesh.o
AHFDOBJS = ./AHF_Direct/expansion.o \
./AHF_Direct/expansion_Jacobian.o \
./AHF_Direct/patch.o \
./AHF_Direct/coords.o \
./AHF_Direct/patch_info.o \
./AHF_Direct/patch_interp.o \
./AHF_Direct/patch_system.o \
./AHF_Direct/tgrid.o \
./AHF_Direct/fd_grid.o \
./AHF_Direct/ghost_zone.o \
./AHF_Direct/array.o \
./AHF_Direct/round.o \
./AHF_Direct/norm.o \
./AHF_Direct/fuzzy.o \
./AHF_Direct/error_exit.o \
./AHF_Direct/miscfp.o \
./AHF_Direct/linear_map.o \
./AHF_Direct/cpm_map.o \
./AHF_Direct/BH_diagnostics.o \
./AHF_Direct/setup.o \
./AHF_Direct/horizon_sequence.o \
./AHF_Direct/find_horizons.o \
./AHF_Direct/initial_guess.o \
./AHF_Direct/Newton.o \
./AHF_Direct/Jacobian.o \
./AHF_Direct/ilucg.o \
./AHF_Direct/IntPnts0.o \
./AHF_Direct/IntPnts.o
TwoPunctureFILES = ./Two_Puncture/TwoPunctureABE.o ./Two_Puncture/TwoPunctures.o
CUDAFILES = ./BSSN_GPU/bssn_gpu.o ./BSSN_GPU/bssn_gpu_rhs_ss.o
$(C++FILES) $(C++FILES_GPU) $(F90FILES) $(CFILES) $(AHFDOBJS) $(CUDAFILES): macrodef.fh
$(C++FILES) $(C++FILES_GPU) $(CFILES) $(AHFDOBJS) $(CUDAFILES): macrodef.h
$(TwoPunctureFILES): ./Two_Puncture/TwoPunctures.h
$(CUDAFILES): ./BSSN_GPU/bssn_gpu.h ./BSSN_GPU/gpu_mem.h ./BSSN_GPU/gpu_rhsSS_mem.h
./misc/misc.o: ./Special_Function/zbesh.o
# projects
ABE: $(C++FILES) $(CFILES) $(F90FILES) $(F77FILES) $(AHFDOBJS)
$(CLINKER) $(CXXAPPFLAGS) -o $@ $(C++FILES) $(CFILES) $(F90FILES) $(F77FILES) $(AHFDOBJS) $(LDLIBS)
ABEGPU: $(C++FILES_GPU) $(CFILES) $(F90FILES) $(F77FILES) $(AHFDOBJS) $(CUDAFILES)
$(CLINKER) $(CXXAPPFLAGS) -o $@ $(C++FILES_GPU) $(CFILES) $(F90FILES) $(F77FILES) $(AHFDOBJS) $(CUDAFILES) $(LDLIBS)
TwoPunctureABE: $(TwoPunctureFILES)
$(CLINKER) $(TP_OPTFLAGS) -qopenmp -o $@ $(TwoPunctureFILES) $(LDLIBS)
clean:
rm *.o ABE ABEGPU TwoPunctureABE make.log -f
TwoPunctureABE: $(TwoPunctureFILES)
$(CLINKER) $(TP_OPTFLAGS) -qopenmp -o $@ $(TwoPunctureFILES) $(LDLIBS)
clean:
find . -name '*.o' -delete
rm -f ABE ABEGPU TwoPunctureABE make.log