CG  Version 25
Macros | Functions
assignBoundaryConditionsFOS.C File Reference
#include "Cgsm.h"
#include "SmParameters.h"
#include "CompositeGridOperators.h"
#include "display.h"
#include "UnstructuredMapping.h"
#include "OGPolyFunction.h"
#include "OGTrigFunction.h"
#include "OGPulseFunction.h"
#include "RadiationBoundaryCondition.h"
#include "ParallelUtility.h"
#include "GridMaterialProperties.h"
Include dependency graph for assignBoundaryConditionsFOS.C:

Macros

#define bcOptSmFOS   EXTERN_C_NAME(bcoptsmfos)
 
#define FOR_3D(i1, i2, i3, I1, I2, I3)   int I1Base =I1.getBase(), I2Base =I2.getBase(), I3Base =I3.getBase(); int I1Bound=I1.getBound(), I2Bound=I2.getBound(), I3Bound=I3.getBound(); for(i3=I3Base; i3<=I3Bound; i3++) for(i2=I2Base; i2<=I2Bound; i2++) for(i1=I1Base; i1<=I1Bound; i1++)
 
#define FOR_3(i1, i2, i3, I1, I2, I3)   I1Base =I1.getBase(), I2Base =I2.getBase(), I3Base =I3.getBase(); I1Bound=I1.getBound(), I2Bound=I2.getBound(), I3Bound=I3.getBound(); for(i3=I3Base; i3<=I3Bound; i3++) for(i2=I2Base; i2<=I2Bound; i2++) for(i1=I1Base; i1<=I1Bound; i1++)
 
#define exTrue(x, y, t)   sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(-ky/(eps*cc))
 
#define eyTrue(x, y, t)   sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*( kx/(eps*cc))
 
#define hzTrue(x, y, t)   sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))
 
#define exLaplacianTrue(x, y, t)   sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(+ky*(twoPi*twoPi*(kx*kx+ky*ky))/(eps*cc))
 
#define eyLaplacianTrue(x, y, t)   sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(-kx*(twoPi*twoPi*(kx*kx+ky*ky))/(eps*cc))
 
#define hzLaplacianTrue(x, y, t)   sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*( -(twoPi*twoPi*(kx*kx+ky*ky) ) )
 
#define hzGaussianPulse(xi)   exp(-betaGaussianPlaneWave*((xi)*(xi)))
 
#define exGaussianPulse(xi)   hzGaussianPulse(xi)*(-ky/(eps*cc))
 
#define eyGaussianPulse(xi)   hzGaussianPulse(xi)*( kx/(eps*cc))
 
#define hzLaplacianGaussianPulse(xi)   ((4.*betaGaussianPlaneWave*betaGaussianPlaneWave*(kx*kx+ky*ky))*xi*xi-(2.*betaGaussianPlaneWave*(kx*kx+ky*ky)))*exp(-betaGaussianPlaneWave*((xi)*(xi)))
 
#define exLaplacianGaussianPulse(xi)   hzLaplacianGaussianPulse(xi,t)*(-ky/(eps*cc))
 
#define eyLaplacianGaussianPulse(xi)   hzLaplacianGaussianPulse(xi,t)*( kx/(eps*cc))
 
#define exTrue3d(x, y, z, t)   sin(twoPi*(kx*(x)+ky*(y)+kz*(z)-cc*(t)))*(-ky/(eps*cc))
 
#define eyTrue3d(x, y, z, t)   sin(twoPi*(kx*(x)+ky*(y)+kz*(z)-cc*(t)))*( kx/(eps*cc))
 
#define ezTrue3d(x, y, z, t)   0
 
#define hxTrue3d(x, y, z, t)   0
 
#define hyTrue3d(x, y, z, t)   0
 
#define hzTrue3d(x, y, z, t)   sin(twoPi*(kx*(x)+ky*(y)+kz*(z)-cc*(t)))
 
#define exLaplacianTrue3d(x, y, z, t)   sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(+ky*(twoPi*twoPi*(kx*kx+ky*ky))/(eps*cc))
 
#define eyLaplacianTrue3d(x, y, z, t)   sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(-kx*(twoPi*twoPi*(kx*kx+ky*ky))/(eps*cc))
 
#define ezLaplacianTrue3d(x, y, z, t)   0
 
#define hxLaplacianTrue3d(x, y, z, t)   0
 
