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 FIX_CLASS 47 48 FixStyle(deform,FixDeform) 49 50 #else 51 52 #ifndef LMP_FIX_DEFORM_H 53 #define LMP_FIX_DEFORM_H 54 55 #include "fix.h" 56 57 namespace LAMMPS_NS { 58 59 class FixDeform : public Fix { 60 public: 61 int remapflag; // whether x,v are remapped across PBC 62 int dimflag[6]; // which dims are deformed 63 64 FixDeform(class LAMMPS *, int, char **); 65 ~FixDeform(); 66 int setmask(); 67 void init(); 68 void pre_exchange(); 69 void end_of_step(); 70 71 private: 72 int triclinic,scaleflag,flipflag; 73 int flip,flipxy,flipxz,flipyz; 74 double *h_rate,*h_ratelo; 75 int varflag; // 1 if VARIABLE option is used, 0 if not 76 int kspace_flag; // 1 if KSpace invoked, 0 if not 77 int nrigid; // number of rigid fixes 78 int *rfix; // indices of rigid fixes 79 class Irregular *irregular; // for migrating atoms after box flips 80 81 double TWOPI; 82 83 struct Set { 84 int style,substyle; 85 double flo,fhi,ftilt; 86 double dlo,dhi,dtilt; 87 double scale,vel,rate; 88 double amplitude,tperiod; 89 double lo_initial,hi_initial; 90 double lo_start,hi_start,lo_stop,hi_stop,lo_target,hi_target; 91 double tilt_initial,tilt_start,tilt_stop,tilt_target,tilt_flip; 92 double tilt_min,tilt_max; 93 double vol_initial,vol_start; 94 int fixed,dynamic1,dynamic2; 95 char *hstr,*hratestr; 96 int hvar,hratevar; 97 }; 98 Set *set; 99 100 void options(int, char **); 101 }; 102 103 } 104 105 #endif 106 #endif 107 108 /* ERROR/WARNING messages: 109 110 E: Illegal ... command 111 112 Self-explanatory. Check the input script syntax and compare to the 113 documentation for the command. You can use -echo screen as a 114 command-line option when running LAMMPS to see the offending line. 115 116 E: Fix deform tilt factors require triclinic box 117 118 Cannot deform the tilt factors of a simulation box unless it 119 is a triclinic (non-orthogonal) box. 120 121 E: Cannot use fix deform on a shrink-wrapped boundary 122 123 The x, y, z options cannot be applied to shrink-wrapped 124 dimensions. 125 126 E: Cannot use fix deform tilt on a shrink-wrapped 2nd dim 127 128 This is because the shrink-wrapping will change the value 129 of the strain implied by the tilt factor. 130 131 E: Fix deform volume setting is invalid 132 133 Cannot use volume style unless other dimensions are being controlled. 134 135 E: More than one fix deform 136 137 Only one fix deform can be defined at a time. 138 139 E: Variable name for fix deform does not exist 140 141 Self-explantory. 142 143 E: Variable for fix deform is invalid style 144 145 The variable must be an equal-style variable. 146 147 E: Final box dimension due to fix deform is < 0.0 148 149 Self-explanatory. 150 151 E: Cannot use fix deform trate on a box with zero tilt 152 153 The trate style alters the current strain. 154 155 E: Fix deform cannot use yz variable with xy 156 157 The yz setting cannot be a variable if xy deformation is also 158 specified. This is because LAMMPS cannot determine if the yz setting 159 will induce a box flip which would be invalid if xy is also changing. 160 161 E: Fix deform is changing yz too much with xy 162 163 When both yz and xy are changing, it induces changes in xz if the 164 box must flip from one tilt extreme to another. Thus it is not 165 allowed for yz to grow so much that a flip is induced. 166 167 U: Use of fix deform with undefined lattice 168 169 A lattice must be defined to use fix deform with units = lattice. 170 171 */ 172