ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
ao_to_mo.h
Go to the documentation of this file.
1#pragma once
2#include <ATen/core/tensor.h>
3#include "source_psi/psi.h"
4#include <vector>
5#ifdef __MPI
7#endif
8namespace LR
9{
10#ifndef MO_TYPE_H
11#define MO_TYPE_H
12 enum MO_TYPE { OO, VO, VV };
13#endif
14 template<typename T>
16 const std::vector<container::Tensor>& mat_ao,
17 const psi::Psi<T>& coeff,
18 const int& nocc,
19 const int& nvirt,
20 T* const mat_mo,
21 const MO_TYPE type = VO);
22 template<typename T>
24 const std::vector<container::Tensor>& mat_ao,
25 const psi::Psi<T>& coeff,
26 const int& nocc,
27 const int& nvirt,
28 T* const mat_mo,
29 const bool add_on = true,
30 const MO_TYPE type = VO);
31#ifdef __MPI
32 template<typename T>
34 const std::vector<container::Tensor>& mat_ao,
35 const Parallel_2D& pmat_ao,
36 const psi::Psi<T>& coeff,
37 const Parallel_2D& pcoeff,
38 const int& naos,
39 const int& nocc,
40 const int& nvirt,
41 const Parallel_2D& pmat_mo,
42 T* const mat_mo,
43 const bool add_on = true,
44 const MO_TYPE type = VO);
45#endif
46}
This class packs the basic information of 2D-block-cyclic parallel distribution of an arbitrary matri...
Definition parallel_2d.h:12
Definition psi.h:37
#define T
Definition exp.cpp:237
Definition esolver_ks_lcao.h:37
void ao_to_mo_forloop_serial(const std::vector< container::Tensor > &mat_ao, const psi::Psi< T > &coeff, const int &nocc, const int &nvirt, T *const mat_mo, const MO_TYPE type=VO)
void ao_to_mo_blas(const std::vector< container::Tensor > &mat_ao, const psi::Psi< T > &coeff, const int &nocc, const int &nvirt, T *const mat_mo, const bool add_on=true, const MO_TYPE type=VO)
MO_TYPE
Definition ao_to_mo.h:12
@ OO
Definition ao_to_mo.h:12
@ VO
Definition ao_to_mo.h:12
@ VV
Definition ao_to_mo.h:12
void ao_to_mo_pblas(const std::vector< container::Tensor > &mat_ao, const Parallel_2D &pmat_ao, const psi::Psi< T > &coeff, const Parallel_2D &pcoeff, const int &naos, const int &nocc, const int &nvirt, const Parallel_2D &pmat_mo, T *const mat_mo, const bool add_on=true, const MO_TYPE type=VO)