《Hydrus-2D中文程序说明.docx》由会员分享,可在线阅读,更多相关《Hydrus-2D中文程序说明.docx(13页珍藏版)》请在课桌文档上搜索。
1、HYDRUS_2D中文程序说明李道西HYDRUS_2D是一个可用来模拟地下滴灌土壤水流及溶质二维运动的有限元计算机模型。该模型的水流状态为二维或轴对称三维等温饱和一非饱和达西水流,忽略空气对土壤水流运动的影响,水流控制方程采用修改过的Richards方程,即嵌入汇源项以考虑作物根系吸水。程序可以灵活处理各类水流边界,包括定水头和变水头边界、给定流量边界、渗水边界、自由排水边界、大气边界以及排水沟等。水流区域本身可以是不规则水流边界,甚至还可以由各向异性的非均质土壤组成。通过对水流区域进行不规则三角形网格剖分,控制方程采用伽辽金线状有限元法进行求解。无论饱和或非饱和条件,对时间的离散均采用隐式差
2、分。采用迭代法将离散化后的非线性控制方程组线性化。对于非饱和土壤水力特性,HYDRUS_2D采用VG模型进行描述,嵌入了Scott1983、Kool和Parkern987经验模型中的假定:吸湿(脱湿)扫描线与主吸湿(脱湿)曲线成比例变化。并运用一个比例程序,将用户定义的水力传导曲线与参考土壤相比较,通过线性比例变换,在给定的土壤剖面近似水力传导变量。第一节程序的基本模块HYDRUS_2D程序模块可以顺序嵌套调用,由以下七个基本模块组成:HYDRUS2D:主程序,定义系统的整个计算机环境。它控制整个程序的运行过程,根据需要调用相应的子程序模块。程序执行前,首先需选定模拟选项,包括水流、溶质运移、
3、热运移或是否考虑根系吸水等;然后给定时空单位、土壤水力参数以及用来模拟的边界条件。程序执行后,可输出一系列土壤水力特性曲线、设定观测点处随时间变化的含水率或负压水头曲线,以及沿边界的实际或累积水通量。输出文件还可提供质量平衡信息和逆向最优结果。ProjectManager:该模块用来管理已建立的工程数据,包括打开、删除、重命名工程和保存工程的输入输出数据等。每个工程可能是针对不同的具体问题,ProjectManager会自动将每个工程单独建立一个以工程名命名的文件夹保存相应的工程数据。GEOMETRY:该模块是一个可用鼠标或键盘图绘水流区域并输出的CAD程序,也可通过导入二进制文件的方式实现。
4、水流边界可以由直线、圆、弧或多义线等不同曲线组成;内部边界也可由内部曲线给定,如排水沟、井等。另外,还可以对已绘区域进行修改,如删除、复制、移动、旋转等操作。MESHGEN2D:该模块用来将二维的水流区域离散成不规则的三角形网格。第一步:边界离散化,边界结点数和其密度可由用户自行确定。第二步:整个水流区域的基于DeIaUnay规则的三角形离散化。按照默认的光滑因子,可以将指定的水流区域自动生成最优的三角形有限元网格,例如对于指定的边界结点,它可以生成最小的三角形单元剖分。BOUNDARY:该模块用来让用户给定特定情况的初始和边界条件,以及取定观测点等。HYDRUS2:该模块是一个可用来模拟二维
5、非饱和土壤水运动的FORTRAN程序。模型可求解含根系吸水源汇项的Richards方程,可以灵活处理各类水流边界,包括定水头和变水头边界、给定流量边界、渗水边界、自由排水边界、大气边界以及排水沟等。针对离散化控制方程后的系数矩阵的不同形式,采用了不同的求解方法,例如带状矩阵对应高斯消去法;对称矩阵对应共趣梯度法;非对称矩阵,对应ORTHoMIN法。另外,该程序升级版本还包含了一个参数最优算法,可对各种土壤水力参数从几个观测的数据出发进行逆向估计。对于土壤含水率或负压水头数据,采用了MarquardcLevenberg非线性最优化技术估算土壤水分特征曲线中的经验参数;对于持水或导水率数据,则将待
6、优参数通过罚函数约束在某个可行区域(贝叶斯估计),然后寻求最优。GRAPHICS:该模块用来将输出结果表示成图形。包括等值线图、光谱图、流速矢量图以及等值线图和光谱图的随时间变化的动画显示等。第二节程序菜单命令说明图51是HYDRUS_2D程序的主界面。各菜单的子菜单使用及说明如下:HYDRUS2D-AAProjectMainlnf.GeometryParametersResultsYiewOptionsHelp回叵回回TiF三SS图5-1HYDRUS_2D程序的主菜单2.1 Project主菜单PrOjeetManager:用来建立新的工程,或者管理已建立的工程数据,包括打开、删除、复制、重
7、命名工程等,如图5-2。图5-2ProjectManager对话框SaveData:用来保存工程的输入输出数据。Exit:退出主程序。2.2 MainInf.主菜单MainProCeSSeS:通过它,用户可以对工程进行描述,如“InfiltrationfromaSubsurfaceSource并选择需模拟的对象(可复选):水流、溶质运移或根系吸水。当勾选“水流”时,程序会自动考虑瞬态流,否则当稳态流处理,如图5-3。图5-3MainProcesses对话框MainGeometryInformation:包括四个部分,如图54:1、单选长度单位(LengthUnitS):毫米、厘米、米。一旦输入
8、数据的长度单位发生改变,程序会自动将所有变量换成对应的新的单位。2、单选水流类型(TyPeofFIoW):二维水平流、二维垂直流、三维轴对称流。当为三维轴对称流时,程序自动视Z轴为垂向对称轴。3、单选几何类别(GeometryofType):矩形网格、不规则网格。仅仅是当主程序缺乏外部嵌入式模块GEoMETRY和MESHGEN时才采用简单的矩形网格剖分。4、填写数字框:土壤质地种数(NumberofMaterials)、子区数(NumberofSubregions)0当水流区域有夹层时,土壤质地种数将大于默认值1;子区数决定了用户希望进行质量平衡计算的区域数。图5-4MainGeometryI
9、nfonnation对话框图5-5MainTimeInformation对话框MainTimeInformation:包括三个部分,如图5-5:1、单选时间单位(TimeUnitS):秒、分、小时、天。该项一旦发生改变,程序中的所有相关变量的单位均会自动进行相应变化。2、时间离散选项(TimeDiscretization):五个数字框分别表示模拟初始时刻、模拟总时间、初始时间步长、允许最小和最大时间步长。需要说明的是,HYDRUS2为了提高计算效率,视求解情况会自动调整时间步长(其调整规则将在菜单ParametersZWaterFlow./IterationCriteria中进行介绍),所以存
10、在这些选项的给定。3、边界条件选项(BoundaryConditions):缺省为不勾选“随时间变化的边界条件”,则所有边界条件均视为恒定。否则存在非稳定边界,需填写非稳定边界数目的数字框,如腾发、降雨、灌溉等均可能导致非稳定边界的存在。PrintInformation:如图5-6。通过它,用户可选择决定是否需要输出每个时阶的平均压力水头、平均或累积含水率及溶质通量、迭代信息等(T-LevelInformation);是否需要输出结点流量等(FluxInformation);是否需要屏幕输出(ScreenOutput)o若给定输出次数,点击(SeIeCtPrintTimes),则要求用户进一步
11、给定需要输出更详细信息的各个时刻,所有时刻不可大于设定的模拟总时间。5-6PrintInfOrmaHOn对话框2.3Geometry主菜单EditTransportDomainGeometry:用来调用GEOMETRY模块,如图5-7,以便图绘水流区域。其绘制过程与一般的CAD绘图软件差不多。水流边界可以由直线、圆、弧或多义线等不同曲线组成;内部边界也可由内部曲线给定,如排水沟、井等。注意主界面右下角的状态栏,可以粗略估计鼠标所在的坐标位置;通过设置菜单选项OptionsZGridSettings还可以精确定位点的坐标。GenerateFiniteElementMesh:用来调用MESHGEN
12、2D模块,如图5-8,以便将已绘制的二维水流区域离散成不规则的三角形网格。第一步:通过菜单BoundaryPointsZNumberofPointsonaCurve.设定边界结点总数,默认值为120。该项决定了离散密度的大小,边界结点总数越多,三角形网格密度越大,计算越精确,但计算机的运算时间会成倍增加。图5 - 7 GEOMETRY 模块主界面图5-8 MESHGEN2D 模块主界面第二步:通过菜单BoundaryPointsZInsertaFixedPoint给定边界离散固定点,以设定局部网格密度。例如,对于在地下滴灌的滴头埋深处至少应插入一个离散固定点,以使该处网格剖分相对加密提高该处计
13、算精度。注:边界角点均默认是离散固定点。第三步:通过菜单BoundaryPoints/MeshDensityataFixedPOint设定各离散固定点处局部网格密度。离散固定点两侧(按逆时针方向分为左右两侧)均需设置相应的密度值,密度值范围大于0.01小于IO0。密度值的含义实际上是一个比较量。例如有两个相邻离散固定点A、B,它们的左右密度值分别设定为A:3、2和B:0.2、0.2o若离散后A点左右侧的步长分别为a1、112,B点左右侧的步长分别为b、b2,则,=W=1.5,1=-r=15见2b,().2bl().2n而A、B间的网格密度分布按结点数从3向0.2递减。第四步:通过菜单MeShG
14、eneration/AutomaticGeneration或点击左下角的“MakeMesh”按钮,即可自动将整个水流区域剖分成不规则三角形网格。当然,也可以先通过MeShGeneration/EditParanleterS设定平滑参数,但MESHGEN2D模块按默认值就已经可以使网格剖分达到最佳的平滑效果,所以,没有特殊情况一般不修改默认值,而跳过此步直接生成。DomainandBoundaryParameters:用来调用BOUNDARY模块,以便让用户给定特定情况的初始和边界条件,以及取定观测点。第一步:通过菜单ConditionZInitialConditionsZWaterFlowIC
15、给定水流初始条件,即整个水流区域的负压水头或含水率初始分布。点击靠近左下角“Select”按钮选定区域,然后点击左下角“SetValue按钮即可设定初始值,如图5-9。调出的对话框中的单选按钮还可使水头分布随深度线性变化。Select range of the oarerrt burfery CandHiOn D. OOl-3. 159图5-9BOUNDARY模块初始条件的设定图5-10BOUNDARY模块边界条件的设定第二步:通过菜单Condition/WaterFlowBC给定水流边界条件。点击左侧各类边图5T0BOUNDARY模块中的边界条件的设定界按钮,然后选定相应的结点即可。对于定压
16、力水头边界和定流量边界还可能弹出输入数值对话框,如图5-10。第三步:通过菜单ConditionZObsevationNodes设定观测点,观测点必须是网格结点,可以通过ViewZZoom进行放大精确点选,如图5-11。观测点应尽量有代表性,以便进行规律分析。图5-11BOUNDARY模块中的观测点的设定2.4 Parameters主菜单WaterFlow-:包含两个子菜单。1、IterationCriteria:包括两个部分:迭代规则(IterationCriteria)和时间步长调整(TimeStepCOntrol),如图5-12。迭代规则数值框依次表示:最大迭代次数、含水率允许误差、负压
17、水头允许误差。关于时间步长调整,可作如下说明:为了提高求解效率,HYDRUS_2D模拟计算过程中,根据指定的初始时间步长(如IE6h),视求解情况会自动调整时间步长,其规则如下:(1)时间步长不能小于指定的最小时间步长(如lE-6h),也不能大于指定的最大时间步长(如Ih)。(2)如果达到收敛时的迭代次数小于等于某指定下限(默认为3),在下一时段内,将时间步长乘以一个大于1的常数(默认为1.3),以加大时间步长;如果达到收敛时的迭代次数大于等于某指定上限(默认为7),在下一时段内,将时间步长乘以一个小于1的常数(默认为0.7),以减小时间步长。(3)如果在某个时间步长内,迭代次数大于指定的最大
18、迭代次数(实际模拟过程中可根据所要求的精度指定该值为20或30),则终止该时间步长内的迭代过程,并将该时间步长的1/3设置为新的时间步长,重新开始迭代过程。图5-12Iterationeriteria对话框图5-13WaterFloWParameterS对话框2、WaterFlowParameters:由用户给定VG模型中的土壤水力特性参数,也可以根据土壤类别直接在下拉列表中选用,如图5-13。值得注意的是,这些值是经统计分析得出的,显然具有一定代表性,但它也只是一些近似平均参数值,只有在没有条件进行田间测量时才取用。单行表格中的参数意义分述如下:Q,一对应田间持水率0,;O,一对应饱和含水率
19、;O、Qm一分别对应土壤水分特征曲线上0,、0,的两个外推值;Alpha.n分别对应VG模型中的参数(量纲L)和n;Ks、Kk-分别对应饱和水力传导度K。和实际的饱和水力传导度K,量纲LTQ与实际的饱和水力传导度K,相对应的土壤含水率0。修正后的VG模型认为K0K,gO,但在实际的取用中不妨认为VG模型的对应单行表格中的参确定只依赖于5个参数值,即取K=K,0。=0,0=,数即是取Q,=Q,Q=Om=QKs=KkoSoluteTransportParameters,:由用户给定溶质运移参数,此处不熬述。RootWaterUptakeParameters.:由用户给定根系吸水参数。只有勾选菜单M
20、ainInf./MainProcesses下的根系吸水项,此项才有效。根区范围和根系吸水率大小在调用至BOUNDARY模块时菜单ConditionZRootDistribution(此时已变得有效)中设定。点击后调出的对话框如下页图,各根系吸水参数的意义分述如下(请先参见第二章4.4小节):PO、Popt、P3分别对应于h、h2、h;P2H、P2L分别对应潜在腾发率为r2H和r2H时的h,其中r2H和r2H的默认值分别为05cmday和0.1CnVdayoVariableBoundaryConditions:同样,勾选菜单Mainlnf./MainProcesses下的根系吸水项,菜单Main
21、Inf./TimeInfOrmation下的非稳定边界选项会变得有效,并要求根据iny l%rAblQ BOUndary CtrnditioCht等。ExecuteHYDRUS2:调用HYDRUS2模块,执行相应的FoRTRAN程序进行运算。2.5 Results主菜单2DGraPhiCS:调用GRAPHlCS模块,将运算结果以图形形式输出,如图5-14。首先,用菜单QIIanity确定需要显示变化曲线的选项:含水率、负压水头、浓度或流速向量。然后,相应于选项,菜单命令GraphTypeZIsoline将绘制等值线图;GraphType/VelocityVectors将绘制流速矢量图;Grap
22、hType/Spectrum将绘制光谱图;TimeLayer/FlowAnimation将显示随时间变化的动画效果等。Ele Graph Iype Quartty TimeLayerIID-Graph Yw Options HopR。O-O.Q -L1EB1.二Tkn&LaerNoll-I25.000000IPteViCuSRowArimahorForHeIP,pre、lI=-2.344Y=2.938图5-14GRAPHICS模块主界面ObservationPoints.:将绘制在BOUNDARY模块中ConditionZObsevationNodes下设定的观测点的随时间变化的负压水头或含水
23、率等曲线图,如图5-15。BoundaryInformation.:包括四个子菜单PreSSUreHeads.,BoundaryFluxes.,CumulativeFluxes,SoluteFluxes,为了分别具体输出特定边界处的结果变化规律SoilProperties.:根据用户在Parameters/WaterFlow./WaterFlowParameters中给定的土壤水力特性参数描绘相应的水分特征曲线、导水率曲线或容水度曲线等。RunTimeInformation.:显示给用户程序求解过程中时间步长改变、迭代次数以及累积迭代次数的相关信息,如图5-16。图5-15观测点处的输出结果界
24、面图516时阶、迭代信息图MassBalanceInformation:将以文本文件的形式给出指定时刻水或溶质在整个流域流进流出的绝对或相对平衡误差。ConvertOutputtoASII.:将输出文件H.OUT、THQUT、V.OUT等不可读二进制文件转换成H.TXT、TH.TXT、V.TXT等可读的ASn文本文件。2.6 VieW主菜单Toolbar:调出工具栏,以更快捷的形式使用菜单命令。StatusBar:调出状态栏,方便用户的鼠标定位。2.7 Options主菜单Capacity:给定网格剖分时允许的最大结点数、最大三角形单元数和最大的单元总边数。28Help主菜单将以索引、即兴等各种形式给用户提供相关的帮助文件。