ZhangYanTJU / ZhangYanTJU.github.io

2 stars 0 forks source link

FlameMaster 编译教程 | OpenFOAM 成长之路 #139

Open ZhangYanTJU opened 3 years ago

ZhangYanTJU commented 3 years ago

https://openfoam.top/FlameMaster/

FlameMaster 编译教程

shane-sudo commented 3 years ago

非常感谢您的分享!请教下您flameMaster中输出组分反应速率是在哪里定义的

ZhangYanTJU commented 3 years ago

@shane-sudo 非常感谢您的分享!请教下您flameMaster中输出组分反应速率是在哪里定义的

感谢支持!

对于 unsteady 对冲火焰,在 TTransFlameSolver.hpp 文件中,搜索 write source term CO,在这一段后边依葫芦画瓢添加所有组分的输出:

// write source of species
for ( i = 0; i < nOfSpecies; ++i ) {
    fprintf( fp, "Source-%s\n", names[i] );
    fprintf( fp, "\t%-.6e", 0.0 );
    for ( k = 0; k < fNGridPoints; ++k ) {
        fprintf( fp, "\t%-.6e", prodRateGrid[k][i] );
        if ( (k+2) % 5 == 0 ) {
            fprintf( fp, "\n" );
        }
    }
    fprintf( fp, "\t%-.6e\n", 0.0 );
}   

对于 steady 对冲火焰,在 TCountDiffFlameMix.hpp 文件中,搜索 write source term ProdRateProgVar,在这一段后边添加:

// write source of species
for (i = 0; i < nOfSpecies; ++i) {
    fprintf(fp, "Source-%s\n", names[i]);
    fprintf(fp, "\t%-.6e", 0.0);
    for (k = 0; k < gridPoints; ++k) {
        fprintf(fp, "\t%-.6e", prod[k][i] );
        if ((k + 2) % 5 == 0) {
            fprintf(fp, "\n");
        }
    }
    fprintf(fp, "\t%-.6e\n", 0.0);
}

然后重新编译即可。

shane-sudo commented 3 years ago

哇,真的太感谢您啦!我的毕业论文中一定会引用您的OpenFoam成长之路,致谢部分一定会感谢您和您的博客,再次感谢巨佬!

敬颂师祺!

------------------ 原始邮件 ------------------ 发件人: "ZhangYanTJU/ZhangYanTJU.github.io" @.>; 发送时间: 2021年6月24日(星期四) 下午3:24 @.>; 抄送: "Shane @.**@.>; 主题: Re: [ZhangYanTJU/ZhangYanTJU.github.io] FlameMaster 编译教程 | OpenFOAM 成长之路 (#139)

@shane-sudo 非常感谢您的分享!请教下您flameMaster中输出组分反应速率是在哪里定义的

感谢支持!

对于unsteady 对冲火焰,在 TTransFlameSolver.hpp 文件中,搜索 write source term CO,在这一段后边依葫芦画瓢添加所有组分的输出: // write source of species for ( i = 0; i < nOfSpecies; ++i ) { fprintf( fp, "Source-%s\n", names[i] ); fprintf( fp, "\t%-.6e", 0.0 ); for ( k = 0; k < fNGridPoints; ++k ) { fprintf( fp, "\t%-.6e", prodRateGrid[k][i] ); if ( (k+2) % 5 == 0 ) { fprintf( fp, "\n" ); } } fprintf( fp, "\t%-.6e\n", 0.0 ); }

对于 steady 对冲火焰,在 TCountDiffFlameMix.hpp 文件中,搜索 write source term ProdRateProgVar,在这一段后边添加: // write source of species for (i = 0; i < nOfSpecies; ++i) { fprintf(fp, "Source-%s\n", names[i]); fprintf(fp, "\t%-.6e", 0.0); for (k = 0; k < gridPoints; ++k) { fprintf(fp, "\t%-.6e", prod[k][i] ); if ((k + 2) % 5 == 0) { fprintf(fp, "\n"); } } fprintf(fp, "\t%-.6e\n", 0.0); }

然后重新编译即可。

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

shaneHe96 commented 3 years ago

补充一个FM的使用:

https://github.com/Combustion-Zhen/FM2Cantera

给出了将FM生成的flamelet数据导出为.csv格式的程序,其中需要用到的

speciestranslated文件,在使用FM将chemkin格式的反应机理转换为FM格式时生成。

FM2Cantera.C中的FM2Can函数中添加以下代码便可导出每个组分的反应速率:

` /---------------the below is added for output reaction rate of species---------------/ //定义变量

vector<string> nOfSpecies;
ifstream fastrm;
fastrm.open("speciestranslated");
if(!fastrm.is_open())
    throw runtime_error("File speciestranslated not found");
string aline;
while(getline(fastrm, aline)){
    istringstream asstrm(aline);
    string name_FM, name_CK;
    asstrm >> name_CK >> name_FM;
    nOfSpecies.push_back(name_FM);

} /---------------the above is added for output reaction rate of species---------------/ //导出 //reaction rate: rate of specie[i] for(int i=0;i<nOfSpecies.size();++i) { getline(FM_file,line); // translate FM_name to CK_name // cout << names[FM_name] << endl; var_name.push_back("rate of "+nOfSpecies[i]); all_data.push_back(data_read(FM_file,grid_pts)); } `

再次编译即可。

StephenChen2016 commented 3 years ago

shaneHe96, 您好 我在用FM2Cantera-master的时候会报错 提示 terminate called after throwing an instance of 'std::runtime_error' what(): File speciestranslated not found Aborted (core dumped) 请问我应该如何操作呢?

StephenChen2016 commented 3 years ago

您好,我想做一个标量耗散率随时间变化的算例,请问我需要如何更改呢?

StephenChen2016 commented 2 years ago

请问我如何输出温度源项呢

StephenChen2016 commented 2 years ago

请问在0维的isobar或者isochor如何定义prod rate呢

StephenChen2016 commented 2 years ago

博主 你好请问可以向你请教一下、flamemaster的知识吗 我想修改源代码 有些地方不懂