首页 > 其他分享 >OFtutorial10_transportEquation解析

OFtutorial10_transportEquation解析

时间:2024-08-20 21:05:35浏览次数:13  
标签:Info NOTE term transportEquation field beta result OFtutorial10 解析

组成

OFtutorial10.C

源码

头文件

#include "fvCFD.H"

主函数

int main(int argc, char *argv[])
{

头文件

	// Set up the case, parse command line options and create the grid
    #include "setRootCase.H"
    #include "createTime.H"
    #include "createMesh.H"

beta场定义(可以是任何具有物理意义的体积标量场)

    // Create the scalar field and read BCs and the initial conditions
    // NOTE: beta is thus already subjects to the BCs specified in 0/beta
    Info << "Reading field beta" << nl << endl;
    volScalarField beta
    (
        IOobject
        (
            "beta",
            runTime.timeName(),
            mesh,
            IOobject::MUST_READ,
            IOobject::AUTO_WRITE
        ),
        mesh
    );

速度场定义

    // Read the constant velocity field
    Info << "Reading field U" << nl << endl;
    volVectorField U
    (
        IOobject
        (
            "U",
            runTime.timeName(),
            mesh,
            IOobject::MUST_READ,
            IOobject::AUTO_WRITE
        ),
        mesh
    );

运输特性场定义

    // Read transport properties and get the diffusion constant
    Info << "Reading transportProperties\n" << endl;
    IOdictionary transportProperties
    (
        IOobject
        (
            "transportProperties",
            runTime.constant(),
            mesh,
            IOobject::MUST_READ_IF_MODIFIED,
            IOobject::NO_WRITE
        )
    );

参数gamma定义

    Info<< "Reading diffusivity\n" << endl;
    dimensionedScalar gamma (transportProperties.lookup("gamma"));

参数phi定义

    // Create the flux field
    // NOTE: typically this is done by including createPhi.H from $FOAM_SRC/finiteVolume/cfdTools/incompressible
    Info << "Reading/calculating face flux field phi" << nl << endl;
	surfaceScalarField phi
	(
		IOobject
		(
		    "phi",
		    runTime.timeName(),
		    mesh,
		    IOobject::READ_IF_PRESENT,
		    IOobject::AUTO_WRITE
		),
		// Interpolates U onto the faces and does a dot product with the face area vectors
		// Yields a scalar representing rate of change of volume through each face, i.e. the flux
		// NOTE: the original implementation uses linearInterpolate(U); changed here to fvc::interpolate(U)
		// to show how the method searches system/fvSchemes for an interpolate(U) entry which allows
		// a different scheme to be chosen
                //fvc::interpolate(U)是将速度场U插值到面上,然后与网格面的面积向量mesh.Sf()做点积,得到的结果是一个标量场,表示通过每个网格面的体积流量(即通量)。
		fvc::interpolate(U) & mesh.Sf() // [(m s-1) * (m2) = (m3 s-1)] <=> flow rate
	);
	
	// Solve the steady scalar transport equation using the solver specified in the system/fvSolution dict.
	// Discretisation of the individual terms is specified in system/fvSchemes.
	// Boundary conditions form part of the beta field already, since it's been read from the file,
	// and thus do not need to be explicitly stated here - this keeps the syntax general.

求解

	solve
    (
    	// Convective term - advection of beta due to the velocity field
                //计算对流项beta通量
		fvm::div(phi, beta) // [(m-1) * (m s-1) * (kg m-3) = (kg m-3 s-1)] <=> flux of beta
		// Diffusive term - diffusion of beta due to its own gradient and a proportionality constant gamma
                //计算扩散项beta通量
		- fvm::laplacian(gamma, beta) // [(m2 s-1) * (m-2) * (kg m-3) = (kg m-3 s-1)] <=> flux of beta
		// NOTE: to apply an explicit source term, use the following:
		//== SourceTerm
		// NOTE: to make the source term implicit, use:
		//== Sp(SourceTerm)
		// NOTE: to use the OpenFOAM interface for applying arbitrary source terms from a dictionary, use:
		//== fvOptions(beta)
    );

标量result定义

    // Save the result under a different name - we don't do any time stepping so the result ends up
    // in the same folder as the initial conditions which we don't want to overwrite.
    volScalarField result
    (
        IOobject
        (
            "result",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        beta // copy all beta contents, including the BCs
    );
	result.write(); // force output

    Info << nl << "End" << nl << endl;

    return 0;
}

Allwmake、Allwclean、Make

不做赘述

testCase

组成

如图

标签:Info,NOTE,term,transportEquation,field,beta,result,OFtutorial10,解析
From: https://www.cnblogs.com/ouqiyo/p/18365312

相关文章

  • OFtutorial09_runtimePostprocessingUtility解析
    组成pipeCalc.H源码头文件#ifndefpipeCalc_H#definepipeCalc_H#include"volFieldsFwd.H"#include"Switch.H"#include"fvc.H"#include"fvMeshFunctionObject.H"#include"logFiles.H"#include"addToRunTi......
  • 汇编语言的神秘面纱:指令前缀的深度解析
    标题:汇编语言的神秘面纱:指令前缀的深度解析在计算机编程的底层世界中,汇编语言以其接近硬件的特性,扮演着至关重要的角色。指令前缀是汇编语言中一个关键的概念,它为指令提供了额外的信息,使得程序能够执行更加复杂和灵活的操作。本文将深入探讨指令前缀的作用、类型以及如何在......
  • 深入解析CDN(内容分发网络):架构、优势与实现
    摘要内容分发网络(CDN)是一种通过在多个地理位置部署服务器节点来提高网站加载速度和数据传输效率的网络技术。随着互联网内容的日益丰富和用户对访问速度的高要求,CDN已经成为现代网站和应用不可或缺的一部分。本文将详细介绍CDN的基本概念、工作原理、优势以及如何在Web开发......
  • 网络丢包深度解析:影响、原因及优化策略
    摘要网络丢包是数据在传输过程中未能成功到达目的地的现象,它对网络通信的性能有着显著的影响。本文将深入探讨网络丢包的定义、原因、对性能的影响,以及如何通过技术手段进行检测和优化。1.网络丢包的定义网络丢包发生在数据包在源和目的地之间的传输过程中,由于各种原因......
  • 全面解析:IP池大小对国外代理IP选择的影响
    代理IP是跨境人不可或缺的工具,广泛应用于广告验证、数据获取和账号矩阵管理等方面。而在选择代理IP时,IP池的大小往往是一个至关重要的考量因素。本文将深入解析IP池大小对代理IP选择的影响,帮助大家更好地理解这一关键决策点。一、IP池的定义及其重要性IP池,作为代理服务提供......
  • 汇编语言的构建大师:宏(Macro)的深度解析
    标题:汇编语言的构建大师:宏(Macro)的深度解析在汇编语言的世界里,宏(Macro)是一种强大的工具,它允许开发者定义一段可重用的代码片段,这些片段可以在程序中多次调用,从而提高编程效率和代码的可读性。本文将深入探讨宏的概念、作用以及如何在汇编语言中使用宏,并通过代码示例展示其应......
  • Swift中的强大构建块:自定义运算符全解析
    标题:Swift中的强大构建块:自定义运算符全解析在Swift编程语言中,运算符是执行操作的一种快捷方式,它们可以用于简单的数学计算,也可以用于复杂的逻辑处理。Swift不仅提供了丰富的内置运算符,还允许开发者定义自己的运算符,以适应特定的编程需求。本文将深入探讨如何在Swift中实现......
  • Swift编译器代码生成策略全解析:优化你的性能与效率
    标题:Swift编译器代码生成策略全解析:优化你的性能与效率在Swift编程的高性能世界里,编译器的代码生成选项扮演着至关重要的角色。它们不仅影响应用的性能,还决定了最终代码的效率和大小。本文将深入探讨Swift编译器提供的代码生成选项,并通过实际代码示例,指导你如何利用这些选......
  • PyTorch中的随机采样秘籍:SubsetRandomSampler全解析
    标题:PyTorch中的随机采样秘籍:SubsetRandomSampler全解析在深度学习的世界里,数据是模型训练的基石。而如何高效、合理地采样数据,直接影响到模型训练的效果和效率。PyTorch作为当前流行的深度学习框架,提供了一个强大的工具torch.utils.data.SubsetRandomSampler,它允许开发者......
  • TXT 记录解析怎么做?
    在当今数字化的时代,网络技术的应用越来越广泛,而域名系统(DNS)则是网络通信中至关重要的一部分。TXT记录作为DNS中的一种记录类型,有着特定的用途和解析方法。那么,TXT记录解析究竟该怎么做呢?一、了解TXT记录的概念TXT记录,即文本记录,是一种可以存储任意文本信息的DNS记录类......