diff options
| author | Paul Garlick <pgarlick@tourbillion-technology.com> | 2019-10-29 12:31:21 +0000 | 
|---|---|---|
| committer | Paul Garlick <pgarlick@tourbillion-technology.com> | 2019-10-29 12:31:21 +0000 | 
| commit | 549f625a5b8495ed2f645aa4c85db0b4c81346fd (patch) | |
| tree | 32db977bd5dbd6aefc5fad22df55a92e3dfc44b9 /makeBoundary | |
| parent | 0ed129571e7de2f7a9ad6c427cbb622129a6b4bc (diff) | |
| download | fullSWOF-utils-549f625a5b8495ed2f645aa4c85db0b4c81346fd.tar.gz | |
introduce function for linear interpolation.
Diffstat (limited to 'makeBoundary')
| -rwxr-xr-x | makeBoundary | 29 | 
1 files changed, 21 insertions, 8 deletions
| diff --git a/makeBoundary b/makeBoundary index 76eaf21..590bcaf 100755 --- a/makeBoundary +++ b/makeBoundary @@ -112,6 +112,12 @@ def save_bc(outputfile):                      -csa[ind_z]*Q_i[panel_x][-1]/csa_p[panel_x],                      zmax-zitem)) +def interp(extra2, max1, min1, max2, min2): +    # use similar triangles to perform linear interpolation +    extra1 = min1 + (max1 - min1)*(extra2 - min2)/(max2 - min2) +     +    return extra1 +  # read command line argument:  parser = argparse.ArgumentParser(      description="generate FullSWOF boundary files") @@ -294,16 +300,23 @@ ind_q = bisect.bisect(Q_i[panel[ind_p]], panel_target_flow)  print('insertion point =', ind_q)  # find height at target flow by linear interpolation -h_extra = h_i[panel[ind_p]][ind_q-1] \ -    + (panel_target_flow - Q_i[panel[ind_p]][ind_q-1])\ -    *(h_i[panel[ind_p]][ind_q] - h_i[panel[ind_p]][ind_q-1])\ -    /(Q_i[panel[ind_p]][ind_q] - Q_i[panel[ind_p]][ind_q-1]) +h_extra = interp( +    panel_target_flow, +    h_i[panel[ind_p]][ind_q], +    h_i[panel[ind_p]][ind_q-1], +    Q_i[panel[ind_p]][ind_q], +    Q_i[panel[ind_p]][ind_q-1]) +  print('heights:', h_i[panel[ind_p]][ind_q-1], h_extra, h_i[panel[ind_p]][ind_q]) +  # find area at target flow by linear interpolation -A_extra = A_i[panel[ind_p]][ind_q-1] \ -    + (h_extra - h_i[panel[ind_p]][ind_q-1])\ -    *(A_i[panel[ind_p]][ind_q] - A_i[panel[ind_p]][ind_q-1])\ -    /(h_i[panel[ind_p]][ind_q] - h_i[panel[ind_p]][ind_q-1]) +A_extra = interp( +    h_extra, +    A_i[panel[ind_p]][ind_q], +    A_i[panel[ind_p]][ind_q-1], +    h_i[panel[ind_p]][ind_q], +    h_i[panel[ind_p]][ind_q-1]) +      print('hydraulic radii:', r_h[panel[ind_p]][ind_q-1], r_h[panel[ind_p]][ind_q])  velocity_panel    = panel_target_flow/A_extra | 
