CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    咨询,关于文件读写的问题

    OpenFOAM
    4
    10
    2086
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 星
      星星星星晴 最后由 编辑

      各位大神好,

      我想咨询一下如何能让properties文件中的变量可以从别的文档中读取?

      情况是这样的,如下,injectionmodel的设置中,因为我有31个injection model,而且每个injection都有些许不同,因此我就有很多参数需要设置, (Din和Dout是举例)。 这就导致了我的KinematicCloudProperties文件一共有3000....。

      我的想法是每一个参数放到一个dictionary文件中,这样我就需要几个文件放到constant文件夹中就可以,这样会精简很多。

      Din1	0	;
      Din2	0.001	;
      Din3	0.003	;
      Din4	0.005	;
      Din5	0.007	;
      Din6	0.009	;
      Din7	0.011	;
      Din8	0.013	;
      Din9	0.015	;
      Din10	0.017	;
      Din11	0.019	;
      Din12	0.021	;
      Din13	0.023	;
      Din14	0.025	;
      Din15	0.027	;
      Din16	0.029	;
      Din17	0.031	;
      Din18	0.033	;
      Din19	0.035	;
      Din20	0.037	;
      Din21	0.039	;
      Din22	0.041	;
      Din23	0.043	;
      Din24	0.045	;
      Din25	0.047	;
      Din26	0.049	;
      Din27	0.051	;
      Din28	0.053	;
      Din29	0.055	;
      Din30	0.057	;
      Din31	0.059	;
      
      Dout1	0.001	;
      Dout2	0.003	;
      Dout3	0.005	;
      Dout4	0.007	;
      Dout5	0.009	;
      Dout6	0.011	;
      Dout7	0.013	;
      Dout8	0.015	;
      Dout9	0.017	;
      Dout10	0.019	;
      Dout11	0.021	;
      Dout12	0.023	;
      Dout13	0.025	;
      Dout14	0.027	;
      Dout15	0.029	;
      Dout16	0.031	;
      Dout17	0.033	;
      Dout18	0.035	;
      Dout19	0.037	;
      Dout20	0.039	;
      Dout21	0.041	;
      Dout22	0.043	;
      Dout23	0.045	;
      Dout24	0.047	;
      Dout25	0.049	;
      Dout26	0.051	;
      Dout27	0.053	;
      Dout28	0.055	;
      Dout29	0.057	;
      Dout30	0.059	;
      Dout31	0.061	;
      
      
      model2
      		{
      			type            ConeNozzleInjection2;
      			SOI             $soi;
      			massTotal       $masstotal2;
      			parcelBasisType fixed;
      			nParticle		$np2;
      
      			injectionMethod disc;
      			flowType        constantVelocitywithdev;
      			//PinJ 7e5;
      
      			UMag $UMag2;
      			outerDiameter   $Dout2;
      			innerDiameter   $Din2;
      			duration        $duration1;
      			position        $position1;
      			direction       $direction1;
      			parcelsPerSecond $PPS;
      			flowRateProfile $flowrateprofile2;
      			Cd              $dragcoef;
      
      			thetaInner      constant $thetain2;
      			thetaOuter      constant $thetaout2;
      
      			devPadU0			0.035;									//velocity standard deviation
      			devPadW0			1.6;									//angular velocity (standard deviation) [1/s]
      
      			injectiondevPadUx	$injectiondevPadUx2;									//velocity standard deviation
      			injectiondevPadUy	$injectiondevPadUy2;
      			injectiondevPadUz	$injectiondevPadUz2;
      
      			/*sizeDistribution
      			{
      
      				type        MPS_normal;
      
      				MPS_normalDistribution	//size distribution
      				{
      					expectation			0.00015;
      					variance	 		0.000081;
      					maxValue			0.000034200;
      					minValue			0.000000220;
      
      				}
      			}*/
      			
      			MPSVelocityDistribution
      			{
      				type			MPS_normal;
      				MPS_normalDistribution
      				{
      					expectation		0;
      					variance	 	1;
      					maxValue		4;
      					minValue		-4;
      				}
      			}
      			sizeDistribution
      			{
      			   type        RosinRammler;
      
      			   RosinRammlerDistribution
      			   {
      			       minValue        $rrmin;
      			       maxValue        $rrmax;
      			       d               $rrd2;
      			       n               $rrn2;
      			   }
      			}
      		}
      
      

      我的理想状态是

      model24
      		{
      			type            ConeNozzleInjection2;
      			SOI             $soi;
      			massTotal       “$FOAM_CASE/injectionparameter/massTotal.masstotal24”;
      			parcelBasisType fixed;
      			nParticle	“$FOAM_CASE/injectionparameter/nP.nP24”;
      			UMag             “$FOAM_CASE/injectionparameter/UMag.UMag24”;
      			injectionMethod disc;
      			flowType        constantVelocitywithdev;
      			//PinJ 7e5;
      
      			massTotal       $masstotal24;
      			outerDiameter    “$FOAM_CASE/injectionparameter/Dou.Dou24”;
      			innerDiameter    “$FOAM_CASE/injectionparameter/Din.Din24”;
      			duration        $duration1;
      			position        $position1;
      			direction       $direction1;
      			parcelsPerSecond $PPS;
      			flowRateProfile $flowrateprofile2;
      			Cd              $dragcoef;
      
      			thetaInner       “$FOAM_CASE/injectionparameter/thetaInner.theInner24”;
      			thetaOuter      constant $thetaout24;
      
      			devPadU0			0.035;									//velocity standard deviation
      			devPadW0			1.6;									//angular velocity (standard deviation) [1/s]
      
      			injectiondevPadUx	$injectiondevPadUx24;									//velocity standard deviation
      			injectiondevPadUy	$injectiondevPadUy24;
      			injectiondevPadUz	$injectiondevPadUz24; 
      
      			/*sizeDistribution
      			{
      
      				type        MPS_normal;
      
      				MPS_normalDistribution	//size distribution
      				{
      					expectation			0.00015;
      					variance	 		0.000081;
      					maxValue			0.000034200;
      					minValue			0.000000220;
      
      				}
      			}*/
      			
      			MPSVelocityDistribution
      			{
      				type			MPS_normal;
      				MPS_normalDistribution
      				{
      					expectation		0;
      					variance	 	1;
      					maxValue		4;
      					minValue		-4;
      				}
      			}
      			sizeDistribution
      			{
      			   type        RosinRammler;
      
      			   RosinRammlerDistribution
      			   {
      			       minValue        $rrmin;
      			       maxValue        $rrmax;
      			       d               $rrd24;
      			       n               $rrn24;
      			   }
      			}
      		}
      

      m.sui20@foxmail.com

      1 条回复 最后回复 回复 引用
      • 星
        星星星星晴 最后由 编辑

        请教一下 这个该怎么改, OF4.1

        m.sui20@foxmail.com

        1 条回复 最后回复 回复 引用
        • 浪
          浪迹天大 最后由 编辑

          是这样的吗?

                  model1
                  {详细设置所有项目}
                  model2
                  {
                      // The same as model1, but at a different position
                      $model1;
                      position        (-0.15 0.1 0);
                  }
          

          OpenFOAM 学习交流:https://openfoam.top

          星 1 条回复 最后回复 回复 引用
          • 星
            星星星星晴 @浪迹天大 最后由 编辑

            @浪迹天大
            谢谢 不是这样,是这些参数都放到另外一个文档。

            model1
            {
                  massTotal       “$FOAM_CASE/injectionparameter/massTotal.masstotal24”;
            }
            

            m.sui20@foxmail.com

            1 条回复 最后回复 回复 引用
            • Y
              yfclark 讲师 最后由 编辑

              @星星星星晴 在 咨询,关于文件读写的问题 中说:

              ConeNozzleInjection

              ConeNozzleInjection好像不能在一个model里面设置多个injectors,@浪迹天大 的方法可以实现你要的效果,就是有点麻烦,你可以尝试用python等脚本语言写一个生成类似@浪迹天大 所说的多个injectModel的脚本,每次运行算例前,用python读取文件做一个预处理

              星 1 条回复 最后回复 回复 引用
              • 星
                星星星星晴 @yfclark 最后由 编辑

                @yfclark 谢谢

                m.sui20@foxmail.com

                1 条回复 最后回复 回复 引用
                • 浪
                  浪迹天大 最后由 编辑

                  就在今天,Henry Weller 亲自帮你实现了这个功能:high:
                  https://github.com/OpenFOAM/OpenFOAM-dev/commit/a7b842569064ede1574a77210b731904a206182a
                  我很好奇你的需求是如何上达天听的

                  OpenFOAM 学习交流:https://openfoam.top

                  浪 星 2 条回复 最后回复 回复 引用
                  • 浪
                    浪迹天大 @浪迹天大 最后由 编辑

                    @浪迹天大 测试例子:
                    https://github.com/OpenFOAM/OpenFOAM-dev/blob/master/applications/test/dictionary/testSlashDict
                    其中的 external 和 active2 都读取自另一个文件 testSlashDict2。

                    OpenFOAM 学习交流:https://openfoam.top

                    1 条回复 最后回复 回复 引用
                    • 星
                      星星星星晴 @浪迹天大 最后由 编辑

                      @浪迹天大
                      全凭运气 :high:
                      ps:我读书少, 上达天听是这个意思么?
                      https://zhidao.baidu.com/question/115876542.html

                      m.sui20@foxmail.com

                      1 条回复 最后回复 回复 引用
                      • 李东岳
                        李东岳 管理员 最后由 编辑

                        :tishizi:

                        CFD高性能服务器 http://dyfluid.com/servers.html
                        2023年,线下CFD课,预热一下 http://dyfluid.com/class.html

                        1 条回复 最后回复 回复 引用
                        • First post
                          Last post