3 #ifndef DOUBLE_MAPPED_GRID_FUNCTION_H
4 #define DOUBLE_MAPPED_GRID_FUNCTION_H "doubleMappedGridFunction.h"
67 int updateToMatchGridOption;
260 {
return doubleDistributedArray::operator()(i0); }
262 {
return doubleDistributedArray::operator()(i0,i1); }
263 double &
operator()(
const int & i0,
const int & i1,
const int i2 )
const
264 {
return doubleDistributedArray::operator()(i0,i1,i2); }
265 double &
operator()(
const int & i0,
const int & i1,
const int &
i2,
const int & i3 )
const
266 {
return doubleDistributedArray::operator()(i0,i1,i2,i3); }
267 double &
operator()(
const int & i0,
const int & i1,
const int &
i2,
const int & i3,
const int & i4)
const
268 {
return doubleDistributedArray::operator()(i0,i1,i2,i3+rcData->R[3].length()*(i4-rcData->R[4].getBase())); }
269 double &
operator()(
const int & i0,
const int & i1,
const int &
i2,
const int & i3,
const int & i4,
270 const int & i5)
const
271 {
return doubleDistributedArray::operator()(i0,i1,i2,i3+rcData->R[3].length()*(
272 i4-rcData->R[4].getBase()+rcData->R[4].length()*(
273 i5-rcData->R[5].getBase())));}
274 double &
operator()(
const int & i0,
const int & i1,
const int &
i2,
const int & i3,
const int & i4,
275 const int & i5,
const int & i6)
const
276 {
return doubleDistributedArray::operator()(i0,i1,i2,i3+rcData->R[3].length()*(
277 i4-rcData->R[4].getBase()+rcData->R[4].length()*(
278 +i5-rcData->R[5].getBase()+rcData->R[5].length()*(
279 i6-rcData->R[6].getBase()))));}
280 double &
operator()(
const int & i0,
const int & i1,
const int &
i2,
const int & i3,
const int & i4,
281 const int & i5,
const int & i6,
const int & i7)
const
282 {
return doubleDistributedArray::operator()(i0,i1,i2,i3+rcData->R[3].length()*(
283 i4-rcData->R[4].getBase()+rcData->R[4].length()*(
284 +i5-rcData->R[5].getBase()+rcData->R[5].length()*(
285 +i6-rcData->R[6].getBase()+rcData->R[6].length()*(
286 i7-rcData->R[7].getBase())))));}
290 {
return doubleDistributedArray::operator()(I0); }
294 {
return doubleDistributedArray::operator()(I0,I1); }
298 {
return doubleDistributedArray::operator()(I0,I1,I2); }
305 {
return doubleDistributedArray::operator()(I0,I1,I2,I3); }
312 const int & i4 )
const
313 {
return (*
this)(I0,I1,I2,I3+rcData->R[3].length()*(i4-rcData->R[4].getBase())); }
327 const int & i5 )
const
328 {
return (*
this)(I0,I1,I2,I3+rcData->R[3].length()*(i4-rcData->R[4].getBase()
329 +rcData->R[4].length()*(i5-rcData->R[5].getBase()))); }
345 const int & i6 )
const
346 {
return (*
this)(I0,I1,I2,I3+rcData->R[3].length()*(i4-rcData->R[4].getBase()
347 +rcData->R[4].length()*(i5-rcData->R[5].getBase()
348 +rcData->R[5].length()*(i6-rcData->R[6].getBase())))); }
366 const int & i7 )
const
367 {
return (*
this)(I0,I1,I2,I3+rcData->R[3].length()*(i4-rcData->R[4].getBase()
368 +rcData->R[4].length()*(i5-rcData->R[5].getBase()
369 +rcData->R[5].length()*(i6-rcData->R[6].getBase()
370 +rcData->R[6].length()*(i7-rcData->R[7].getBase()))))); }
392 double &
sa(
const int & i0,
const int & i1,
const int &
i2,
393 const int & c0=0,
const int & c1=0,
const int & c2=0,
const int & c3=0,
const int & c4=0)
const;
422 const Index & component4=
nullIndex )
const;
429 const Index & component4=
nullIndex )
const;
437 const int numberOfGhostLines=1,
438 const int numberOfComponentsForCoefficients=1,
439 const int offset=0 );
453 const int & na,
const Index & I1a,
const Index & I2a,
const Index & I3a,
454 const int & nb,
const Index & I1b,
const Index & I2b,
const Index & I3b);
478 const int componentToLinkTo=0,
544 const Range & component0,
551 const Range & component0,
557 const Range & component0,
608 const Index & component4=
nullIndex )
const;
624 const Index & component4=
nullIndex )
const;
658 int numberOfGhostlines=1 );
674 #define FUNCTION(type) \
675 virtual doubleMappedGridFunction type(const Index & I1 = nullIndex, \
676 const Index & I2 = nullIndex, \
677 const Index & I3 = nullIndex, \
678 const Index & I4 = nullIndex, \
679 const Index & I5 = nullIndex, \
680 const Index & I6 = nullIndex, \
681 const Index & I7 = nullIndex, \
682 const Index & I8 = nullIndex ) const; \
684 virtual doubleMappedGridFunction type(const GridFunctionParameters & gfType, \
685 const Index & I1 = nullIndex, \
686 const Index & I2 = nullIndex, \
687 const Index & I3 = nullIndex, \
688 const Index & I4 = nullIndex, \
689 const Index & I5 = nullIndex, \
690 const Index & I6 = nullIndex, \
691 const Index & I7 = nullIndex, \
692 const Index & I8 = nullIndex ) const; \
784 #define SCALAR_FUNCTION(type) \
785 virtual doubleMappedGridFunction type(\
786 const doubleMappedGridFunction & s,\
787 const Index & I1 = nullIndex, \
788 const Index & I2 = nullIndex, \
789 const Index & I3 = nullIndex, \
790 const Index & I4 = nullIndex,\
791 const Index & I5 = nullIndex,\
792 const Index & I6 = nullIndex,\
793 const Index & I7 = nullIndex,\
794 const Index & I8 = nullIndex\
796 virtual doubleMappedGridFunction type(const GridFunctionParameters & gfType,\
797 const doubleMappedGridFunction & s,\
798 const Index & I1 = nullIndex, \
799 const Index & I2 = nullIndex, \
800 const Index & I3 = nullIndex, \
801 const Index & I4 = nullIndex,\
802 const Index & I5 = nullIndex,\
803 const Index & I6 = nullIndex,\
804 const Index & I7 = nullIndex,\
805 const Index & I8 = nullIndex\
821 #undef SCALAR_FUNCTION
825 const int & direction1,
826 const int & direction2,
839 const int & direction1,
840 const int & direction2,
852 const int & direction1,
853 const int & direction2,
866 const int & direction1,
867 const int & direction2,
926 const real & forcing = 0.,
927 const real & time = 0.,
935 const int & boundaryCondition,
937 const real & time = 0.,
944 const int & boundaryCondition,
947 const real & time = 0.,
954 const int & boundaryCondition,
956 const real & time = 0.,
978 const Index & Component,
1020 void updateRanges(
const Range & R0,
1040 void derivativeError()
const;
1041 void boundaryConditionError()
const;
1080 #endif // doubleMappedGridFunction.h