51 for (dg = 0; dg < n_boundary; dg++) {
58 double xtip, ytip, ztip;
60 index[0] = i = boundary[dg].
i;
61 index[1] = j = boundary[dg].
j;
62 index[2] = k = boundary[dg].
k;
69 nx = boundary[dg].
face->
nx;
70 ny = boundary[dg].
face->
ny;
71 nz = boundary[dg].
face->
nz;
72 xx = boundary[dg].
face->
x1;
73 yy = boundary[dg].
face->
y1;
74 zz = boundary[dg].
face->
z1;
76 dist = nx*(xx-xb) + ny*(yy-yb) + nz*(zz-zb);
78 double x1, x2, y1, y2, z1, z2;
88 ds =
min3(dx, dy, dz);
97 while(!is_it_in && (iter < maxiter)) {
106 while ((xx < xtip) && (itip < imax+ghosts-1)) {
113 while ((xx > xtip) && (itip > -ghosts)) {
122 while ((yy < ytip) && (jtip < jmax+ghosts-1)) {
129 while ((yy > ytip) && (jtip > -ghosts)) {
138 while ((zz < ztip) && (ktip < kmax+ghosts-1)) {
145 while ((zz > ztip) && (ktip > -ghosts)) {
162 nflow += blank[ptip[0]];
163 nflow += blank[ptip[1]];
164 nflow += blank[ptip[2]];
165 nflow += blank[ptip[3]];
166 nflow += blank[ptip[4]];
167 nflow += blank[ptip[5]];
168 nflow += blank[ptip[6]];
169 nflow += blank[ptip[7]];
178 fprintf(stderr,
"Error in IBInterpCoeffs() (Bug in code) - counting interior points surrounding probe tip \n");
179 fprintf(stderr,
"on rank %d.\n", mpi->
rank);
180 fprintf(stderr,
"Value of nflow is %d but can only be positive and <= %d.\n",nflow,
_IB_NNODES_);
186 fprintf(stderr,
"Error in IBInterpCoeffs() on rank %d - interior point not found for immersed boundary point (%d,%d,%d)!\n",
191 double tlx[2],tly[2],tlz[2];
214 double tipdist =
absolute(nx*(xx-xtip) + ny*(yy-ytip) + nz*(zz-ztip));
218 fprintf(stderr,
"Warning in IBInterpCoeffs() on rank %d - how can probe tip be on surface? Tipdist = %e\n",
Structure defining an immersed boundary node.
Structure containing variables for immersed boundary implementation.
MPI related function definitions.
Contains function definitions for common mathematical functions.
Some basic definitions and macros.
double interp_node_distance
void TrilinearInterpCoeffs(double, double, double, double, double, double, double, double, double, double *)
#define _ArrayIndex1D_(N, imax, i, ghost, index)
#define _GetCoordinate_(dir, i, dim, ghosts, x, coord)
Structures and function definitions for immersed boundaries.
int IBInterpCoeffs(void *ib, void *m, double *X, int *dim_l, int ghosts, double *blank)
Structure of MPI-related variables.
#define _ArrayCopy1D_(x, y, size)
Contains macros and function definitions for common array operations.