| 38 | return ipt; |
| 39 | } |
| 40 | static ivec vec2diel_ceil(const vec &pt, double a, const ivec &equal_shift) { |
| 41 | ivec ipt(pt.dim); |
| 42 | LOOP_OVER_DIRECTIONS(pt.dim, d) { |
| 43 | ipt.set_direction(d, 1 + 2 * int(ceil(pt.in_direction(d) * a - .5))); |
| 44 | if (ipt.in_direction(d) == pt.in_direction(d)) |
| 45 | ipt.set_direction(d, ipt.in_direction(d) + equal_shift.in_direction(d)); |
| 46 | } |
| 47 | return ipt; |
| 48 | } |
| 49 | namespace meep { |
| 50 | void compute_boundary_weights(grid_volume gv, const volume &wherec, ivec &is, ivec &ie, |
| 51 | bool snap_empty_dims, vec &s0, vec &e0, vec &s1, vec &e1); |