#define hyLaplacianTrue3d(x, y, z, t)   0
 
#define hzLaplacianTrue3d(x, y, z, t)   sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*( -(twoPi*twoPi*(kx*kx+ky*ky) ) )
 
#define U(i0, i1, i2, i3)   up[i0+uDim0*(i1+uDim1*(i2+uDim2*(i3)))]
 
#define X(i0, i1, i2, i3)   xp[i0+xDim0*(i1+xDim1*(i2+xDim2*(i3)))]
 
#define U0(x, y, z, n, t)   (vcenter[n-uc]*(t) + rx[n-uc]*((x)-xcenter) + ry[n-uc]*((y)-ycenter))
 
#define U0T(x, y, z, n, t)   (vcenter[n-uc] + rxt[n-uc]*((x)-xcenter) + ryt[n-uc]*((y)-ycenter))
 
#define U0X(x, y, z, n, t)   ( rx[n-uc] )
 
#define U0Y(x, y, z, n, t)   ( ry[n-uc] )
 
#define dbc(s, a, side, axis)   (pdbc[(s)+2*((a)+3*((side)+2*(axis)))])
 
#define addBoundaryForcing(side, axis)   (pAddBoundaryForcing[(side)+2*(axis)])
 
#define bcfOffset(side, axis)   pbcfOffset[(side)+2*(axis)]
 

Functions

void bcOptSmFOS (const int &nd, const int &nd1a, const int &nd1b, const int &nd2a, const int &nd2b, const int &nd3a, const int &nd3b, const int &gridIndexRange, real &u, const int &mask, const real &rsxy, const real &xy, const int &ndMatProp, const int &matIndex, const real &matValpc, const real &matVal, const real &det, const int &boundaryCondition, const int &addBoundaryForcing, const int &interfaceType, const int &dim, const real &bcf00, const real &bcf10, const real &bcf01, const real &bcf11, const real &bcf02, const real &bcf12, const real &bcf0, const int64_t &bcfOffset, const int &ndpin, const int &pinbc, const int &ndpv, const real &pinValues, const int &ipar, const real &rpar, const DataBase *pdb, const int &ierr)
 

Macro Definition Documentation

#define addBoundaryForcing (   side,
  axis 
)    (pAddBoundaryForcing[(side)+2*(axis)])
#define bcfOffset (   side,
  axis 
)    pbcfOffset[(side)+2*(axis)]
#define bcOptSmFOS   EXTERN_C_NAME(bcoptsmfos)
#define dbc (   s,
  a,
  side,
  axis 
)    (pdbc[(s)+2*((a)+3*((side)+2*(axis)))])
#define exGaussianPulse (   xi)    hzGaussianPulse(xi)*(-ky/(eps*cc))
#define exLaplacianGaussianPulse (   xi)    hzLaplacianGaussianPulse(xi,t)*(-ky/(eps*cc))
#define exLaplacianTrue (   x,
  y,
 
)    sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(+ky*(twoPi*twoPi*(kx*kx+ky*ky))/(eps*cc))
#define exLaplacianTrue3d (   x,
  y,
  z,
 
)    sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(+ky*(twoPi*twoPi*(kx*kx+ky*ky))/(eps*cc))
#define exTrue (   x,
  y,
 
)    sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(-ky/(eps*cc))
#define exTrue3d (   x,
  y,
  z,
 
)    sin(twoPi*(kx*(x)+ky*(y)+kz*(z)-cc*(t)))*(-ky/(eps*cc))
#define eyGaussianPulse (   xi)    hzGaussianPulse(xi)*( kx/(eps*cc))
#define eyLaplacianGaussianPulse (   xi)    hzLaplacianGaussianPulse(xi,t)*( kx/(eps*cc))
#define eyLaplacianTrue (   x,
  y,
 
)    sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(-kx*(twoPi*twoPi*(kx*kx+ky*ky))/(eps*cc))
#define eyLaplacianTrue3d (   x,
  y,
  z,
 
)    sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*(-kx*(twoPi*twoPi*(kx*kx+ky*ky))/(eps*cc))
#define eyTrue (   x,
  y,
 
)    sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*( kx/(eps*cc))
#define eyTrue3d (   x,
  y,
  z,
 
)    sin(twoPi*(kx*(x)+ky*(y)+kz*(z)-cc*(t)))*( kx/(eps*cc))
#define ezLaplacianTrue3d (   x,
  y,
  z,
 
)    0
#define ezTrue3d (   x,
  y,
  z,
 
)    0
#define FOR_3 (   i1,
  i2,
  i3,
  I1,
  I2,
  I3 
)    I1Base =I1.getBase(), I2Base =I2.getBase(), I3Base =I3.getBase(); I1Bound=I1.getBound(), I2Bound=I2.getBound(), I3Bound=I3.getBound(); for(i3=I3Base; i3<=I3Bound; i3++) for(i2=I2Base; i2<=I2Bound; i2++) for(i1=I1Base; i1<=I1Bound; i1++)
#define FOR_3D (   i1,
  i2,
  i3,
  I1,
  I2,
  I3 
)    int I1Base =I1.getBase(), I2Base =I2.getBase(), I3Base =I3.getBase(); int I1Bound=I1.getBound(), I2Bound=I2.getBound(), I3Bound=I3.getBound(); for(i3=I3Base; i3<=I3Bound; i3++) for(i2=I2Base; i2<=I2Bound; i2++) for(i1=I1Base; i1<=I1Bound; i1++)
#define hxLaplacianTrue3d (   x,
  y,
  z,
 
)    0
#define hxTrue3d (   x,
  y,
  z,
 
)    0
#define hyLaplacianTrue3d (   x,
  y,
  z,
 
)    0
#define hyTrue3d (   x,
  y,
  z,
 
)    0
#define hzGaussianPulse (   xi)    exp(-betaGaussianPlaneWave*((xi)*(xi)))
#define hzLaplacianGaussianPulse (   xi)    ((4.*betaGaussianPlaneWave*betaGaussianPlaneWave*(kx*kx+ky*ky))*xi*xi-(2.*betaGaussianPlaneWave*(kx*kx+ky*ky)))*exp(-betaGaussianPlaneWave*((xi)*(xi)))
#define hzLaplacianTrue (   x,
  y,
 
)    sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*( -(twoPi*twoPi*(kx*kx+ky*ky) ) )
#define hzLaplacianTrue3d (   x,
  y,
  z,
 
)    sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))*( -(twoPi*twoPi*(kx*kx+ky*ky) ) )
#define hzTrue (   x,
  y,
 
)    sin(twoPi*(kx*(x)+ky*(y)-cc*(t)))
#define hzTrue3d (   x,
  y,
  z,
 
)    sin(twoPi*(kx*(x)+ky*(y)+kz*(z)-cc*(t)))
#define U (   i0,
  i1,
  i2,
  i3 
)    up[i0+uDim0*(i1+uDim1*(i2+uDim2*(i3)))]
#define U0 (   x,
  y,
  z,
  n,
 
)    (vcenter[n-uc]*(t) + rx[n-uc]*((x)-xcenter) + ry[n-uc]*((y)-ycenter))
#define U0T (   x,
  y,
  z,
  n,
 
)    (vcenter[n-uc] + rxt[n-uc]*((x)-xcenter) + ryt[n-uc]*((y)-ycenter))
#define U0X (   x,
  y,
  z,
  n,
 
)    ( rx[n-uc] )
#define U0Y (   x,
  y,
  z,
  n,
 
)    ( ry[n-uc] )
#define X (   i0,
  i1,
  i2,
  i3 
)    xp[i0+xDim0*(i1+xDim1*(i2+xDim2*(i3)))]

Function Documentation

void bcOptSmFOS ( const int &  nd,
const int &  nd1a,
const int &  nd1b,
const int &  nd2a,
const int &  nd2b,
const int &  nd3a,
const int &  nd3b,
const int &  gridIndexRange,
real &  u,
const int &  mask,
const real &  rsxy,
const real &  xy,
const int &  ndMatProp,
const int &  matIndex,
const real &  matValpc,
const real &  matVal,
const real &  det,
const int &  boundaryCondition,
const int &  addBoundaryForcing,
const int &  interfaceType,
const int &  dim,
const real &  bcf00,
const real &  bcf10,
const real &  bcf01,
const real &  bcf11,
const real &  bcf02,
const real &  bcf12,
const real &  bcf0,
const int64_t &  bcfOffset,
const int &  ndpin,
const int &  pinbc,
const int &  ndpv,
const real &  pinValues,
const int &  ipar,
const real &  rpar,
const DataBase *  pdb,
const int &  ierr 
)