001-从“hello world”谈起

001-从“hello world”谈起

因为我也是在学习的过程,我用的OpenFOAM版本是2.3.x,实测大部分API在OpenFOAM3.0版本中并没有太大改动,所有程序均通过Wmake调试

程序的解释是对原有的程序进行注释结合,比较懒就不想把程序一段一段分开了,默认面向的读者均具有一定的C++基础,对面向对象编程有一定了解

知道指针、重载、派生、友元之类的基础知识,如果不会可以先看一下C++ 教程 | 菜鸟教程,同时推荐一下Essential C++,都是非常好的C++入门教程

本质上OpenFOAM用到的C++并不是很多,甚至可以当作一门“类似”于C++的新编程语言来学,下面就开始吧~

/*------------------------- OFtutorials0.C ----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License
    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.

\*---------------------------------------------------------------------------*/

#include "fvCFD.H"

int main(int argc, char *argv[])
{
	// Checks the basic folder structure, verifies there is a control dict present, etc.;
	// also deals with parsing command line arguments and options.
	// It works by taking an external piece of code, written in $FOAM_SRC/OpenFOAM/include.
	// The contents of the include file actually look like this:
    /*Foam::argList args(argc, argv); - deciphers the arguments passed to the program
    if (!args.checkRootCase()) - verifies the folder structure
    {
        Foam::FatalError.exit();
    }*/
    #include "setRootCase.H"

	// OpenFOAM screen output is very similar to rudimentary C++ with its std::cout, std::nl and std::endl
	// being replaced with Foam::Info, Foam::nl, and Foam::endl.
    /*
        Info 类似于C++中的cout,nl=endl,本质上
        Foam::Info, Foam::nl, Foam::endl就是对C++中
        std::cout, std:endl的派生
    */
	Info << "Hello there, I'm an OpenFOAM program!" << nl
		 << "You don't need a mesh or anything to run it, just a bare OpenFOAM case will do." << nl
		 << tab << "This is me again, just creating a tabulated new line, move along." << nl << endl;

    Info<< "End\n" << endl;

    return 0;
}


// ************************************************************************* //

 

posted @   小岛爆爆鸦  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示