发明名称 基于粒子追踪的孔隙地下水污染物三维运移模拟方法
摘要 一种基于粒子追踪的孔隙地下水污染物三维运移模拟方法,包括:设定粒子总数、每个粒子的初始坐标、释放时间,设定计算时间步长;在任意时刻、任意位置释放粒子;对每个被释放的粒子,计算其在一个时间步长后的位移;根据计算得到的粒子的新坐标,判断该粒子是否位于计算网格区域内,若已跳出,则通过边界控制使其回到计算区域边界上;重复上述步骤,以此迭代,计算得出每个时间节点上每个粒子的坐标;通过统计特定区域内粒子数量,即可得到该区域的地下水污染物浓度分布。与传统方法相比,本发明的方法可大大降低计算成本,且利用该方法得到的模拟结果与对流弥散方程的解析解有很好的匹配。
申请公布号 CN105512417A 申请公布日期 2016.04.20
申请号 CN201510947333.X 申请日期 2015.12.17
申请人 中国环境科学研究院 发明人 孙源媛;苏婧;席北斗;纪丹凤;崔驰飞;梁雨晗;朱建超
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 中科专利商标代理有限责任公司 11021 代理人 宋焰琴
主权项 一种基于粒子追踪的孔隙地下水污染物三维运移模拟方法,包括以下步骤:步骤S1:设定粒子总数、每个粒子的初始坐标、释放时间,设定计算时间步长;步骤S2:在任意时刻、任意位置释放粒子;步骤S3:对每个被释放的粒子,计算其在一个时间步长后的位移,粒子在地下水流场中的运动由以下方程控制:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mi>&Delta;</mi><mi>t</mi></mrow></msub><mo>=</mo><msub><mi>x</mi><mi>t</mi></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>v</mi><mi>x</mi></msub><mo>(</mo><mrow><msub><mi>x</mi><mi>t</mi></msub><mo>,</mo><msub><mi>y</mi><mi>t</mi></msub><mo>,</mo><msub><mi>z</mi><mi>t</mi></msub><mo>,</mo><mi>t</mi></mrow><mo>)</mo><mo>+</mo><mfrac><mrow><mo>&part;</mo><msub><mi>D</mi><mrow><mi>x</mi><mi>x</mi></mrow></msub></mrow><mrow><mo>&part;</mo><mi>x</mi></mrow></mfrac><mo>+</mo><mfrac><mrow><mo>&part;</mo><msub><mi>D</mi><mrow><mi>x</mi><mi>y</mi></mrow></msub></mrow><mrow><mo>&part;</mo><mi>y</mi></mrow></mfrac><mo>+</mo><mfrac><mrow><mo>&part;</mo><msub><mi>D</mi><mrow><mi>x</mi><mi>z</mi></mrow></msub></mrow><mrow><mo>&part;</mo><mi>z</mi></mrow></mfrac><mo>)</mo></mrow><mi>&Delta;</mi><mi>t</mi><mo>+</mo><msqrt><mrow><mn>2</mn><msub><mi>D</mi><mrow><mi>x</mi><mi>x</mi></mrow></msub><mi>&Delta;</mi><mi>t</mi></mrow></msqrt><msub><mi>Z</mi><mn>1</mn></msub><mo>+</mo><msqrt><mrow><mn>2</mn><msub><mi>D</mi><mrow><mi>x</mi><mi>y</mi></mrow></msub><mi>&Delta;</mi><mi>t</mi></mrow></msqrt><msub><mi>Z</mi><mn>2</mn></msub><mo>+</mo><msqrt><mrow><mn>2</mn><msub><mi>D</mi><mrow><mi>x</mi><mi>z</mi></mrow></msub><mi>&Delta;</mi><mi>t</mi></mrow></msqrt><msub><mi>Z</mi><mn>3</mn></msub></mrow>]]></math><img file="FDA0000881160660000011.GIF" wi="1669" he="143" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>y</mi><mrow><mi>t</mi><mo>+</mo><mi>&Delta;</mi><mi>t</mi></mrow></msub><mo>=</mo><msub><mi>y</mi><mi>t</mi></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>v</mi><mi>y</mi></msub><mo>(</mo><mrow><msub><mi>x</mi><mi>t</mi></msub><mo>,</mo><msub><mi>y</mi><mi>t</mi></msub><mo>,</mo><msub><mi>z</mi><mi>t</mi></msub><mo>,</mo><mi>t</mi></mrow><mo>)</mo><mo>+</mo><mfrac><mrow><mo>&part;</mo><msub><mi>D</mi><mrow><mi>y</mi><mi>x</mi></mrow></msub></mrow><mrow><mo>&part;</mo><mi>x</mi></mrow></mfrac><mo>+</mo><mfrac><mrow><mo>&part;</mo><msub><mi>D</mi><mrow><mi>y</mi><mi>y</mi></mrow></msub></mrow><mrow><mo>&part;</mo><mi>y</mi></mrow></mfrac><mo>+</mo><mfrac><mrow><mo>&part;</mo><msub><mi>D</mi><mrow><mi>y</mi><mi>z</mi></mrow></msub></mrow><mrow><mo>&part;</mo><mi>z</mi></mrow></mfrac><mo>)</mo></mrow><mi>&Delta;</mi><mi>t</mi><mo>+</mo><msqrt><mrow><mn>2</mn><msub><mi>D</mi><mrow><mi>y</mi><mi>x</mi></mrow></msub><mi>&Delta;</mi><mi>t</mi></mrow></msqrt><msub><mi>Z</mi><mn>1</mn></msub><mo>+</mo><msqrt><mrow><mn>2</mn><msub><mi>D</mi><mrow><mi>y</mi><mi>y</mi></mrow></msub><mi>&Delta;</mi><mi>t</mi></mrow></msqrt><msub><mi>Z</mi><mn>2</mn></msub><mo>+</mo><msqrt><mrow><mn>2</mn><msub><mi>D</mi><mrow><mi>y</mi><mi>z</mi></mrow></msub><mi>&Delta;</mi><mi>t</mi></mrow></msqrt><msub><mi>Z</mi><mn>3</mn></msub></mrow>]]></math><img file="FDA0000881160660000014.GIF" wi="1684" he="135" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>z</mi><mrow><mi>t</mi><mo>+</mo><mi>&Delta;</mi><mi>t</mi></mrow></msub><mo>=</mo><msub><mi>z</mi><mi>t</mi></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>v</mi><mi>z</mi></msub><mo>(</mo><mrow><msub><mi>x</mi><mi>t</mi></msub><mo>,</mo><msub><mi>y</mi><mi>t</mi></msub><mo>,</mo><msub><mi>z</mi><mi>t</mi></msub><mo>,</mo><mi>t</mi></mrow><mo>)</mo><mo>+</mo><mfrac><mrow><mo>&part;</mo><msub><mi>D</mi><mrow><mi>z</mi><mi>x</mi></mrow></msub></mrow><mrow><mo>&part;</mo><mi>x</mi></mrow></mfrac><mo>+</mo><mfrac><mrow><mo>&part;</mo><msub><mi>D</mi><mrow><mi>z</mi><mi>y</mi></mrow></msub></mrow><mrow><mo>&part;</mo><mi>y</mi></mrow></mfrac><mo>+</mo><mfrac><mrow><mo>&part;</mo><msub><mi>D</mi><mrow><mi>z</mi><mi>z</mi></mrow></msub></mrow><mrow><mo>&part;</mo><mi>z</mi></mrow></mfrac><mo>)</mo></mrow><mi>&Delta;</mi><mi>t</mi><mo>+</mo><msqrt><mrow><mn>2</mn><msub><mi>D</mi><mrow><mi>z</mi><mi>x</mi></mrow></msub><mi>&Delta;</mi><mi>t</mi></mrow></msqrt><msub><mi>Z</mi><mn>1</mn></msub><mo>+</mo><msqrt><mrow><mn>2</mn><msub><mi>D</mi><mrow><mi>z</mi><mi>y</mi></mrow></msub><mi>&Delta;</mi><mi>t</mi></mrow></msqrt><msub><mi>Z</mi><mn>2</mn></msub><mo>+</mo><msqrt><mrow><mn>2</mn><msub><mi>D</mi><mrow><mi>z</mi><mi>z</mi></mrow></msub><mi>&Delta;</mi><mi>t</mi></mrow></msqrt><msub><mi>Z</mi><mn>3</mn></msub><mo>;</mo></mrow>]]></math><img file="FDA0000881160660000013.GIF" wi="1717" he="157" /></maths>其中x、y、z表示粒子的空间坐标,v表示粒子的对流运动速度,Δt表示时间步长,D表示水力弥散系数,Z表示介于0到1之间的随机数,这样就根据粒子在t时刻的坐标计算出其在一个时间步长后,也即t+Δt时刻的新坐标;步骤S4:根据计算得到的粒子的新坐标,判断该粒子是否位于计算网格区域内,若已跳出,则通过边界控制使其回到计算区域边界上;步骤S5:重复步骤S2‑S4,以此迭代,计算得出每个时间节点上每个粒子的坐标;步骤S6:通过统计特定区域内粒子数量,即可得到该区域的地下水污染物浓度分布。
地址 100012 北京市朝阳区安外北苑大羊坊8号