Sample Script

〔5-1〕 地下水の流れ解析 【Water.pde】

1.概要

この問題は、異なる多孔率の土壌を通って、2つの井戸へ流れる水の流れを示します。 FlexPDEの能力を、大きく変化するメッシュ・サイズに特徴付けて表示します。

解析領域の外周境界は、圧力水頭を一定値『0』に保持します。
2つの井戸の水頭値は、それぞれ一定値『-1, -2』に保持します。

2.メッシュ図

{Fig.A}~{Fig.F} は、4項で対応するスクリプトを示します。
{Fig.A} に示します全体メッシュ図では、井戸1,2付近のメッシュが細分化されて、グリッド線で黒く塗りつぶされて見えます。
井戸1,2付近を拡大して、それぞれ {Fig.B},{Fig.C} に示します。

Water-Mesh.PNG 

Water-Mesh-Well-1.PNG

Water-Mesh-Well-2.PNG

3.解析結果

Fig.D}に水頭値を色分けした分布図を示します。 図中に青色枠線で示します井戸1付近の部分拡大図を{Fig.E}に示します。

Water-Head.PNG

 

Water-Head-Well-1.PNG 

水頭値をZ方向の高さで表した3D曲面図を{Fig.F}に示します。

Water-Head-Surf.PNG

4.スクリプト

下記のスクリプトをマウスでコピーし、FlexPDE エディット・ウィンドウに貼り付けて実行する際は、日本語のコメントを除去して下さい。そのままですと、コンパイル・エラーが発生する場合があります。

{  WATER.PDE

    This problem shows the flow of water to two wells, through soil regions of
    differing porosity.  It also displays the ability of FlexPDE to grid features
    of widely varying size.
}

title 'Groundwater flow to two wells'

definitions
    k                    { no value is required, as long as it appears later }
    s = 0                { no volumetric source }
    k1 = 0.1             { high porosity value 高多孔率値 }
    k2 = 1.0e-7          { low  porosity value 低多孔率値 }
    sx1 = 0.7   sy1 = 0.4{ well 1 location  井戸1の位置 }
    sx2 = 0.5   sy2 = 0.2{ well 2 location  井戸2の位置 }
    srad = 0.001         { well radius = one thousandth of domain size 井戸の半径 }
    w = 0.05             { a zoom window size }

    px = 0.4    py = 0.4 { percolation pond center 浸出水源の中心 }
    pr = 0.025           { percolation pond radius 浸出水源の半径 }
    ps = 1e-4            { percolation rate 浸出速度 }

variables
    h

equations
    h : div(k*grad(h)) + s = 0

boundaries

  region 1  { The domain boundary, held at constant pressure head }
    k=k1
    start(0,0)
    value(h)=0 line to (0.25,-0.1)
                    to (0.45,-0.1)
                    to (0.65,0)
                    to (0.95,0.1)
                    to (0.95,0.4)
                    to (0.75,0.6)
                    to (0.45,0.65)
                    to (0,0.4)
                    to close

    { Two wells, held at constant draw-down depths }
    start(sx1,sy1-srad)
    value(h) = -1        arc(center=sx1,sy1) angle=-360
    start(sx2,sy2-srad)
    value(h) = -2        arc(center=sx2,sy2) angle=-360

  region 2  { Some regions of low porosity }
    k=k2
    start(0,0) line to (0.25,-0.1)
                    to (0.45,-0.1)
                    to (0.45,0.05)
                    to (0,0.05)
                    to close

    start(0.95,0.1) line to (0.95,0.3)
                    to (0.65,0.3)
                    to (0.65,0)
                    to close

    start(0.3,0.3) line to (0.5,0.4)
                    to (0.5,0.6)
                    to (0.3,0.5)
                    to close

  region 3  { A percolation pond 浸出の水源 }
    k = k2
    s = ps  { percolation rate  浸出速度 }
    start (px,py-pr) arc(center=px,py) angle=360

monitors
  contour(h)

plots
  grid(x,y)				{ Fig.A }
  grid(x,y) zoom(sx1-w/2,sy1-w/2,w,w)	{ Fig.B }
  grid(x,y) zoom(sx2-w/2,sy2-w/2,w,w)	{ Fig.C }
  contour(h) as 'Head'	painted		{ Fig.D }
  contour(h) as 'Head' zoom(0.65,0.35,0.1,0.1) painted	{ Fig.E }
  surface(h) as 'Head'			{ Fig.F }

end