MRMD 0.4.0
Multi Resolution Molecular Dynamics
Loading...
Searching...
No Matches
mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE > Class Template Reference

#include <data/Molecules.hpp>

Public Types

enum  Props {
  POS = 0 , FORCE = 1 , LAMBDA = 2 , MODULATED_LAMBDA = 3 ,
  GRAD_LAMBDA = 4 , ATOMS_OFFSET = 5 , NUM_ATOMS = 6
}
 
using DataTypes = Cabana::MemberTypes< real_t[DIMENSIONS], real_t[DIMENSIONS], real_t, real_t, real_t[DIMENSIONS], idx_t, idx_t >
 
using MoleculesT = Cabana::AoSoA< DataTypes, typename DEVICE_TYPE::memory_space, VECTOR_LENGTH >
 
using pos_t = typename MoleculesT::template member_slice_type< POS >
 
using force_t = typename MoleculesT::template member_slice_type< FORCE >
 
using lambda_t = typename MoleculesT::template member_slice_type< LAMBDA >
 
using modulated_lambda_t = typename MoleculesT::template member_slice_type< MODULATED_LAMBDA >
 
using grad_lambda_t = typename MoleculesT::template member_slice_type< GRAD_LAMBDA >
 
using atoms_offset_t = typename MoleculesT::template member_slice_type< ATOMS_OFFSET >
 
using num_atoms_t = typename MoleculesT::template member_slice_type< NUM_ATOMS >
 

Public Member Functions

KOKKOS_FORCEINLINE_FUNCTION pos_t getPos () const
 
KOKKOS_FORCEINLINE_FUNCTION force_t getForce () const
 
void setForce (const real_t &val) const
 
KOKKOS_FORCEINLINE_FUNCTION lambda_t getLambda () const
 
KOKKOS_FORCEINLINE_FUNCTION modulated_lambda_t getModulatedLambda () const
 
KOKKOS_FORCEINLINE_FUNCTION grad_lambda_t getGradLambda () const
 
KOKKOS_FORCEINLINE_FUNCTION atoms_offset_t getAtomsOffset () const
 
KOKKOS_FORCEINLINE_FUNCTION num_atoms_t getNumAtoms () const
 
void sliceAll ()
 
KOKKOS_INLINE_FUNCTION idx_t size () const
 
KOKKOS_INLINE_FUNCTION auto numSoA () const
 
KOKKOS_INLINE_FUNCTION auto arraySize (size_t s) const
 
void resize (size_t size)
 
KOKKOS_INLINE_FUNCTION void permute (LinkedCellList &linkedCellList) const
 
KOKKOS_INLINE_FUNCTION void copy (const idx_t dst, const idx_t src) const
 
void removeGhostMolecules ()
 
auto & getAoSoA () const
 
 GeneralMolecules (const idx_t numMolecules)
 
template<class DEVICE_TYPE_SRC , bool DEVICE_SRC>
 GeneralMolecules (const GeneralMolecules< DEVICE_TYPE_SRC, DEVICE_SRC > &molecules)
 

Public Attributes

idx_t numLocalMolecules = 0
 
idx_t numGhostMolecules = 0
 

Member Typedef Documentation

◆ atoms_offset_t

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
using mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::atoms_offset_t = typename MoleculesT::template member_slice_type<ATOMS_OFFSET>

◆ DataTypes

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
using mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::DataTypes = Cabana::MemberTypes<real_t[DIMENSIONS], real_t[DIMENSIONS], real_t, real_t, real_t[DIMENSIONS], idx_t, idx_t>

◆ force_t

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
using mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::force_t = typename MoleculesT::template member_slice_type<FORCE>

◆ grad_lambda_t

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
using mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::grad_lambda_t = typename MoleculesT::template member_slice_type<GRAD_LAMBDA>

◆ lambda_t

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
using mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::lambda_t = typename MoleculesT::template member_slice_type<LAMBDA>

◆ modulated_lambda_t

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
using mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::modulated_lambda_t = typename MoleculesT::template member_slice_type<MODULATED_LAMBDA>

◆ MoleculesT

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
using mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::MoleculesT = Cabana::AoSoA<DataTypes, typename DEVICE_TYPE::memory_space, VECTOR_LENGTH>

◆ num_atoms_t

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
using mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::num_atoms_t = typename MoleculesT::template member_slice_type<NUM_ATOMS>

◆ pos_t

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
using mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::pos_t = typename MoleculesT::template member_slice_type<POS>

Member Enumeration Documentation

◆ Props

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
enum mrmd::data::impl::GeneralMolecules::Props
Enumerator
POS 
FORCE 
LAMBDA 
MODULATED_LAMBDA 
GRAD_LAMBDA 
ATOMS_OFFSET 

offset into atoms array

NUM_ATOMS 

number of atoms for this molecule

Constructor & Destructor Documentation

◆ GeneralMolecules() [1/2]

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::GeneralMolecules ( const idx_t  numMolecules)
inlineexplicit

◆ GeneralMolecules() [2/2]

template<class DEVICE_TYPE , bool DEVICE>
template<class DEVICE_TYPE_SRC , bool DEVICE_SRC>
mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::GeneralMolecules ( const GeneralMolecules< DEVICE_TYPE_SRC, DEVICE_SRC > &  molecules)

Member Function Documentation

◆ arraySize()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_INLINE_FUNCTION auto mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::arraySize ( size_t  s) const
inline

◆ copy()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_INLINE_FUNCTION void mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::copy ( const idx_t  dst,
const idx_t  src 
) const
inline

◆ getAoSoA()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
auto & mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::getAoSoA ( ) const
inline

◆ getAtomsOffset()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_FORCEINLINE_FUNCTION atoms_offset_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::getAtomsOffset ( ) const
inline

◆ getForce()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_FORCEINLINE_FUNCTION force_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::getForce ( ) const
inline

◆ getGradLambda()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_FORCEINLINE_FUNCTION grad_lambda_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::getGradLambda ( ) const
inline

◆ getLambda()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_FORCEINLINE_FUNCTION lambda_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::getLambda ( ) const
inline

◆ getModulatedLambda()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_FORCEINLINE_FUNCTION modulated_lambda_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::getModulatedLambda ( ) const
inline

◆ getNumAtoms()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_FORCEINLINE_FUNCTION num_atoms_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::getNumAtoms ( ) const
inline

◆ getPos()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_FORCEINLINE_FUNCTION pos_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::getPos ( ) const
inline

◆ numSoA()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_INLINE_FUNCTION auto mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::numSoA ( ) const
inline

◆ permute()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_INLINE_FUNCTION void mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::permute ( LinkedCellList &  linkedCellList) const
inline

◆ removeGhostMolecules()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
void mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::removeGhostMolecules ( )
inline

◆ resize()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
void mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::resize ( size_t  size)
inline

◆ setForce()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
void mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::setForce ( const real_t &  val) const
inline

◆ size()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
KOKKOS_INLINE_FUNCTION idx_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::size ( ) const
inline

◆ sliceAll()

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
void mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::sliceAll ( )
inline

Member Data Documentation

◆ numGhostMolecules

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
idx_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::numGhostMolecules = 0

◆ numLocalMolecules

template<class DEVICE_TYPE = DeviceType, bool DEVICE = true>
idx_t mrmd::data::impl::GeneralMolecules< DEVICE_TYPE, DEVICE >::numLocalMolecules = 0

The documentation for this class was generated from the following file: