Overture  Version 25
Macros | Functions
fineToCoarse.C File Reference
#include "Ogmg.h"
#include "gridFunctionNorms.h"
#include "App.h"
#include "ParallelUtility.h"
Include dependency graph for fineToCoarse.C:

Macros

#define fineToCoarseBoundaryConditions   EXTERN_C_NAME(finetocoarseboundaryconditions)
 
#define ForBoundary(side, axis)   for( axis=0; axis<numberOfDimensions; axis++ ) for( side=0; side<=1; side++ )
 
#define FULL_WEIGHTING_1D(i1, i2, i3, Rx)   ( cr(-1,cf1)*defectFine(i1-1,i2,i3,Rx) +cr( 0,cf1)*defectFine(i1 ,i2,i3,Rx) +cr(+1,cf1)*defectFine(i1+1,i2,i3,Rx) )
 
#define FULL_WEIGHTING_1D1(i1, i2, i3)   ( cr(-1,cf1)*defectFine(i1-1,i2,i3) +cr( 0,cf1)*defectFine(i1 ,i2,i3) +cr(+1,cf1)*defectFine(i1+1,i2,i3) )
 
#define FULL_WEIGHTING_1D_001(i1, i2, i3, Rx)   ( cr(-1,cf3)*defectFine(i1,i2,i3-1,Rx) +cr( 0,cf3)*defectFine(i1,i2,i3 ,Rx) +cr(+1,cf3)*defectFine(i1,i2,i3+1,Rx) )
 
#define FULL_WEIGHTING_2D(i1, i2, i3, Rx)   ( cr(-1,cf2)*FULL_WEIGHTING_1D(i1,i2-1,i3,Rx) +cr( 0,cf2)*FULL_WEIGHTING_1D(i1,i2 ,i3,Rx) +cr(+1,cf2)*FULL_WEIGHTING_1D(i1,i2+1,i3,Rx) )
 
#define FULL_WEIGHTING_3D(i1, i2, i3, Rx)   ( cr(-1,cf3)*FULL_WEIGHTING_2D(i1,i2,i3-1,Rx) +cr( 0,cf3)*FULL_WEIGHTING_2D(i1,i2,i3 ,Rx) +cr(+1,cf3)*FULL_WEIGHTING_2D(i1,i2,i3+1,Rx) )
 
#define BOUNDARY_DEFECT_2D(s1, s2, i1, i2, i3)   ( .5*defectFine(i1,i2,i3)+.25*(defectFine(i1+s2,i2+s1,i3)+defectFine(i1-s2,i2-s1,i3)) )
 
#define BOUNDARY_DEFECT_3D(s1, s2, s3, i1, i2, i3)   ( .25*(defectFine(i1 ,i2 ,i3 ) +.5*(defectFine(i1+s2+s3,i2+s1 ,i3 ) + defectFine(i1-s2-s3,i2-s1 ,i3 ) +defectFine(i1 ,i2+s3 ,i3+s2+s1) + defectFine(i1 ,i2-s3 ,i3-s2-s1) +.5*(defectFine(i1+s2+s3,i2-s3+s1,i3-s2-s1) + defectFine(i1+s2+s3,i2+s1+s3,i3+s2+s1) +defectFine(i1-s2-s3,i2-s3-s1,i3-s2-s1) + defectFine(i1-s2-s3,i2-s1+s3,i3+s2+s1) ))) )
 
#define BOUNDARY_DEFECT_PLANE_110(i1, i2, i3, Rx)   ( cr(-1,cf2)*FULL_WEIGHTING_1D(i1,i2-1,i3,Rx) +cr( 0,cf2)*FULL_WEIGHTING_1D(i1,i2 ,i3,Rx) +cr(+1,cf2)*FULL_WEIGHTING_1D(i1,i2+1,i3,Rx) )
 
#define BOUNDARY_DEFECT_PLANE_101(i1, i2, i3, Rx)   ( cr(-1,cf3)*FULL_WEIGHTING_1D(i1,i2,i3-1,Rx) +cr( 0,cf3)*FULL_WEIGHTING_1D(i1,i2,i3 ,Rx) +cr(+1,cf3)*FULL_WEIGHTING_1D(i1,i2,i3+1,Rx) )
 
#define BOUNDARY_DEFECT_PLANE_011(i1, i2, i3, Rx)   ( cr(-1,cf2)*FULL_WEIGHTING_1D_001(i1,i2-1,i3,Rx) +cr( 0,cf2)*FULL_WEIGHTING_1D_001(i1,i2 ,i3,Rx) +cr(+1,cf2)*FULL_WEIGHTING_1D_001(i1,i2+1,i3,Rx) )
 
#define BOUNDARY_DEFECT_LINE(is1, is2, is3, i1, i2, i3, Rx)   ( .5*defectFine(i1,i2,i3,Rx)+.25*(defectFine(i1+is1,i2+is2,i3+is3,Rx)+defectFine(i1-is1,i2-is2,i3+is3,Rx)) )
 

Functions

void fineToCoarseBoundaryConditions (const int &nd1a, const int &nd1b, const int &nd2a, const int &nd2b, const int &nd3a, const int &nd3b, const int &md1a, const int &md1b, const int &md2a, const int &md2b, const int &md3a, const int &md3b, const int &maskFine, const real &fFine, real &fCoarse, const int &boundaryConditions, const int &bc, const int &ipar)
 

Macro Definition Documentation

#define BOUNDARY_DEFECT_2D (   s1,
  s2,
  i1,
  i2,
  i3 
)    ( .5*defectFine(i1,i2,i3)+.25*(defectFine(i1+s2,i2+s1,i3)+defectFine(i1-s2,i2-s1,i3)) )

Referenced by Ogmg::fineToCoarse().

#define BOUNDARY_DEFECT_3D (   s1,
  s2,
  s3,
  i1,
  i2,
  i3 
)    ( .25*(defectFine(i1 ,i2 ,i3 ) +.5*(defectFine(i1+s2+s3,i2+s1 ,i3 ) + defectFine(i1-s2-s3,i2-s1 ,i3 ) +defectFine(i1 ,i2+s3 ,i3+s2+s1) + defectFine(i1 ,i2-s3 ,i3-s2-s1) +.5*(defectFine(i1+s2+s3,i2-s3+s1,i3-s2-s1) + defectFine(i1+s2+s3,i2+s1+s3,i3+s2+s1) +defectFine(i1-s2-s3,i2-s3-s1,i3-s2-s1) + defectFine(i1-s2-s3,i2-s1+s3,i3+s2+s1) ))) )

Referenced by Ogmg::fineToCoarse().

#define BOUNDARY_DEFECT_LINE (   is1,
  is2,
  is3,
  i1,
  i2,
  i3,
  Rx 
)    ( .5*defectFine(i1,i2,i3,Rx)+.25*(defectFine(i1+is1,i2+is2,i3+is3,Rx)+defectFine(i1-is1,i2-is2,i3+is3,Rx)) )
#define BOUNDARY_DEFECT_PLANE_011 (   i1,
  i2,
  i3,
  Rx 
)    ( cr(-1,cf2)*FULL_WEIGHTING_1D_001(i1,i2-1,i3,Rx) +cr( 0,cf2)*FULL_WEIGHTING_1D_001(i1,i2 ,i3,Rx) +cr(+1,cf2)*FULL_WEIGHTING_1D_001(i1,i2+1,i3,Rx) )
#define BOUNDARY_DEFECT_PLANE_101 (   i1,
  i2,
  i3,
  Rx 
)    ( cr(-1,cf3)*FULL_WEIGHTING_1D(i1,i2,i3-1,Rx) +cr( 0,cf3)*FULL_WEIGHTING_1D(i1,i2,i3 ,Rx) +cr(+1,cf3)*FULL_WEIGHTING_1D(i1,i2,i3+1,Rx) )
#define BOUNDARY_DEFECT_PLANE_110 (   i1,
  i2,
  i3,
  Rx 
)    ( cr(-1,cf2)*FULL_WEIGHTING_1D(i1,i2-1,i3,Rx) +cr( 0,cf2)*FULL_WEIGHTING_1D(i1,i2 ,i3,Rx) +cr(+1,cf2)*FULL_WEIGHTING_1D(i1,i2+1,i3,Rx) )
#define fineToCoarseBoundaryConditions   EXTERN_C_NAME(finetocoarseboundaryconditions)

Referenced by Ogmg::fineToCoarse().

#define ForBoundary (   side,
  axis 
)    for( axis=0; axis<numberOfDimensions; axis++ ) for( side=0; side<=1; side++ )

Referenced by Ogmg::fineToCoarse().

#define FULL_WEIGHTING_1D (   i1,
  i2,
  i3,
  Rx 
)    ( cr(-1,cf1)*defectFine(i1-1,i2,i3,Rx) +cr( 0,cf1)*defectFine(i1 ,i2,i3,Rx) +cr(+1,cf1)*defectFine(i1+1,i2,i3,Rx) )

Referenced by Ogmg::fineToCoarse().

#define FULL_WEIGHTING_1D1 (   i1,
  i2,
  i3 
)    ( cr(-1,cf1)*defectFine(i1-1,i2,i3) +cr( 0,cf1)*defectFine(i1 ,i2,i3) +cr(+1,cf1)*defectFine(i1+1,i2,i3) )
#define FULL_WEIGHTING_1D_001 (   i1,
  i2,
  i3,
  Rx 
)    ( cr(-1,cf3)*defectFine(i1,i2,i3-1,Rx) +cr( 0,cf3)*defectFine(i1,i2,i3 ,Rx) +cr(+1,cf3)*defectFine(i1,i2,i3+1,Rx) )
#define FULL_WEIGHTING_2D (   i1,
  i2,
  i3,
  Rx 
)    ( cr(-1,cf2)*FULL_WEIGHTING_1D(i1,i2-1,i3,Rx) +cr( 0,cf2)*FULL_WEIGHTING_1D(i1,i2 ,i3,Rx) +cr(+1,cf2)*FULL_WEIGHTING_1D(i1,i2+1,i3,Rx) )

Referenced by Ogmg::fineToCoarse().

#define FULL_WEIGHTING_3D (   i1,
  i2,
  i3,
  Rx 
)    ( cr(-1,cf3)*FULL_WEIGHTING_2D(i1,i2,i3-1,Rx) +cr( 0,cf3)*FULL_WEIGHTING_2D(i1,i2,i3 ,Rx) +cr(+1,cf3)*FULL_WEIGHTING_2D(i1,i2,i3+1,Rx) )

Referenced by Ogmg::fineToCoarse().

Function Documentation

void fineToCoarseBoundaryConditions ( const int &  nd1a,
const int &  nd1b,
const int &  nd2a,
const int &  nd2b,
const int &  nd3a,
const int &  nd3b,
const int &  md1a,
const int &  md1b,
const int &  md2a,
const int &  md2b,
const int &  md3a,
const int &  md3b,
const int &  maskFine,
const real fFine,
real fCoarse,
const int &  boundaryConditions,
const int &  bc,
const int &  ipar 
)