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 #ifdef ATOM_CLASS 47 48 AtomStyle(hybrid,AtomVecHybrid) 49 50 #else 51 52 #ifndef LMP_ATOM_VEC_HYBRID_H 53 #define LMP_ATOM_VEC_HYBRID_H 54 55 #include <stdio.h> 56 #include "atom_vec.h" 57 58 namespace LAMMPS_NS { 59 60 class AtomVecHybrid : public AtomVec { 61 public: 62 int nstyles; 63 class AtomVec **styles; 64 char **keywords; 65 66 AtomVecHybrid(class LAMMPS *); 67 ~AtomVecHybrid(); 68 void settings(int, char **); 69 void init(); 70 void grow(int); 71 void grow_reset(); 72 void copy(int, int, int); 73 void clear_bonus(); 74 int pack_comm(int, int *, double *, int, int *); 75 int pack_comm_vel(int, int *, double *, int, int *); 76 void unpack_comm(int, int, double *); 77 void unpack_comm_vel(int, int, double *); 78 int pack_reverse(int, int, double *); 79 void unpack_reverse(int, int *, double *); 80 int pack_border(int, int *, double *, int, int *); 81 int pack_border_vel(int, int *, double *, int, int *); 82 void unpack_border(int, int, double *); 83 void unpack_border_vel(int, int, double *); 84 int pack_exchange(int, double *); 85 int unpack_exchange(double *); 86 int size_restart(); 87 int pack_restart(int, double *); 88 int unpack_restart(double *); 89 void write_restart_settings(FILE *); 90 void read_restart_settings(FILE *); 91 void create_atom(int, double *); 92 void data_atom(double *, tagint, char **); 93 int data_atom_hybrid(int, char **) {return 0;} 94 void data_vel(int, char **); 95 void pack_data(double **); 96 void write_data(FILE *, int, double **); 97 void pack_vel(double **); 98 void write_vel(FILE *, int, double **); 99 bigint memory_usage(); 100 101 private: 102 int *tag,*type,*mask; 103 tagint *image; 104 double **x,**v,**f; 105 double **omega,**angmom; 106 107 int nallstyles; 108 char **allstyles; 109 110 void build_styles(); 111 int known_style(char *); 112 }; 113 114 } 115 116 #endif 117 #endif 118 119 /* ERROR/WARNING messages: 120 121 E: Atom style hybrid cannot have hybrid as an argument 122 123 Self-explanatory. 124 125 E: Atom style hybrid cannot use same atom style twice 126 127 Self-explanatory. 128 129 E: Per-processor system is too big 130 131 The number of owned atoms plus ghost atoms on a single 132 processor must fit in 32-bit integer. 133 134 E: Invalid atom ID in Atoms section of data file 135 136 Atom IDs must be positive integers. 137 138 E: Invalid atom type in Atoms section of data file 139 140 Atom types must range from 1 to specified # of types. 141 142 */ 143