1 /* ---------------------------------------------------------------------- 2 This is the 3 4 ██╗ ██╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗████████╗███████╗ 5 ██║ ██║██╔════╝ ██╔════╝ ██╔════╝ ██║ ██║╚══██╔══╝██╔════╝ 6 ██║ ██║██║ ███╗██║ ███╗██║ ███╗███████║ ██║ ███████╗ 7 ██║ ██║██║ ██║██║ ██║██║ ██║██╔══██║ ██║ ╚════██║ 8 ███████╗██║╚██████╔╝╚██████╔╝╚██████╔╝██║ ██║ ██║ ███████║ 9 ╚══════╝╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝® 10 11 DEM simulation engine, released by 12 DCS Computing Gmbh, Linz, Austria 13 http://www.dcs-computing.com, office@dcs-computing.com 14 15 LIGGGHTS® is part of CFDEM®project: 16 http://www.liggghts.com | http://www.cfdem.com 17 18 Core developer and main author: 19 Christoph Kloss, christoph.kloss@dcs-computing.com 20 21 LIGGGHTS® is open-source, distributed under the terms of the GNU Public 22 License, version 2 or later. It is distributed in the hope that it will 23 be useful, but WITHOUT ANY WARRANTY; without even the implied warranty 24 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You should have 25 received a copy of the GNU General Public License along with LIGGGHTS®. 26 If not, see http://www.gnu.org/licenses . See also top-level README 27 and LICENSE files. 28 29 LIGGGHTS® and CFDEM® are registered trade marks of DCS Computing GmbH, 30 the producer of the LIGGGHTS® software and the CFDEM®coupling software 31 See http://www.cfdem.com/terms-trademark-policy for details. 32 33 ------------------------------------------------------------------------- 34 Contributing author and copyright for this file: 35 This file is from LAMMPS 36 LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator 37 http://lammps.sandia.gov, Sandia National Laboratories 38 Steve Plimpton, sjplimp@sandia.gov 39 40 Copyright (2003) Sandia Corporation. Under the terms of Contract 41 DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains 42 certain rights in this software. This software is distributed under 43 the GNU General Public License. 44 ------------------------------------------------------------------------- */ 45 46 #ifndef LMP_ACCELERATOR_CUDA_H 47 #define LMP_ACCELERATOR_CUDA_H 48 49 // true interface to USER-CUDA 50 // used when USER-CUDA is installed 51 52 #ifdef LMP_USER_CUDA 53 54 #include "cuda.h" 55 #include "comm_cuda.h" 56 #include "domain_cuda.h" 57 #include "neighbor_cuda.h" 58 #include "modify_cuda.h" 59 #include "verlet_cuda.h" 60 61 #else 62 63 // dummy interface to USER-CUDA 64 // needed for compiling when USER-CUDA is not installed 65 66 #include "comm.h" 67 #include "modify.h" 68 #include "verlet.h" 69 70 namespace LAMMPS_NS { 71 72 class Cuda { 73 public: 74 int cuda_exists; 75 int oncpu; 76 Cuda(class LAMMPS *)77 Cuda(class LAMMPS *) {cuda_exists = 0;} ~Cuda()78 ~Cuda() {} accelerator(int,char **)79 void accelerator(int, char **) {} evsetup_eatom_vatom(int,int)80 void evsetup_eatom_vatom(int, int) {} downloadAll()81 void downloadAll() {} uploadAll()82 void uploadAll() {} 83 }; 84 85 class CommCuda : public Comm { 86 public: CommCuda(class LAMMPS * lmp)87 CommCuda(class LAMMPS *lmp) : Comm(lmp) {} ~CommCuda()88 ~CommCuda() {} 89 }; 90 91 class DomainCuda : public Domain { 92 public: DomainCuda(class LAMMPS * lmp)93 DomainCuda(class LAMMPS *lmp) : Domain(lmp) {} ~DomainCuda()94 ~DomainCuda() {} 95 }; 96 97 class NeighborCuda : public Neighbor { 98 public: NeighborCuda(class LAMMPS * lmp)99 NeighborCuda(class LAMMPS *lmp) : Neighbor(lmp) {} ~NeighborCuda()100 ~NeighborCuda() {} 101 }; 102 103 class ModifyCuda : public Modify { 104 public: ModifyCuda(class LAMMPS * lmp)105 ModifyCuda(class LAMMPS *lmp) : Modify(lmp) {} ~ModifyCuda()106 ~ModifyCuda() {} 107 }; 108 109 class VerletCuda : public Verlet { 110 public: VerletCuda(class LAMMPS * lmp,int narg,char ** arg)111 VerletCuda(class LAMMPS *lmp, int narg, char **arg) : Verlet(lmp,narg,arg) {} ~VerletCuda()112 ~VerletCuda() {} 113 }; 114 115 } 116 117 #endif 118 #endif 119