Merge lp:~nickpapior/siesta/tddft-work into lp:~rraffiu/siesta/tddft02-format0.92

Proposed by Nick Papior
Status: Merged
Merged at revision: 651
Proposed branch: lp:~nickpapior/siesta/tddft-work
Merge into: lp:~rraffiu/siesta/tddft02-format0.92
Diff against target: 600 lines (+141/-143)
7 files modified
Src/Makefile (+47/-47)
Src/cranknic_evolg.F90 (+64/-59)
Src/cranknic_evolk.F90 (+16/-19)
Src/diag.F90 (+4/-0)
Src/m_initwf.F90 (+6/-12)
Src/m_inversemm.F90 (+3/-5)
version.info (+1/-1)
To merge this branch: bzr merge lp:~nickpapior/siesta/tddft-work
Reviewer Review Type Date Requested Status
Rafi Ullah Approve
Review via email: mp+331727@code.launchpad.net

Commit message

Fixes for running TDDFT branch on my box, reduced memory requirement

Description of the change

Made TDDFT branch work, and reduced memory.

I think this branch is a requirement to get it to work.

To post a comment you must log in.
Revision history for this message
Rafi Ullah (rraffiu) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Src/Makefile'
--- Src/Makefile 2017-10-03 13:27:08 +0000
+++ Src/Makefile 2017-10-03 17:43:24 +0000
@@ -583,9 +583,6 @@
583cgvc_zmatrix.o: alloc.o conjgr.o m_mpi_utils.o parallel.o precision.o sys.o583cgvc_zmatrix.o: alloc.o conjgr.o m_mpi_utils.o parallel.o precision.o sys.o
584cgvc_zmatrix.o: units.o zmatrix.o584cgvc_zmatrix.o: units.o zmatrix.o
585cgwf.o: egandd.o onmod.o parallel.o precision.o sys.o585cgwf.o: egandd.o onmod.o parallel.o precision.o sys.o
586sankey_change_basis.o: alloc.o m_matdiag.o parallel.o parallelsubs.o precision.o
587sankey_change_basis.o: sparse_matrices.o sys.o wavefunctions.o kpoint_grid.o
588sankey_change_basis.o: m_gamma.o m_spin.o atomlist.o diag_option.o
589chemical.o: parallel.o precision.o sys.o586chemical.o: parallel.o precision.o sys.o
590chempot.o: alloc.o mneighb.o parallel.o parallelsubs.o precision.o sys.o587chempot.o: alloc.o mneighb.o parallel.o parallelsubs.o precision.o sys.o
591chkdim.o: sys.o588chkdim.o: sys.o
@@ -648,6 +645,13 @@
648conjgr_old.o: precision.o645conjgr_old.o: precision.o
649coor.o: alloc.o parallel.o precision.o siesta_geom.o sys.o units.o zmatrix.o646coor.o: alloc.o parallel.o precision.o siesta_geom.o sys.o units.o zmatrix.o
650coxmol.o: files.o periodic_table.o precision.o647coxmol.o: files.o periodic_table.o precision.o
648cranknic_evolg.o: alloc.o atomlist.o m_energies.o m_eo.o m_inversemm.o
649cranknic_evolg.o: m_matswinvers.o m_spin.o m_steps.o parallel.o parallelsubs.o
650cranknic_evolg.o: precision.o siesta_options.o sparse_matrices.o sys.o units.o
651cranknic_evolg.o: wavefunctions.o
652cranknic_evolk.o: atomlist.o cranknic_evolg.o kpoint_grid.o m_energies.o m_eo.o
653cranknic_evolk.o: m_spin.o parallel.o parallelsubs.o precision.o
654cranknic_evolk.o: siesta_options.o sparse_matrices.o units.o wavefunctions.o
651create_Sparsity_SC.o: class_Sparsity.o geom_helper.o intrinsic_missing.o655create_Sparsity_SC.o: class_Sparsity.o geom_helper.o intrinsic_missing.o
652create_Sparsity_Union.o: class_OrbitalDistribution.o class_Sparsity.o656create_Sparsity_Union.o: class_OrbitalDistribution.o class_Sparsity.o
653create_Sparsity_Union.o: m_region.o parallel.o precision.o657create_Sparsity_Union.o: m_region.o parallel.o precision.o
@@ -698,7 +702,7 @@
698domain_decom.o: sparse_matrices.o sys.o702domain_decom.o: sparse_matrices.o sys.o
699doping_uniform.o: alloc.o m_ntm.o mesh.o parallel.o precision.o sys.o703doping_uniform.o: alloc.o m_ntm.o mesh.o parallel.o precision.o sys.o
700dynamics.o: alloc.o atomlist.o files.o ioxv.o m_mpi_utils.o parallel.o704dynamics.o: alloc.o atomlist.o files.o ioxv.o m_mpi_utils.o parallel.o
701dynamics.o: precision.o siesta_options.o sys.o units.o705dynamics.o: precision.o sys.o units.o
702egandd.o: alloc.o denmat.o ener3.o globalise.o gradient.o on_subs.o onmod.o706egandd.o: alloc.o denmat.o ener3.o globalise.o gradient.o on_subs.o onmod.o
703egandd.o: onmod.o precision.o sys.o707egandd.o: onmod.o precision.o sys.o
704eggbox.o: parallel.o precision.o708eggbox.o: parallel.o precision.o
@@ -706,12 +710,6 @@
706electrostatic.o: precision.o radfft.o radial.o sys.o710electrostatic.o: precision.o radfft.o radial.o sys.o
707ener3.o: alloc.o globalise.o m_mpi_utils.o onmod.o precision.o711ener3.o: alloc.o globalise.o m_mpi_utils.o onmod.o precision.o
708ener3lomem.o: alloc.o globalise.o m_mpi_utils.o onmod.o precision.o712ener3lomem.o: alloc.o globalise.o m_mpi_utils.o onmod.o precision.o
709cranknic_evolg.o: alloc.o m_eo.o m_matswinvers.o m_steps.o parallel.o parallelsubs.o
710cranknic_evolg.o: precision.o siesta_options.o sparse_matrices.o sys.o wavefunctions.o
711cranknic_evolg.o: m_spin.o atomlist.o m_energies.o units.o m_inversemm.o
712cranknic_evolk.o: parallel.o parallelsubs.o precision.o siesta_options.o m_spin.o
713cranknic_evolk.o: wavefunctions.o sparse_matrices.o atomlist.o kpoint_grid.o
714cranknic_evolk.o: units.o m_energies.o m_eo.o cranknic_evolg.o
715extrapolateSpData2D.o: class_Data2D.o class_OrbitalDistribution.o713extrapolateSpData2D.o: class_Data2D.o class_OrbitalDistribution.o
716extrapolateSpData2D.o: class_SpData2D.o class_Sparsity.o restructSpData2D.o714extrapolateSpData2D.o: class_SpData2D.o class_Sparsity.o restructSpData2D.o
717extrapolon.o: parallel.o precision.o sys.o715extrapolon.o: parallel.o precision.o sys.o
@@ -768,9 +766,9 @@
768iomd.o: files.o precision.o766iomd.o: files.o precision.o
769iopipes.o: parallel.o precision.o sys.o767iopipes.o: parallel.o precision.o sys.o
770iosockets.o: cellsubs.o fsockets.o m_mpi_utils.o parallel.o precision.o sys.o768iosockets.o: cellsubs.o fsockets.o m_mpi_utils.o parallel.o precision.o sys.o
769iotdxv.o: files.o parallel.o precision.o
771iowfs_netcdf.o: alloc.o parallel.o parallelsubs.o precision.o sys.o770iowfs_netcdf.o: alloc.o parallel.o parallelsubs.o precision.o sys.o
772ioxv.o: files.o parallel.o precision.o771ioxv.o: files.o parallel.o precision.o
773iotdxv.o: files.o parallel.o precision.o
774iozm.o: files.o parallel.o precision.o siesta_geom.o zmatrix.o772iozm.o: files.o parallel.o precision.o siesta_geom.o zmatrix.o
775ipack.o: sys.o773ipack.o: sys.o
776kgrid.o: parallel.o precision.o units.o774kgrid.o: parallel.o precision.o units.o
@@ -815,9 +813,8 @@
815m_efield.o: siesta_geom.o sys.o units.o813m_efield.o: siesta_geom.o sys.o units.o
816m_energies.o: precision.o814m_energies.o: precision.o
817m_eo.o: precision.o815m_eo.o: precision.o
818m_evolve.o: alloc.o m_memory.o parallel.o parallelsubs.o precision.o sys.o816m_evolve.o: cranknic_evolg.o cranknic_evolk.o m_gamma.o m_spin.o precision.o
819m_evolve.o: atomlist.o m_spin.o m_gamma.o sparse_matrices.o kpoint_grid.o817m_evolve.o: sys.o
820m_evolve.o: cranknic_evolg.o cranknic_evolk.o
821m_exp_coord.o: files.o m_os.o parallel.o precision.o units.o818m_exp_coord.o: files.o m_os.o parallel.o precision.o units.o
822m_filter.o: bessph.o precision.o radfft.o sorting.o sys.o819m_filter.o: bessph.o precision.o radfft.o sorting.o sys.o
823m_fire.o: parallel.o precision.o820m_fire.o: parallel.o precision.o
@@ -840,10 +837,9 @@
840m_hs_matrix.o: alloc.o cellsubs.o geom_helper.o precision.o sys.o837m_hs_matrix.o: alloc.o cellsubs.o geom_helper.o precision.o sys.o
841m_hsx.o: atm_types.o atmfuncs.o atomlist.o files.o parallel.o parallelsubs.o838m_hsx.o: atm_types.o atmfuncs.o atomlist.o files.o parallel.o parallelsubs.o
842m_hsx.o: precision.o siesta_geom.o sys.o839m_hsx.o: precision.o siesta_geom.o sys.o
843m_initwf.o: alloc.o densematrix.o fermid.o diag.o m_eo.o m_memory.o840m_initwf.o: alloc.o atomlist.o densematrix.o diag.o diag_option.o fermid.o
844m_initwf.o: parallel.o parallelsubs.o precision.o sparse_matrices.o sys.o841m_initwf.o: kpoint_grid.o m_eo.o m_gamma.o m_memory.o m_spin.o parallel.o
845m_initwf.o: wavefunctions.o kpoint_grid.o atomlist.o m_spin.o m_gamma.o842m_initwf.o: parallelsubs.o precision.o sparse_matrices.o sys.o wavefunctions.o
846m_initwf.o: diag_option.o
847m_integrate.o: precision.o843m_integrate.o: precision.o
848m_inversemm.o: precision.o844m_inversemm.o: precision.o
849m_io.o: sys.o845m_io.o: sys.o
@@ -857,8 +853,8 @@
857m_iorho.o: alloc.o parallel.o parallelsubs.o precision.o sys.o853m_iorho.o: alloc.o parallel.o parallelsubs.o precision.o sys.o
858m_iostruct.o: alloc.o files.o m_mpi_utils.o parallel.o precision.o854m_iostruct.o: alloc.o files.o m_mpi_utils.o parallel.o precision.o
859m_iostruct.o: siesta_geom.o sys.o units.o855m_iostruct.o: siesta_geom.o sys.o units.o
860m_iotddft.o: files.o m_dipol.o m_steps.o parallel.o siesta_options.o856m_iotddft.o: files.o m_dipol.o m_io.o m_steps.o parallel.o siesta_options.o
861m_iotddft.o: wavefunctions.o units.o m_io.o857m_iotddft.o: units.o wavefunctions.o
862m_kinetic.o: precision.o858m_kinetic.o: precision.o
863m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o859m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
864m_matdiag.o: precision.o860m_matdiag.o: precision.o
@@ -1207,6 +1203,9 @@
1207rhoofd.o: meshdscf.o meshphi.o parallel.o parallelsubs.o precision.o sys.o1203rhoofd.o: meshdscf.o meshphi.o parallel.o parallelsubs.o precision.o sys.o
1208rhoofdsp.o: alloc.o atm_types.o atmfuncs.o atomlist.o listsc.o mesh.o1204rhoofdsp.o: alloc.o atm_types.o atmfuncs.o atomlist.o listsc.o mesh.o
1209rhoofdsp.o: meshdscf.o meshphi.o precision.o sys.o1205rhoofdsp.o: meshdscf.o meshphi.o precision.o sys.o
1206sankey_change_basis.o: alloc.o atomlist.o diag_option.o kpoint_grid.o m_gamma.o
1207sankey_change_basis.o: m_matdiag.o m_spin.o parallel.o parallelsubs.o
1208sankey_change_basis.o: precision.o sparse_matrices.o sys.o wavefunctions.o
1210save_density_matrix.o: atomlist.o files.o iodm_netcdf.o m_energies.o m_iodm.o1209save_density_matrix.o: atomlist.o files.o iodm_netcdf.o m_energies.o m_iodm.o
1211save_density_matrix.o: m_matio.o m_ncdf_siesta.o m_spin.o m_steps.o1210save_density_matrix.o: m_matio.o m_ncdf_siesta.o m_spin.o m_steps.o
1212save_density_matrix.o: m_ts_global_vars.o m_ts_iodm.o m_ts_options.o1211save_density_matrix.o: m_ts_global_vars.o m_ts_iodm.o m_ts_options.o
@@ -1258,17 +1257,17 @@
1258siesta_forces.o: atomlist.o class_Fstack_Data1D.o class_SpData2D.o compute_dm.o1257siesta_forces.o: atomlist.o class_Fstack_Data1D.o class_SpData2D.o compute_dm.o
1259siesta_forces.o: compute_energies.o compute_max_diff.o files.o1258siesta_forces.o: compute_energies.o compute_max_diff.o files.o
1260siesta_forces.o: final_H_f_stress.o flook_siesta.o kpoint_grid.o1259siesta_forces.o: final_H_f_stress.o flook_siesta.o kpoint_grid.o
1261siesta_forces.o: m_check_walltime.o m_convergence.o m_energies.o m_eo.o1260siesta_forces.o: m_check_walltime.o m_convergence.o m_energies.o m_forces.o
1262siesta_forces.o: m_forces.o m_gamma.o m_initwf.o m_iodm_old.o m_mixing.o1261siesta_forces.o: m_initwf.o m_iodm_old.o m_mixing.o m_mixing_scf.o
1263siesta_forces.o: m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o m_pexsi.o1262siesta_forces.o: m_mpi_utils.o m_ncdf_siesta.o m_pexsi.o m_pexsi_driver.o
1264siesta_forces.o: m_pexsi_driver.o m_rhog.o m_spin.o m_steps.o m_stress.o1263siesta_forces.o: m_rhog.o m_spin.o m_steps.o m_stress.o m_transiesta.o
1265siesta_forces.o: m_transiesta.o m_ts_charge.o m_ts_electype.o1264siesta_forces.o: m_ts_charge.o m_ts_electype.o m_ts_global_vars.o m_ts_method.o
1266siesta_forces.o: m_ts_global_vars.o m_ts_method.o m_ts_options.o mixer.o1265siesta_forces.o: m_ts_options.o mixer.o parallel.o post_scf_work.o precision.o
1267siesta_forces.o: parallel.o post_scf_work.o precision.o save_density_matrix.o1266siesta_forces.o: save_density_matrix.o scfconvergence_test.o setup_H0.o
1268siesta_forces.o: scfconvergence_test.o setup_H0.o setup_hamiltonian.o1267siesta_forces.o: setup_hamiltonian.o siesta_cml.o siesta_dicts.o siesta_geom.o
1269siesta_forces.o: siesta_cml.o siesta_dicts.o siesta_geom.o siesta_master.o1268siesta_forces.o: siesta_master.o siesta_options.o sparse_matrices.o
1270siesta_forces.o: siesta_options.o sparse_matrices.o state_analysis.o1269siesta_forces.o: state_analysis.o state_init.o sys.o timer.o units.o
1271siesta_forces.o: state_init.o sys.o timer.o units.o write_subs.o1270siesta_forces.o: write_subs.o
1272siesta_geom.o: precision.o1271siesta_geom.o: precision.o
1273siesta_init.o: alloc.o atomlist.o bands.o bsc_xcmod.o1272siesta_init.o: alloc.o atomlist.o bands.o bsc_xcmod.o
1274siesta_init.o: class_Fstack_Pair_Geometry_SpData2D.o densematrix.o1273siesta_init.o: class_Fstack_Pair_Geometry_SpData2D.o densematrix.o
@@ -1280,7 +1279,7 @@
1280siesta_init.o: parallel.o parallelsubs.o projected_DOS.o siesta_cmlsubs.o1279siesta_init.o: parallel.o parallelsubs.o projected_DOS.o siesta_cmlsubs.o
1281siesta_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o1280siesta_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o
1282siesta_init.o: struct_init.o sys.o timer.o timestamp.o ts_init.o writewave.o1281siesta_init.o: struct_init.o sys.o timer.o timestamp.o ts_init.o writewave.o
1283siesta_init.o: zmatrix.o 1282siesta_init.o: zmatrix.o
1284siesta_master.o: iopipes.o iosockets.o precision.o sys.o1283siesta_master.o: iopipes.o iosockets.o precision.o sys.o
1285siesta_move.o: atomlist.o broyden_optim.o cell_broyden_optim.o1284siesta_move.o: atomlist.o broyden_optim.o cell_broyden_optim.o
1286siesta_move.o: cell_fire_optim.o dynamics.o fire_optim.o flook_siesta.o ioxv.o1285siesta_move.o: cell_fire_optim.o dynamics.o fire_optim.o flook_siesta.o ioxv.o
@@ -1292,10 +1291,10 @@
1292siesta_tddft.o: alloc.o atomlist.o compute_energies.o final_H_f_stress.o1291siesta_tddft.o: alloc.o atomlist.o compute_energies.o final_H_f_stress.o
1293siesta_tddft.o: kpoint_grid.o m_energies.o m_eo.o m_evolve.o m_gamma.o1292siesta_tddft.o: kpoint_grid.o m_energies.o m_eo.o m_evolve.o m_gamma.o
1294siesta_tddft.o: m_initwf.o m_iotddft.o m_mpi_utils.o m_spin.o m_steps.o1293siesta_tddft.o: m_initwf.o m_iotddft.o m_mpi_utils.o m_spin.o m_steps.o
1295siesta_tddft.o: overfsm.o parallel.o precision.o setup_H0.o setup_hamiltonian.o1294siesta_tddft.o: overfsm.o parallel.o precision.o sankey_change_basis.o
1296siesta_tddft.o: siesta_cml.o siesta_options.o sparse_matrices.o1295siesta_tddft.o: setup_H0.o setup_hamiltonian.o siesta_cml.o siesta_options.o
1297siesta_tddft.o: state_analysis.o state_init.o sys.o wavefunctions.o1296siesta_tddft.o: sparse_matrices.o state_analysis.o state_init.o sys.o
1298siesta_tddft.o: sankey_change_basis.o1297siesta_tddft.o: wavefunctions.o
1299sparse_matrices.o: alloc.o class_Fstack_Pair_Geometry_SpData2D.o1298sparse_matrices.o: alloc.o class_Fstack_Pair_Geometry_SpData2D.o
1300sparse_matrices.o: class_OrbitalDistribution.o class_SpData1D.o1299sparse_matrices.o: class_OrbitalDistribution.o class_SpData1D.o
1301sparse_matrices.o: class_SpData2D.o class_Sparsity.o precision.o1300sparse_matrices.o: class_SpData2D.o class_Sparsity.o precision.o
@@ -1311,19 +1310,19 @@
1311state_init.o: alloc.o atomlist.o class_Data2D.o class_SpData1D.o1310state_init.o: alloc.o atomlist.o class_Data2D.o class_SpData1D.o
1312state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o1311state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
1313state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o1312state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
1314state_init.o: ioxv.o kpoint_grid.o ldau_specs.o m_chess.o m_energies.o m_eo.o1313state_init.o: iotdxv.o ioxv.o kpoint_grid.o ldau_specs.o m_chess.o m_energies.o
1315state_init.o: m_gamma.o m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o1314state_init.o: m_eo.o m_gamma.o m_mixing.o m_mixing_scf.o m_mpi_utils.o
1316state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o1315state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
1317state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o1316state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
1318state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o1317state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
1319state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o1318state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
1320state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o1319state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
1321state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o1320state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
1322state_init.o: sys.o units.o write_subs.o zmatrix.o iotdxv.o1321state_init.o: sys.o units.o write_subs.o zmatrix.o
1323struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o1322struct_init.o: alloc.o atmfuncs.o atomlist.o files.o iotdxv.o ioxv.o
1324struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o1323struct_init.o: m_exp_coord.o m_iostruct.o m_mpi_utils.o m_steps.o parallel.o
1325struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o1324struct_init.o: periodic_table.o siesta_cml.o siesta_geom.o siesta_master.o
1326struct_init.o: units.o zmatrix.o iotdxv.o1325struct_init.o: siesta_options.o units.o zmatrix.o
1327sys.o: parallel.o siesta_cml.o1326sys.o: parallel.o siesta_cml.o
1328timer.o: extrae_eventllist.o extrae_module.o m_timer.o parallel.o sys.o1327timer.o: extrae_eventllist.o extrae_module.o m_timer.o parallel.o sys.o
1329timer.o: timer_tree.o1328timer.o: timer_tree.o
@@ -1343,8 +1342,8 @@
1343vmatsp.o: alloc.o atm_types.o atmfuncs.o atomlist.o listsc.o mesh.o meshdscf.o1342vmatsp.o: alloc.o atm_types.o atmfuncs.o atomlist.o listsc.o mesh.o meshdscf.o
1344vmatsp.o: meshphi.o precision.o1343vmatsp.o: meshphi.o precision.o
1345vmb.o: m_fixed.o parallel.o precision.o sys.o1344vmb.o: m_fixed.o parallel.o precision.o sys.o
1346wavefunctions.o: parallel.o precision.o sparse_matrices.o kpoint_grid.o1345wavefunctions.o: atomlist.o kpoint_grid.o m_gamma.o m_matswinvers.o m_spin.o
1347wavefunctions.o: atomlist.o m_spin.o m_matswinvers.o1346wavefunctions.o: parallel.o parallelsubs.o precision.o sparse_matrices.o
1348write_inp_wannier.o: alloc.o atmfuncs.o atomlist.o m_ntm.o m_orderbands.o1347write_inp_wannier.o: alloc.o atmfuncs.o atomlist.o m_ntm.o m_orderbands.o
1349write_inp_wannier.o: mneighb.o parallel.o parallelsubs.o precision.o1348write_inp_wannier.o: mneighb.o parallel.o parallelsubs.o precision.o
1350write_inp_wannier.o: siesta2wannier90.o siesta_geom.o1349write_inp_wannier.o: siesta2wannier90.o siesta_geom.o
@@ -1459,8 +1458,8 @@
1459m_grdsam.o: grdsam.o1458m_grdsam.o: grdsam.o
1460m_hsparse.o: hsparse.o1459m_hsparse.o: hsparse.o
1461m_intramol_pressure.o: remove_intramol_pressure.o1460m_intramol_pressure.o: remove_intramol_pressure.o
1461m_iotdxv.o: iotdxv.o
1462m_ioxv.o: ioxv.o1462m_ioxv.o: ioxv.o
1463m_iotdxv.o: iotdxv.o
1464m_kinefsm.o: kinefsm.o1463m_kinefsm.o: kinefsm.o
1465m_ksv.o: ksv.o1464m_ksv.o: ksv.o
1466m_ksvinit.o: ksvinit.o1465m_ksvinit.o: ksvinit.o
@@ -1489,6 +1488,7 @@
1489m_rhofft.o: rhofft.o1488m_rhofft.o: rhofft.o
1490m_rhoofd.o: rhoofd.o1489m_rhoofd.o: rhoofd.o
1491m_rusage.o: rusage.o1490m_rusage.o: rusage.o
1491m_sankey_change_basis.o: sankey_change_basis.o
1492m_save_density_matrix.o: save_density_matrix.o1492m_save_density_matrix.o: save_density_matrix.o
1493m_scf_options.o: m_options.o1493m_scf_options.o: m_options.o
1494m_scfconvergence_test.o: scfconvergence_test.o1494m_scfconvergence_test.o: scfconvergence_test.o
14951495
=== modified file 'Src/cranknic_evolg.F90'
--- Src/cranknic_evolg.F90 2017-10-03 13:27:08 +0000
+++ Src/cranknic_evolg.F90 2017-10-03 17:43:24 +0000
@@ -56,21 +56,22 @@
56 real(dp) :: delt56 real(dp) :: delt
57 !57 !
58 type(matrix) :: Hauxms,Sauxms, wfaux1, wfaux258 type(matrix) :: Hauxms,Sauxms, wfaux1, wfaux2
59 character(3) :: m_operation
60 character(5) :: m_storage
61 complex(dp) :: cvar1, cvar259 complex(dp) :: cvar1, cvar2
60
61#ifdef MPI
62 character(len=5), parameter :: m_storage = 'pzdbc'
63 character(len=3), parameter :: m_operation = 'lap'
64#else
65 character(len=5), parameter :: m_storage = 'szden'
66 character(len=5), parameter :: m_operation = 'lap'
67#endif
68
62 ! 69 !
63 integer :: i, j, io, jo, ie, ispin, ind, nocc 70 integer :: i, j, io, jo, ie, ispin, ind, nocc
64 !71 !
65 real(dp) :: eigv72 real(dp) :: eigv
66 logical, save :: firsttime = .true.73 logical, save :: firsttime = .true.
67#ifdef MPI74
68 m_storage='pzdbc'
69 m_operation='lap'
70#else
71 m_storage='szden'
72 m_operation='lap'
73#endif
74#ifdef DEBUG75#ifdef DEBUG
75 call write_debug( ' PRE cn_evolg' )76 call write_debug( ' PRE cn_evolg' )
76#endif77#endif
@@ -165,38 +166,46 @@
165!************************************************************************* 166!*************************************************************************
166 167
167 implicit none 168 implicit none
168 ! 169
169 integer :: no170 integer :: no
170 real(kind=dp) :: deltat171 real(kind=dp) :: deltat
171 type(matrix) :: H,S,phi172 type(matrix) :: H,S,phi
173
172 ! Internal variables 174 ! Internal variables
173 type(matrix) :: aux1,aux2,aux3,aux4175 type(matrix) :: LHS, RHS
174 complex(kind=dp) :: alpha176 complex(kind=dp) :: alpha
175 character :: m_storage*5, m_operation*3177
176 logical, save :: inversemm_linear = .true.178 complex(kind=dp), parameter :: cZERO = cmplx(0._dp, 0._dp, dp)
177 !179 complex(kind=dp), parameter :: cONE = cmplx(1._dp, 0._dp, dp)
180
178#ifdef MPI181#ifdef MPI
179 m_storage='pzdbc'182 character(len=5), parameter :: m_storage = 'pzdbc'
180 m_operation='lap'183 character(len=3), parameter :: m_operation = 'lap'
181#else184#else
182 m_storage='szden'185 character(len=5), parameter :: m_storage = 'szden'
183 m_operation='lap'186 character(len=5), parameter :: m_operation = 'lap'
184#endif187#endif
185 ! 188
186 call m_allocate(aux1,no,no,m_storage)189 logical, parameter :: inversemm_linear = .true.
187 call m_allocate(aux2,no,no,m_storage)190
188 call m_allocate(aux3,phi%dim1,phi%dim2,m_storage)
189 ! First order expansion for the evolution operator191 ! First order expansion for the evolution operator
190 alpha=-0.5_dp*cmplx(0.0_dp,1.0_dp,dp)*deltat192 alpha = -0.5_dp * cmplx(0.0_dp,1.0_dp,dp) * deltat
191 ! Copying S to aux1 and aux2193
192 call m_add(S,'n',aux1,cmplx(1.0_dp,0.0_dp,dp),cmplx(0.0_dp,0.0_dp,dp),m_operation)194 ! Allocate work arrays
193 call m_add(S,'n',aux2,cmplx(1.0_dp,0.0_dp,dp),cmplx(0.0_dp,0.0_dp,dp),m_operation)195 call m_allocate(LHS,no,no,m_storage)
194 ! Calculating S - alpha * H196 call m_allocate(RHS,phi%dim1,phi%dim2,m_storage)
195 call m_add(H,'n',aux1,alpha,cmplx(1.0_dp,0.0_dp,dp),m_operation)197
196 ! Calculating (S - alpha * H) * phi198 ! Setup S - alpha * H
197 call mm_multiply(aux1,'n',phi,'n',aux3,cmplx(1.0,0.0,dp),cmplx(0.0,0.0,dp),m_operation)199 call m_add(S, 'n', LHS, cone, cZERO, m_operation)
198 ! Calculating S + alpha * H 200 call m_add(H, 'n', LHS, alpha, cONE, m_operation)
199 call m_add(H,'n',aux2,-1.0_dp*alpha,cmplx(1.0_dp,0.0_dp,dp),m_operation)201
202 ! Calculate
203 ! (S - alpha * H) psi
204 call mm_multiply(LHS, 'n', phi, 'n', RHS, cONE, cZERO, m_operation)
205
206 ! Setup S + alpha * H
207 call m_add(S, 'n', LHS, cONE, cZERO, m_operation)
208 call m_add(H, 'n', LHS, -alpha, cONE, m_operation)
200209
201 !---------------------------------------------------------------------------------------!210 !---------------------------------------------------------------------------------------!
202 ! There are two ways to compute inverse. One is to first obtain211 ! There are two ways to compute inverse. One is to first obtain
@@ -209,23 +218,21 @@
209 ! hard-wired by the inversemm_linear flag, while keeping first one for testing218 ! hard-wired by the inversemm_linear flag, while keeping first one for testing
210 ! etc.219 ! etc.
211 !----------------------------------------------------------------------------------------!220 !----------------------------------------------------------------------------------------!
212221 if ( inversemm_linear ) then
213 if (inversemm_linear) then
214 ! Calculating (S + alpha * H)^-1 * (S - alpha * H) * phi 222 ! Calculating (S + alpha * H)^-1 * (S - alpha * H) * phi
215 call inversemm(aux2,aux3) 223 call inversemm(LHS, RHS)
216 ! Compying phi_evolved back to phi224 ! Copying phi_evolved back to phi
217 call m_add(aux3,'n',phi,cmplx(1.0_dp,0.0_dp,dp),cmplx(0.0_dp,0.0_dp,dp),m_operation)225 call m_add(RHS, 'n', phi, cONE, cZERO, m_operation)
218 else226 else
219 ! Calculating inverse of (S + alpha * H)227 ! Calculating inverse of (S + alpha * H)
220 call getinverse(aux2)228 call getinverse(LHS)
221 !(S + alpha * H)^-1 * (S - alpha * H) * phi 229 ! (S + alpha * H)^-1 * (S - alpha * H) * phi
222 call mm_multiply(aux2,'n',aux3,'n',phi,cmplx(1.0,0.0,dp),cmplx(0.0,0.0,dp),m_operation)230 call mm_multiply(LHS, 'n', RHS, 'n', phi, cONE, cZERO, m_operation)
223 endif231 endif
224 !232
225 call m_deallocate(aux1)233 call m_deallocate(LHS)
226 call m_deallocate(aux2)234 call m_deallocate(RHS)
227 call m_deallocate(aux3)235
228 !
229 END SUBROUTINE Uphi236 END SUBROUTINE Uphi
230 !------------------------------------------------------------------------------------!237 !------------------------------------------------------------------------------------!
231 SUBROUTINE evol1new(Hauxms, Sauxms, no, ispin, & 238 SUBROUTINE evol1new(Hauxms, Sauxms, no, ispin, &
@@ -259,8 +266,13 @@
259 !266 !
260 type(matrix),intent(in) :: Hauxms, Sauxms 267 type(matrix),intent(in) :: Hauxms, Sauxms
261 type(matrix),allocatable,save :: Hsve(:)268 type(matrix),allocatable,save :: Hsve(:)
262 character(5) :: m_storage269#ifdef MPI
263 character(3) :: m_operation270 character(len=5), parameter :: m_storage = 'pzdbc'
271 character(len=3), parameter :: m_operation = 'lap'
272#else
273 character(len=5), parameter :: m_storage = 'szden'
274 character(len=5), parameter :: m_operation = 'lap'
275#endif
264 logical :: extrapol276 logical :: extrapol
265 ! Internal variables ...277 ! Internal variables ...
266 integer :: i, l278 integer :: i, l
@@ -268,14 +280,7 @@
268 logical, save :: fsttim(2) = (/.true. , .true./)280 logical, save :: fsttim(2) = (/.true. , .true./)
269 logical, save :: frsttime = .true.281 logical, save :: frsttime = .true.
270 save :: deltat282 save :: deltat
271 !283
272#ifdef MPI
273 m_storage='pzdbc'
274 m_operation='lap'
275#else
276 m_storage='szden'
277 m_operation='lap'
278#endif
279 if (frsttime) then284 if (frsttime) then
280 !nstp is the number of "substeps" in the electronic evolution285 !nstp is the number of "substeps" in the electronic evolution
281 !the evolution operator is applied in each substep although286 !the evolution operator is applied in each substep although
@@ -283,10 +288,10 @@
283 !a SCF Hamiltonian288 !a SCF Hamiltonian
284 deltat=delt/0.04837769d0/dble(nstp)289 deltat=delt/0.04837769d0/dble(nstp)
285 if (Node.eq.0) then290 if (Node.eq.0) then
286 write(6,*) 'cn_evolg: TDED time step (fs) = ',delt291 write(6,'(/a,f16.6)') 'cn_evolg: TDED time step (fs) = ',delt
287 if (extrapol) then292 if (extrapol) then
288 write(6,*) 'cn_evolg: TDED time sub-step (fs) = ',delt/nstp293 write(6,'(a,f16.6)') 'cn_evolg: TDED time sub-step (fs) = ',delt/nstp
289 end if294 end if
290 end if295 end if
291 allocate(Hsve(nspin))296 allocate(Hsve(nspin))
292 do i=1, nspin297 do i=1, nspin
293298
=== modified file 'Src/cranknic_evolk.F90'
--- Src/cranknic_evolk.F90 2017-08-18 18:36:36 +0000
+++ Src/cranknic_evolk.F90 2017-10-03 17:43:24 +0000
@@ -43,21 +43,20 @@
4343
44 TYPE(matrix) :: Hauxms, Sauxms, wfaux1, wfaux244 TYPE(matrix) :: Hauxms, Sauxms, wfaux1, wfaux2
4545
46 CHARACTER(LEN=3) :: m_operation46#ifdef MPI
47 CHARACTER(LEN=5) :: m_storage47 character(len=5), parameter :: m_storage = 'pzdbc'
48 character(len=3), parameter :: m_operation = 'lap'
49#else
50 character(len=5), parameter :: m_storage = 'szden'
51 character(len=5), parameter :: m_operation = 'lap'
52#endif
4853
49 COMPLEX(dp) :: cvar1, cvar254 COMPLEX(dp) :: cvar1, cvar2
5055
51 REAL(dp) :: kxij, ckxij, skxij56 REAL(dp) :: kxij, ckxij, skxij
52 INTEGER :: ik, ispin, i, j, io, jo, ind, juo, nocc57 INTEGER :: ik, ispin, i, j, io, jo, ind, juo, nocc
53 LOGICAL, SAVE :: firstime = .true.58 LOGICAL, SAVE :: firstime = .true.
54#ifdef MPI59
55 m_storage = 'pzdbc'
56 m_operation = 'lap'
57#else
58 m_storage = 'szden'
59 m_operation = 'lap'
60#endif
61#ifdef DEBUG60#ifdef DEBUG
62 call write_debug( ' PRE cn_evolk' )61 call write_debug( ' PRE cn_evolk' )
63#endif62#endif
@@ -143,21 +142,19 @@
143 TYPE(matrix) :: Hauxms, Sauxms142 TYPE(matrix) :: Hauxms, Sauxms
144 INTEGER :: i, j, l, ik, ispin143 INTEGER :: i, j, l, ik, ispin
145 REAL(dp) :: delt, deltat, rvar1144 REAL(dp) :: delt, deltat, rvar1
146 CHARACTER(3) :: m_operation145#ifdef MPI
147 CHARACTER(5) :: m_storage146 character(len=5), parameter :: m_storage = 'pzdbc'
147 character(len=3), parameter :: m_operation = 'lap'
148#else
149 character(len=5), parameter :: m_storage = 'szden'
150 character(len=5), parameter :: m_operation = 'lap'
151#endif
148152
149 COMPLEX(dp) :: alpha153 COMPLEX(dp) :: alpha
150154
151 LOGICAL, SAVE :: firsttime = .true.155 LOGICAL, SAVE :: firsttime = .true.
152 LOGICAL, DIMENSION (:,:), ALLOCATABLE, SAVE :: firstimeK156 LOGICAL, DIMENSION (:,:), ALLOCATABLE, SAVE :: firstimeK
153#ifdef MPI157
154 m_storage = 'pzdbc'
155 m_operation = 'lap'
156#else
157 m_storage = 'szden'
158 m_operation = 'lap'
159#endif
160 !
161 IF(firsttime) THEN 158 IF(firsttime) THEN
162 deltat = delt/0.04837769d0/dble(ntded_sub)159 deltat = delt/0.04837769d0/dble(ntded_sub)
163 IF (IOnode) THEN160 IF (IOnode) THEN
164161
=== modified file 'Src/diag.F90'
--- Src/diag.F90 2017-08-07 10:57:47 +0000
+++ Src/diag.F90 2017-10-03 17:43:24 +0000
@@ -176,6 +176,9 @@
176 end subroutine diag_exit176 end subroutine diag_exit
177177
178 subroutine diag_descinit(N, NR, BlockSize, desc, iC)178 subroutine diag_descinit(N, NR, BlockSize, desc, iC)
179#ifdef MPI
180 use mpi_siesta, only: MPI_Comm_World
181#endif
179 integer, intent(in) :: N, NR, BlockSize182 integer, intent(in) :: N, NR, BlockSize
180 integer, intent(inout) :: desc(9)183 integer, intent(inout) :: desc(9)
181 integer, intent(in), optional :: iC184 integer, intent(in), optional :: iC
@@ -184,6 +187,7 @@
184 if ( present(iC) ) then187 if ( present(iC) ) then
185 call descinit(desc,N,N,BlockSize,BlockSize,0,0,iC,NR,ierr)188 call descinit(desc,N,N,BlockSize,BlockSize,0,0,iC,NR,ierr)
186 else189 else
190 if ( iCTXT < 0 ) iCTXT = MPI_Comm_World
187 call descinit(desc,N,N,BlockSize,BlockSize,0,0,iCTXT,NR,ierr)191 call descinit(desc,N,N,BlockSize,BlockSize,0,0,iCTXT,NR,ierr)
188 end if192 end if
189 if ( ierr /= 0 ) &193 if ( ierr /= 0 ) &
190194
=== modified file 'Src/m_initwf.F90'
--- Src/m_initwf.F90 2017-08-30 14:09:10 +0000
+++ Src/m_initwf.F90 2017-10-03 17:43:24 +0000
@@ -13,8 +13,6 @@
13 private13 private
14 !14 !
15 public :: initwf15 public :: initwf
16 !
17 integer :: ictxt
1816
19 CONTAINS17 CONTAINS
20 !18 !
@@ -127,7 +125,6 @@
127 if(ParallelOverk) then125 if(ParallelOverk) then
128 call die ('initwf: TDDFT is not parallelized over k-points.')126 call die ('initwf: TDDFT is not parallelized over k-points.')
129 end if127 end if
130 ictxt = MPI_Comm_World
131#endif128#endif
132! Read spin-spiral wavevector (if defined)129! Read spin-spiral wavevector (if defined)
133 call readsp( qspiral, spiral )130 call readsp( qspiral, spiral )
@@ -303,8 +300,8 @@
303 subroutine diaggiwf(nspin,nuo,maxuo,maxnh, maxo,Haux,Saux,psi, &300 subroutine diaggiwf(nspin,nuo,maxuo,maxnh, maxo,Haux,Saux,psi, &
304 nuotot,occup)301 nuotot,occup)
305#ifdef MPI302#ifdef MPI
306 use parallel, only : BlockSize,Node303 use parallel, only : BlockSize,Node
307 use m_diag, only: diag_descinit304 use m_diag, only: diag_descinit
308#endif305#endif
309 !306 !
310 implicit none307 implicit none
@@ -322,7 +319,7 @@
322#endif319#endif
323 !320 !
324#ifdef MPI321#ifdef MPI
325 call diag_descinit(nuotot,nuotot,BlockSize,desch,ictxt)322 call diag_descinit(nuotot,nuotot,BlockSize,desch)
326#endif323#endif
327 !324 !
328 indwf=0325 indwf=0
@@ -338,7 +335,7 @@
338 Haux(jo,io)=Haux(jo,io)+H(ind,ispin)335 Haux(jo,io)=Haux(jo,io)+H(ind,ispin)
339 end do336 end do
340 end do337 end do
341 call rdiag(Haux,Saux,nuotot,nuo,nuotot,eo,psi(1,1,ispin),nuotot,1,ierror)338 call rdiag(Haux,Saux,nuotot,nuo,nuotot,eo,psi(1,1,ispin),nuotot,1,ierror,BlockSize)
342 if (ierror .eq. 0) then339 if (ierror .eq. 0) then
343 exit340 exit
344 else if ((ierror .ne. -1) .or. (ie .eq. 10)) then341 else if ((ierror .ne. -1) .or. (ie .eq. 10)) then
@@ -388,7 +385,7 @@
388#endif385#endif
389 !386 !
390#ifdef MPI387#ifdef MPI
391 call diag_descinit(nuotot,nuotot,BlockSize,desch,ictxt)388 call diag_descinit(nuotot,nuotot,BlockSize,desch)
392#endif389#endif
393 !390 !
394 indwf=0391 indwf=0
@@ -426,10 +423,7 @@
426 indwf=indwf+1423 indwf=indwf+1
427 do j=1,nuotot424 do j=1,nuotot
428#ifdef MPI425#ifdef MPI
429 do iuo=1,2426 call pzelget('a',' ',element,psi(:,:,:),j,ie,desch)
430 call pdelget('a',' ',varaux(iuo),psi(iuo,:,:),j,ie,desch)
431 enddo
432 element=cmplx(varaux(1),varaux(2),dp)
433#else427#else
434 element=cmplx(psi(1,j,ie),psi(2,j,ie),dp)428 element=cmplx(psi(1,j,ie),psi(2,j,ie),dp)
435#endif429#endif
436430
=== modified file 'Src/m_inversemm.F90'
--- Src/m_inversemm.F90 2017-10-03 13:27:08 +0000
+++ Src/m_inversemm.F90 2017-10-03 17:43:24 +0000
@@ -20,7 +20,7 @@
20IMPLICIT NONE20IMPLICIT NONE
21!**************** INPUT ***********************************!21!**************** INPUT ***********************************!
22!22!
23TYPE(matrix), INTENT(IN) :: C 23TYPE(matrix), INTENT(INOUT) :: C
24! C: Matrix to be inverted before multiplication with D.24! C: Matrix to be inverted before multiplication with D.
25!25!
26!**************** INOUT ***********************************!26!**************** INOUT ***********************************!
@@ -42,15 +42,13 @@
42 ALLOCATE(ipiv(C%iaux1(3)+C%iaux1(5)))42 ALLOCATE(ipiv(C%iaux1(3)+C%iaux1(5)))
43 CALL pzgesv(C%dim1,D%dim2,C%zval,1,1,C%iaux1,ipiv,D%zval,1,1,D%iaux1,info)43 CALL pzgesv(C%dim1,D%dim2,C%zval,1,1,C%iaux1,ipiv,D%zval,1,1,D%iaux1,info)
44 IF (info .NE. 0) CALL die('ERROR: error in pzgesv')44 IF (info .NE. 0) CALL die('ERROR: error in pzgesv')
45 DEALLOCATE(ipiv)
46 !
47#else45#else
48 !
49 ALLOCATE(ipiv(C%dim1))46 ALLOCATE(ipiv(C%dim1))
50 CALL zgesv(C%dim1,D%dim2,C%zval,C%dim1,ipiv,D%zval,D%dim1,info)47 CALL zgesv(C%dim1,D%dim2,C%zval,C%dim1,ipiv,D%zval,D%dim1,info)
51 IF (info .NE. 0) CALL die('ERROR: error in zgsesv')48 IF (info .NE. 0) CALL die('ERROR: error in zgsesv')
49#endif
50
52 DEALLOCATE(ipiv)51 DEALLOCATE(ipiv)
53#endif
54!52!
55END SUBROUTINE inversemm 53END SUBROUTINE inversemm
56!54!
5755
=== modified file 'version.info'
--- version.info 2017-10-03 13:27:08 +0000
+++ version.info 2017-10-03 17:43:24 +0000
@@ -1,1 +1,1 @@
1trunk-611-tddft02-401trunk-611-tddft02-40--np-1

Subscribers

People subscribed via source and target branches

to all changes: