#
# This is a test makefile for Electronic-structure
#
# This particular makefile defines all the executables and objects
# files needed, who they depend on, and the compilation defaults.#
# That file defines the actual commands to use to run the C++
# compiler, library options and directories, etc., all of which are
# machine specific and depend on the local installation. Hence the name.
#
VERSION = ABACUS
HEADERS = source_main/*.h
VPATH=./src_global:\
./source_main:\
./source_basis/module_ao:\
./source_basis/module_nao:\
./source_cell/module_neighbor:\
./source_cell/module_neighlist:\
./source_cell/module_symmetry:\
./source_cell:\
./source_base:\
./source_base/kernels:\
./source_base/module_external:\
./source_base/module_container/base/core:\
./source_base/module_container/ATen/core:\
./source_base/module_container/ATen/kernels:\
./source_base/module_container/ATen/ops:\
./source_base/module_device:\
./source_base/module_mixing:\
./source_base/module_out:\
./source_md:\
./source_basis/module_pw:\
./source_base/module_fft:\
./source_esolver:\
./source_hsolver:\
./source_hsolver/kernels:\
./source_hsolver/module_genelpa:\
./source_hsolver/module_pexsi:\
./source_estate:\
./source_estate/kernels:\
./source_estate/module_pot:\
./source_estate/module_charge:\
./source_estate/module_dm:\
./source_psi:\
./source_psi/kernels:\
./source_hamilt:\
./source_hamilt/module_ewald:\
./source_hamilt/module_surchem:\
./source_hamilt/module_xc:\
./source_hamilt/module_xc/kernels:\
./source_pw/module_pwdft:\
./source_pw/module_ofdft:\
./source_pw/module_stodft:\
./source_pw/module_pwdft/kernels:\
./source_pw/module_pwdft/module_exx_helper:\
./source_pw/module_stodft/kernels:\
./source_lcao/module_hcontainer:\
./source_lcao:\
./source_lcao/module_rt:\
./source_lcao/module_deepks:\
./source_lcao/module_dftu:\
./source_lcao/module_deltaspin:\
./source_lcao/module_operator_lcao:\
./source_lcao/module_gint:\
./source_relax:\
./source_hamilt/module_vdw:\
./source_io:\
./source_io/json_output:\
./src_ri:\
./source_lcao/module_ri:\
./source_io/module_parameter:\
./source_io/module_efield:\
./source_lcao/module_lr:\
./source_lcao/module_lr/ao_to_mo_transformer:\
./source_lcao/module_lr/dm_trans:\
./source_lcao/module_lr/operator_casida:\
./source_lcao/module_lr/potentials:\
./source_lcao/module_lr/utils:\
./source_lcao/module_rdmft:\
./\
OBJS_ABACUS_PW=${OBJS_MAIN}\
${OBJS_BASE}\
${OBJS_CELL}\
${OBJS_ELECSTAT}\
${OBJS_ESOLVER}\
${OBJS_HAMILT}\
${OBJS_HSOLVER}\
${OBJS_MD}\
${OBJS_NEIGHBOR}\
${OBJS_NEIGHBOR_SEARCH}\
${OBJS_PSI}\
${OBJS_PSI_INITIALIZER}\
${OBJS_PW}\
${OBJS_RELAXATION}\
${OBJS_SURCHEM}\
${OBJS_SYMMETRY}\
${OBJS_XC}\
${OBJS_IO}\
${OBJS_PARALLEL}\
${OBJS_SRCPW}\
${OBJS_HAMILT_OF}
OBJS_ABACUS=${OBJS_ABACUS_PW}\
${OBJS_DEEPKS}\
${OBJS_ELECSTAT_LCAO}\
${OBJS_ESOLVER_LCAO}\
${OBJS_GINT}\
${OBJS_HAMILT_LCAO}\
${OBJS_HSOLVER_LCAO}\
${OBJS_HCONTAINER}\
${OBJS_ORBITAL}\
${OBJS_IO_LCAO}\
${OBJS_LCAO}\
${OBJS_PARALLEL_LCAO}\
${OBJS_VDW}\
${OBJS_DFTU}\
${OBJS_DELTASPIN}\
${OBJS_TENSOR}\
${OBJS_HSOLVER_PEXSI}\
${OBJS_LR}\
${OBJS_RDMFT}
OBJS_MAIN=main.o\
driver.o\
driver_run.o\
parameter.o
OBJS_BASE=assoc_laguerre.o\
blas_connector_base.o\
blas_connector_vector.o\
blas_connector_matrix.o\
complexarray.o\
complexmatrix.o\
clebsch_gordan_coeff.o\
element_basis_index.o\
export.o\
inverse_matrix.o\
gather_math_lib_info.o\
global_file.o\
global_function.o\
glob_fn_ddotreal.o\
global_variable.o\
intarray.o\
math_integral.o\
math_lebedev_laikov.o\
math_polyint.o\
math_sphbes.o\
math_erf_complex.o\
math_ylmreal.o\
math_bspline.o\
math_chebyshev.o\
math_ylm_op.o\
math_kernel_op.o\
math_kernel_op_vec.o\
mathzone_add1.o\
matrix.o\
matrix3.o\
memory.o\
mymath.o\
para_gemm.o\
realarray.o\
sph_bessel_rec_d1.o\
sph_bessel_rec_d2.o\
timer.o\
tool_check.o\
tool_quit.o\
tool_title.o\
ylm.o\
opt_cg.o\
opt_dcsrch.o\
cubic_spline.o\
sph_bessel_tf.o\
mixing_data.o\
mixing.o\
plain_mixing.o\
pulay_mixing.o\
broyden_mixing.o\
memory_op.o\
device.o\
device_helpers.o\
output_device.o\
parallel_2d.o\
binstream.o\
filename.o\
sparse_matrix.o\
read_exit_file.o\
orb_io.o\
OBJS_CELL=atom_pseudo.o\
atom_spec.o\
pseudo.o\
read_pp.o\
read_pp_complete.o\
read_pp_upf100.o\
read_pp_upf201.o\
read_pp_blps.o\
read_pp_vwr.o\
unitcell.o\
read_atoms.o\
read_atoms_helper.o\
print_cell.o\
setup_nonlocal.o\
klist.o\
k_vector_utils.o\
cell_index.o\
cell_tools.o\
check_atomic_stru.o\
update_cell.o\
bcast_cell.o\
read_stru.o\
read_atom_species.o\
sep.o\
sep_cell.o\
cal_nelec_nband.o\
read_pp_ucell.o\
cal_wfc.o\
cal_ux.o\
distributed_mdcell_reader.o\
md_cell.o\
cif_io.o\
ucell_io.o\
OBJS_DEEPKS=lcao_deepks.o\
deepks_basic.o\
deepks_check.o\
deepks_descriptor.o\
deepks_force.o\
deepks_fpre.o\
deepks_iterate.o\
deepks_spre.o\
deepks_orbital.o\
deepks_orbpre.o\
deepks_vdelta.o\
deepks_vdpre.o\
deepks_vdrpre.o\
deepks_pdm.o\
deepks_phialpha.o\
lcao_deepks_io.o\
lcao_deepks_iface.o\
OBJS_ELECSTAT=elecstate.o\
estate_e_terms.o\
elecstate_energy.o\
elecstate_exx.o\
elecstate_print.o\
elecstate_tools.o\
elecstate_pw.o\
elecstate_pw_sdft.o\
elecstate_pw_cal_tau.o\
makov_payne.o\
elecstate_op.o\
efield.o\
gatefield.o\
potential_new.o\
potential_types.o\
pot_sep.o\
pot_local.o\
h_hartree_pw.o\
h_tddft_pw.o\
pot_xc.o\
read_orb.o\
setup_estate_pw.o\
update_pot.o\
OBJS_ELECSTAT_LCAO=elecstate_lcao.o\
init_dm.o\
density_matrix.o\
density_matrix_io.o\
cal_dm_psi.o\
cal_edm_tddft.o\
OBJS_ESOLVER=esolver_factory.o\
esolver_ks.o\
esolver_fp.o\
esolver_ks_pw.o\
esolver_ks_lcaopw.o\
esolver_sdft_pw.o\
esolver_lj.o\
esolver_dp.o\
esolver_nep.o\
esolver_of.o\
esolver_of_tddft.o\
esolver_of_tool.o\
esolver_of_interface.o\
pw_others.o\
OBJS_ESOLVER_LCAO=esolver_ks_lcao.o\
esolver_ks_lcao_tddft.o\
esolver_gets.o\
lcao_others.o\
esolver_dm2rho.o\
esolver_double_xc.o\
OBJS_GINT=batch_biggrid.o\
big_grid.o\
biggrid_info.o\
divide_info.o\
gint_atom.o\
gint_common.o\
gint_dvlocal.o\
gint_env_gamma.o\
gint_env_k.o\
gint_fvl_meta.o\
gint_fvl.o\
gint_info.o\
gint_interface.o\
gint_rho.o\
gint_tau.o\
gint_vl_mgga_n4.o\
gint_vl_metagga.o\
gint_vl_nspin4.o\
gint_vl.o\
gint.o\
localcell_info.o\
phi_operator.o\
set_ddphi.o\
unitcell_info.o\
OBJS_HAMILT=hamilt_pw.o\
hamilt_sdft_pw.o\
operator.o\
op_pw.o\
op_pw_exx.o\
op_pw_ekin.o\
ekinetic_op.o\
op_pw_exx_ace.o\
op_pw_exx_pot.o\
hpsi_norm_op.o\
op_pw_veff.o\
veff_op.o\
op_pw_nl.o\
nonlocal_op.o\
op_pw_meta.o\
meta_op.o\
op_pw_vel.o\
op_pw_proj.o\
radial_proj.o\
exx_helper.o\
vec_mul_cx_op.o\
exx_cal_energy_op.o\
cal_density_real_op.o\
mul_potential_op.o\
OBJS_HAMILT_OF=kedf_tf.o\
kedf_vw.o\
kedf_wt.o\
kedf_xwm.o\
kedf_lkt.o\
kedf_manager.o\
evolve_ofdft.o\
OBJS_HAMILT_LCAO=hamilt_lcao.o\
operator_lcao.o\
ekinetic.o\
ekinetic_fs.o\
ekinetic_dh.o\
nonlocal.o\
nonlocal_dh.o\
nonlocal_fs.o\
overlap.o\
overlap_fs.o\
td_ekinetic_lcao.o\
td_nonlocal_lcao.o\
td_pot_hybrid.o\
td_pot_hybrid_fs.o\
veff_lcao.o\
veff_dh.o\
meta_lcao.o\
op_dftu_lcao.o\
deepks_lcao.o\
op_exx_lcao.o\
dspin_lcao.o\
dspin_fs.o\
setup_dftu_lcao.o\
dftu_fs.o\
operator_fs_utils.o\
OBJS_HCONTAINER=base_matrix.o\
atom_pair.o\
hcontainer.o\
output_hcontainer.o\
read_hcontainer.o\
func_folding.o\
func_transfer.o\
transfer.o\
OBJS_HSOLVER=diago_cg.o\
diago_david.o\
diago_dav_subspace.o\
diago_bpcg.o\
para_lin_tf.o\
hsolver.o\
hsolver_pw.o\
hsolver_lcaopw.o\
hsolver_pw_sdft.o\
diago_iter_assist.o\
hegvd_op.o\
bpcg_kernel_op.o\
diag_const_nums.o\
diag_hs_para.o\
diago_pxxxgvx.o\
OBJS_HSOLVER_LCAO=hsolver_lcao.o\
diago_scalapack.o\
diago_lapack.o\
diago_elpa.o\
diago_elpa_native.o\
elpa_new.o\
elpa_new_real.o\
elpa_new_complex.o\
utils.o\
parallel_k2d.o\
OBJS_HSOLVER_PEXSI=diago_pexsi.o\
pexsi_solver.o\
simple_pexsi.o\
dist_bcd_matrix.o\
dist_ccs_matrix.o\
dist_mat_tf.o\
OBJS_MD=fire.o\
langevin.o\
md_base.o\
md_func.o\
msst.o\
nhchain.o\
run_md.o\
verlet.o\
OBJS_NEIGHBOR=sltk_atom.o\
sltk_atom_arrange.o\
sltk_grid.o\
sltk_grid_driver.o\
OBJS_NEIGHBOR_SEARCH=neighbor_search.o\
bin_manager.o\
domain_decomposition.o\
page_allocator.o\
OBJS_ORBITAL=orb_atomic.o\
orb_atomic_lm.o\
orb_gaunt_table.o\
orb_nonlocal.o\
orb_nonlocal_lm.o\
orb_read.o\
parallel_orbitals.o\
atomic_radials.o\
hydrogen_radials.o\
pswfc_radials.o\
beta_radials.o\
sphbes_radials.o\
numerical_radial.o\
radial_collection.o\
radial_set.o\
real_gaunt_table.o\
two_center_bundle.o\
two_center_integrator.o\
two_center_table.o\
projgen.o\
OBJS_PSI=psi.o\
OBJS_PSI_INITIALIZER=psi_base.o\
psi_init_random.o\
psi_init_file.o\
psi_init_atomic.o\
psi_init_atom_rand.o\
psi_init_nao.o\
psi_init_nao_random.o
OBJS_PW=fft_bundle.o\
fft_cpu.o\
pw_basis.o\
pw_basis_k.o\
pw_basis_sup.o\
pw_distributeg.o\
pw_distg_method1.o\
pw_distg_method2.o\
pw_distributer.o\
pw_init.o\
pw_transform.o\
pw_transform_k.o\
OBJS_RELAXATION=relax_data.o\
cg_base.o\
bfgs_basic.o\
relax_driver.o\
ions_move_basic.o\
ions_move_bfgs.o\
ions_move_bfgs2.o\
ions_move_cg.o\
ions_move_methods.o\
ions_move_sd.o\
lattice_change_basic.o\
lattice_change_cg.o\
lat_change_method.o\
relax_nsync.o\
relax_sync.o\
ions_move_lbfgs.o\
matrix_methods.o\
line_search.o\
OBJS_SURCHEM=surchem.o\
h_corr_pw.o\
cal_epsilon.o\
cal_pseudo.o\
cal_totn.o\
cal_vcav.o\
cal_vel.o\
minimize_cg.o\
sol_force.o\
OBJS_SYMMETRY=symm_other.o\
symm_basic.o\
symm_analysis.o\
symm_check.o\
symm_getgroup.o\
symm_hermite.o\
symm_lattice.o\
symm_magnetic.o\
symm_pricell.o\
symm_rho.o\
symmetry.o\
OBJS_XC=xc_functional.o\
xc_functional_op.o\
xc_pot.o\
xc_grad.o\
xc_lda_wrap.o\
xc_gga_wrap.o\
libxc_setup.o\
libxc_tools.o\
libxc_pot.o\
libxc_lda_wrap.o\
libxc_gga_wrap.o\
libxc_mgga_wrap.o\
xc_lda_exch.o\
xc_lda_corr.o\
xc_gga_exch.o\
xc_gga_corr.o\
xc_funct_hcth.o\
exx_info.o\
OBJS_IO=module_parameter/input_conv.o\
module_unk/berryphase.o\
module_bessel/bessel_basis.o\
cal_test.o\
module_dos/write_dos_pw.o\
nscf_fermi_surf.o\
band_parallel_output.o\
write_bands.o\
module_dos/cal_dos.o\
module_dos/cal_pdos_gamma.o\
module_dos/cal_pdos_multik.o\
module_dos/cal_ldos.o\
module_bessel/numerical_descriptor.o\
module_bessel/numerical_basis.o\
module_bessel/numerical_basis_jyjy.o\
output.o\
print_info.o\
read_cube.o\
rhog_io.o\
read_wfc_pw.o\
read_wf2rho_pw.o\
restart.o\
module_wannier/to_wannier90.o\
module_qo/to_qo_kernel.o\
module_qo/to_qo_mpi.o\
module_qo/to_qo_structures.o\
module_wannier/to_wannier90_pw.o\
module_wannier/to_w90_lcao_pw.o\
module_wannier/to_wannier90_lcao.o\
fr_overlap.o\
module_unk/unk_overlap_pw.o\
write_pao.o\
write_wfc_pw.o\
write_cube.o\
write_elecstat_pot.o\
write_elf.o\
write_dipole.o\
write_init.o\
td_current_io.o\
td_current_io_comm.o\
td_efield_io.o\
td_vector_pot_io.o\
write_libxc_r.o\
output_log.o\
output_mat_sparse.o\
module_ctrl/ctrl_scf_lcao.o\
module_ctrl/ctrl_runner_lcao.o\
module_ctrl/ctrl_iter_lcao.o\
module_ctrl/ctrl_output_fp.o\
module_ctrl/ctrl_output_pw.o\
module_ctrl/ctrl_output_td.o\
para_json.o\
abacusjson.o\
general_info.o\
init_info.o\
readin_info.o\
output_info.o\
parse_args.o\
module_parameter/availability.o\
module_parameter/availability_validator.o\
module_parameter/read_input.o\
module_parameter/read_inp_sys.o\
module_parameter/read_inp_estruc.o\
module_parameter/read_inp_relax.o\
module_parameter/read_input_item_md.o\
module_parameter/read_inp_ofdft.o\
module_parameter/read_input_item_sdft.o\
module_parameter/read_inp_tddft.o\
module_parameter/read_inp_bse.o\
module_parameter/read_inp_deepks.o\
module_parameter/read_inp_model.o\
module_parameter/read_inp_postproc.o\
module_parameter/read_inp_exx_dftu.o\
module_parameter/read_inp_other.o\
module_parameter/read_inp_out.o\
module_parameter/read_set_globalv.o\
cal_plpr.o\
OBJS_IO_LCAO=cal_r_overlap_r.o\
write_orb_info.o\
write_dos_lcao.o\
write_proj_band_lcao.o\
write_eig_occ.o\
get_pchg_lcao.o\
get_wf_lcao.o\
module_dm/write_dmk.o\
module_unk/unk_overlap_lcao.o\
read_wfc_nao.o\
write_wfc_nao.o\
module_hs/write_hs_sparse.o\
single_r_io.o\
module_hs/write_hs_r.o\
module_dm/write_dmr.o\
module_mulliken/output_mulliken.o\
module_mulliken/output_sk.o\
module_mulliken/output_dmk.o\
module_ml/io_npz.o\
OBJS_LCAO=evolve_elec.o\
evolve_psi.o\
band_energy.o\
middle_hamilt.o\
norm_psi.o\
propagator.o\
propagator_cn2.o\
propagator_taylor.o\
propagator_etrs.o\
td_folding.o\
td_info.o\
velocity_op.o\
radial_interpolation.o\
snap_proj_half_tddft.o\
snap_psb_half_tddft.o\
snap_pha_half_tddft.o\
solve_propagation.o\
boundary_fix.o\
upsi.o\
force_stress_lcao.o\
force_lcao_gamma.o\
force_lcao_k.o\
stress_tools.o\
edm.o\
pulay_fs_center2.o\
spar_dh.o\
spar_exx.o\
spar_hsr.o\
spar_st.o\
spar_u.o\
lcao_set.o\
lcao_set_fs.o\
lcao_set_st.o\
lcao_nl_mu.o\
lcao_set_zero.o\
lcao_allocate.o\
lcao_set_mat2d.o\
lcao_init_basis.o\
setup_exx.o\
setup_deepks.o\
setup_dm.o\
rho_tau_lcao.o\
center2orb.o\
center2orb_orb11.o\
center2orb_orb21.o\
center2orb_orb22.o\
record_adj.o\
OBJS_MODULE_RI=conv_coulomb_pot_k.o\
exx_abfs-abfs_index.o\
exx_abfs_jle.o\
exx_abfs_io.o\
exx_abfs_ctor_orbs.o\
abfs_construct_pca.o\
exx_opt_orb_print.o\
exx_opt_orb.o\
matrix_orbs11.o\
matrix_orbs21.o\
matrix_orbs22.o\
ri_2d_comm.o\
mix_dmk_2d.o\
symm_rotation.o\
symm_rot_out.o\
symmetry_irreducible_sector.o\
gaussian_abfs.o\
singular_value.o\
OBJS_PARALLEL=parallel_common.o\
parallel_global.o\
parallel_comm.o\
parallel_grid.o\
parallel_kpoints.o\
parallel_reduce.o\
parallel_device.o
OBJS_SRCPW=h_ewald_pw.o\
dnrm2.o\
vl_pw.o\
vnl_pw.o\
vnl_pw_alpha.o\
vnl_pw_deeq.o\
vnl_pw_getvnl.o\
vnl_pw_grad.o\
vnl_pw_init_vnl.o\
vnl_pw_qrad.o\
chgmixing.o\
charge.o\
charge_init.o\
charge_mpi.o\
charge_extra.o\
charge_mixing.o\
charge_mixing_dmr.o\
mix_resid.o\
mix_precond.o\
charge_mixing_rho.o\
charge_mixing_uspp.o\
fp_energy.o\
setup_pot.o\
setup_pwrho.o\
setup_pwwfc.o\
update_cell_pw.o\
dftu_base.o\
dftu_output.o\
dftu_tools_pw.o\
dftu_cal_occ_pw.o\
setup_dftu_pw.o\
deltaspin_pw.o\
force_pw.o\
force_pw_us.o\
force_pw_nl.o\
force_pw_cc.o\
force_pw_scc.o\
force_pw_onsite.o\
onsite_proj_pw.o\
fs_nonlocal_tools.o\
fs_kin_tools.o\
force_op.o\
stress_op.o\
onsite_op.o\
wf_op.o\
vnl_op.o\
magnetism.o\
occupy.o\
stru_fac.o\
stru_fac_k.o\
soc.o\
sto_iter.o\
sto_che.o\
sto_wf.o\
sto_func.o\
sto_forces.o\
sto_stress_pw.o\
stress_cc.o\
stress_ewa.o\
stress_exx.o\
stress_gga.o\
stress_mgga.o\
stress_har.o\
stress_kin.o\
stress_loc.o\
stress_nl.o\
stress_us.o\
stress_onsite.o\
stress_pw.o\
of_stress_pw.o\
of_print_info.o\
symm_rho.o\
symm_rhog.o\
setup_psi_pw.o\
setup_psi.o\
psi_prepare.o\
elecond.o\
sto_tool.o\
sto_elecond.o\
sto_dos.o\
onsite_proj.o\
onsite_proj_tools.o\
onsite_proj_print.o\
vsep_pw.o
OBJS_VDW=vdw.o\
vdwd2_parameters.o\
vdwd3_parameters.o\
vdwd2.o\
vdwd3.o\
vdwd3_parameters_tab.o\
vdwd3_autoset_xcname.o\
vdwd3_auto_xcpar.o
OBJS_DFTU=dftu.o\
dftu_force.o\
dftu_yukawa.o\
dftu_folding.o\
dftu_tools.o\
dftu_lcao_occ.o\
dftu_hamilt.o\
setup_dftu_pw.o
OBJS_DELTASPIN=basic_funcs.o\
cal_mw_from_lambda.o\
cal_mw.o\
init_sc.o\
lambda_loop_helper.o\
lambda_loop.o\
spin_constrain.o\
template_helpers.o\
OBJS_TENSOR=tensor.o\
tensor_buffer.o\
tensor_map.o\
tensor_shape.o\
tensor_types.o\
blas.o\
lapack.o\
linalg.o\
memory_impl.o\
einsum_op.o\
linalg_op.o\
cpu_allocator.o\
refcount.o
OBJS_LR=lr_util.o\
lr_util_hcontainer.o\
ao_to_mo_parallel.o\
ao_to_mo_serial.o\
dm_trans_parallel.o\
dm_trans_serial.o\
dmr_complex.o\
operator_lr_hxc.o\
operator_lr_exx.o\
xc_kernel.o\
pot_hxc_lrtd.o\
lr_spectrum.o\
lr_spectrum_velocity.o\
hamilt_casida.o\
esolver_lrtd_lcao.o\
OBJS_RDMFT=rdmft.o\
rdmft_tools.o\
rdmft_pot.o\
update_state_rdmft.o\