Skip to content
  • 0 赞同
    2 帖子
    5k 浏览

    http://liusuanyatong.blog.163.com/blog/static/21559515720168101280189/
    解决你提出的问题,然后还会出现问题,用下面的方法解决
    http://liusuanyatong.blog.163.com/blog/static/215595157201681012955813/
    希望对你有帮助,祝好

  • 0 赞同
    3 帖子
    4k 浏览
    L

    @书生kao 大神会编嘛求指教,完全看不懂那些个语句呀

  • 有人关注Grad、R13矩方法么?

    Algorithm
    2
    0 赞同
    2 帖子
    4k 浏览
    S

    这不是用来推导离散Boltzmann方程的方法吗?Hermite expansion and Gauss-Hermite quadrature????

  • ICEM叶片倾斜安装的涡轮将网格划分策略

    Meshy
    11
    0 赞同
    11 帖子
    19k 浏览
    李东岳

    @shuchang769 一样的思路啊

  • 0 赞同
    2 帖子
    3k 浏览
    李东岳

    是的,理想气体,明天我更新下。

    另外,温度本身不是守恒变量,因此,CFD一般求解守恒变量,但是温度方程通常比较简单,一些不太成熟的代码会使用温度防尘

  • 关于2D axisymmetric边界条件的设定

    OpenFOAM
    4
    0 赞同
    4 帖子
    6k 浏览
    D

    对称轴可以不设任何边界条件,因为轴上没有网格面。

  • ICEM网格划分过程中的part问题

    Meshy
    3
    0 赞同
    3 帖子
    7k 浏览
    N

    @wwxdli 谢谢,我试一试

  • 0 赞同
    1 帖子
    2k 浏览
    Z

    以DTChull算例为例,该船6m长,速度是1.668 m/s 自己根据网上的找的公式算出来的k和omega和算例中给定的差别很大,自己用的公式是6ac30593-c076-46d9-8b9b-af132f89a9f5-图片.png
    3d1cc183-2b26-40b4-9c6c-e71332a0b616-图片.png

  • Icem 划分风箱

    Meshy
    3
    0 赞同
    3 帖子
    6k 浏览

    @blgy 谢谢您的回复,
    1.第一个问题明白,我继续试一下。
    2.对的,这个模型原来的确是采用混合网格,部分采用四面体,部分采用六面体,但是现在想整体都用六面体尝试,所以难度确实比较大。硬件资源应该问题不大,但是只是想用六面体完成,有这个要求
    3.周期性网格我还了解的不太多,包括您后面说到的一些,愿闻其详
    4.较早前曾使用gambit进行网格划分,但是网格量比较大,之前的计算网格量大概是是过亿了,gambit似乎当初处理不了这么多的网格量,所以才放弃的。
    5.确实目前因为icem的网格思路与操作还比较陌生,整体还是比较困难

  • 传统工科生喜欢上了CFD

    CFD彩虹条
    4
    0 赞同
    4 帖子
    7k 浏览
    D

    @ludwigzh 现在从事什么工作呀?

  • 圆管对流换热,入口段温度分布异常

    OpenFOAM
    3
    0 赞同
    3 帖子
    4k 浏览
    C

    externalWallHeatFluxTemperature,将q设为0.

    不过我用这个BC加恒定热流密度,后处理用wallheatflux计算,发现有个min/max区间,integral的值比应该注入的能量少0.3W(48.8W VS 48.5W),不知道这是否正常。

  • 0 赞同
    2 帖子
    4k 浏览
    Cp_ZhaoC

    好像是分内部点(所有面都不是边界)和边界点,内部点根据cell插值(距离倒数分之一),边界点根据face插值。

  • CFD周边

    CFD彩虹条
    33
    0 赞同
    33 帖子
    45k 浏览
    李东岳

    鼠标垫基本都发货了。Ricardo,你的地址信息不全

  • fluent meshing.怎样找到意外出现的baffles

    Meshy
    2
    0 赞同
    2 帖子
    4k 浏览
    taiwangwsgT

    可以在join/intersect里面查找一下看看。

  • 10月黄金求职季,晒Offer

    CFD彩虹条
    1
    0 赞同
    1 帖子
    6k 浏览
    李东岳

    网上有人整理了北邮人论坛最近的Offer,做了个整理:

    搜狗 年350000
    上汽-人工智能实验室 年300000
    百度算法岗 年500000+
    华为ailab 年620000
    华为 月27000 保底年370000
    阿里 19000乘16,年300000
    阿里 年300000+100000落户补贴
    微软工程院 一说是起码比阿里多50000,另一说微软~=阿里的1.5倍
    hulu算法岗 年600000
    金山云 20000乘(14~16) ~= 年300000
    华为(14级) (18000~20000)*(14~16月)~=年300000
    Shareit 20000乘16 = 年320000
    新浪微博 20000乘14 = 年280000
    百度,白菜价17000乘14.6 = 年248000
    zoom云视频 18000乘14 = 年250000
    顺丰科技 (22000+20000+10000)乘15 = 年375000
    华为(16级) 博士 12个月基本工资+年终奖+50000签字费 ~ 年500000
    京豆后台 320000
    京东前端 白菜250000 小sp 280000 大sp 320000
    苏宁 年240000,每周六天

    以上都是今年毕业硕士,应该在93年左右生人? 所有岗位中算法类的待遇最高。面试也是纯算法+在线编程。感兴趣的挑战北邮人论坛【毕业生找工作】板块 https://bbs.byr.cn/#!board/Job

    看样子小硕几年就够首付,马上迎娶白富美 :xiezuoye: 知道北京回龙观上地吧,码农聚集地,本来五环外属于昌平区,房价活活被年薪百万的码农拉高堪比五道口

    我还是赶紧写代码去吧

    0_1539821565741_捕获.JPG

  • 0 赞同
    1 帖子
    3k 浏览

    2422ba2b-f9b8-402e-936e-8075325aae10-image.png 例如我生成一个part名字叫多“cavity1”,但是导入到fluent里面会多出“cavity1:007,cavity1:008,cavity1:008shadow,”这几个边界fb6ad2d6-0c7d-4266-a7b4-fa752482f0a6-image.png 。相应的网格也被分裂出好多细块。微信图片_20190126110946.jpg 微信图片_20190126110950.jpg

  • OpenFOAM删除全部时间步下的某个文件

    OpenFOAM
    1
    0 赞同
    1 帖子
    2k 浏览
    李东岳

    有些场数据完全不需要,比如ddt场,可以通过

    find . -name "ddt*" -type f

    确认删除的场,然后

    find . -name "ddt*" -type f -delete

    删除

    参考 https://askubuntu.com/questions/377438/how-can-i-recursively-delete-all-files-of-a-specific-extension-in-the-current-di

  • 0 赞同
    3 帖子
    5k 浏览
    B

    尖的地方可以试试将多余的节点进行合并成一个节点映射到尖尖的点上,然后对锥块做一个Y剖,但是这样的话在尖尖位置的网格要么太密要么质量差

  • 有朋友做流固耦合吗

    Algorithm
    3
    0 赞同
    3 帖子
    4k 浏览
    N

    感谢版主哦 :146:

  • OpenFoam stuff forward from The Visual Room

    OpenFOAM
    1
    0 赞同
    1 帖子
    2k 浏览
    N

    This is the OpenFOAM language.
    http://www.thevisualroom.com/24_openfoam_language/openfoam_language.html

    What are features of C++?
    What is explicit evaluation?
    What is implicit evaluation?
    What are the higher level data types?
    What are fields?
    What are the three types?
    What are the five basic classes?
    What are the three space-time classes?
    What are the three field algebra classes?
    What are the two discretisation classes?
    What is a geometricField<Type>?
    What is the objectRegistry?
    What is the IOobject?
    How is a dictionary object read?
    How is volVectorField read from disk?
    How is volScalarField constructed?
    What are the read and write options?
    How are objects represented in OpenFOAM?
    How is matrix inversion done in fvm?
    What are lists?
    What are fields?
    How is memory accessed?
    How is IO Communication done?
    How are derivatives of fields evaluated?
    What are the functions for discretisation?
    How can are equations translated into code?
    How is the PISO algorithm programmed?
    What are header files?
    What is wmake?
    1.1.1. What are features of C++?
    Feature Meaning
    typedefs Alias for a possibly complex type name
    function Group of statements that perform a task
    pointers Data type that holds addresses to refer to values in memory (e.g. for dynamic memory allocation)
    data structures Data members grouped under one name (e.g. the nodes in a linked list)
    classes Data members and function members grouped under one name
    constructor Function member that initialises the instance of it’s class
    destructor Function member that destroys the instance of it’s class
    friends Allows a function or class access to private or protected members of a class
    inheritance Allows a class to be created based on another class (so code can be reused)
    virtual member functions Member function that will be redefined in a derived class
    abstract class Class that contains at least one virtual function
    template Family of classes (class template), functions (function template), variables (variable template) or alias of a family of types (alias template)
    namespace Prevents name conflicts in large projects
    1.1.2. What is explicit evaluation?
    Evaluate spatial derivatives at the current timestep
    Uses known values
    1.1.3. What is implicit evaluation?
    Evaluate spatial derivatives at future timestep
    Uses unknown values - generates a matrix equation to be solved
    1.1.4. What are the higher level data types?
    Type Meaning
    volScalarField
    scalar, e.g. pressure
    volVectorField
    vector, e.g. velocity
    volTensorField
    tensor, e.g. Reynolds Stress
    surfaceScalarField
    surface scalar, e.g. flux
    dimensionedScalar
    constant, e.g. viscosity
    1.1.5. What are fields?
    Arrays of data stored at cell centres in the mesh

    Include bouundary information

    Three types
    volScalarField
    volVectorField
    volTensorField
    Values are stored in named dictionary files in named timestep directories e.g. case/0/p for pressure

    1.1.6. What are the three types?
    <Type> refers to:

    scalar
    vector
    tensor
    1.1.7. What are the five basic classes?
    Class Meaning
    fvPatchField
    (and derived classes)

    Boundary conditions
    lduMatrix
    fvMatrix
    (and linear solvers)

    Sparse matrices
    1.1.8. What are the three space-time classes?
    Class Meaning
    polyMesh
    Stands for polyhedral mesh

    Most basic mesh class

    Contains:
    pointField
    faceList
    cellList
    polyPatchList
    fvMesh
    Extends polyMesh contains:
    Cell volumes (volScalarField)
    Cell centres (volVectorField)
    Face area vectors (surfaceVectorField)
    Face centres (surfaceVectorField)
    Face area magnitudes (surfaceScalarField)
    Face motion centres (surfaceScalarField)
    Time
    Class to control time during OpenFOAM
    Declared as variable runTime
    Provides list of saved times runTime.times()
    Timestep = deltaT()
    Return current directory name = name()
    Time increments = operator++() operator+=(scalar)
    Write objects to disk = write()
    Start time, end time = startTime(), endTime()
    1.1.9. What are the three field algebra classes?
    Class Meaning
    Field<Type>
    Array template class, e.g. Field<vector> = vectorField

    Renamed using typedef as:
    scalarField
    vectorField
    tensorField
    symmTensorField
    tensorThirdField
    symmTensorThirdField
    dimensionedField

    geometricField<Type>
    Combination of:
    Field
    GeometricBoundaryField
    fvMesh
    dimensionSet
    Defines values at all locations in domain with aliases:
    volField<Type>
    surfaceField<Type>
    pointField<Type>
    1.1.10. What are the two discretisation classes?
    Class Meaning
    fvc
    Stands for finite volume calculus
    Explicit derivative evaluation
    Input = known geometricField<Type>
    Output = geometricField<Type> object
    fvm
    Stands for finite volume method
    Implicit derivative evaluation
    Input = unknown geometricField<Type>
    Output = fvMatrix<Type> object, which can be inverted in the matrix equation Mx=y
    1.1.11. What is a geometricField<Type>?
    volField<Type>
    surfaceField<Type>
    pointField<Type>
    1.1.12. What is the objectRegistry?
    Object registry of entities (dictionaries, fields) which are to be read in or written out

    1.1.13. What is the IOobject?
    Defines I/O attributes of entities managed by the object registry.

    1.1.14. How is a dictionary object read?
    Code Meaning
    Info << "Reading transportProperties" << endl;
    Send message to screen
    IOdictionary transportProperties
    (
    IOobject
    (
    "transportProperties",
    runTime.constant(),
    mesh,
    IOobject::MUST_READ
    IOobject::NO_WRITE
    )
    );
    Read in at creation
    dimensionedScalar nu
    (
    transportProperties.lookup("nu")
    );
    Lookup viscosity in dictionary
    1.1.15. How is volVectorField read from disk?
    Code Meaning
    volVectorField U
    (
    IOobject
    (
    "U",
    Times[i].name(),
    runTime,
    IOobject::MUST_READ
    ),
    mesh
    )
    volVectorField read in from disk
    Associated with runTime database
    Must be read
    1.1.16. How is volScalarField constructed?
    Code Meaning
    volVectorField magU
    (
    IOobject
    (
    "magU",
    Times[i].name(),
    runTime,
    IOobject::NO_READ
    IOobject::AUTO_WRITE
    ),
    ::mag(U)
    );
    magU.write();
    construct mag(U) object of type volScalarField called magU
    write it out
    1.1.17. What are the read and write options?
    Class Meaning
    NO_READ
    Object created
    MUST_READ
    READ_IF_PRESENT
    Object asked to read
    NO_WRITE
    Object destroyed
    AUTO_WRITE
    Object asked to write
    1.1.18. How are objects represented in OpenFOAM?
    How to create an object that writes the magnitude of a velocity vector?

    Class Meaning
    #include "fvCFD.H"
    int main(int argc, char argv[])
    {

    include "addTimeOptions.H" include "setRootCase.H" include "createTime.H"

    instantList Times = runTime.times();

    include "createMesh.H"

    One block called main is needed
    #include to store commonly used code
    runTime is a variable of the OpenFOAM Time class - for timestepping through code
    for(label i=0; i<runTime.size(); i++)
    {
    runTime.setTime(Times[i],i);
    Info << "Time: " << runTime.value() << endl
    volVectorField U
    (
    IOobject
    (
    "U",
    Times[i].name(),
    runTime,
    IOobject::MUST READ
    ),
    mesh
    );
    Loop over all possible times
    Read in a volVectorField U
    volScalarField magU
    (
    IOobject
    (
    "magU",
    Times[i].name(),
    runTime,
    IOobject::NO READ,
    IOobject::AUTO WRITE
    ),
    ::mag(U)
    );
    magU.write();
    } return 0;}
    Construct a volScalarField magU
    Write out the velocity
    1.1.19. How is matrix inversion done in fvm?
    Each operator in fvm constructs particular entries in known M and y as a fvMatrix object
    fvMatrix is a template class (actual classes are fvScalarMatrix etc)
    fvMatrix handles storage via lduMatrix class
    fvMatrix class also handles solution
    1.1.20. What are lists?
    Class Meaning
    List<Type>
    Array template class
    Allows creation of a list of any object of a class e.g. List<vector>
    PtrList<Type>
    List of pointers
    SLList<Type>
    Non-intrusive singly-linked list
    1.1.21. What are fields?
    Class Meaning
    Field<Type>
    Array template class, e.g. Field<vector> = vectorField

    Renamed as scalarField, vectorField, tensorField, symmTensorField,
    tensorThirdField and symmTensorThirdField

    1.1.22. How is memory accessed?
    Arrays
    Pointers
    References
    1.1.23. How is IO Communication done?
    Code Meaning
    Info << "Time = " << runTime.timeName() << nl << endl;
    Info object is output to the screen
    1.1.24. How are derivatives of fields evaluated?
    Time derivative

    Divergence (div)
    Spatial derivative
    Discretised using the flux at the faces
    e.g. ∇⋅(uq) (the advection term)
    Gradient (grad)
    Spatial derivative
    e.g. ∇p in the momentum equation
    Laplacian
    Spatial derivative

    Discretised as ∇⋅μ∇q
    gradient scheme for ∇q
    interpolation for μ
    discretisation for ∇⋅
    e.g. μ∇2q in the momentum equation

    1.1.25. What are the functions for discretisation?
    Function Meaning
    fvc::ddt(A)
    fvm::ddt(A)
    Time derivative
    ∂A/∂t
    A can be a scalar, vector or tensor
    fvc::ddt(rho,A)
    fvm::ddt(rho,A)
    Density weighted time derivative
    ∂ρA/∂t
    ρ can be any scalar field
    fvc::d2dt2(rho,A)
    fvm::d2dt2(rho,A)
    Second density weighted time derivative
    ∂/∂t(ρ∂A/∂t)
    fvc::grad(A)
    fvm::grad(A)
    Gradient
    A can be a scalar or a vector
    Result is a volVectorField (from scalar) or a volTensorField (from vector)
    fvc::div(A)
    fvm::div(A)
    Divergence
    A can be a vector or a tensor
    Result is a volScalarField (from vector) or a volVectorField (from tensor)
    fvc::laplacian(A)
    fvm::laplacian(A)
    Laplacian
    ∇2A
    fvc::laplacian(mu, A)
    fvm::laplacian(mu, A)
    Laplacian
    ∇⋅(μ∇A)
    fvc::curl(A)
    fvm::curl(A)
    Curl
    ∇×A
    fvm::div(phi,A)
    Divergence using flux to evaluate this
    A can be a scalar, vector or a tensor
    fvm::Sp(rho,A)
    Implicit evaulation of source term
    fvm::SuSp(rho,A)
    Implicit or explicit evaulation of source term (depending on sign of rho
    1.1.26. How can are equations translated into code?
    Equation Code
    ∂q∂t+∇⋅qu=μ∇2q
    fvScalarMatrix transport
    (
    fvm::ddt(q)
    + fvm::div(phi,q)
    - fvm::laplacian(mu,q)
    );

    // phi is the flux from the momentum equation
    ∂T∂t=κ∇2T
    solve(fvm::ddt(T) == kappa*fvc::laplacian(T))

    // T is a volScalarField defined on the mesh
    // A discretised representation of the field variable T
    // solve performs matrix inversion for one step
    ∂k∂t+∇⋅ku−∇⋅[(ν+νt)∇k]=νt[1/2(∇u+∇uT]2−ε/k
    solve(
    fvm::ddt(k)
    + fvm::div(phi,k)
    - fvm::laplacian(nu()+nut,k)
    == nut*magSqr(symm(fvc::grad(U)))
    - fvm::Sp(epsilon/k,k)
    );
    1.1.27. How is the PISO algorithm programmed?
    The PISO (Pressure Implicit with Splitting of Operators) is an efficient method to solve the Navier-Stokes equations

    The algorithm can be summed up as follows:

    Set the boundary conditions.
    Solve the discretized momentum equation to compute an intermediate velocity field.
    Compute the mass fluxes at the cells faces.
    Solve the pressure equation.
    Correct the mass fluxes at the cell faces.
    Correct the velocities on the basis of the new pressure field.
    Update the boundary conditions.
    Repeat from 3 for the prescribed number of times.
    Increase the time step and repeat from 1.
    The implementation:

    Define the equation for U
    fvVectorMatrix UEqn
    (
    fvm::ddt(U)

    fvm::div(phi, U) fvm::laplacian(nu, U)
    );
    Solve the momentum predictor
    solve (UEqn == -fvc::grad(p));
    Calculate the ap coefficient and calculate U
    volScalarField rUA = 1.0/UEqn().A();
    U = rUA*UEqn().H();
    Calculate the flux
    phi = (fvc::interpolate(U) & mesh.Sf()) fvc::ddtPhiCorr(rUA, U, phi);
    adjustPhi(phi, U, p);
    Define and solve the pressure equation and repeat for the prescribed number of non-orthogonal corrector steps
    fvScalarMatrix pEqn
    (
    fvm::laplacian(rUA, p) == fvc::div(phi)
    );
    pEqn.setReference(pRefCell, pRefValue);
    pEqn.solve();
    Correct the flux
    if (nonOrth == nNonOrthCorr)
    {
    phi -= pEqn.flux();
    }
    Calculate continuity errors include "continuityErrs.H"

    Perform the momentum corrector step
    U -= rUA*fvc::grad(p);
    U.correctBoundaryConditions();
    The following is from the OpenFOAM UK Users Group:

    1.1.28. What are header files?
    Sections of code in separate files that are widely used - all function prototypes in a header file

    Equation Code
    #include "CourantNumber.H"
    File containing code for calculating Courant number
    1.1.29. What is wmake?
    wmake is a make system – directs the compiler to compile specific files in particular ways.

    Controlled through files in Make:
    files – specifies which user-written files to compile and what to call the result
    options – specifies additional header files/libraries to be included in the compilation.