print code gen report option, multiple argument function call, masked fsd terms
This commit is contained in:
parent
091a902965
commit
a0a87baeb8
5 changed files with 3231 additions and 259 deletions
|
|
@ -6,6 +6,7 @@ import argparse
|
|||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("term_file", help="name of file containing postprocessing term spec")
|
||||
parser.add_argument("-b", "--build-info", action="store_true", help="print build_info instead of code")
|
||||
parser.add_argument("-p", "--print_report", action="store_true", help="print code generation report instead of code")
|
||||
args = parser.parse_args()
|
||||
|
||||
from lark import Lark, Visitor, Transformer, v_args, Token
|
||||
|
|
@ -38,7 +39,7 @@ calc_grammar = """
|
|||
| "$" NAME -> env
|
||||
| "(" sum ")"
|
||||
| inlinefunc "(" sum ")" -> icall
|
||||
| mathfunc "(" sum ")" -> fcall
|
||||
| mathfunc "(" sum ("," sum)* ")" -> fcall
|
||||
| derivative "(" NAME ")" -> dnx
|
||||
|
||||
avg: "avg" [NAME]
|
||||
|
|
@ -106,7 +107,7 @@ class VersionInfo(object):
|
|||
|
||||
|
||||
|
||||
def test(terms_raw):
|
||||
def test(terms_raw, report=False):
|
||||
|
||||
tree = Lark(calc_grammar, parser='lalr' ).parse(terms_raw)
|
||||
|
||||
|
|
@ -120,9 +121,10 @@ def test(terms_raw):
|
|||
|
||||
cdict = ir4.print_program()
|
||||
|
||||
if not report:
|
||||
print mod_form.format( cdict )
|
||||
|
||||
# ir4.save_ir()
|
||||
else:
|
||||
ir4.save_ir()
|
||||
|
||||
|
||||
|
||||
|
|
@ -142,4 +144,4 @@ if __name__ == '__main__':
|
|||
if args.build_info:
|
||||
build_info(terms_raw)
|
||||
else:
|
||||
test(terms_raw)
|
||||
test(terms_raw, args.print_report)
|
||||
|
|
|
|||
|
|
@ -106,7 +106,9 @@ class ExpToCode(Transformer):
|
|||
fcode = "({0})".format(b)
|
||||
return fcode
|
||||
|
||||
def fcall (self, a, b):
|
||||
def fcall (self, *args):
|
||||
a = args[0]
|
||||
b = ", ".join(args[1:])
|
||||
fcode = "( {} ( {} ) )".format(a, b)
|
||||
return fcode
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,30 @@
|
|||
c = 1.0 - y
|
||||
wrate = rxn_rate(c)
|
||||
|
||||
mask = $threshold_min_max(c)
|
||||
mask1 = $threshold_min_max(c, 0.05, 0.15)
|
||||
mask2 = $threshold_min_max(c, 0.15, 0.25)
|
||||
mask3 = $threshold_min_max(c, 0.25, 0.35)
|
||||
mask4 = $threshold_min_max(c, 0.35, 0.45)
|
||||
mask5 = $threshold_min_max(c, 0.45, 0.55)
|
||||
mask6 = $threshold_min_max(c, 0.55, 0.65)
|
||||
mask7 = $threshold_min_max(c, 0.65, 0.75)
|
||||
mask8 = $threshold_min_max(c, 0.75, 0.85)
|
||||
mask9 = $threshold_min_max(c, 0.85, 0.95)
|
||||
|
||||
fsd_orig = sqrt (sqr(ddx(c)) + sqr(ddy(c)) + sqr(ddz(c)))
|
||||
|
||||
fsd = fsd_orig * mask
|
||||
|
||||
fsd1 = fsd_orig * mask1
|
||||
fsd2 = fsd_orig * mask2
|
||||
fsd3 = fsd_orig * mask3
|
||||
fsd4 = fsd_orig * mask4
|
||||
fsd5 = fsd_orig * mask5
|
||||
fsd6 = fsd_orig * mask6
|
||||
fsd7 = fsd_orig * mask7
|
||||
fsd8 = fsd_orig * mask8
|
||||
fsd9 = fsd_orig * mask9
|
||||
|
||||
sd = ((d2dx(c) + d2dy(c) + d2dz(c)) * $rod + wrate) / fsd_orig
|
||||
|
||||
nx = - ddx(c) / fsd_orig
|
||||
|
|
@ -37,6 +57,16 @@ t7 = sqr(divn')
|
|||
|
||||
t8 = sqr(absk')
|
||||
|
||||
avg { c, u, v, w, fsd, lapc, ddx_c, ddy_c, ddz_c, d2dx_c, d2dy_c, d2dz_c }
|
||||
avg { c, u, v, w, fsd1, fsd2, fsd3, fsd4, fsd5, fsd6, fsd7, fsd8, fsd9, lapc, ddx_c, ddy_c, ddz_c, d2dx_c, d2dy_c, d2dz_c }
|
||||
|
||||
avg fsd1 { nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
avg fsd2 { nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
avg fsd3 { nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
avg fsd4 { nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
avg fsd5 { nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
avg fsd6 { nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
avg fsd7 { nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
avg fsd8 { nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
avg fsd9 { nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
|
||||
|
||||
avg fsd { u, v, w, nx, ny, nz, t1, t2, t3, t4, t5, t6, t7, t8, absk, divn, sd }
|
||||
|
|
|
|||
|
|
@ -239,14 +239,11 @@ contains
|
|||
|
||||
end function rxn_rate
|
||||
|
||||
real function threshold_min_max (c)
|
||||
real function threshold_min_max (c, minc, maxc)
|
||||
|
||||
real :: c
|
||||
real :: minc, maxc
|
||||
|
||||
minc = 0.1
|
||||
maxc = 0.9
|
||||
|
||||
if ((c.lt.minc) .or. (c.gt.maxc)) then
|
||||
threshold_min_max = 0.
|
||||
else
|
||||
|
|
|
|||
3431
code/m_terms.f90
3431
code/m_terms.f90
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue