#
# 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_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_md:\
./source_basis/module_pw:\
./source_basis/module_pw/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/operator_pw:\
./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_lcao/module_gint/temp_gint:\
./source_relax:\
./source_hamilt/module_vdw:\
./source_io:\
./source_io/json_output:\
./src_ri:\
./source_lcao/module_ri:\
./source_io/module_parameter:\
./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_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=abfs-vector3_order.o\
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\
global_function_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_recursive-d1.o\
sph_bessel_recursive-d2.o\
timer.o\
tool_check.o\
tool_quit.o\
tool_title.o\
ylm.o\
opt_CG.o\
opt_DCsrch.o\
cubic_spline.o\
spherical_bessel_transformer.o\
mixing_data.o\
mixing.o\
plain_mixing.o\
pulay_mixing.o\
broyden_mixing.o\
memory_op.o\
device.o\
parallel_2d.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\
print_cell.o\
setup_nonlocal.o\
klist.o\
k_vector_utils.o\
cell_index.o\
check_atomic_stru.o\
update_cell.o\
bcast_cell.o\
read_stru.o\
read_atom_species.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_interface.o\
OBJS_ELECSTAT=elecstate.o\
elecstate_energy_terms.o\
elecstate_energy.o\
elecstate_exx.o\
elecstate_print.o\
elecstate_pw.o\
elecstate_pw_sdft.o\
elecstate_pw_cal_tau.o\
elecstate_op.o\
elecstate_tools.o\
efield.o\
gatefield.o\
potential_new.o\
potential_types.o\
pot_local.o\
pot_local_paw.o\
H_Hartree_pw.o\
H_TDDFT_pw.o\
pot_xc.o\
cal_ux.o\
read_orb.o\
cal_nelec_nband.o\
read_pseudo.o\
cal_wfc.o\
OBJS_ELECSTAT_LCAO=elecstate_lcao.o\
elecstate_lcao_cal_tau.o\
density_matrix.o\
density_matrix_io.o\
cal_dm_psi.o\
cal_edm_tddft.o\
OBJS_ESOLVER=esolver.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_of.o\
esolver_of_tool.o\
esolver_of_interface.o\
pw_others.o\
pw_setup.o\
OBJS_ESOLVER_LCAO=esolver_ks_lcao.o\
esolver_ks_lcao_tddft.o\
lcao_before_scf.o\
lcao_after_scf.o\
esolver_gets.o\
lcao_others.o\
esolver_dm2rho.o\
OBJS_GINT=gint_old.o\
gint_gamma_env.o\
gint_gamma_vl.o\
gint_fvl_old.o\
gint_rho_old.o\
gint_tau_old.o\
gint_vl_old.o\
gint_k_env.o\
gint_k_sparse1.o\
gint_k_pvpr.o\
gint_k_pvdpr.o\
gint_tools.o\
grid_bigcell.o\
grid_meshball.o\
grid_meshcell.o\
grid_meshk.o\
grid_technique.o\
gint_force_cpu_interface.o\
gint_rho_cpu_interface.o\
gint_vl_cpu_interface.o\
cal_psir_ylm.o\
cal_dpsir_ylm.o\
cal_ddpsir_ylm.o\
mult_psi_dmr.o\
init_orb.o\
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_metagga_nspin4.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\
operator_pw.o\
op_exx_pw.o\
ekinetic_pw.o\
ekinetic_op.o\
hpsi_norm_op.o\
veff_pw.o\
veff_op.o\
nonlocal_pw.o\
nonlocal_op.o\
meta_pw.o\
meta_op.o\
velocity_pw.o\
radial_proj.o\
exx_helper.o\
OBJS_HAMILT_OF=kedf_tf.o\
kedf_vw.o\
kedf_wt.o\
kedf_xwm.o\
kedf_lkt.o\
kedf_manager.o\
OBJS_HAMILT_LCAO=hamilt_lcao.o\
operator_lcao.o\
ekinetic_new.o\
nonlocal_new.o\
overlap_new.o\
td_ekinetic_lcao.o\
td_nonlocal_lcao.o\
td_pot_hybrid.o\
veff_lcao.o\
meta_lcao.o\
op_dftu_lcao.o\
deepks_lcao.o\
op_exx_lcao.o\
dspin_lcao.o\
dftu_lcao.o\
OBJS_HCONTAINER=base_matrix.o\
atom_pair.o\
hcontainer.o\
output_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_linear_transform.o\
hsolver.o\
hsolver_pw.o\
hsolver_lcaopw.o\
hsolver_pw_sdft.o\
diago_iter_assist.o\
dngvd_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_matrix_transformer.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_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_initializer.o\
psi_initializer_random.o\
psi_initializer_file.o\
psi_initializer_atomic.o\
psi_initializer_atomic_random.o\
psi_initializer_nao.o\
psi_initializer_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_distributeg_method1.o\
pw_distributeg_method2.o\
pw_distributer.o\
pw_init.o\
pw_transform.o\
pw_transform_k.o\
OBJS_RELAXATION=bfgs_basic.o\
relax_driver.o\
ions_move_basic.o\
ions_move_bfgs.o\
ions_move_cg.o\
ions_move_methods.o\
ions_move_sd.o\
lattice_change_basic.o\
lattice_change_cg.o\
lattice_change_methods.o\
relax_nsync.o\
relax_sync.o\
bfgs.o\
lbfgs.o\
matrix_methods.o\
line_search.o\
OBJS_SURCHEM=surchem.o\
H_correction_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\
symmetry_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_functional_vxc.o\
xc_functional_gradcorr.o\
xc_functional_wrapper_xc.o\
xc_functional_wrapper_gcxc.o\
xc_functional_libxc.o\
xc_functional_libxc_tools.o\
xc_functional_libxc_vxc.o\
xc_functional_libxc_wrapper_xc.o\
xc_functional_libxc_wrapper_gcxc.o\
xc_functional_libxc_wrapper_tauxc.o\
xc_funct_exch_lda.o\
xc_funct_corr_lda.o\
xc_funct_exch_gga.o\
xc_funct_corr_gga.o\
xc_funct_hcth.o\
OBJS_IO=input_conv.o\
berryphase.o\
bessel_basis.o\
cal_test.o\
write_dos_pw.o\
nscf_fermi_surf.o\
nscf_band.o\
cal_dos.o\
cal_pdos_gamma.o\
cal_pdos_multik.o\
cal_ldos.o\
cif_io.o\
numerical_descriptor.o\
numerical_basis.o\
numerical_basis_jyjy.o\
output.o\
print_info.o\
read_cube.o\
rhog_io.o\
read_exit_file.o\
read_wfc_pw.o\
read_wf2rho_pw.o\
restart.o\
binstream.o\
to_wannier90.o\
to_qo_kernel.o\
to_qo_mpi.o\
to_qo_structures.o\
to_wannier90_pw.o\
to_wannier90_lcao_in_pw.o\
to_wannier90_lcao.o\
fR_overlap.o\
unk_overlap_pw.o\
write_pao.o\
write_wfc_pw.o\
winput.o\
write_cube.o\
write_elecstat_pot.o\
write_elf.o\
write_dipole.o\
td_current_io.o\
write_libxc_r.o\
output_log.o\
output_mat_sparse.o\
ctrl_output_lcao.o\
para_json.o\
abacusjson.o\
general_info.o\
init_info.o\
readin_info.o\
output_info.o\
parse_args.o\
read_input.o\
read_input_item_system.o\
read_input_item_elec_stru.o\
read_input_item_relax.o\
read_input_item_md.o\
read_input_item_ofdft.o\
read_input_item_sdft.o\
read_input_item_tddft.o\
read_input_item_deepks.o\
read_input_item_model.o\
read_input_item_postprocess.o\
read_input_item_exx_dftu.o\
read_input_item_other.o\
read_input_item_output.o\
read_set_globalv.o\
orb_io.o\
cal_pLpR.o\
filename.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\
io_dmk.o\
unk_overlap_lcao.o\
read_wfc_nao.o\
read_wfc_lcao.o\
write_wfc_nao.o\
write_HS_sparse.o\
single_R_io.o\
write_HS_R.o\
write_dmr.o\
sparse_matrix.o\
output_mulliken.o\
output_sk.o\
output_dmk.o\
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\
snap_psibeta_half_tddft.o\
solve_propagation.o\
upsi.o\
FORCE_STRESS.o\
FORCE_gamma.o\
FORCE_k.o\
stress_tools.o\
edm.o\
pulay_force_stress_center2.o\
grid_init.o\
spar_dh.o\
spar_exx.o\
spar_hsr.o\
spar_st.o\
spar_u.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\
center2_orb.o\
center2_orb-orb11.o\
center2_orb-orb21.o\
center2_orb-orb22.o\
record_adj.o\
wavefunc_in_pw.o\
OBJS_MODULE_RI=conv_coulomb_pot_k.o\
exx_abfs-abfs_index.o \
exx_abfs-jle.o \
exx_abfs-io.o \
exx_abfs-construct_orbs.o \
ABFs_Construct-PCA.o \
exx_opt_orb.o \
exx_opt_orb-print.o \
Matrix_Orbs11.o\
Matrix_Orbs21.o\
Matrix_Orbs22.o\
RI_2D_Comm.o\
Mix_DMk_2D.o\
Mix_Matrix.o\
symmetry_rotation.o\
symmetry_irreducible_sector.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_in_pw.o\
VNL_in_pw.o\
VNL_grad_pw.o\
charge.o\
charge_init.o\
charge_mpi.o\
charge_extra.o\
charge_mixing.o\
charge_mixing_dmr.o\
charge_mixing_residual.o\
charge_mixing_preconditioner.o\
charge_mixing_rho.o\
charge_mixing_uspp.o\
fp_energy.o\
forces.o\
forces_us.o\
forces_nl.o\
forces_cc.o\
forces_scc.o\
forces_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\
global.o\
magnetism.o\
occupy.o\
structure_factor.o\
structure_factor_k.o\
soc.o\
sto_iter.o\
sto_che.o\
sto_wf.o\
sto_func.o\
sto_forces.o\
sto_stress_pw.o\
stress_func_cc.o\
stress_func_ewa.o\
stress_func_exx.o\
stress_func_gga.o\
stress_func_mgga.o\
stress_func_har.o\
stress_func_kin.o\
stress_func_loc.o\
stress_func_nl.o\
stress_func_us.o\
stress_func_onsite.o\
stress_pw.o\
of_stress_pw.o\
symmetry_rho.o\
symmetry_rhog.o\
psi_init.o\
elecond.o\
sto_tool.o\
sto_elecond.o\
sto_dos.o\
onsite_projector.o\
onsite_proj_tools.o
OBJS_VDW=vdw.o\
vdwd2_parameters.o\
vdwd3_parameters.o\
vdwd2.o\
vdwd3.o\
vdwd3_parameters_tab.o\
vdwd3_autoset_xcname.o\
vdwd3_autoset_xcparam.o
OBJS_DFTU=dftu.o\
dftu_force.o\
dftu_yukawa.o\
dftu_folding.o\
dftu_io.o\
dftu_tools.o\
dftu_occup.o\
dftu_hamilt.o\
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\