Beispiel #1
0
from st.expr import Index, ConstRef
from st.grid import Grid

# Declare indices
i = Index(0)
j = Index(1)

# Declare grid
input = Grid("in", 2)
output = Grid("out", 2)
c = []
for cc in range(25):
    c.append(ConstRef('c[{}]'.format(cc)))

calc = c[0] * input(i - 2, j - 2) + c[1] * input(i - 1, j - 2) + c[2] * input(
    i, j - 2) + c[3] * input(i + 1, j - 2) + c[4] * input(i + 2, j - 2) + c[
        5] * input(i - 2, j - 1) + c[6] * input(i - 1, j - 1) + c[7] * input(
            i, j - 1) + c[8] * input(i + 1, j - 1) + c[9] * input(
                i + 2, j - 1) + c[10] * input(i - 2, j) + c[11] * input(
                    i - 1, j) + c[12] * input(i, j) + c[13] * input(
                        i + 1, j) + c[14] * input(i + 2, j) + c[15] * input(
                            i - 2, j + 1) + c[16] * input(
                                i - 1, j +
                                1) + c[17] * input(i, j + 1) + c[18] * input(
                                    i + 1, j + 1) + c[19] * input(
                                        i + 2, j + 1) + c[20] * input(
                                            i - 2, j + 2) + c[21] * input(
                                                i - 1, j + 2) + c[22] * input(
                                                    i, j + 2) + c[23] * input(
                                                        i + 1,
                                                        j + 2) + c[24] * input(
Beispiel #2
0
from st.expr import Index, ConstRef
from st.grid import Grid

# Declare indices
i = Index(0)
j = Index(1)
k = Index(2)

# Declare grid
input = Grid("in", 3)
output = Grid("out", 3)
c = []
for cc in range(125):
    c.append(ConstRef('c[{}]'.format(cc)))

calc = c[0] * input(i, j, k) + c[1] * input(i - 3, j, k) + c[2] * input(
    i - 2, j, k
) + c[3] * input(i - 1, j, k) + c[4] * input(i + 1, j, k) + c[5] * input(
    i + 2, j, k) + c[6] * input(i + 3, j, k) + c[7] * input(
        i, j - 3, k) + c[8] * input(i, j - 2, k) + c[9] * input(
            i, j - 1, k) + c[10] * input(i, j + 1, k) + c[11] * input(
                i, j + 2, k) + c[12] * input(i, j + 3, k) + c[13] * input(
                    i, j, k - 3) + c[14] * input(i, j, k - 2) + c[15] * input(
                        i, j, k - 1) + c[16] * input(
                            i, j, k + 1) + c[17] * input(
                                i, j, k + 2) + c[18] * input(i, j, k + 3)

output(i, j, k).assign(calc)

STENCIL = [output]
Beispiel #3
0
from st.expr import Index, ConstRef
from st.grid import Grid

i = Index(0)
j = Index(1)
k = Index(2)

qu = Grid("qu", 3)
qv = Grid("qv", 3)
qw = Grid("qw", 3)
qpres = Grid("qpres", 3)

flux_irho = Grid('flux_irho', 3)
flux_imx = Grid("flux_imx", 3)
flux_imy = Grid("flux_imy", 3)
flux_imz = Grid("flux_imz", 3)
flux_iene = Grid("flux_iene", 3)

cons_imx = Grid("cons_imx", 3)
cons_imy = Grid("cons_imy", 3)
cons_imz = Grid("cons_imz", 3)
cons_iene = Grid("cons_iene", 3)

dxinv0 = ConstRef('dxinv0')
dxinv1 = ConstRef('dxinv1')
dxinv2 = ConstRef('dxinv2')

ALP = ConstRef('ALP')
BET = ConstRef('BET')
GAM = ConstRef('GAM')
DEL = ConstRef('DEL')
Beispiel #4
0
from st.expr import Index, ConstRef, If
from st.grid import Grid
from st.func import Func

# Declare indices
i = Index(0)
j = Index(1)
k = Index(2)

maxfunc = Func("max", 2)

# Declare grid
input = Grid("bIn", 3)
output = Grid("bOut", 3)
param = [
    ConstRef("coeff[0]"),
    ConstRef("coeff[1]"),
    ConstRef("coeff[2]"),
    ConstRef("coeff[3]"),
    ConstRef("coeff[4]"),
    ConstRef("coeff[5]"),
    ConstRef("coeff[6]")
]
zero = ConstRef("0.0")

# Express computation
# output[i, j, k] is assumed
calc = param[0] * maxfunc(input(i, j, k), zero) + \
       param[1] * maxfunc(input(i + 1, j, k), zero) + \
       param[2] * maxfunc(input(i - 1, j, k), zero) + \
       param[3] * maxfunc(input(i, j + 1, k), zero) + \
Beispiel #5
0
from st.expr import Index, ConstRef
from st.grid import Grid

# Declare indices
i = Index(0)
j = Index(1)
k = Index(2)

# Declare grid
Ac = Grid("Ac", 3)
Ap = Grid("Ap", 3)
Dinv = Grid("Dinv", 3)
RHS = Grid("RHS", 3)
output = Grid("out", 3)

c1 = ConstRef('c1')
c2 = ConstRef('c2')
h2inv = ConstRef('h2inv')

calc = Ac(i, j, k) + c1 * (Ac(i, j, k) + Ap(i, j, k)) + c2 * Dinv(i, j, k) * (
    RHS(i, j, k) +
    (Ac(i, j, k) + h2inv *
     (0.03 * (Ac(i - 1, j - 1, k - 1) + Ac(i + 1, j - 1, k - 1) +
              Ac(i - 1, j + 1, k - 1) + Ac(i + 1, j + 1, k - 1) +
              Ac(i - 1, j - 1, k + 1) + Ac(i + 1, j - 1, k + 1) +
              Ac(i - 1, j + 1, k + 1) + Ac(i + 1, j + 1, k + 1)) + 0.1 *
      (Ac(i, j - 1, k - 1) + Ac(i - 1, j, k - 1) + Ac(i + 1, j, k - 1) +
       Ac(i, j + 1, k - 1) + Ac(i - 1, j - 1, k) + Ac(i + 1, j - 1, k) +
       Ac(i - 1, j + 1, k) + Ac(i + 1, j + 1, k) + Ac(i, j - 1, k + 1) +
       Ac(i - 1, j, k + 1) + Ac(i + 1, j, k + 1) + Ac(i, j + 1, k + 1)) + 0.46 *
      (Ac(i, j, k - 1) + Ac(i, j - 1, k) + Ac(i - 1, j, k) + Ac(i + 1, j, k) +
Beispiel #6
0
from st.expr import Index, ConstRef
from st.grid import Grid

# Declare indices
i = Index(0)
j = Index(1)
k = Index(2)

# Declare grid
ux = Grid("ux", 3)
vx = Grid("vx", 3)
wx = Grid("wx", 3)

uy = Grid("uy", 3)
vy = Grid("vy", 3)
wy = Grid("wy", 3)

uz = Grid("uz", 3)
vz = Grid("vz", 3)
wz = Grid("wz", 3)

q_1 = Grid("q_1", 3)
q_2 = Grid("q_2", 3)
q_3 = Grid("q_3", 3)

q_5 = Grid("q_5", 3)

diffflux1 = Grid("diffflux1", 3)
diffflux2 = Grid("diffflux2", 3)
diffflux3 = Grid("diffflux3", 3)
diffflux4 = Grid("diffflux4", 3)
Beispiel #7
0
from st.expr import Index, ConstRef
from st.grid import Grid

# Declare indices
i = Index(0)
j = Index(1)
k = Index(2)

# Declare grid
x = Grid("x", 3)
alpha = Grid("alpha", 3)
beta_i = Grid("beta_i", 3)
beta_j = Grid("beta_j", 3)
beta_k = Grid("beta_k", 3)
output = Grid("out", 3)

c1 = ConstRef('c1')
c2 = ConstRef('c2')
h2inv = ConstRef('h2inv')

calc = c1 * alpha(i, j, k) * x(i, j, k) - c2 * h2inv * (
    0.0833 * (beta_i(i, j, k) *
              (15.0 * (x(i - 1, j, k) - x(i, j, k)) -
               (x(i - 1, j, k) - x(i + 1, j, k))) + beta_i(i + 1, j, k) *
              (15.0 * (x(i + 1, j, k) - x(i, j, k)) -
               (x(i + 2, j, k) - x(i - 1, j, k))) + beta_j(i, j, k) *
              (15.0 * (x(i, j - 1, k) - x(i, j, k)) -
               (x(i, j - 1, k) - x(i, j + 1, k))) + beta_j(i, j + 1, k) *
              (15.0 * (x(i, j + 1, k) - x(i, j, k)) -
               (x(i, j + 2, k) - x(i, j - 1, k))) + beta_k(i, j, k) *
              (15.0 * (x(i, j, k - 1) - x(i, j, k)) -