Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F91992593
lj96.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Nov 16, 11:03
Size
2 KB
Mime Type
text/x-c++
Expires
Mon, Nov 18, 11:03 (2 d)
Engine
blob
Format
Raw Data
Handle
22348962
Attached To
rLAMMPS lammps
lj96.h
View Options
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Mike Brown (ORNL), brownw@ornl.gov
------------------------------------------------------------------------- */
#ifndef LJ96_GPU_MEMORY_H
#define LJ96_GPU_MEMORY_H
#include "base_atomic.h"
template
<
class
numtyp
,
class
acctyp
>
class
LJ96_GPU_Memory
:
public
BaseAtomic
<
numtyp
,
acctyp
>
{
public:
LJ96_GPU_Memory
();
~
LJ96_GPU_Memory
();
/// Clear any previous data and set up for a new LAMMPS run
/** \param max_nbors initial number of rows in the neighbor matrix
* \param cell_size cutoff + skin
* \param gpu_split fraction of particles handled by device
*
* Returns:
* - 0 if successfull
* - -1 if fix gpu not found
* - -3 if there is an out of memory error
* - -4 if the GPU library was not compiled for GPU
* - -5 Double precision is not supported on card **/
int
init
(
const
int
ntypes
,
double
**
host_cutsq
,
double
**
host_lj1
,
double
**
host_lj2
,
double
**
host_lj3
,
double
**
host_lj4
,
double
**
host_offset
,
double
*
host_special_lj
,
const
int
nlocal
,
const
int
nall
,
const
int
max_nbors
,
const
int
maxspecial
,
const
double
cell_size
,
const
double
gpu_split
,
FILE
*
screen
);
/// Clear all host and device data
/** \note This is called at the beginning of the init() routine **/
void
clear
();
/// Returns memory usage on device per atom
int
bytes_per_atom
(
const
int
max_nbors
)
const
;
/// Total host memory used by library for pair style
double
host_memory_usage
()
const
;
// --------------------------- TYPE DATA --------------------------
/// lj1.x = lj1, lj1.y = lj2, lj1.z = cutsq
UCL_D_Vec
<
numtyp4
>
lj1
;
/// lj3.x = lj3, lj3.y = lj4, lj3.z = offset
UCL_D_Vec
<
numtyp4
>
lj3
;
/// Special LJ values
UCL_D_Vec
<
numtyp
>
sp_lj
;
/// If atom type constants fit in shared memory, use fast kernels
bool
shared_types
;
/// Number of atom types
int
_lj_types
;
private:
bool
_allocated
;
void
loop
(
const
bool
_eflag
,
const
bool
_vflag
);
};
#endif
Event Timeline
Log In to Comment