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 Electronic stopping power 15 Contributing authors: K. Avchaciov and T. Metspalu 16 Information: k.avchachov@gmail.com 17 ------------------------------------------------------------------------- */ 18 19 #ifdef FIX_CLASS 20 // clang-format off 21 FixStyle(electron/stopping,FixElectronStopping); 22 // clang-format on 23 #else 24 25 #ifndef LMP_FIX_ELECTRON_STOPPING_H 26 #define LMP_FIX_ELECTRON_STOPPING_H 27 28 #include "fix.h" 29 30 namespace LAMMPS_NS { 31 32 class FixElectronStopping : public Fix { 33 public: 34 FixElectronStopping(class LAMMPS *, int, char **); 35 ~FixElectronStopping(); 36 int setmask(); 37 void init(); 38 void post_force(int); 39 void init_list(int, class NeighList *); 40 double compute_scalar(); 41 42 private: 43 void read_table(const char *); 44 void grow_table(); 45 46 double Ecut; // cutoff energy 47 double SeLoss, SeLoss_all; // electronic energy loss 48 int SeLoss_sync_flag; // sync done since last change? 49 50 int maxlines; // max number of lines in table 51 int table_entries; // number of table entries actually read 52 double **elstop_ranges; // [ 0][i]: energies 53 // [>0][i]: stopping powers per type 54 55 int iregion; // region index if used, else -1 56 int minneigh; // minimum number of neighbors 57 58 class NeighList *list; 59 }; 60 61 } // namespace LAMMPS_NS 62 63 #endif 64 #endif 65 66 /* ERROR/WARNING messages: 67 68 E: Illegal ... command 69 70 Self-explanatory. Check the input script syntax and compare to the 71 documentation for the command. You can use -echo screen as a 72 command-line option when running LAMMPS to see the offending line. 73 74 E: Region ID for fix electron/stopping does not exist 75 76 Self-explanatory. 77 78 E: Atom kinetic energy too high for fix electron/stopping 79 80 The group given in the fix electron/stopping command includes an atom 81 that has a kinetic energy higher than the largest energy in the stopping 82 table. Reconsider whether the table is physically applicable to your system. 83 84 E: Cannot open stopping range table ... 85 86 The file containing the electronic stopping table could not be opened. 87 Check the given path and the file's permissions. 88 89 E: fix electron/stopping: Invalid table line 90 91 A line in the stopping table file contained too many or too few columns. 92 93 E: fix electron/stopping: Energies must be in ascending order 94 95 The first column in the stopping table must be sorted from the smallest 96 energy to the largest. 97 98 E: Did not find any data in electronic stopping table file 99 100 Parsing the stopping table file produced no lines that were identifiable 101 as energies/stopping powers. Most likely the file is empty or contains 102 only comments. 103 104 */ 105