Skip to content

Commit c2fa3ac

Browse files
mohanchenabacus_fixer
andauthored
Update DFPT (pw) codes (deepmodeling#7894)
* style(dfpt): reformat module_dfpt C++ sources with clang-format Apply the repository .clang-format (Microsoft/Allman style) to all C++ sources and tests under source/source_pw/module_dfpt so that opening braces sit on their own line, parameters are aligned, and tabs are replaced by 4 spaces. Pure mechanical refactor; no logic change. Verified by: make -j 30 (module_dfpt + abacus_basic_para, 0 errors). * feat(dfpt): add TITLE and timer instrumentation to module_dfpt Add ModuleBase::TITLE and ModuleBase::timer::start/end calls to 111 functions across 10 C++ source files under source/source_pw/module_dfpt, following the ABACUS convention used in module_pwdft. TITLE+start are placed at function entry, timer::end before each return path; WARNING_QUIT stubs get TITLE+start only (exit() never returns). Empty ctors/dtors and one-line getters/setters are skipped. Verified by: make -j 30 (module_dfpt + abacus_basic_para, 0 errors). * refactor(dfpt): extract helpers in DFPT_Rho to cut cyclomatic complexity Split compute_drho and mix_drho into focused private helpers (add_band_, make_drho_r_, zero_neg_q_, is_gamma_q_) to remove the duplicated real-space manifest builder and drop cyclomatic complexity (compute_drho 28 -> cleared, mix_drho 17 -> cleared). TITLE/timer instrumentation preserved on all public entry points. Quality score rises from 70/97 (avg 83.5) to 95/97 (avg 96.0). * refactor(dfpt): modernize DFPT_Rho mixer_ and init signature Replace raw new/delete of Base_Mixing::Plain_Mixing with std::unique_ptr (C++11 only: uses reset(new ...) since std::make_unique is C++14). Aggregate the 8 init parameters into a nested Config struct without default values so all call sites must specify every field. Update 5 callers (dfpt_pw.cpp + 4 tests) to use aggregate initialization. Quality score for dfpt_rho.cpp/h rises from 95/97 to 97/98. * refactor(dfpt): split DFPT_Q0::pos_matrix and name empirical thresholds - extract pos_matrix with its velocity-operator helpers into dfpt_q0_pos.cpp (kinetic/nonlocal/velocity-to-position), wire it into the 3 CMakeLists; extract star/eps/Born helpers in dfpt_q0.cpp so all functions stay below the cyclomatic threshold (dfpt_q0.cpp 37 -> 100, dir avg 83.0 -> 86.8) - move named empirical parameters to the top of their functions with '/// empirical parameter' doxygen notes (22 magic numbers across q0/q0_pos/rho/stern/pw/pw_data/pert/phon), values unchanged - default DFPT_Q0 ctor/dtor in the header, removing the empty cpp bodies Verification: make -j 30 clean (build and build_max_para_test); ctest MODULE_DFPT_q0_serial / MODULE_DFPT_pw_run / MODULE_DFPT_pw_data 3/3 passed; code_quality_score.py re-run confirms no regression. * refactor(dfpt): split DFPT_Phon Ewald and electronic terms into own files - move ion_ion into dfpt_phon_ewald.cpp with the alpha search, the reciprocal-space sq/s0 + pair sums, the shared erfc h_ab tensor and the real-space self-image/pair sums as file-local helpers (cyclomatic complexity 38 -> main body 4) - move accumulate_electron into dfpt_phon_elec.cpp with the dpsi stash/restore, the bare-potential cross sum and the chi scatter as helpers; the same-atom d2 block becomes the private member accum_d2_same_atom (complexity 34 -> 5) - all formulas and empirical parameters moved verbatim; wire the two new translation units into the 3 CMakeLists Verification: make -j 30 clean (build and build_max_para_test); ctest MODULE_DFPT_phon_serial/q0_serial/pw_run/pw_data 4/4 passed; code_quality_score.py: dfpt_phon.cpp 34 -> 100, new files 100, dfpt_phon.h 98. * refactor(dfpt): split DFPT_Pert KB-projector and nonlocal terms into own files - move radial_vq/real_ylm/grad_real_ylm/build_vkb/build_vkb_dk to dfpt_pert_vkb.cpp and dVnl_dtau/apply_d2vnl to dfpt_pert_nl.cpp, cutting cyclomatic complexity of dfpt_pert.cpp hot spots below 10 - drop the always-true include_middle parameter of apply_d2vnl and update the dfpt_phon_elec.cpp call site - name empirical numeric constants with doxygen comments in the moved code - sync module/test/test_serial CMakeLists source lists Verification: cmake --build build -j 30 (main lib + abacus_basic_para); cmake --build build_max_para_test -j 30 for the module_dfpt test targets; OMP_NUM_THREADS=1 ctest -R MODULE_DFPT -> 8/8 passed. agent_governance_check --staged: 2 PR-body-level warnings only (pure refactor, no INPUT behavior change -> no docs update needed). * remove some notes * refactor(dfpt): extract DFPT_PW::Impl header + InitContext + smart ptrs + private members - new dfpt_pw_impl.h carrying the full DFPT_PW::Impl declaration so later per-solve TU splits can define DFPT_PW::Impl member functions from separate translation units (Impl forward declaration lives in the public dfpt_pw.h, data + non-public hooks go to the private header) - bundle DFPT_PW::init's 12 parameters into DFPT_PW_InitContext and keep the 12-arg public wrapper as a 1-line inline forwarder, eliminating the 7+ parameter rule violation on both the header declaration and the out-of-line definition; no caller change is needed because the 12-argument overload is preserved - replace raw DFPT_PW::pimpl_ and Impl::hamilt_ owning new/delete with std::unique_ptr (C++11 explicit reset(new T)) so the two raw_new + unpaired_new_delete warnings go away; as a side effect the local hamilt_ name that shadowed the member is removed together with the hand-written delete call (member_local_name_conflict fixed) - flip the Impl class layout: ctor/dtor + 5 outward hooks stay public, all 25 data members + wired() helper go into a private section, so the public_member_variable count on dfpt_pw.cpp drops from 25 to 0 Verification: cmake --build build -j 30 -> abacus_basic_para links clean. OMP_NUM_THREADS=1 ctest -R MODULE_DFPT -> 8/8 passed. Governance check reports 4 PR-body/include-level warnings only (no deterministic errors). * refactor(dfpt): split DFPT_PW init/build_occ_kq and run dispatchers into dedicated TUs Moves DFPT_PW::init / DFPT_PW::Impl::build_occ_kq out of dfpt_pw.cpp into dfpt_pw_init.cpp and DFPT_PW::run into dfpt_pw_run.cpp, extracting helper member functions so every moved function keeps cyclomatic complexity under the coding-rule 10 budget. init() is now a three-stage flow (check_metallic_occ / setup_q_list / init_submodules), build_occ_kq is split into (match_commensurate_kq / copy_occ_state_ball) and the run() scheduler is split into (run_q0_pre / run_displacement_irrep_pass / run_q0_post / run_assemble). Keeps the public DFPT_PW API 100% compatible and updates all three CMakeLists entries deterministically. Verification commands: cmake --build build -j 30 -> PASS (no errors, module_dfpt links cleanly) cmake --build build_max_para_test -j 30 \ --target MODULE_DFPT_pw_run_test -> PASS cmake --build build_max_para_test -j 30 \ --target MODULE_DFPT_{pw_data_test,pert_serial,\ phon_serial,q0_serial,rho_serial} -> PASS all OMP_NUM_THREADS=1 ctest --test-dir build_max_para_test \ -R MODULE_DFPT -V -> 8/8 tests passed (5.59 s elapsed) python3 tools/03_code_analysis/agent_governance_check.py \ --staged -> no findings * refactor(dfpt): extract DFPT_PW::solve_displacement + assemble_v_sc helpers Moves DFPT_PW::Impl::solve_displacement from dfpt_pw.cpp into dfpt_pw_solve.cpp together with the shared Impl::assemble_v_sc definition (declared in dfpt_pw_impl.h so the efield solve in the next split can reuse it without code duplication). The 36-path solve_displacement body is decomposed into: * assemble_v_sc (public Impl helper, already declared in impl.h) * sternheimer_per_band -- private per-(ik,ib) dispatch * stash_converged_disp_response -- private stash helper * debug_iter_snapshot / debug_h_consistency (free helpers in an anonymous namespace to keep the main flow linear) Every moved function stays under the cyclomatic complexity 10 budget and the new translation unit is 266 lines. Verification commands: cmake --build build -j 30 -> PASS cmake --build build_max_para_test -j 30 \ --target MODULE_DFPT_pw_run_test -> PASS cmake --build build_max_para_test -j 30 \ --target MODULE_DFPT_{pw_data_test,pert_serial,\ phon_serial,q0_serial,rho_serial} -> PASS all OMP_NUM_THREADS=1 ctest --test-dir build_max_para_test \ -R MODULE_DFPT -> 8/8 Passed (5.24 s) python3 tools/03_code_analysis/agent_governance_check.py \ --staged -> 0 deterministic errors (2 PR-body warnings only: evidence review, docs sync; refactor with 100% API compatible, no behavior change) * refactor(dfpt): extract DFPT_PW q=0 solves (pos + efield SCF) into dfpt_pw_q0.cpp Moves DFPT_PW::Impl::solve_pos_resp (complexity 31) and solve_efield_resp (complexity 25) from dfpt_pw.cpp into the new dfpt_pw_q0.cpp translation unit, assisted by five private Impl helpers: vel_diag_part, vel_nl_per_atom, pos_per_band_solve, efield_per_band_solve, stash_dpsi_efield. The assemble_v_sc helper now lives in dfpt_pw_solve.cpp and is reused in both the displacement and efield SCF fixed points instead of duplicating the Hartree+XC kernel assembly across two drivers. After this commit, dfpt_pw.cpp drops from 1098 LOC to 156 LOC and contains only the thin public pimpl wrapper, DFPT_PW::Impl::wired(), and the small accessor / setter group; the core implementation is spread across four single-responsibility translation units (dfpt_pw_{init,run,solve,q0}.cpp), each under 300 LOC. All public API behavior, INPUT parameters, and test references are 100% unchanged. Verification commands: cmake --build build -j 30 -> PASS cmake --build build_max_para_test -j 30 \ --target MODULE_DFPT_pw_run_test -> PASS cmake --build build_max_para_test -j 30 \ --target MODULE_DFPT_{pert_serial,phon_serial,\ q0_serial,rho_serial} -> PASS all OMP_NUM_THREADS=1 ctest --test-dir build_max_para_test \ -R MODULE_DFPT -> 8/8 Passed (5.13 s) python3 tools/03_code_analysis/agent_governance_check.py \ --staged -> 0 deterministic errors (2 PR-body warnings only; same API, same behavior) * test(dfpt): remove #define private public hacks; expose stateless building blocks instead Every DFPT test translation unit (test/dfpt_pw_run_test.cpp, test/dfpt_pw_data_test.cpp, test_serial/dfpt_serial_fixture.cpp, dfpt_pert/rho/phon/q0_serial_test.cpp) included the cell/dfpt headers with `#define private public`. Auditing each hacked include against the members the tests actually touch shows only five genuine private dependencies, all stateless physical building blocks: * DFPT_Phon::ion_ion -> moved to public (const Ewald force constants of the input cell; no state) * DFPT_Phon::dynmat_accum_ -> new public const accessor dynmat_accum() * DFPT_Pert::rho_gvec -> moved to public (FFT-grid G layout) * DFPT_Pert::dVloc_dtau -> moved to public (analytic local potential derivative) * DFPT_Pert::dVnl_dtau -> moved to public (NC projector derivative) * DFPT_PW_Data::dynmat_[0] mutable ref in IonIonGammaAcousticZeroModes -> local matrix + set_dynmat() The remaining hacked includes covered only already-public members (UnitCell geometry fields, Atom/pseudo data, QList::nkstot/kvec_d, DFPT_Q0::stars_/rotate_tensor), so the hack blocks and the include-order contract comments in both fixture headers are removed and the cell headers are included normally. Verification commands: cmake --build build_max_para_test -j 30 --target \ MODULE_DFPT_pw_run_test MODULE_DFPT_pw_data_test \ MODULE_DFPT_pert_serial MODULE_DFPT_phon_serial \ MODULE_DFPT_q0_serial MODULE_DFPT_rho_serial -> PASS all OMP_NUM_THREADS=1 ctest --test-dir build_max_para_test \ -R MODULE_DFPT -> 8/8 Passed (5.09 s) cmake --build build -j 30 -> PASS (0 errors) python3 tools/03_code_analysis/agent_governance_check.py \ --staged -> 0 deterministic errors (1 PR-body warning: docs sync; behavior unchanged, API additive only) * fix(source_cell): harden input validation and memory safety in k/q-list paths - QList::read_from_file: reject negative nkstot (crashed via renew/resize) - QList::interpolate_q_between: replace release-stripped asserts with WARNING_QUIT, matching the K_Vectors Issue#3482 hardening - ReciprocalGrid::build_star_ops: guard ibrav_a2b lookup in the error print to avoid out-of-range read when real_brav is outside [1,14] - ReciprocalGrid::reduce_ibz: replace nkstot assert with WARNING_QUIT to avoid division by zero in release builds - K_Vectors/QList reduce_by_symmetry: raw new[]/delete[] -> std::vector - QList::get_q: add out-of-range check consistent with other accessors Verified: make -j 30 clean; ctest MODULE_CELL_{klist,reciprocal_grid, qlist}_test and klist_test_para1/para4 all passed. * test(source_cell): cover q-list input paths and MP reduce_ibz; drop dead FINAL_SCF gate A1: - ReciprocalGrid::set_both_kvec: remove the always-true "if (true)" shell left over from the FINAL_SCF gate migration; logic unchanged - klist_test: rename SetBothKvecFinalSCF -> SetBothKvecFlagsFromFile (the FINAL_SCF gate no longer exists) and drop the commented-out PARAM.input.final_scf references C (new tests): - qlist_test: ReadFromFileCartesian, ReadFromFileLineCartesian, ReadFromFileNegativeNkstot (regression guard for the negative-nkstot fix), ReadFromFileLineRejectsZeroCount (death test for the WARNING_QUIT hardening), plus get_q out-of-range assertion - reciprocal_grid_test: ReduceIbzMpKLattice covers the Monkhorst-Pack k-lattice rotation path of reduce_ibz (2x2x2 mesh folded by the closed group {I, C3, C3^2} -> Gamma + 3X + 3M + R) Note: no new module dependency introduced; the test cleanup actually removes the last commented-out PARAM references from source_cell tests. Verified: make -j 30 (100%, incl. abacus_basic_para); ctest MODULE_CELL_{klist,reciprocal_grid,qlist}_test 3/3 passed; new gtest filters run green individually. * refactor(source_cell): extract shared restrict_kpt; drop unreachable nspin=4 case - Add ModuleCell::restrict_kpt(kvec, epsilon) free function in reciprocal_grid.h/.cpp (epsilon-shifted fmod fold into (-0.5, 0.5] plus epsilon zeroing) and replace the two hand-copied lambdas in ReciprocalGrid::reduce_ibz and K_Vectors::reduce_by_symmetry so the folding convention can no longer drift between the two files - K_Vectors::set_kup_and_kdw: remove the unreachable case 4 branch (K_Vectors::set() maps nspin=4 to 1 before the k-list is built) and document the remaining nspin values - ReciprocalGrid::finalize_symmetry: expand the one-line "search again" comment into an explanation of why the second lattice_type call (on vectors possibly replaced in place by the first pass) must not be removed Verified: make -j 30 (100%, incl. abacus_basic_para); ctest MODULE_CELL_{klist,reciprocal_grid,qlist}_test and klist_test_para1/ para4 5/5 passed; code_quality_score average 67.8 -> 68.6. * refactor(source_cell): split K_Vectors::read_kpoints; trim qlist.h includes - K_Vectors::read_kpoints (cc 32) split into a 3-step dispatcher plus two private helpers, both moved line-by-line with behavior unchanged: generate_kfile (auto-write Gamma/KSPACING mesh) and parse_kfile (locate K_POINTS header, read count/keyword, dispatch to MP / explicit Cartesian-Direct list / Line interpolation); drop the redundant local parameter copies inside the old monolith - qlist.h: drop module_symmetry/symmetry.h and unitcell.h includes in favor of forward declarations (Symmetry/UnitCell are only referenced in signatures); little_group.h is kept for the LittleGroup value member; qlist.cpp now includes the two headers itself - No caller signature changed; no new module dependency introduced Verified: make -j 30 (100%); ctest MODULE_CELL_{klist,reciprocal_grid, qlist}_test and klist_test_para1/para4 5/5 passed; code_quality_score average 68.6 -> 69.4 (klist.cpp 8 -> 14). * refactor(source_cell): fold KVectorUtils shim back into K_Vectors members The KVectorUtils free functions were a migration-period compatibility shim (2026-08-14); with all call sites now migrated, the shim only added a second calling convention and two friend declarations. - Move the real logic into K_Vectors members, line-by-line unchanged: set_after_vc (public, was KVectorUtils::set_after_vc) and mpi_k (private, __MPI-guarded, was KVectorUtils::kvec_mpi_k) - Delete the four 1-line forwarders, of which kvec_d2c/kvec_c2d had no callers left, and delete k_vector_utils.h/.cpp entirely - Mechanical call-site updates: klist.cpp internal calls go straight to the members, esolver_fp.cpp uses kv.set_after_vc(), tests use kv-> methods (kvec_ibz_kpoint -> reduce_by_symmetry with the member parameter order), 12 test CMakeLists.txt and Makefile.Objects drop the k_vector_utils.cpp registration - Drop the two K_Vectors friend declarations; update two comments that referenced KVectorUtils::ibz_kpoint Global dependency budget: k_vector_utils.cpp contributed 12 GlobalV touches; the logic now lives inside the class that already carries the k-list globals, so the PR-level count decreases. Verified: make -j 30 (100%, incl. external module test targets); ctest MODULE_CELL_{klist,reciprocal_grid,qlist}_test and klist_test_para1/ para4 5/5 passed (MPI path covers the moved mpi_k); grep confirms no KVectorUtils references remain outside the two historical notes in reciprocal_grid.h/.cpp. * refactor(source_cell): thread ofs_running explicitly through K_Vectors K_Vectors::set() already receives a running-log stream parameter, but the internal call chain fell back to the GlobalV::ofs_running global. Thread the stream through the non-virtual members so the dependency is explicit end-to-end (repo rule: pass dependencies explicitly where practical): - read_kpoints, parse_kfile, set_kup_and_kdw, update_use_ibz, set_after_vc and mpi_k now take std::ofstream& ofs_running and use the parameter instead of the global (15 global reads removed); - set() passes its existing 'ofs' argument down; its external signature is unchanged (esolver_fp.cpp and tests already pass a stream to set); - Call sites updated mechanically: esolver_fp.cpp set_after_vc (1), klist_test.cpp read_kpoints (30) / set_kup_and_kdw (5) / update_use_ibz (1) / set_after_vc (2), klist_test_para.cpp (1), print_info_test.cpp (1); tests pass GlobalV::ofs_running explicitly - Left as-is (recorded): the virtual reduce_by_symmetry keeps its global reads (adding a stream would force an unused parameter onto the QList override), as do MY_RANK guards, MPI topology reads, GlobalV::ofs_warning paths, and ReciprocalGrid::build_star_ops (QList chain has no stream to pass) Verified: make -j 30 (0 errors); ctest MODULE_CELL_{klist,reciprocal_ grid,qlist}_test, klist_test_para1/para4 and MODULE_IO_print_info 6/6 passed. * refactor(source_cell): pass running-log stream to ReciprocalGrid::set_both_kvec Same pattern as the previous K_Vectors commit: the only remaining non-virtual ReciprocalGrid function that read GlobalV::ofs_running now takes std::ofstream& ofs_running and writes through the parameter. - Caller in K_Vectors::set() passes its existing 'ofs' argument; klist_test.cpp direct calls (6) pass GlobalV::ofs_running explicitly; - QList never calls set_both_kvec, so its chain is untouched - Left as-is (recorded): GlobalV::ofs_warning and the MY_RANK guards inside set_both_kvec, plus build_star_ops / reduce_by_symmetry / MY_RANK / MPI topology reads listed in the previous commit GlobalV reads: reciprocal_grid.cpp 14 -> 13, klist.cpp 35 -> 23 (ofs_running share: 15 -> 0). Verified: make -j 30 (0 errors); ctest MODULE_CELL_{klist,reciprocal_ grid,qlist}_test and klist_test_para1/para4 5/5 passed. * refactor: remove PARAM references from klist_test and reduce PARAM calls in esolver_factory klist_test.cpp: - Remove 3 PARAM references (1 comment text, 2 commented-out code lines using PARAM.input.nspin) to keep the test free of global PARAM usage esolver_factory.cpp: - Extract const bool gamma_only at the top of init_esolver and replace 8 PARAM.globalv.gamma_only_local reads with the local copy - Fix L55 inconsistency: PARAM.inp.esolver_type -> inp.esolver_type (use the function parameter like all other branches) - PARAM references reduced from 14 to 6 (4 in_dir/out_dir local const definitions + 2 pot_file constructor arguments remain) Verified: make -j 30 (0 errors). * refactor(kedf_xwm): pass nspin as parameter instead of accessing PARAM Remove all 24 direct PARAM.inp.nspin accesses from kedf_xwm.cpp by adding an explicit int nspin parameter to 5 methods (get_energy, get_energy_density, tau_xwm, xwm_potential, multi_kernel). The value is provided by the caller in kedf_manager.cpp. No new member variables added. * refactor(kedf_vw): cache nspin as local const to reduce PARAM access Reduce PARAM.inp.nspin lookups from 33 to 6 by introducing a local const int nspin at the entry of each function body. tau_vw is left unchanged since it references nspin only once. * build(dfpt): add new split dfpt object files to Makefile.Objects The dfpt_pw/dfpt_pert/dfpt_phon refactoring split several monolithic files into smaller units. CMakeLists.txt was updated but the parallel Makefile.Objects OBJS_DFPT list was not, causing undefined references to ModuleDFPT::DFPT_PW::run/init, DFPT_Pert::build_vkb/dVnl_dtau, and DFPT_Phon::ion_ion in the Makefile-based CI build. Added 9 missing object entries to OBJS_DFPT to mirror CMakeLists.txt: dfpt_pw_init, dfpt_pw_run, dfpt_pw_solve, dfpt_pw_q0, dfpt_pert_vkb, dfpt_pert_nl, dfpt_phon_ewald, dfpt_phon_elec, dfpt_q0_pos. * fix(esolver_factory): initialize gamma_only from PARAM.globalv.gamma_only_local gamma_only was initialized from itself, leaving it undefined and causing Gamma-only LCAO calculations to dispatch to the complex multi-k solver. * update dn_out * add set_dpsi --------- Co-authored-by: abacus_fixer <mohanchen@pku.eud.cn>
1 parent c1790ea commit c2fa3ac

77 files changed

Lines changed: 5989 additions & 4023 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

source/Makefile.Objects

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,6 @@ OBJS_CELL=atom_pseudo.o\
211211
print_cell.o\
212212
setup_nonlocal.o\
213213
klist.o\
214-
k_vector_utils.o\
215214
reciprocal_grid.o\
216215
cell_index.o\
217216
cell_tools.o\
@@ -375,14 +374,23 @@ OBJS_HAMILT_OF=kedf_tf.o\
375374
kedf_manager.o\
376375
evolve_ofdft.o\
377376

378-
OBJS_DFPT=dfpt_metal.o\
379-
dfpt_hamilt_shift.o\
377+
OBJS_DFPT=dfpt_hamilt_shift.o\
380378
dfpt_kq_basis.o\
379+
dfpt_metal.o\
381380
dfpt_pert.o\
381+
dfpt_pert_nl.o\
382+
dfpt_pert_vkb.o\
382383
dfpt_phon.o\
384+
dfpt_phon_elec.o\
385+
dfpt_phon_ewald.o\
383386
dfpt_pw.o\
384387
dfpt_pw_data.o\
388+
dfpt_pw_init.o\
389+
dfpt_pw_q0.o\
390+
dfpt_pw_run.o\
391+
dfpt_pw_solve.o\
385392
dfpt_q0.o\
393+
dfpt_q0_pos.o\
386394
dfpt_rho.o\
387395
dfpt_stern.o
388396

source/source_cell/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ add_library(
3333
read_stru.cpp
3434
print_cell.cpp
3535
read_atom_species.cpp
36-
k_vector_utils.cpp
3736
sep.cpp
3837
sep_cell.cpp
3938
qlist.cpp

source/source_cell/k_vector_utils.cpp

Lines changed: 0 additions & 209 deletions
This file was deleted.

source/source_cell/k_vector_utils.h

Lines changed: 0 additions & 140 deletions
This file was deleted.

0 commit comments

Comments
 (0)