58 virtual void opBuffer(
const Eref& e,
double* buf )
const = 0;
76 static vector< OpFunc* >&
ops();
83 return dynamic_cast< const SrcFinfo0*
>( s );
86 virtual void op(
const Eref& e )
const = 0;
105 virtual void op(
const Eref& e, A arg )
const = 0;
118 unsigned int nf = elm->
numField( di -
120 for (
unsigned int i = 0; i < nf; ++i) {
121 Eref er( elm, di, i );
122 op( er, temp[ i % temp.size() ] );
128 for (
unsigned int i = start; i < end; ++i) {
129 Eref er( elm, i, 0 );
130 op( er, temp[ k % temp.size() ] );
136 virtual void opVec(
const Eref& e,
const vector< A >& arg,
152 virtual void op(
const Eref& e, A1 arg1, A2 arg2 )
171 for (
unsigned int i = start; i < end; ++i) {
172 unsigned int nf = elm->
numField( i - start );
173 for (
unsigned int j = 0; j < nf; ++j) {
174 Eref er( elm, i, j );
175 op( er, temp1[ k % temp1.size() ],
176 temp2[ k % temp2.size() ] );
183 const vector< A1 >& arg1,
184 const vector< A2 >& arg2,
201 virtual void op(
const Eref& e, A1 arg1, A2 arg2, A3 arg3 )
219 template<
class A1,
class A2,
class A3,
class A4 >
227 virtual void op(
const Eref& e,
228 A1 arg1, A2 arg2, A3 arg3, A4 arg4 )
const = 0;
246 template<
class A1,
class A2,
class A3,
class A4,
class A5 >
254 virtual void op(
const Eref& e,
255 A1 arg1, A2 arg2, A3 arg3, A4 arg4, A5 arg5 )
const = 0;
275 template<
class A1,
class A2,
class A3,
class A4,
class A5,
class A6 >
283 virtual void op(
const Eref& e, A1 arg1, A2 arg2, A3 arg3, A4 arg4,
284 A5 arg5, A6 arg6 )
const = 0;
370 virtual void op(
const Eref& e, L index,
373 virtual A
returnOp(
const Eref& e,
const L& index )
const = 0;
397 #endif // _OPFUNCBASE_H
const unsigned char MooseGetHop
static void val2buf(const T &val, double **buf)
static const OpFunc * lookop(unsigned int opIndex)
const OpFunc * makeHopFunc(HopIndex hopIndex) const
virtual void op(const Eref &e, A1 arg1, A2 arg2, A3 arg3, A4 arg4, A5 arg5, A6 arg6) const =0
virtual void opVec(const Eref &e, const vector< A > &arg, const OpFunc1Base< A > *op) const
virtual void op(const Eref &e, A1 arg1, A2 arg2, A3 arg3, A4 arg4) const =0
void opVecBuffer(const Eref &e, double *buf) const
Executes the OpFunc for all data by converting a vector of args.
virtual A returnOp(const Eref &e) const =0
bool checkFinfo(const Finfo *s) const
const unsigned char MooseSetHop
virtual void op(const Eref &e, A arg) const =0
const unsigned char MooseGetVecHop
unsigned short bindIndex() const
virtual A returnOp(const Eref &e, const L &index) const =0
void opVecBuffer(const Eref &e, double *buf) const
Executes the OpFunc for all data by converting a vector of args.
const OpFunc * makeHopFunc(HopIndex hopIndex) const
const OpFunc * makeHopFunc(HopIndex hopIndex) const
const OpFunc * makeHopFunc(HopIndex hopIndex) const
bool setIndex(unsigned int i)
Used when rebuilding the Fid->OpFunc mapping.
unsigned int dataIndex() const
void opBuffer(const Eref &e, double *buf) const
Executes the OpFunc by converting args.
bool checkFinfo(const Finfo *s) const
Element * element() const
virtual void op(const Eref &e, A1 arg1, A2 arg2, A3 arg3, A4 arg4, A5 arg5) const =0
void opBuffer(const Eref &e, double *buf) const
Executes the OpFunc by converting args.
bool checkFinfo(const Finfo *s) const
virtual void opVec(const Eref &e, const vector< A1 > &arg1, const vector< A2 > &arg2, const OpFunc2Base< A1, A2 > *op) const
virtual void opBuffer(const Eref &e, double *buf) const =0
Executes the OpFunc by converting args.
const unsigned char MooseSetVecHop
virtual void op(const Eref &e) const =0
virtual bool checkFinfo(const Finfo *s) const =0
void opBuffer(const Eref &e, double *buf) const
Executes the OpFunc by converting args.
virtual void opVecBuffer(const Eref &e, double *buf) const
Executes the OpFunc for all data by converting a vector of args.
void opBuffer(const Eref &e, double *buf) const
Executes the OpFunc by converting args.
bool checkFinfo(const Finfo *s) const
const OpFunc * makeHopFunc(HopIndex hopIndex) const
bool checkFinfo(const Finfo *s) const
HopIndex(unsigned short bindIndex, unsigned char hopType=MooseSendHop)
void opBuffer(const Eref &e, double *buf) const
Executes the OpFunc by converting args.
virtual void op(const Eref &e, A1 arg1, A2 arg2) const =0
bool checkFinfo(const Finfo *s) const
static unsigned int size(const T &val)
unsigned char hopType() const
virtual unsigned int numField(unsigned int rawIndex) const =0
Returns number of field entries for specified data.
void opBuffer(const Eref &e, double *buf) const
Executes the OpFunc by converting args.
virtual const OpFunc * makeHopFunc(HopIndex hopIndex) const =0
static vector< OpFunc * > & ops()
bool checkFinfo(const Finfo *s) const
virtual bool hasFields() const =0
const OpFunc * makeHopFunc(HopIndex hopIndex) const
virtual void op(const Eref &e, A1 arg1, A2 arg2, A3 arg3) const =0
bool checkFinfo(const Finfo *s) const
const OpFunc * makeHopFunc(HopIndex hopIndex) const
const unsigned char MooseReturnHop
virtual unsigned int localDataStart() const =0
Returns index of first data entry on this node.
virtual unsigned int numLocalData() const =0
Returns number of local data entries on this node.
const OpFunc * makeHopFunc(HopIndex hopIndex, const L &index) const
virtual void op(const Eref &e, L index, ObjId recipient, FuncId fid) const =0
void opBuffer(const Eref &e, double *buf) const
Executes the OpFunc by converting args.
static const T & buf2val(double **buf)
virtual string rttiType() const =0
static unsigned int rebuildOpIndex()
cleans out the entire Ops vector. Returns size of orig vector.
const unsigned char MooseTestHop
const unsigned char MooseSendHop
void opBuffer(const Eref &e, double *buf) const
Executes the OpFunc by converting args.
const OpFunc * makeHopFunc(HopIndex hopIndex) const
unsigned short bindIndex_
const OpFunc * makeHopFunc(HopIndex hopIndex) const
void opBuffer(const Eref &e, double *buf) const
Executes the OpFunc by converting args.
unsigned int opIndex() const