1 /* -*- c++ -*- ---------------------------------------------------------- 2 LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator 3 https://www.lammps.org/, Sandia National Laboratories 4 Steve Plimpton, sjplimp@sandia.gov 5 6 Copyright (2003) Sandia Corporation. Under the terms of Contract 7 DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains 8 certain rights in this software. This software is distributed under 9 the GNU General Public License. 10 11 See the README file in the top-level LAMMPS directory. 12 ------------------------------------------------------------------------- */ 13 14 #ifdef BODY_CLASS 15 // clang-format off 16 BodyStyle(rounded/polygon,BodyRoundedPolygon); 17 // clang-format on 18 #else 19 20 #ifndef LMP_BODY_ROUNDED_POLYGON_H 21 #define LMP_BODY_ROUNDED_POLYGON_H 22 23 #include "atom_vec_body.h" 24 #include "body.h" 25 26 namespace LAMMPS_NS { 27 28 class BodyRoundedPolygon : public Body { 29 public: 30 BodyRoundedPolygon(class LAMMPS *, int, char **); 31 ~BodyRoundedPolygon(); 32 int nsub(struct AtomVecBody::Bonus *); 33 double *coords(struct AtomVecBody::Bonus *); 34 int nedges(struct AtomVecBody::Bonus *); 35 double *edges(struct AtomVecBody::Bonus *); 36 double enclosing_radius(struct AtomVecBody::Bonus *); 37 double rounded_radius(struct AtomVecBody::Bonus *); 38 39 int pack_border_body(struct AtomVecBody::Bonus *, double *); 40 int unpack_border_body(struct AtomVecBody::Bonus *, double *); 41 void data_body(int, int, int, int *, double *); 42 int pack_data_body(tagint, int, double *); 43 int write_data_body(FILE *, double *); 44 double radius_body(int, int, int *, double *); 45 46 int noutrow(int); 47 int noutcol(); 48 void output(int, int, double *); 49 int image(int, double, double, int *&, double **&); 50 51 private: 52 int *imflag; 53 double **imdata; 54 }; 55 56 } // namespace LAMMPS_NS 57 58 #endif 59 #endif 60 61 /* ERROR/WARNING messages: 62 63 E: Invalid body rounded/polygon command 64 65 Arguments in atom-style command are not correct. 66 67 E: Invalid format in Bodies section of data file 68 69 The specified number of integer or floating point values does not 70 appear. 71 72 E: Incorrect # of integer values in Bodies section of data file 73 74 See doc page for body style. 75 76 E: Incorrect integer value in Bodies section of data file 77 78 See doc page for body style. 79 80 E: Incorrect # of floating-point values in Bodies section of data file 81 82 See doc page for body style. 83 84 E: Insufficient Jacobi rotations for body nparticle 85 86 Eigensolve for rigid body was not sufficiently accurate. 87 88 */ 89