12#include <RI/global/Array_Operator.h>
13#include <RI/global/Global_Func-2.h>
14#include <RI/global/Tensor.h>
23 inline extern std::array<int,3>
26 template<
typename Tcell,
size_t Ndim>
27 extern std::vector<std::array<Tcell,Ndim>>
30 template<
typename Tcell>
31 inline std::array<Tcell,3>
34 return std::array<Tcell,3> {v.
x, v.
y, v.
z};
36 template<
typename Tcell>
43 template<
typename Tdata,
typename Tmatrix>
47 RI::Tensor<Tdata> m_new({
static_cast<size_t>(m_old.nr),
static_cast<size_t>(m_old.nc)});
48 for(
int ir=0; ir<m_old.nr; ++ir)
49 for(
int ic=0; ic<m_old.nc; ++ic)
50 m_new(ir,ic) = RI::Global_Func::convert<Tdata>(m_old(ir,ic));
54 template<
typename Tdata>
58 assert(nr * nc == m_old.size());
59 RI::Tensor<Tdata> m_new({
static_cast<size_t>(nr),
static_cast<size_t>(nc) });
60 for (
int ir = 0; ir < nr; ++ir)
61 for (
int ic = 0; ic < nc; ++ic)
62 m_new(ir, ic) = RI::Global_Func::convert<Tdata>(m_old[ir * nc + ic]);
66 std::map<Conv_Coulomb_Pot_K::Coulomb_Type, std::vector<std::map<std::string,std::string>>>
75 std::vector<std::map<std::string,std::string>>>>>
3 elements vector
Definition vector3.h:22
T x
Definition vector3.h:24
T y
Definition vector3.h:25
T z
Definition vector3.h:26
Coulomb_Type
Definition conv_coulomb_pot_k.h:10
Coulomb_Method
Definition conv_coulomb_pot_k.h:16
std::array< Tcell, 3 > Vector3_to_array3(const ModuleBase::Vector3< Tcell > &v)
Definition RI_Util.h:32
RI::Tensor< Tdata > Vector_to_Tensor(const std::vector< Tdata > &m_old, const int nr, const int nc)
Definition RI_Util.h:56
std::array< int, 3 > get_Born_vonKarmen_period(const K_Vectors &kv)
Definition RI_Util.hpp:16
RI::Tensor< Tdata > Matrix_to_Tensor(const Tmatrix &m_old)
Definition RI_Util.h:45
std::map< Conv_Coulomb_Pot_K::Coulomb_Type, std::vector< std::map< std::string, std::string > > > update_coulomb_param(const std::map< Conv_Coulomb_Pot_K::Coulomb_Type, std::vector< std::map< std::string, std::string > > > &coulomb_param, const UnitCell &ucell, const K_Vectors *p_kv)
Definition RI_Util.hpp:71
std::map< Conv_Coulomb_Pot_K::Coulomb_Method, std::pair< bool, std::map< Conv_Coulomb_Pot_K::Coulomb_Type, std::vector< std::map< std::string, std::string > > > > > update_coulomb_settings(const std::map< Conv_Coulomb_Pot_K::Coulomb_Type, std::vector< std::map< std::string, std::string > > > &coulomb_param, const UnitCell &ucell, const K_Vectors *p_kv)
Definition RI_Util.hpp:105
std::vector< std::array< Tcell, Ndim > > get_Born_von_Karmen_cells(const std::array< Tcell, Ndim > &Born_von_Karman_period)
Definition RI_Util.hpp:34
ModuleBase::Vector3< Tcell > array3_to_Vector3(const std::array< Tcell, 3 > &v)
Definition RI_Util.h:38