parse fluctuation operator

This commit is contained in:
ignis 2019-04-24 03:42:49 +09:00
parent 856cbfbe49
commit 72aa006cf6
2 changed files with 18 additions and 3 deletions

View file

@ -32,6 +32,7 @@ calc_grammar = """
?atom: NUMBER -> number
| "-" atom -> neg
| NAME -> var
| NAME "'" -> fluc
| "$" NAME -> env
| "(" sum ")"
| inlinefunc "(" sum ")" -> icall
@ -144,6 +145,13 @@ class CalculateTree(Transformer):
dep.append(name.value)
return (name + "(i,j,k)", dep)
def fluc(self, name):
dep = []
if name not in self.primary:
dep.append(name.value)
fmt = "({0}(i,j,k) - avg_{0}(i))"
return (fmt.format(name) , dep)
def env(self, name):
return (name, [])

View file

@ -4,7 +4,14 @@ c_auto = 1.0 - y
wrate_auto = rxn_rate(c_auto)
fsd_auto = sqrt (sqr(ddx(c_auto)) + sqr(ddy(c_auto)) + sqr(ddz(c_auto)))
avg { u, v, w}
avg c_auto { u, v, w}
avg y { u, v, w}
k = (sqr(u')+sqr(v')+sqr(w'))/2.0
tflux = u' * c_auto'
avg { u, v, w, c_auto }
avg c_auto { u, v, w }
avg y { u, v, w }
avg fsd_auto { u }