Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

欧

欧阳

@欧阳
关于
帖子
15
主题
1
群组
0
粉丝
0
关注
0

帖子

最新

  • 运行结束后输出密度rho
    欧 欧阳

    @尚善若水 我现在用的是v2306,测试出来的tc值,如果没有反应就特别大


  • 运行结束后输出密度rho
    欧 欧阳

    @尚善若水

                        IOobject
                        (
                            "Qdot." + Y_[i].name(),
                            this->mesh_.time().timeName(),
                            this->mesh_,
                            IOobject::NO_READ,
                            IOobject::NO_WRITE,  
                            IOobject::REGISTER    
                        ),
    

    这样修改后,我使用

    writeObjects
    (
        "Qdot.OH" 
    );
    

    后,没有输出Qdot.OH


  • 运行结束后输出密度rho
    欧 欧阳

    @尚善若水 喷雾燃烧,当关注一些燃烧的重要时间点,低温反应着火与高温反应着火时间点,还有燃烧衰退时,组分的总放热蛮重要的,尤其当分析出,这个物质的对流,扩散与化学反应哪个占主导后。是的,PaSR


  • 运行结束后输出密度rho
    欧 欧阳

    @尚善若水 大佬有输出过tc吗?我按```
    tc[celli] = nReaction*cSum/tc[celli];

    StandardChemistryModel.C中的修改出现的结果,tc的值特别的大。反应几乎不发生时,特征时间趋于无穷大。但是这些极大值没有实际意义,反而会造成数值问题。

  • 运行结束后输出密度rho
    欧 欧阳

    @尚善若水 写个functionObject,后处理,这个我没有试过,我之前一直都是在调用模型的原代码上修改的。我去学学,
    “按照cantera的处理,输出每步反应里面各个组分的放热和每步反应的总放热”
    这个是我现在在实现的,每个化学反应步在每个网格的Qdot,然后一些敏感性ODCantera那边的已经实现了,但是这边一直编译的或多或多出现一些问题


  • 运行结束后输出密度rho
    欧 欧阳

    @尚善若水 我现在在我自己的代码的基础上,运行的结果是不管用不用writeObjects指定一些物质。所有物质的热量贡献都会输出


  • 运行结束后输出密度rho
    欧 欧阳

    @尚善若水

    对于你的问题,我最近也在修改,加入以下代码,然后在类定义中添加成员变量就行了。我这边是可以成功输出每个物质对应的Qdot

    template<class ReactionThermo, class ThermoType>
    Foam::tmp<Foam::volScalarField>
    Foam::StandardChemistryModel<ReactionThermo, ThermoType>::Qdot() const
    {
        tmp<volScalarField> tQdot
        (
            new volScalarField
            (
                IOobject
                (
                    "Qdot",
                    this->mesh_.time().timeName(),
                    this->mesh_,
                    IOobject::NO_READ,
                    IOobject::NO_WRITE,
                    IOobject::NO_REGISTER
                ),
                this->mesh_,
                dimensionedScalar(dimEnergy/dimVolume/dimTime, Zero)
            )
        );
    QdotSpecies_;
        if (!QdotSpecies_.size())
        {
            // 首次调用时初始化
            QdotSpecies_.setSize(nSpecie_);
            
            forAll(Y_, i)
            {
                QdotSpecies_.set
                (
                    i,
                    new volScalarField
                    (
                        IOobject
                        (
                            "Qdot." + Y_[i].name(),
                            this->mesh_.time().timeName(),
                            this->mesh_,
                            IOobject::NO_READ,
                            IOobject::AUTO_WRITE,  
                            IOobject::REGISTER     
                        ),
                        this->mesh_,
                        dimensionedScalar(dimEnergy/dimVolume/dimTime, Zero)
                    )
                );
            }
        }
        
        if (this->chemistry_)
        {
            scalarField& Qdot = tQdot.ref();
            Qdot = 0.0;  
            
            forAll(Y_, i)
            {
                volScalarField& QdotI = QdotSpecies_[i];
                const scalar hi = specieThermo_[i].Hc();
                
                forAll(Qdot, celli)
                {
    
                    QdotI[celli] = -hi*RR_[i][celli];
                    
    
                    Qdot[celli] += QdotI[celli];
                }
                
                // 修正边界条件
                QdotSpecies_[i].correctBoundaryConditions();
            }
            
            tQdot.ref().correctBoundaryConditions();
           
        }
    
        return tQdot;
    }
    
    

  • ECN登录需要身份验证
    欧 欧阳

    你是要VPL,LPL,IDT跟FLOL?CMT现在有部分结果没有ECN之前展示的那么多,但是喷雾的拍摄的AVI是有的,你可以自己识别


  • ECN登录需要身份验证
    欧 欧阳

    去CMT吧,我前段时间也是ECN找spray A的数据进不去了,要不就直接扒拉文章里面的了


  • DLBfoam的编译
    欧 欧阳

    @尚善若水 DLB跟org的cpuload,大佬测试的哪个性能更好?


  • DLBfoam的编译
    欧 欧阳

    谢谢,谢谢大佬,太感谢了,大佬使用过DLBfoam吗?


  • ORourke碰撞模型调用
    欧 欧阳
            //- Space coefficient
            scalar cSpace_;
    
            //- Time coefficient
            scalar cTime_;
    
    

    这两个嘛,应该是都需要的
    TrajectoryCollision.H这个文件中应该有说明


  • ORourke碰撞模型调用
    欧 欧阳

    直接调用trajectory就行


  • ORourke碰撞模型调用
    欧 欧阳

    日历文件的输出有吗?
    这是我的,目前是可以计算的,在计算中

    ORourkeCoeffs
        {    
                coalescence false;  // 是否考虑液滴聚合    
        }这段代码没有在v2306中会报错
    
        stochasticCollisionModel none;//ORourke;//随机碰撞模型为无。随机碰撞模型描述了颗粒之间的碰撞行为。
        ORourkeCoeffs
        {    
                coalescence false;  // 是否考虑液滴聚合    
        }
    

  • DLBfoam的编译
    欧 欧阳

    https://github.com/Aalto-CFD/DLBFoam
    请问有人使用过DLBfoam吗?我在编译过程中
    ./Allwmake --clean --platform STANDALONE
    出现的以下的错误,在参考https://github.com/Aalto-CFD/DLBFoam/issues/21的帖子讨论结果后,还是没有解决这个问题

    wmake libso src/thermophysicalModels/chemistryModel
    wmake libso src/ODE_DLB
    wmakeLnInclude: linking include files to ./lnInclude
    Making dependency list for source file seulex_LAPACK.C
    g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3  -DNoRepository -ftemplate-depth-100 -I/usr/include    -I/work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include  -DDEBUG=0  -IlnInclude -I. -I/work/opt/local/apps/gcc/4.8.5/impi/2019.9.304/openfoam/8/OpenFOAM-8/src/OpenFOAM/lnInclude -I/work/opt/local/apps/gcc/4.8.5/impi/2019.9.304/openfoam/8/OpenFOAM-8/src/OSspecific/POSIX/lnInclude   -fPIC -c ODESolvers/ODESolver/ODESolver.C -o Make/linux64GccDPInt32Opt/ODESolvers/ODESolver/ODESolver.o
    g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3  -DNoRepository -ftemplate-depth-100 -I/usr/include    -I/work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include  -DDEBUG=0  -IlnInclude -I. -I/work/opt/local/apps/gcc/4.8.5/impi/2019.9.304/openfoam/8/OpenFOAM-8/src/OpenFOAM/lnInclude -I/work/opt/local/apps/gcc/4.8.5/impi/2019.9.304/openfoam/8/OpenFOAM-8/src/OSspecific/POSIX/lnInclude   -fPIC -c ODESolvers/ODESolver/ODESolverNew.C -o Make/linux64GccDPInt32Opt/ODESolvers/ODESolver/ODESolverNew.o
    g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3  -DNoRepository -ftemplate-depth-100 -I/usr/include    -I/work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include  -DDEBUG=0  -IlnInclude -I. -I/work/opt/local/apps/gcc/4.8.5/impi/2019.9.304/openfoam/8/OpenFOAM-8/src/OpenFOAM/lnInclude -I/work/opt/local/apps/gcc/4.8.5/impi/2019.9.304/openfoam/8/OpenFOAM-8/src/OSspecific/POSIX/lnInclude   -fPIC -c ODESolvers/seulex_LAPACK/seulex_LAPACK.C -o Make/linux64GccDPInt32Opt/ODESolvers/seulex_LAPACK/seulex_LAPACK.o
    ODESolvers/seulex_LAPACK/seulex_LAPACK.C: In member function ‘bool Foam::seulex_LAPACK::seul(Foam::scalar, const scalarField&, Foam::label, Foam::scalar, Foam::label, Foam::scalarField&, const scalarField&) const’:
    ODESolvers/seulex_LAPACK/seulex_LAPACK.C:157:53: error: too few arguments to function ‘void dgetrs_(const char*, const int*, const int*, const double*, const int*, const int*, double*, const int*, int*, size_t)’
         dgetrs_(&TRANS,&N,&NRHS,A,&LDA,IPIV,b,&LDB,&INFO);
                                                         ^
    In file included from /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapack.h:11:0,
                     from /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapacke.h:36,
                     from ODESolvers/seulex_LAPACK/seulex_LAPACK.H:58,
                     from ODESolvers/seulex_LAPACK/seulex_LAPACK.C:28:
    /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapack.h:4043:42: note: declared here
     #define LAPACK_dgetrs_base LAPACK_GLOBAL(dgetrs,DGETRS)
                                              ^
    /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapacke_mangling.h:12:39: note: in definition of macro ‘LAPACK_GLOBAL’
     #define LAPACK_GLOBAL(lcname,UCNAME)  lcname##_
                                           ^
    /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapack.h:4044:6: note: in expansion of macro ‘LAPACK_dgetrs_base’
     void LAPACK_dgetrs_base(
          ^
    ODESolvers/seulex_LAPACK/seulex_LAPACK.C:211:61: error: too few arguments to function ‘void dgetrs_(const char*, const int*, const int*, const double*, const int*, const int*, double*, const int*, int*, size_t)’
                 dgetrs_(&TRANS,&N,&NRHS,A,&LDA,IPIV,b,&LDB,&INFO);
                                                                 ^
    In file included from /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapack.h:11:0,
                     from /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapacke.h:36,
                     from ODESolvers/seulex_LAPACK/seulex_LAPACK.H:58,
                     from ODESolvers/seulex_LAPACK/seulex_LAPACK.C:28:
    /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapack.h:4043:42: note: declared here
     #define LAPACK_dgetrs_base LAPACK_GLOBAL(dgetrs,DGETRS)
                                              ^
    /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapacke_mangling.h:12:39: note: in definition of macro ‘LAPACK_GLOBAL’
     #define LAPACK_GLOBAL(lcname,UCNAME)  lcname##_
                                           ^
    /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapack.h:4044:6: note: in expansion of macro ‘LAPACK_dgetrs_base’
     void LAPACK_dgetrs_base(
          ^
    ODESolvers/seulex_LAPACK/seulex_LAPACK.C:268:57: error: too few arguments to function ‘void dgetrs_(const char*, const int*, const int*, const double*, const int*, const int*, double*, const int*, int*, size_t)’
             dgetrs_(&TRANS,&N,&NRHS,A,&LDA,IPIV,b,&LDB,&INFO);
                                                             ^
    In file included from /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapack.h:11:0,
                     from /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapacke.h:36,
                     from ODESolvers/seulex_LAPACK/seulex_LAPACK.H:58,
                     from ODESolvers/seulex_LAPACK/seulex_LAPACK.C:28:
    /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapack.h:4043:42: note: declared here
     #define LAPACK_dgetrs_base LAPACK_GLOBAL(dgetrs,DGETRS)
                                              ^
    /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapacke_mangling.h:12:39: note: in definition of macro ‘LAPACK_GLOBAL’
     #define LAPACK_GLOBAL(lcname,UCNAME)  lcname##_
                                           ^
    /work/00/gs50/s50001/lapack-3.10.1/LAPACKE/include/lapack.h:4044:6: note: in expansion of macro ‘LAPACK_dgetrs_base’
     void LAPACK_dgetrs_base(
          ^
    make: *** [Make/linux64GccDPInt32Opt/ODESolvers/seulex_LAPACK/seulex_LAPACK.o] Error 1
    
  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]