QMCPACK
TWFGrads.cpp
Go to the documentation of this file.
1 //////////////////////////////////////////////////////////////////////////////////////
2 // This file is distributed under the University of Illinois/NCSA Open Source License.
3 // See LICENSE file in top directory for details.
4 //
5 // Copyright (c) 2022 QMCPACK developers.
6 //
7 // File developed by: Cody A. Melton, cmelton@sandia.gov, Sandia National Laboratories
8 //
9 // File created by: Cody A. Melton, cmelton@sandia.gov, Sandia National Laboratories
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 #include "TWFGrads.hpp"
13 #include <algorithm>
14 
15 namespace qmcplusplus
16 {
17 TWFGrads<CoordsType::POS>::TWFGrads(const std::size_t size) : grads_positions(size) {}
18 
20 {
21  assert(grads_positions.size() == rhs.grads_positions.size());
22  std::transform(grads_positions.begin(), grads_positions.end(), rhs.grads_positions.begin(), grads_positions.begin(),
23  [](const QMCTraits::GradType& x, const QMCTraits::GradType& y) { return x + y; });
24  return *this;
25 }
26 
27 TWFGrads<CoordsType::POS_SPIN>::TWFGrads(const std::size_t size) : grads_positions(size), grads_spins(size) {}
28 
30 {
31  assert(grads_positions.size() == rhs.grads_positions.size());
32  std::transform(grads_positions.begin(), grads_positions.end(), rhs.grads_positions.begin(), grads_positions.begin(),
33  [](const QMCTraits::GradType& x, const QMCTraits::GradType& y) { return x + y; });
34  std::transform(grads_spins.begin(), grads_spins.end(), rhs.grads_spins.begin(), grads_spins.begin(),
35  [](const QMCTraits::ComplexType& x, const QMCTraits::ComplexType& y) { return x + y; });
36  return *this;
37 }
38 
39 template struct TWFGrads<CoordsType::POS>;
40 template struct TWFGrads<CoordsType::POS_SPIN>;
41 } // namespace qmcplusplus
Fixed-size array.
Definition: OhmmsTinyMeta.h:30
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
QTBase::ComplexType ComplexType
Definition: Configuration.h:59
std::vector< QMCTraits::GradType > grads_positions
Definition: TWFGrads.hpp:31
std::vector< QMCTraits::GradType > grads_positions
Definition: TWFGrads.hpp:41
cMat3 & operator+=(cMat3 &A, const cMat3 &B)
Definition: Blitz.h:438
std::vector< QMCTraits::ComplexType > grads_spins
Definition: TWFGrads.hpp:42