/usr/include/liggghts/fix_wall_gran.h is in libliggghts-dev 2.3.8-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | /* ----------------------------------------------------------------------
LIGGGHTS - LAMMPS Improved for General Granular and Granular Heat
Transfer Simulations
LIGGGHTS is part of the CFDEMproject
www.liggghts.com | www.cfdem.com
This file was modified with respect to the release in LAMMPS
Modifications are Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level directory.
------------------------------------------------------------------------- */
#ifdef FIX_CLASS
// this class cannot be instantiated
#else
#ifndef LMP_FIX_WALL_GRAN_H
#define LMP_FIX_WALL_GRAN_H
#include "fix_mesh_surface.h"
namespace LAMMPS_NS {
class FixWallGran : public Fix {
public:
FixWallGran(class LAMMPS *, int, char **);
~FixWallGran();
/* INHERITED FROM Fix */
virtual int setmask();
virtual void post_create();
virtual void pre_delete(bool unfixflag);
virtual void init();
virtual void setup(int vflag);
void post_force(int vflag);
void post_force_pgl();
void post_force_respa(int, int, int);
int min_type();
int max_type();
/* PUBLIC ACCESS FUNCTIONS */
void setSkinDistance(double newSkinDistance)
{ skinDistance_ = newSkinDistance; }
void setDnum(int newDnum)
{ dnum_ = newDnum; }
inline int store_force()
{ return store_force_; }
inline int iarg()
{ return iarg_; }
inline int dnum()
{ return dnum_; }
inline int n_meshes()
{ return n_FixMesh_; }
inline class FixMeshSurface ** mesh_list()
{ return FixMesh_list_; }
inline int atom_type_wall()
{ return atom_type_wall_; }
inline bool is_mesh_wall()
{ return meshwall_ == 1; }
int n_contacts_all();
int n_contacts_all(int);
int n_contacts_local();
int n_contacts_local(int);
int is_moving();
void register_compute_wall_local(class ComputePairGranLocal *,int&);
void unregister_compute_wall_local(class ComputePairGranLocal *ptr);
protected:
int iarg_, narg_;
int atom_type_wall_;
int computeflag_;
int addflag_;
class ComputePairGranLocal *cwl_;
double dt_;
int shearupdate_;
// class variables for atom properties
int nlocal_;
double **x_, **f_, *radius_, *rmass_, **wallforce_, r0_;
void set_r0(double _r0)
{ r0_ = _r0; }
virtual void init_granular() {}
virtual void init_heattransfer() {}
bool heattransfer_flag_;
// mesh and primitive force implementations
virtual void post_force_mesh(int);
virtual void post_force_primitive(int);
// virtual functions that allow implementation of the
// actual physics in the derived classes
virtual void compute_force(int i,double deltan,double rsq,double meff_wall,
double dx,double dy,double dz,double *vwall,
double *c_history,double area_ratio) = 0;
virtual void addHeatFlux(class TriMesh *mesh,int i,double rsq,double area_ratio) {};
// sets flag that neigh list shall be built
virtual void pre_neighbor();
// builds neigh list if necessary
virtual void pre_force(int vflag);
// references to mesh walls
int n_FixMesh_;
class FixMeshSurface **FixMesh_list_;
// pair style, fix rigid for correct damping
char *pairstyle_;
class PairGran *pairgran_;
class FixRigid *fix_rigid_;
int *body_;
double *masstotal_;
private:
int nlevels_respa_;
int shear_, shearDim_, shearAxis_;
double vshear_;
double shearAxisVec_[3];
// distance in order to calculate interaction with
// rough wall
double skinDistance_;
// number of values for contact history
int dnum_;
// flag if mesh wall
int meshwall_;
// flag for stressanalysis
// true if any of the meshes tracks stresses
bool stress_flag_;
class PrimitiveWall *primitiveWall_;
class FixPropertyAtom *fix_history_primitive_;
// class to keep track of wall contacts
bool rebuildPrimitiveNeighlist_;
// force storage
bool store_force_;
class FixPropertyAtom *fix_wallforce_;
// max neigh cutoff - as in Neighbor
double cutneighmax_;
void post_force_wall(int vflag);
inline void post_force_eval_contact(int iPart, double deltan, double *delta, double *v_wall,
double *c_history, int iMesh = -1, FixMeshSurface *fix_mesh = 0, TriMesh *mesh = 0, int iTri = 0);
};
}
#endif
#endif
|