mirror of https://github.com/QMCPACK/qmcpack.git
Merge pull request #4251 from correaa/update_multi_deprecate_size3
remove auxiliary Sizes function
This commit is contained in:
commit
5f5b608847
|
@ -1126,8 +1126,8 @@ public:
|
|||
void vHS(MatA& Xw, MatB&& v, double a = 1., double c = 0.)
|
||||
{
|
||||
int nkpts = nopk.size();
|
||||
int nwalk = Xw.size(1);
|
||||
assert(v.size(0) == nwalk);
|
||||
int nwalk = std::get<1>(Xw.sizes());
|
||||
assert(v.size() == nwalk);
|
||||
int nspin = (walker_type == COLLINEAR ? 2 : 1);
|
||||
int nmo_tot = std::accumulate(nopk.begin(), nopk.end(), 0);
|
||||
int nmo_max = *std::max_element(nopk.begin(), nopk.end());
|
||||
|
@ -1139,7 +1139,7 @@ public:
|
|||
SPComplexType halfa(0.5 * a, 0.0);
|
||||
size_t local_memory_needs = nmo_max * nmo_max * nwalk;
|
||||
if (TMats.num_elements() < local_memory_needs)
|
||||
TMats.reextent({local_memory_needs, 1});
|
||||
TMats.reextent({static_cast<ptrdiff_t>(local_memory_needs), 1});
|
||||
|
||||
using vType = typename std::decay<MatB>::type::element;
|
||||
boost::multi::array_ref<vType, 3> v3D(to_address(v.origin()), {nwalk, nmo_tot, nmo_tot});
|
||||
|
|
|
@ -434,16 +434,6 @@ void NOMSD<devPsiT>::MixedDensityMatrix_for_E_from_SM(const MatSM& SM,
|
|||
TG.local_barrier();
|
||||
}
|
||||
|
||||
template<class T, class... As>
|
||||
auto Sizes(boost::multi::array<T, 2, As...> const& m)
|
||||
->decltype(m.sizes()) {
|
||||
return m.sizes(); }
|
||||
|
||||
template<class Matrix>
|
||||
auto Sizes(Matrix const& m)
|
||||
->decltype(std::array<long, 2>{static_cast<long>(std::get<0>(m.sizes())), static_cast<long>(std::get<1>(m.sizes()))}) {
|
||||
return std::array<long, 2>{static_cast<long>(std::get<0>(m.sizes())), static_cast<long>(std::get<1>(m.sizes()))}; }
|
||||
|
||||
/*
|
||||
* Computes the density matrix for a given reference.
|
||||
* G and Ov are expected to be in shared memory.
|
||||
|
@ -480,9 +470,9 @@ void NOMSD<devPsiT>::DensityMatrix_shared(const WlkSet& wset,
|
|||
if (walker_type != COLLINEAR)
|
||||
{
|
||||
if (herm) {
|
||||
assert(std::get<0>(Sizes(RefA)) == dm_dims(false, Alpha).first && std::get<1>(Sizes(RefA)) == dm_dims(false, Alpha).second);
|
||||
assert(std::get<0>(RefA.sizes()) == dm_dims(false, Alpha).first && std::get<1>(RefA.sizes()) == dm_dims(false, Alpha).second);
|
||||
} else {
|
||||
assert(std::get<1>(Sizes(RefA)) == dm_dims(false, Alpha).first && std::get<0>(Sizes(RefA)) == dm_dims(false, Alpha).second);
|
||||
assert(std::get<1>(RefA.sizes()) == dm_dims(false, Alpha).first && std::get<0>(RefA.sizes()) == dm_dims(false, Alpha).second);
|
||||
}
|
||||
|
||||
auto Gdims = dm_dims(not compact, Alpha);
|
||||
|
@ -507,14 +497,14 @@ void NOMSD<devPsiT>::DensityMatrix_shared(const WlkSet& wset,
|
|||
else
|
||||
{
|
||||
if (herm) {
|
||||
assert(std::get<0>(Sizes(RefA)) == dm_dims(false, Alpha).first && std::get<1>(Sizes(RefA)) == dm_dims(false, Alpha).second);
|
||||
assert(std::get<0>(RefA.sizes()) == dm_dims(false, Alpha).first && std::get<1>(RefA.sizes()) == dm_dims(false, Alpha).second);
|
||||
} else {
|
||||
assert(std::get<1>(Sizes(RefA)) == dm_dims(false, Alpha).first && std::get<0>(Sizes(RefA)) == dm_dims(false, Alpha).second);
|
||||
assert(std::get<1>(RefA.sizes()) == dm_dims(false, Alpha).first && std::get<0>(RefA.sizes()) == dm_dims(false, Alpha).second);
|
||||
}
|
||||
if (herm) {
|
||||
assert(std::get<0>(Sizes(RefB)) == dm_dims(false, Beta).first && std::get<1>(Sizes(RefB)) == dm_dims(false, Beta).second);
|
||||
assert(std::get<0>(RefB.sizes()) == dm_dims(false, Beta).first && std::get<1>(RefB.sizes()) == dm_dims(false, Beta).second);
|
||||
} else {
|
||||
assert(std::get<1>(Sizes(RefB)) == dm_dims(false, Beta).first && std::get<0>(Sizes(RefB)) == dm_dims(false, Beta).second);
|
||||
assert(std::get<1>(RefB.sizes()) == dm_dims(false, Beta).first && std::get<0>(RefB.sizes()) == dm_dims(false, Beta).second);
|
||||
}
|
||||
StaticVector ovlp2(iextensions<1u>{2 * nw}, buffer_manager.get_generator().template get_allocator<ComplexType>());
|
||||
fill_n(ovlp2.origin(), 2 * nw, ComplexType(0.0));
|
||||
|
@ -618,9 +608,9 @@ void NOMSD<devPsiT>::DensityMatrix_batched(const WlkSet& wset,
|
|||
if (walker_type != COLLINEAR)
|
||||
{
|
||||
if (herm) {
|
||||
assert(std::get<0>(Sizes(RefA)) == dm_dims(false, Alpha).first && std::get<1>(Sizes(RefA)) == dm_dims(false, Alpha).second);
|
||||
assert(std::get<0>(RefA.sizes()) == dm_dims(false, Alpha).first && std::get<1>(RefA.sizes()) == dm_dims(false, Alpha).second);
|
||||
} else {
|
||||
assert(std::get<1>(Sizes(RefA)) == dm_dims(false, Alpha).first && std::get<0>(Sizes(RefA)) == dm_dims(false, Alpha).second);
|
||||
assert(std::get<1>(RefA.sizes()) == dm_dims(false, Alpha).first && std::get<0>(RefA.sizes()) == dm_dims(false, Alpha).second);
|
||||
}
|
||||
Static3Tensor G3D_({nbatch__, GAdims.first, GAdims.second},
|
||||
buffer_manager.get_generator().template get_allocator<ComplexType>());
|
||||
|
@ -658,14 +648,14 @@ void NOMSD<devPsiT>::DensityMatrix_batched(const WlkSet& wset,
|
|||
else
|
||||
{
|
||||
if (herm) {
|
||||
assert(std::get<0>(Sizes(RefA)) == dm_dims(false, Alpha).first && std::get<1>(Sizes(RefA)) == dm_dims(false, Alpha).second);
|
||||
assert(std::get<0>(RefA.sizes()) == dm_dims(false, Alpha).first && std::get<1>(RefA.sizes()) == dm_dims(false, Alpha).second);
|
||||
} else {
|
||||
assert(std::get<1>(Sizes(RefA)) == dm_dims(false, Alpha).first && std::get<0>(Sizes(RefA)) == dm_dims(false, Alpha).second);
|
||||
assert(std::get<1>(RefA.sizes()) == dm_dims(false, Alpha).first && std::get<0>(RefA.sizes()) == dm_dims(false, Alpha).second);
|
||||
}
|
||||
if (herm) {
|
||||
assert(std::get<0>(Sizes(RefB)) == dm_dims(false, Beta).first && std::get<1>(Sizes(RefB)) == dm_dims(false, Beta).second);
|
||||
assert(std::get<0>(RefB.sizes()) == dm_dims(false, Beta).first && std::get<1>(RefB.sizes()) == dm_dims(false, Beta).second);
|
||||
} else {
|
||||
assert(std::get<1>(Sizes(RefB)) == dm_dims(false, Beta).first && std::get<0>(Sizes(RefB)) == dm_dims(false, Beta).second);
|
||||
assert(std::get<1>(RefB.sizes()) == dm_dims(false, Beta).first && std::get<0>(RefB.sizes()) == dm_dims(false, Beta).second);
|
||||
}
|
||||
|
||||
auto GBdims = dm_dims(not compact, Beta);
|
||||
|
|
Loading…
Reference in New Issue