/usr/include/liggghts/container_base.h is in libliggghts-dev 3.0.3+repack-2.
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 | /* ----------------------------------------------------------------------
LIGGGHTS - LAMMPS Improved for General Granular and Granular Heat
Transfer Simulations
LIGGGHTS is part of the CFDEMproject
www.liggghts.com | www.cfdem.com
Christoph Kloss, christoph.kloss@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
LIGGGHTS is based on LAMMPS
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
This software is distributed under the GNU General Public License.
See the README file in the top-level directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors:
Christoph Kloss (JKU Linz, DCS Computing GmbH, Linz)
Philippe Seil (JKU Linz)
------------------------------------------------------------------------- */
#ifndef LMP_CONTAINER_BASE_H
#define LMP_CONTAINER_BASE_H
#include "string.h"
namespace LAMMPS_NS
{
// buffer operation types (for push and pop)
enum{ OPERATION_COMM_EXCHANGE,
OPERATION_COMM_BORDERS,
OPERATION_COMM_FORWARD,
OPERATION_COMM_REVERSE,
OPERATION_RESTART,
OPERATION_UNDEFINED};
class ContainerBase
{
public:
ContainerBase(const char *_id);
virtual ~ContainerBase();
void setProperties(const char *_id, const char* _comm, const char* _ref, const char *_restart,int _scalePower = 1);
bool propertiesSetCorrectly();
inline void id(char *_id);
inline bool matches_id(const char *_id);
virtual bool isDoubleData() = 0;
virtual bool isIntData() = 0;
virtual void addZero() = 0;
virtual void addUninitialized(int n) = 0;
virtual int size() = 0;
virtual int nVec() = 0;
virtual int lenVec() = 0;
virtual void* begin_slow_dirty() = 0;
virtual void copy(int from,int to) = 0;
virtual void del(int n) = 0;
virtual void delForward(int n,bool scale,bool translate,bool rotate) = 0;
virtual void delRestart(int n,bool scale,bool translate,bool rotate) = 0;
virtual void clearReverse(bool scale,bool translate,bool rotate) = 0;
virtual bool setFromContainer(ContainerBase *cont) = 0;
virtual void scale(double factor) = 0;
virtual void move(double *dx) = 0;
virtual void moveElement(int i,double *dx) = 0;
virtual void rotate(double *dQ) = 0;
// buffer functions for parallelization
virtual int bufSize(int operation = OPERATION_UNDEFINED,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int popFromBuffer(double *buf,int operation,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int pushToBuffer(double *buf,int operation,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int elemListBufSize(int n, int operation = OPERATION_UNDEFINED,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int pushElemListToBuffer(int n, int *list, double *buf, int operation,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int popElemListFromBuffer(int first, int n, double *buf, int operation,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int pushElemListToBufferReverse(int first, int n, double *buf, int operation,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int popElemListFromBufferReverse(int n, int *list, double *buf, int operation,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int elemBufSize(int operation = OPERATION_UNDEFINED,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int pushElemToBuffer(int n, double *buf,int operation,
bool scale=false,bool translate=false, bool rotate=false) = 0;
virtual int popElemFromBuffer(double *buf,int operation,
bool scale=false,bool translate=false, bool rotate=false) = 0;
protected:
ContainerBase(const char *_id, const char* _comm, const char* _ref, const char *_restart,int _scalePower);
ContainerBase(ContainerBase const &orig);
inline bool isScaleInvariant();
inline bool isTranslationInvariant();
inline bool isRotationInvariant();
inline bool decidePackUnpackOperation(int operation,bool scale,bool translate, bool rotate);
inline bool decideCommOperation(int operation);
inline bool decideCreateNewElements(int operation);
char *id_;
int communicationType_;
int refFrame_;
int restartType_;
int scalePower_;
private:
ContainerBase();
};
// *************************************
#include "container_base_I.h"
// *************************************
} /* LAMPPS_NS */
#endif /* CONTAINERBASE_H_ */
|