![]() |
QMCPACK
|
Introduced to handle virtual moves and ratio computations, e.g. More...
Classes | |
struct | MultiWalkerMem |
multi walker shared memory buffer More... | |
Public Member Functions | |
RealSpacePositionsOMPTarget () | |
RealSpacePositionsOMPTarget (const RealSpacePositionsOMPTarget &in) | |
std::unique_ptr< DynamicCoordinates > | makeClone () override |
void | resize (size_t n) override |
resize internal storages based on the number of particles More... | |
size_t | size () const override |
return the number of particles More... | |
void | setAllParticlePos (const ParticlePos &R) override |
overwrite the positions of all the particles. More... | |
void | setOneParticlePos (const PosType &pos, size_t iat) override |
overwrite the position of one the particle. More... | |
void | mw_copyActivePos (const RefVectorWithLeader< DynamicCoordinates > &coords_list, size_t iat, const std::vector< PosType > &new_positions) const override |
copy the active positions of particles with a uniform id in all the walkers to a single internal buffer. More... | |
void | mw_acceptParticlePos (const RefVectorWithLeader< DynamicCoordinates > &coords_list, size_t iat, const std::vector< PosType > &new_positions, const std::vector< bool > &isAccepted) const override |
overwrite the positions of particles with a uniform id in all the walkers upon acceptance. More... | |
const PosVectorSoa & | getAllParticlePos () const override |
all particle position accessor More... | |
PosType | getOneParticlePos (size_t iat) const override |
one particle position accessor More... | |
void | donePbyP () override |
secure internal data consistency after p-by-p moves More... | |
const RealType * | getDevicePtr () const |
const auto & | getFusedNewPosBuffer () const |
void | createResource (ResourceCollection &collection) const override |
initialize a shared resource and hand it to a collection More... | |
void | acquireResource (ResourceCollection &collection, const RefVectorWithLeader< DynamicCoordinates > &coords_list) const override |
acquire a shared resource from a collection More... | |
void | releaseResource (ResourceCollection &collection, const RefVectorWithLeader< DynamicCoordinates > &coords_list) const override |
return a shared resource to a collection More... | |
const auto & | getMultiWalkerRSoADevicePtrs () const |
![]() | |
DynamicCoordinates (const DynamicCoordinateKind kind_in) | |
DynamicCoordinates (const DynamicCoordinates &)=default | |
DynamicCoordinates & | operator= (const DynamicCoordinates &)=delete |
DynamicCoordinateKind | getKind () const |
virtual | ~DynamicCoordinates ()=default |
Private Member Functions | |
void | updateH2D () |
Private Attributes | |
VectorSoaContainer< RealType, QMCTraits::DIM, OMPallocator< RealType, PinnedAlignedAllocator< RealType > > > | RSoA |
particle positions in SoA layout More... | |
ResourceHandle< MultiWalkerMem > | mw_mem_handle_ |
PosVectorSoa | RSoA_hostview |
host view of RSoA More... | |
bool | is_host_position_changed_ |
if true, host position has been changed while the device copy has not been updated. More... | |
bool | is_nw_new_pos_prepared |
if true, mw_new_pos has been updated with active positions. More... | |
Additional Inherited Members | |
![]() | |
using | RealType = QMCTraits::RealType |
using | PosType = QMCTraits::PosType |
using | ParticlePos = PtclOnLatticeTraits::ParticlePos |
using | PosVectorSoa = VectorSoaContainer< RealType, QMCTraits::DIM > |
![]() | |
const DynamicCoordinateKind | variable_kind_ |
type of dynamic coordinates More... | |
Introduced to handle virtual moves and ratio computations, e.g.
for non-local PP evaluations.
Definition at line 29 of file RealSpacePositionsOMPTarget.h.
|
inline |
Definition at line 32 of file RealSpacePositionsOMPTarget.h.
|
inline |
Definition at line 35 of file RealSpacePositionsOMPTarget.h.
References VectorSoaContainer< T, D, Alloc >::attachReference(), RealSpacePositionsOMPTarget::RSoA, RealSpacePositionsOMPTarget::RSoA_hostview, and RealSpacePositionsOMPTarget::updateH2D().
|
inlineoverridevirtual |
acquire a shared resource from a collection
Reimplemented from DynamicCoordinates.
Definition at line 184 of file RealSpacePositionsOMPTarget.h.
References RefVectorWithLeader< T >::getCastedElement(), RefVectorWithLeader< T >::getCastedLeader(), ResourceCollection::lendResource(), RealSpacePositionsOMPTarget::mw_mem_handle_, RealSpacePositionsOMPTarget::MultiWalkerMem::mw_rsoa_ptrs, and RealSpacePositionsOMPTarget::RSoA.
|
inlineoverridevirtual |
initialize a shared resource and hand it to a collection
Reimplemented from DynamicCoordinates.
Definition at line 179 of file RealSpacePositionsOMPTarget.h.
References ResourceCollection::addResource().
|
inlineoverridevirtual |
secure internal data consistency after p-by-p moves
Reimplemented from DynamicCoordinates.
Definition at line 165 of file RealSpacePositionsOMPTarget.h.
References RealSpacePositionsOMPTarget::is_host_position_changed_, RealSpacePositionsOMPTarget::is_nw_new_pos_prepared, and RealSpacePositionsOMPTarget::updateH2D().
|
inlineoverridevirtual |
all particle position accessor
Implements DynamicCoordinates.
Definition at line 162 of file RealSpacePositionsOMPTarget.h.
References RealSpacePositionsOMPTarget::RSoA_hostview.
|
inline |
Definition at line 175 of file RealSpacePositionsOMPTarget.h.
References RealSpacePositionsOMPTarget::RSoA.
|
inline |
Definition at line 177 of file RealSpacePositionsOMPTarget.h.
References RealSpacePositionsOMPTarget::mw_mem_handle_.
|
inline |
Definition at line 207 of file RealSpacePositionsOMPTarget.h.
References RealSpacePositionsOMPTarget::mw_mem_handle_.
Referenced by SoaDistanceTableAAOMPTarget< T, D, SC >::mw_evalDistsInRange(), and StructFact::mw_updateAllPart().
|
inlineoverridevirtual |
one particle position accessor
Implements DynamicCoordinates.
Definition at line 163 of file RealSpacePositionsOMPTarget.h.
References RealSpacePositionsOMPTarget::RSoA_hostview.
|
inlineoverridevirtual |
Implements DynamicCoordinates.
Definition at line 42 of file RealSpacePositionsOMPTarget.h.
|
inlineoverridevirtual |
overwrite the positions of particles with a uniform id in all the walkers upon acceptance.
coords_list | a batch of DynamicCoordinates |
iat | paricle id, uniform across coords_list |
new_positions | proposed positions |
isAccepted | accept/reject info |
Implements DynamicCoordinates.
Definition at line 106 of file RealSpacePositionsOMPTarget.h.
References qmcplusplus::app_warning(), VectorSoaContainer< T, D, Alloc >::data(), QMCTraits::DIM, RefVectorWithLeader< T >::getCastedElement(), RefVectorWithLeader< T >::getCastedLeader(), RefVectorWithLeader< T >::getLeader(), RealSpacePositionsOMPTarget::is_nw_new_pos_prepared, RealSpacePositionsOMPTarget::mw_copyActivePos(), RealSpacePositionsOMPTarget::MultiWalkerMem::mw_new_pos, RealSpacePositionsOMPTarget::RSoA, and RealSpacePositionsOMPTarget::RSoA_hostview.
|
inlineoverridevirtual |
copy the active positions of particles with a uniform id in all the walkers to a single internal buffer.
coords_list | a batch of DynamicCoordinates |
iat | paricle id, uniform across coords_list |
new_positions | proposed positions |
Reimplemented from DynamicCoordinates.
Definition at line 86 of file RealSpacePositionsOMPTarget.h.
References RefVectorWithLeader< T >::getCastedLeader(), and RefVectorWithLeader< T >::getLeader().
Referenced by RealSpacePositionsOMPTarget::mw_acceptParticlePos().
|
inlineoverridevirtual |
return a shared resource to a collection
Reimplemented from DynamicCoordinates.
Definition at line 201 of file RealSpacePositionsOMPTarget.h.
References RefVectorWithLeader< T >::getCastedLeader(), RealSpacePositionsOMPTarget::mw_mem_handle_, and ResourceCollection::takebackResource().
|
inlineoverridevirtual |
resize internal storages based on the number of particles
n | the number of particles |
Implements DynamicCoordinates.
Definition at line 47 of file RealSpacePositionsOMPTarget.h.
References VectorSoaContainer< T, D, Alloc >::attachReference(), qmcplusplus::n, RealSpacePositionsOMPTarget::RSoA, and RealSpacePositionsOMPTarget::RSoA_hostview.
Referenced by RealSpacePositionsOMPTarget::setAllParticlePos().
|
inlineoverridevirtual |
overwrite the positions of all the particles.
Implements DynamicCoordinates.
Definition at line 58 of file RealSpacePositionsOMPTarget.h.
References VectorSoaContainer< T, D, Alloc >::copyIn(), RealSpacePositionsOMPTarget::is_nw_new_pos_prepared, RealSpacePositionsOMPTarget::resize(), RealSpacePositionsOMPTarget::RSoA_hostview, Vector< T, Alloc >::size(), and RealSpacePositionsOMPTarget::updateH2D().
|
inlineoverridevirtual |
overwrite the position of one the particle.
Implements DynamicCoordinates.
Definition at line 66 of file RealSpacePositionsOMPTarget.h.
References RealSpacePositionsOMPTarget::is_host_position_changed_, and RealSpacePositionsOMPTarget::RSoA_hostview.
|
inlineoverridevirtual |
return the number of particles
Implements DynamicCoordinates.
Definition at line 56 of file RealSpacePositionsOMPTarget.h.
References RealSpacePositionsOMPTarget::RSoA_hostview, and VectorSoaContainer< T, D, Alloc >::size().
|
inlineprivate |
Definition at line 243 of file RealSpacePositionsOMPTarget.h.
References RealSpacePositionsOMPTarget::is_host_position_changed_, and RealSpacePositionsOMPTarget::RSoA.
Referenced by RealSpacePositionsOMPTarget::donePbyP(), RealSpacePositionsOMPTarget::RealSpacePositionsOMPTarget(), and RealSpacePositionsOMPTarget::setAllParticlePos().
|
private |
if true, host position has been changed while the device copy has not been updated.
Definition at line 238 of file RealSpacePositionsOMPTarget.h.
Referenced by RealSpacePositionsOMPTarget::donePbyP(), RealSpacePositionsOMPTarget::setOneParticlePos(), and RealSpacePositionsOMPTarget::updateH2D().
|
private |
if true, mw_new_pos has been updated with active positions.
Definition at line 241 of file RealSpacePositionsOMPTarget.h.
Referenced by RealSpacePositionsOMPTarget::donePbyP(), RealSpacePositionsOMPTarget::mw_acceptParticlePos(), and RealSpacePositionsOMPTarget::setAllParticlePos().
|
private |
|
private |
particle positions in SoA layout
Definition at line 211 of file RealSpacePositionsOMPTarget.h.
Referenced by RealSpacePositionsOMPTarget::acquireResource(), RealSpacePositionsOMPTarget::getDevicePtr(), RealSpacePositionsOMPTarget::mw_acceptParticlePos(), RealSpacePositionsOMPTarget::RealSpacePositionsOMPTarget(), RealSpacePositionsOMPTarget::resize(), and RealSpacePositionsOMPTarget::updateH2D().
|
private |
host view of RSoA
Definition at line 235 of file RealSpacePositionsOMPTarget.h.
Referenced by RealSpacePositionsOMPTarget::getAllParticlePos(), RealSpacePositionsOMPTarget::getOneParticlePos(), RealSpacePositionsOMPTarget::mw_acceptParticlePos(), RealSpacePositionsOMPTarget::RealSpacePositionsOMPTarget(), RealSpacePositionsOMPTarget::resize(), RealSpacePositionsOMPTarget::setAllParticlePos(), RealSpacePositionsOMPTarget::setOneParticlePos(), and RealSpacePositionsOMPTarget::size().