...

source: qs_fb_filter_matrix_methods.FLoading...

SUBROUTINE

fb_fltrmat_build (h_mat, s_mat, atomic_halos, trial_fns, para_env, particle_set, fermi_level, filter_temp, name, filter_mat, tolerance)Build the filter matrix, with MPI communications happening at each step. Less efficient on communication, but more efficient on memory usage (compared to fb_fltrmat_build_2)

SUBROUTINE

fb_fltrmat_build_2 (h_mat, s_mat, atomic_halos, trial_fns, para_env, particle_set, fermi_level, filter_temp, name, filter_mat, tolerance)Build the filter matrix, with MPI communications grouped together. More effcient on communication, less efficient on memory (compared to fb_fltrmat_build)

Build the filter matrix, with MPI communications happening at each step. Less efficient on communication, but more efficient on memory usage (compared to fb_fltrmat_build_2)

TYPE(dbcsr_type), |
POINTER |
:: | h_mat | DBCSR system KS matrix | |

TYPE(dbcsr_type), |
POINTER |
:: | s_mat | DBCSR system overlap matrix | |

TYPE(fb_atomic_halo_list_obj), |
INTENT(in) |
:: | atomic_halos | list of all local atomic halos, each halo gives one atomic matrix and contributes to one blk col to the filter matrix | |

TYPE(fb_trial_fns_obj), |
INTENT(in) |
:: | trial_fns | the trial functions to be used to shrink the size of the new "filtered" basis | |

TYPE(cp_para_env_type), |
POINTER |
:: | para_env | cp2k parallel environment | |

TYPE(particle_type), |
POINTER |
:: | particle_set(:) | set of all particles in the system | |

REAL(dp), |
INTENT(in) |
:: | fermi_level | the fermi level used for defining the filter function, which is a Fermi-Dirac distribution function | |

REAL(dp), |
INTENT(in) |
:: | filter_temp | the filter temperature used for defining the filter function | |

CHARACTER(*), |
INTENT(in) |
:: | name | name given to the filter matrix | |

TYPE(dbcsr_type), |
POINTER |
:: | filter_mat | DBCSR format filter matrix | |

REAL(dp), |
INTENT(in) |
:: | tolerance | anything less than tolerance is treated as zero |

Build the filter matrix, with MPI communications grouped together. More effcient on communication, less efficient on memory (compared to fb_fltrmat_build)

TYPE(dbcsr_type), |
POINTER |
:: | h_mat | DBCSR system KS matrix | |

TYPE(dbcsr_type), |
POINTER |
:: | s_mat | DBCSR system overlap matrix | |

TYPE(fb_atomic_halo_list_obj), |
INTENT(in) |
:: | atomic_halos | list of all local atomic halos, each halo gives one atomic matrix and contributes to one blk col to the filter matrix | |

TYPE(fb_trial_fns_obj), |
INTENT(in) |
:: | trial_fns | the trial functions to be used to shrink the size of the new "filtered" basis | |

TYPE(cp_para_env_type), |
POINTER |
:: | para_env | cp2k parallel environment | |

TYPE(particle_type), |
POINTER |
:: | particle_set(:) | set of all particles in the system | |

REAL(dp), |
INTENT(in) |
:: | fermi_level | the fermi level used for defining the filter function, which is a Fermi-Dirac distribution function | |

REAL(dp), |
INTENT(in) |
:: | filter_temp | the filter temperature used for defining the filter function | |

CHARACTER(*), |
INTENT(in) |
:: | name | name given to the filter matrix | |

TYPE(dbcsr_type), |
POINTER |
:: | filter_mat | DBCSR format filter matrix | |

REAL(dp), |
INTENT(in) |
:: | tolerance | anything less than tolerance is treated as zero |