mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Creation of OpenFOAM-dev repository 15/04/2008
This commit is contained in:
39
.gitignore
vendored
Normal file
39
.gitignore
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# git-ls-files --others --exclude-from=.git/info/exclude
|
||||||
|
# Lines that start with '#' are comments.
|
||||||
|
|
||||||
|
# editor and misc backup files - anywhere
|
||||||
|
*~
|
||||||
|
.*~
|
||||||
|
*.orig
|
||||||
|
*.bak
|
||||||
|
|
||||||
|
# CVS recovered versions - anywhere
|
||||||
|
.#*
|
||||||
|
|
||||||
|
# objects and archives - anywhere
|
||||||
|
*.[oa]
|
||||||
|
*.la
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# dependency files - anywhere
|
||||||
|
*.dep
|
||||||
|
|
||||||
|
# lnInclude folders - anywhere
|
||||||
|
lnInclude
|
||||||
|
|
||||||
|
# linux build folder(s) - anywhere
|
||||||
|
linux*Gcc*[SD]POpt*
|
||||||
|
|
||||||
|
# reinstate wmake/rules that look like build folders
|
||||||
|
!wmake/rules/linux*
|
||||||
|
|
||||||
|
# doxygen generated documentation
|
||||||
|
doc/[Dd]oxygen/html
|
||||||
|
doc/[Dd]oxygen/latex
|
||||||
|
doc/[Dd]oxygen/man
|
||||||
|
|
||||||
|
# source packages - anywhere
|
||||||
|
*.tar.gz
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# end-of-file
|
||||||
1
.timeStamp
Normal file
1
.timeStamp
Normal file
@ -0,0 +1 @@
|
|||||||
|
2008-04-15
|
||||||
13
Allwmake
Executable file
13
Allwmake
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -x
|
||||||
|
|
||||||
|
( cd wmake && ./makeWmake )
|
||||||
|
|
||||||
|
( cd src && ./Allwmake )
|
||||||
|
|
||||||
|
( cd applications && ./Allwmake )
|
||||||
|
|
||||||
|
if [ "$1" = doc ]
|
||||||
|
then
|
||||||
|
( cd doc && ./Allwmake)
|
||||||
|
fi
|
||||||
340
COPYING
Normal file
340
COPYING
Normal file
@ -0,0 +1,340 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program 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 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program 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 this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
||||||
258
README
Normal file
258
README
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
README for OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
0. Copyright
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
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 2 of the License, or (at your option)
|
||||||
|
any later version. See the file COPYING in this directory, for a
|
||||||
|
description of the GNU General Public License terms under which you can
|
||||||
|
copy the files.
|
||||||
|
|
||||||
|
|
||||||
|
1. Contents
|
||||||
|
~~~~~~~~~~~
|
||||||
|
0. Copyright
|
||||||
|
1. Contents
|
||||||
|
2. System requirements
|
||||||
|
3. Installation
|
||||||
|
4. Building from Sources (Optional)
|
||||||
|
5. Testing the installation
|
||||||
|
6. Getting started
|
||||||
|
7. Documentation
|
||||||
|
8. Help
|
||||||
|
9. Reporting Bugs
|
||||||
|
A. Network settings
|
||||||
|
B. Running OpenFOAM in 32-bit mode
|
||||||
|
|
||||||
|
|
||||||
|
2. System requirements
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
OpenFOAM generally requires that the host machine operates a basic level
|
||||||
|
of networking. To check your system setup, execute the foamSystemCheck
|
||||||
|
script in the bin directory of the OpenFOAM installation. If no problems
|
||||||
|
are reported, proceed to "3. Installation"; otherwise see the
|
||||||
|
appendix "A. Network settings" and/or contact your system administrator.
|
||||||
|
|
||||||
|
If the user wishes to run OpenFOAM in 32/64-bit mode they should consult
|
||||||
|
the appendix "B. Running OpenFOAM in 32-bit mode".
|
||||||
|
|
||||||
|
|
||||||
|
3. Installation
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Download and unpack the files in the $HOME/OpenFOAM directory as described
|
||||||
|
in: http://www.OpenFOAM.org/download.html
|
||||||
|
|
||||||
|
The environment variable settings are contained in files in an etc/
|
||||||
|
directory in the OpenFOAM release. e.g. in
|
||||||
|
|
||||||
|
$HOME/OpenFOAM/OpenFOAM-dev/etc/
|
||||||
|
|
||||||
|
a)
|
||||||
|
EITHER, if running bash or ksh (if in doubt type 'echo $SHELL'),
|
||||||
|
source the etc/bashrc file by adding the following line to the end
|
||||||
|
of your $HOME/.bashrc file:
|
||||||
|
|
||||||
|
. $HOME/OpenFOAM/OpenFOAM-dev/etc/bashrc
|
||||||
|
|
||||||
|
Then update the environment variables by sourcing the $HOME/.bashrc file
|
||||||
|
by typing in the terminal:
|
||||||
|
|
||||||
|
. $HOME/.bashrc
|
||||||
|
|
||||||
|
b)
|
||||||
|
OR, if running tcsh or csh, source the etc/cshrc file by adding the
|
||||||
|
following line to the end of your $HOME/.cshrc file:
|
||||||
|
|
||||||
|
source $HOME/OpenFOAM/OpenFOAM-dev/etc/cshrc
|
||||||
|
|
||||||
|
Then update the environment variables by sourcing the $HOME/.cshrc file
|
||||||
|
by typing in the terminal:
|
||||||
|
|
||||||
|
source $HOME/.cshrc
|
||||||
|
|
||||||
|
|
||||||
|
3.1. Installation in alternative locations
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
OpenFOAM may also be installed in an alternative location.
|
||||||
|
However, the installation directory must be network available
|
||||||
|
(eg, NFS) if parallel calculations are planned.
|
||||||
|
|
||||||
|
The environment variable 'FOAM_INST_DIR' can be used to find and source
|
||||||
|
the appropriate resource file. Here is a bash/ksh/sh example:
|
||||||
|
|
||||||
|
export FOAM_INST_DIR=/data/app/OpenFOAM
|
||||||
|
foamDotFile=$FOAM_INST_DIR/OpenFOAM-dev/etc/bashrc
|
||||||
|
[ -f $foamDotFile ] && . $foamDotFile
|
||||||
|
|
||||||
|
and a csh example:
|
||||||
|
|
||||||
|
setenv FOAM_INST_DIR /data/app/OpenFOAM
|
||||||
|
foamDotFile=$FOAM_INST_DIR/OpenFOAM-dev/etc/bashrc
|
||||||
|
if ( -f $foamDotFile ) source $foamDotFile
|
||||||
|
|
||||||
|
|
||||||
|
The value set in '$FOAM_INST_DIR' will be used to locate the rest
|
||||||
|
of the OpenFOAM installation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
4. Building from Sources (Optional)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
If you cannot find an appropriate binary pack for your platform you can
|
||||||
|
build the complete OpenFOAM from the source-pack. First you will need to
|
||||||
|
compile or obtain a recent version of gcc (we recommend gcc-4.1.?) for
|
||||||
|
your platform which may be obtained from http://gcc.gnu.org/. Install the
|
||||||
|
compiler in $WM_PROJECT_INST_DIR/$WM_ARCH/gcc-4.1.? and change the gcc
|
||||||
|
version number in $WM_PROJECT_DIR/.bashrc and $WM_PROJECT_DIR/.cshrc as
|
||||||
|
appropriate and update the environment variables as in section 3.
|
||||||
|
|
||||||
|
Now go to the top-level source directory $WM_PROJECT_DIR and type
|
||||||
|
./Allwmake, which is the name of the top-level build script for building
|
||||||
|
the whole of OpenFOAM. In principle this will build everything but
|
||||||
|
sometimes problems occur with the build order and it is necessary to
|
||||||
|
update the environment variables and re-execute Allwmake. If you
|
||||||
|
experience difficulties with building the source-pack or your platform is
|
||||||
|
not currently supported please contact enquiries@OpenCFD.co.uk to
|
||||||
|
negotiate a support contract and we will do the port and maintiain it in
|
||||||
|
future releases.
|
||||||
|
|
||||||
|
|
||||||
|
5. Testing the installation
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
To check your installation setup, execute the 'foamInstallationTest'
|
||||||
|
script (in the bin directory of the OpenFOAM installation). If no problems
|
||||||
|
are reported, proceed to getting started with OpenFOAM; otherwise, go back
|
||||||
|
and check you have installed the software correctly and/or contact your
|
||||||
|
system administrator.
|
||||||
|
|
||||||
|
|
||||||
|
6. Getting Started
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
Create a project directory within the $HOME/OpenFOAM directory named
|
||||||
|
<userName>-dev (e.g. 'chris-dev' for user chris) and create a
|
||||||
|
directory named 'run' within it, e.g. by typing:
|
||||||
|
|
||||||
|
mkdir -p $HOME/OpenFOAM/${LOGNAME}-dev/run
|
||||||
|
|
||||||
|
Copy the 'tutorial' examples directory in the OpenFOAM distribution to the
|
||||||
|
'run' directory. If OpenFOAM environment variables are set correctly,
|
||||||
|
then the following command will be correct:
|
||||||
|
|
||||||
|
cp -r $WM_PROJECT_DIR/tutorials $HOME/OpenFOAM/${LOGNAME}-dev/run
|
||||||
|
|
||||||
|
Run the first example case of incompressible laminar flow in a cavity:
|
||||||
|
|
||||||
|
cd $HOME/OpenFOAM/${LOGNAME}-dev/run/tutorials/icoFoam/cavity
|
||||||
|
blockMesh
|
||||||
|
icoFoam
|
||||||
|
|
||||||
|
|
||||||
|
7. Documentation
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
http://www.OpenFOAM.org/doc
|
||||||
|
|
||||||
|
|
||||||
|
8. Help
|
||||||
|
~~~~~~~
|
||||||
|
http://www.OpenFOAM.org
|
||||||
|
http://www.OpenFOAM.org/discussion.html
|
||||||
|
|
||||||
|
|
||||||
|
9. Reporting Bugs in OpenFOAM
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
http://www.OpenFOAM.org/bugs.html
|
||||||
|
|
||||||
|
|
||||||
|
A. Network settings
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
OpenFOAM requires a basic level of networking to be set up. Firstly, the
|
||||||
|
host name must be set - to test, type 'uname -a'. The running shell must
|
||||||
|
be tcsh, csh, bash or ksh - to test type 'echo $SHELL'
|
||||||
|
|
||||||
|
The user must be able to 'ping' the host machine itself (<host>) - to
|
||||||
|
test, type 'ping -c 1 <host>'
|
||||||
|
|
||||||
|
If the ping fails then it is possible that that the entry for the host
|
||||||
|
machine is missing, incorrect or duplicated in the /etc/hosts file. The
|
||||||
|
user can check this by typing 'grep <host> /etc/hosts' which should return
|
||||||
|
a single line, typically of the form:
|
||||||
|
|
||||||
|
<IPaddress> <host>.<domain> <host>
|
||||||
|
|
||||||
|
The <IPaddress> must correspond to that in the networking settings of the
|
||||||
|
machine which can also be checked by typing on Linux '/sbin/ifconfig'
|
||||||
|
which should produce lines of output that include something similar to the
|
||||||
|
following:
|
||||||
|
|
||||||
|
eth0 Link encap:Ethernet HWaddr ...
|
||||||
|
inet addr:<IPaddress> ...
|
||||||
|
|
||||||
|
If the user is connected to a network that uses dynamic IP addresses, they
|
||||||
|
must be particularly careful to ensure that an entry for their hostname/IP
|
||||||
|
exists in the /etc/hosts file. If the server frequently reallocates IP
|
||||||
|
addresses across the network, it is advisable that the /etc/hosts file is
|
||||||
|
updated automatically when any changes occur.
|
||||||
|
|
||||||
|
The user should also be able to contact any other machine that it needs
|
||||||
|
to, either a remote licence host or other machines that are being used
|
||||||
|
within some parallel computation. Essentially the user needs to be able to
|
||||||
|
ping these machines as described in preceeding sections.
|
||||||
|
|
||||||
|
The machine must have one of (or both) remote (rsh) and secure shell (ssh)
|
||||||
|
running on his/her account. To check whether rsh is running correctly, the
|
||||||
|
user should type 'rsh <host> ls'. Alternatively the user can check if ssh
|
||||||
|
is running correctly by typing 'ssh <host> ls'. In either case, the output
|
||||||
|
to the command should produce a file/directory listing for the current
|
||||||
|
directory and no other text. If neither command works, we recommend the
|
||||||
|
user set up rsh for their use as follows:
|
||||||
|
|
||||||
|
Check the rsh executable actually exists, e.g. the path to the executable
|
||||||
|
should be returned when typing 'which rsh'. Check with the system
|
||||||
|
administrator that rsh is enabled on the user's account; if not, request
|
||||||
|
that it is enabled. Create a '.rhosts' file in the $HOME directory
|
||||||
|
containing entries to access any machines they need to access, i.e. their
|
||||||
|
own machine and, if different, the licence host machine. The entries are
|
||||||
|
of the form: '<host> <user>'.
|
||||||
|
|
||||||
|
Remote shell accesses the .bashrc (or .cshrc) file and will not run
|
||||||
|
correctly if there is a problem with this file. In particular the user
|
||||||
|
should be careful with the following:
|
||||||
|
|
||||||
|
The ~/.cshrc (or ~/.bashrc) file should not contain errors that prevent it
|
||||||
|
from executing fully at startup; all error messages during execution of
|
||||||
|
the ~/.bashrc (or ~/.cshrc) file should be investigated and acted upon to
|
||||||
|
eliminate them. echo (print to screen) statements within ~/.bashrc (or
|
||||||
|
~/.cshrc) must not be executed during the running of rsh. This does not
|
||||||
|
mean that echo statements are forbidden from the ~/.cshrc (or ~/.bashrc)
|
||||||
|
file, but they must be enclosed in a control structure, e.g. an if
|
||||||
|
statement, that ensures they are not executed when rsh is executed.
|
||||||
|
For ~.bashrc:
|
||||||
|
|
||||||
|
if [ "$PS1" ]; then
|
||||||
|
echo "..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# or, alternatively
|
||||||
|
|
||||||
|
if /usr/bin/tty -s 2>/dev/null; then
|
||||||
|
echo "..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
and, for ~.cshrc:
|
||||||
|
|
||||||
|
if ($?prompt) then ; echo "..." ; endif
|
||||||
|
|
||||||
|
|
||||||
|
B. Running OpenFOAM in 32-bit mode on 64-bit machines
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Those users with an installation of Linux on a 64-bit machine may install
|
||||||
|
either or both of the 32-bit version of OpenFOAM (linux) or the 64-bit
|
||||||
|
version of FOAM (linux64) with 64-bit being the default mode. In order to
|
||||||
|
set up the user to run in 32-bit mode, the user must set the environment
|
||||||
|
variable $WM_32 (to anything, e.g. "on") before sourcing the etc/bashrc
|
||||||
|
(or etc/cshrc) file. Unsetting $WM_32 and sourcing the bashrc file will
|
||||||
|
set up the user to run in 64-bit mode.
|
||||||
5
applications/Allwmake
Executable file
5
applications/Allwmake
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -x
|
||||||
|
|
||||||
|
(cd solvers ; wmake all)
|
||||||
|
(cd utilities ; wmake all)
|
||||||
@ -0,0 +1,73 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
description "Incompressible large eddy simulation (LES) code for channel flow";
|
||||||
|
|
||||||
|
dictionaries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/controlDict/controlDict.cfg";
|
||||||
|
fvSchemes;
|
||||||
|
fvSolution;
|
||||||
|
transportProperties;
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/turbulenceProperties/LESmodelsIncompressible.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
fields
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/pKinematic.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/U.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/nuSgs.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/Bkinematic.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/nuTilda.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchPhysicalTypes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/patches.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/patches.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchFieldsPhysicalTypes
|
||||||
|
{
|
||||||
|
U
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/U.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
p
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/p.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
k
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/k.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
nuSgs
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/nuSgs.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/nuSgs.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
B
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/B.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/B.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
nuTilda
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/nuTilda.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/nuTilda.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,76 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default backward;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
grad(p) Gauss linear;
|
||||||
|
grad(U) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
div(phi,U) Gauss <>;
|
||||||
|
div(phi,k) Gauss <>;
|
||||||
|
div(phi,B) Gauss <>;
|
||||||
|
div(B) Gauss linear;
|
||||||
|
div(phi,nuTilda) Gauss <>;
|
||||||
|
div((nuEff*dev(grad(U).T()))) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
laplacian(nuEff,U) Gauss linear corrected;
|
||||||
|
laplacian((1|A(U)),p) Gauss linear corrected;
|
||||||
|
laplacian(DkEff,k) Gauss linear corrected;
|
||||||
|
laplacian(DBEff,B) Gauss linear corrected;
|
||||||
|
laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
interpolate(U) linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
p ICCG 1e-06 0;
|
||||||
|
pFinal ICCG 1e-06 0;
|
||||||
|
U BICCG 1e-05 0;
|
||||||
|
k BICCG 1e-05 0;
|
||||||
|
B BICCG 1e-05 0;
|
||||||
|
nuTilda BICCG 1e-05 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
PISO
|
||||||
|
{
|
||||||
|
nCorrectors 2;
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
pRefCell 1001;
|
||||||
|
pRefValue 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/fvSchemes.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/ddt/transient.cfg";
|
||||||
|
|
||||||
|
include "../../../incompressible/turbFoam/FoamX/fvSchemes/gradSchemes.cfg";
|
||||||
|
include "../../oodles/FoamX/fvSchemes/divSchemes.cfg";
|
||||||
|
include "../../oodles/FoamX/fvSchemes/laplacianSchemes.cfg";
|
||||||
|
include "../../../incompressible/turbFoam/FoamX/fvSchemes/interpolationSchemes.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/snGrad/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/flux/p.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSchemes";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/fvSolution.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
type dictionary;
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pSymm.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pFinal.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/U.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/B.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/nuTilda.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/PISO.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSolution";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/transportProperties/transportProperties.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/dimensionedVector/Ubar.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/transportProperties/incompressibleTransportModel.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/transportProperties/NewtonianViscosity.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/transportProperties/CrossPowerLawCoeffs.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/transportProperties/BirdCarreauCoeffs.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
3
applications/solvers/DNSandLES/channelOodles/Make/files
Normal file
3
applications/solvers/DNSandLES/channelOodles/Make/files
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
channelOodles.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_APPBIN)/channelOodles
|
||||||
13
applications/solvers/DNSandLES/channelOodles/Make/options
Normal file
13
applications/solvers/DNSandLES/channelOodles/Make/options
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-I$(LIB_SRC)/LESmodels \
|
||||||
|
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||||
|
-I$(LIB_SRC)/transportModels \
|
||||||
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
-I$(LIB_SRC)/sampling/lnInclude \
|
||||||
|
-I../oodles
|
||||||
|
|
||||||
|
EXE_LIBS = \
|
||||||
|
-lincompressibleLESmodels \
|
||||||
|
-lincompressibleTransportModels \
|
||||||
|
-lfiniteVolume \
|
||||||
|
-lmeshTools
|
||||||
164
applications/solvers/DNSandLES/channelOodles/channelOodles.C
Normal file
164
applications/solvers/DNSandLES/channelOodles/channelOodles.C
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
|
||||||
|
\\/ 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 2 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, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Application
|
||||||
|
oodles
|
||||||
|
|
||||||
|
Description
|
||||||
|
Incompressible LES solver for flow in a channel.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "fvCFD.H"
|
||||||
|
#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H"
|
||||||
|
#include "incompressible/LESmodel/LESmodel.H"
|
||||||
|
#include "IFstream.H"
|
||||||
|
#include "OFstream.H"
|
||||||
|
#include "Random.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
# include "setRootCase.H"
|
||||||
|
# include "createTime.H"
|
||||||
|
# include "createMesh.H"
|
||||||
|
# include "readTransportProperties.H"
|
||||||
|
# include "createFields.H"
|
||||||
|
# include "createAverages.H"
|
||||||
|
# include "initContinuityErrs.H"
|
||||||
|
# include "createGradP.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Info<< "\nStarting time loop\n" << endl;
|
||||||
|
|
||||||
|
for(runTime++; !runTime.end(); runTime++)
|
||||||
|
{
|
||||||
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
# include "readPISOControls.H"
|
||||||
|
|
||||||
|
# include "CourantNo.H"
|
||||||
|
|
||||||
|
sgsModel->correct();
|
||||||
|
|
||||||
|
fvVectorMatrix UEqn
|
||||||
|
(
|
||||||
|
fvm::ddt(U)
|
||||||
|
+ fvm::div(phi, U)
|
||||||
|
+ sgsModel->divDevBeff(U)
|
||||||
|
==
|
||||||
|
flowDirection*gradP
|
||||||
|
);
|
||||||
|
|
||||||
|
if (momentumPredictor)
|
||||||
|
{
|
||||||
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- PISO loop
|
||||||
|
|
||||||
|
volScalarField rUA = 1.0/UEqn.A();
|
||||||
|
|
||||||
|
for (int corr=0; corr<nCorr; corr++)
|
||||||
|
{
|
||||||
|
U = rUA*UEqn.H();
|
||||||
|
phi = (fvc::interpolate(U) & mesh.Sf())
|
||||||
|
+ fvc::ddtPhiCorr(rUA, U, phi);
|
||||||
|
|
||||||
|
adjustPhi(phi, U, p);
|
||||||
|
|
||||||
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
{
|
||||||
|
fvScalarMatrix pEqn
|
||||||
|
(
|
||||||
|
fvm::laplacian(rUA, p) == fvc::div(phi)
|
||||||
|
);
|
||||||
|
|
||||||
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
|
if (corr == nCorr-1 && nonOrth == nNonOrthCorr)
|
||||||
|
{
|
||||||
|
pEqn.solve(mesh.solver(p.name() + "Final"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pEqn.solve(mesh.solver(p.name()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
{
|
||||||
|
phi -= pEqn.flux();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# include "continuityErrs.H"
|
||||||
|
|
||||||
|
U -= rUA*fvc::grad(p);
|
||||||
|
U.correctBoundaryConditions();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Correct driving force for a constant mass flow rate
|
||||||
|
|
||||||
|
// Extract the velocity in the flow direction
|
||||||
|
dimensionedScalar magUbarStar =
|
||||||
|
(flowDirection & U)().weightedAverage(mesh.V());
|
||||||
|
|
||||||
|
// Calculate the pressure gradient increment needed to
|
||||||
|
// adjust the average flow-rate to the correct value
|
||||||
|
dimensionedScalar gragPplus =
|
||||||
|
(magUbar - magUbarStar)/rUA.weightedAverage(mesh.V());
|
||||||
|
|
||||||
|
U += flowDirection*rUA*gragPplus;
|
||||||
|
|
||||||
|
gradP += gragPplus;
|
||||||
|
|
||||||
|
Info<< "Uncorrected Ubar = " << magUbarStar.value() << tab
|
||||||
|
<< "pressure gradient = " << gradP.value() << endl;
|
||||||
|
|
||||||
|
|
||||||
|
# include "calculateAverages.H"
|
||||||
|
|
||||||
|
runTime.write();
|
||||||
|
|
||||||
|
# include "writeNaveragingSteps.H"
|
||||||
|
|
||||||
|
# include "writeGradP.H"
|
||||||
|
|
||||||
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||||
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||||
|
<< nl << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
43
applications/solvers/DNSandLES/channelOodles/createFields.H
Normal file
43
applications/solvers/DNSandLES/channelOodles/createFields.H
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
Info<< "Reading field p\n" << endl;
|
||||||
|
volScalarField p
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"p",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Reading field U\n" << endl;
|
||||||
|
volVectorField U
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"U",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
# include "createPhi.H"
|
||||||
|
|
||||||
|
|
||||||
|
label pRefCell = 0;
|
||||||
|
scalar pRefValue = 0.0;
|
||||||
|
setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue);
|
||||||
|
|
||||||
|
|
||||||
|
singlePhaseTransportModel laminarTransport(U, phi);
|
||||||
|
|
||||||
|
autoPtr<LESmodel> sgsModel
|
||||||
|
(
|
||||||
|
LESmodel::New(U, phi, laminarTransport)
|
||||||
|
);
|
||||||
24
applications/solvers/DNSandLES/channelOodles/createGradP.H
Normal file
24
applications/solvers/DNSandLES/channelOodles/createGradP.H
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
dimensionedScalar gradP
|
||||||
|
(
|
||||||
|
"gradP",
|
||||||
|
dimensionSet(0, 1, -2, 0, 0),
|
||||||
|
0.0
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
IFstream gradPFile
|
||||||
|
(
|
||||||
|
runTime.path()/runTime.timeName()/"gradP.raw"
|
||||||
|
);
|
||||||
|
|
||||||
|
if(gradPFile.good())
|
||||||
|
{
|
||||||
|
gradPFile >> gradP;
|
||||||
|
Info<< "Reading average pressure gradient" <<endl
|
||||||
|
<< endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Info<< "Initializing with 0 pressure gradient" <<endl
|
||||||
|
<< endl;
|
||||||
|
};
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
Info<< "\nReading transportProperties\n" << endl;
|
||||||
|
IOdictionary transportProperties
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"transportProperties",
|
||||||
|
runTime.constant(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
dimensionedScalar nu
|
||||||
|
(
|
||||||
|
transportProperties.lookup("nu")
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// Read centerline velocity for channel simulations
|
||||||
|
dimensionedVector Ubar
|
||||||
|
(
|
||||||
|
transportProperties.lookup("Ubar")
|
||||||
|
);
|
||||||
|
|
||||||
|
dimensionedScalar magUbar = mag(Ubar);
|
||||||
|
vector flowDirection = (Ubar/magUbar).value();
|
||||||
19
applications/solvers/DNSandLES/channelOodles/writeGradP.H
Normal file
19
applications/solvers/DNSandLES/channelOodles/writeGradP.H
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
if (runTime.outputTime())
|
||||||
|
{
|
||||||
|
OFstream gradPFile
|
||||||
|
(
|
||||||
|
runTime.path()/runTime.timeName()/"gradP.raw"
|
||||||
|
);
|
||||||
|
|
||||||
|
if(gradPFile.good())
|
||||||
|
{
|
||||||
|
gradPFile << gradP << endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FatalErrorIn(args.executable())
|
||||||
|
<< "Cannot open file "
|
||||||
|
<< runTime.path()/runTime.timeName()/"gradP.raw"
|
||||||
|
<< exit(FatalError);
|
||||||
|
};
|
||||||
|
};
|
||||||
91
applications/solvers/DNSandLES/coodles/FoamX/coodles.cfg
Normal file
91
applications/solvers/DNSandLES/coodles/FoamX/coodles.cfg
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
description "Compressible large eddy simulation (LES) code";
|
||||||
|
|
||||||
|
dictionaries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/controlDict/controlDict.cfg";
|
||||||
|
fvSchemes;
|
||||||
|
fvSolution;
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/thermophysicalProperties/thermophysicalPropertiesMixture.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/turbulenceProperties/LESmodelsCompressible.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
fields
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/pDynamic.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/U.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/T.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/muSgs.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/Bkinematic.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/muTilda.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchPhysicalTypes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/patches.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/sonic/patches.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/thermal/patches.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/patches.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/thermal/patches.cfg";
|
||||||
|
turbulentInlet
|
||||||
|
{
|
||||||
|
description "Turbulent inlet";
|
||||||
|
parentType inlet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
patchFieldsPhysicalTypes
|
||||||
|
{
|
||||||
|
U
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/U.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/sonic/U.cfg";
|
||||||
|
turbulentInlet turbulentInlet;
|
||||||
|
}
|
||||||
|
|
||||||
|
p
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/p.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/sonic/p.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
T
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/thermal/T.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/thermal/T.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
k
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/k.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
muSgs
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/muSgs.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/muSgs.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
B
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/B.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/B.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
muTilda
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/muTilda.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/muTilda.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default backward;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
grad(p) Gauss linear;
|
||||||
|
grad(U) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
div(phi,U) Gauss <>;
|
||||||
|
div(phi,h) Gauss <>;
|
||||||
|
div(phiU,p) Gauss linear;
|
||||||
|
div(phi,k) Gauss <>;
|
||||||
|
div(phi,B) Gauss <>;
|
||||||
|
div(phi,muTilda) Gauss <>;
|
||||||
|
|
||||||
|
div(B) Gauss linear;
|
||||||
|
div((muEff*dev2(grad(U).T()))) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
laplacian(muEff,U) Gauss linear corrected;
|
||||||
|
laplacian((rho*(1|A(U))),p) Gauss linear corrected;
|
||||||
|
laplacian(alphaEff,h) Gauss linear corrected;
|
||||||
|
laplacian(DkEff,k) Gauss linear corrected;
|
||||||
|
laplacian(DBEff,B) Gauss linear corrected;
|
||||||
|
laplacian(DmuTildaEff,muTilda) Gauss linear corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
interpolate(HbyA) linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
rho ICCG 1e-6 0;
|
||||||
|
h BICCG 1e-6 0;
|
||||||
|
p ICCG 1e-06 0;
|
||||||
|
U BICCG 1e-05 0;
|
||||||
|
k BICCG 1e-05 0;
|
||||||
|
B BICCG 1e-05 0;
|
||||||
|
nuTilda BICCG 1e-05 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
PISO
|
||||||
|
{
|
||||||
|
nCorrectors 2;
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
27
applications/solvers/DNSandLES/coodles/FoamX/fvSchemes.cfg
Normal file
27
applications/solvers/DNSandLES/coodles/FoamX/fvSchemes.cfg
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/fvSchemes.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/ddt/transient.cfg";
|
||||||
|
include "fvSchemes/gradSchemes.cfg";
|
||||||
|
include "fvSchemes/divSchemes.cfg";
|
||||||
|
include "fvSchemes/laplacianSchemes.cfg";
|
||||||
|
include "fvSchemes/interpolationSchemes.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/snGrad/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/flux/p.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSchemes";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phiU.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phih.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phiUp.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phik.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phiBT.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/B.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phiMuTilda.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/muEffGradUT.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/p.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/U.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/interpolation/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/interpolation/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/interpolation/HbyA.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/muEffU.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/rhoAUp.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/alphaEffh.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/DkEffk.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/DBEffB.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/DmuTildaEffMuTilda.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
35
applications/solvers/DNSandLES/coodles/FoamX/fvSolution.cfg
Normal file
35
applications/solvers/DNSandLES/coodles/FoamX/fvSolution.cfg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/fvSolution.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
type dictionary;
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/rho.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/h.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pSymm.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/U.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/B.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/PISO.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSolution";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
3
applications/solvers/DNSandLES/coodles/Make/files
Normal file
3
applications/solvers/DNSandLES/coodles/Make/files
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
coodles.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_APPBIN)/coodles
|
||||||
13
applications/solvers/DNSandLES/coodles/Make/options
Normal file
13
applications/solvers/DNSandLES/coodles/Make/options
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
|
-I$(LIB_SRC)/LESmodels \
|
||||||
|
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = \
|
||||||
|
-lfiniteVolume \
|
||||||
|
-lmeshTools \
|
||||||
|
-lbasicThermophysicalModels \
|
||||||
|
-lspecie \
|
||||||
|
-lcompressibleLESmodels
|
||||||
11
applications/solvers/DNSandLES/coodles/UEqn.H
Normal file
11
applications/solvers/DNSandLES/coodles/UEqn.H
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fvVectorMatrix UEqn
|
||||||
|
(
|
||||||
|
fvm::ddt(rho, U)
|
||||||
|
+ fvm::div(phi, U)
|
||||||
|
+ turbulence->divDevRhoReff(U)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (momentumPredictor)
|
||||||
|
{
|
||||||
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
}
|
||||||
88
applications/solvers/DNSandLES/coodles/coodles.C
Normal file
88
applications/solvers/DNSandLES/coodles/coodles.C
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
|
||||||
|
\\/ 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 2 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, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Application
|
||||||
|
coodles
|
||||||
|
|
||||||
|
Description
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "fvCFD.H"
|
||||||
|
#include "basicThermo.H"
|
||||||
|
#include "compressible/LESmodel/LESmodel.H"
|
||||||
|
|
||||||
|
#define divDevRhoReff divDevRhoBeff
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
# include "setRootCase.H"
|
||||||
|
|
||||||
|
# include "createTime.H"
|
||||||
|
# include "createMesh.H"
|
||||||
|
# include "createFields.H"
|
||||||
|
# include "initContinuityErrs.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Info<< "\nStarting time loop\n" << endl;
|
||||||
|
|
||||||
|
for (runTime++; !runTime.end(); runTime++)
|
||||||
|
{
|
||||||
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
# include "readPISOControls.H"
|
||||||
|
# include "compressibleCourantNo.H"
|
||||||
|
|
||||||
|
# include "rhoEqn.H"
|
||||||
|
# include "UEqn.H"
|
||||||
|
|
||||||
|
// --- PISO loop
|
||||||
|
for (int corr=1; corr<=nCorr; corr++)
|
||||||
|
{
|
||||||
|
# include "hEqn.H"
|
||||||
|
# include "pEqn.H"
|
||||||
|
}
|
||||||
|
|
||||||
|
turbulence->correct();
|
||||||
|
|
||||||
|
rho = thermo->rho();
|
||||||
|
|
||||||
|
runTime.write();
|
||||||
|
|
||||||
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||||
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||||
|
<< nl << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
50
applications/solvers/DNSandLES/coodles/createFields.H
Normal file
50
applications/solvers/DNSandLES/coodles/createFields.H
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
Info<< "Reading thermophysical properties\n" << endl;
|
||||||
|
|
||||||
|
autoPtr<basicThermo> thermo
|
||||||
|
(
|
||||||
|
basicThermo::New(mesh)
|
||||||
|
);
|
||||||
|
|
||||||
|
volScalarField& p = thermo->p();
|
||||||
|
volScalarField& h = thermo->h();
|
||||||
|
const volScalarField& psi = thermo->psi();
|
||||||
|
|
||||||
|
volScalarField rho
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"rho",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
thermo->rho()
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "\nReading field U\n" << endl;
|
||||||
|
volVectorField U
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"U",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
# include "compressibleCreatePhi.H"
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Creating turbulence model\n" << endl;
|
||||||
|
autoPtr<compressible::LESmodel> turbulence
|
||||||
|
(
|
||||||
|
compressible::LESmodel::New(rho, U, phi, thermo())
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Creating field DpDt\n" << endl;
|
||||||
|
volScalarField DpDt =
|
||||||
|
fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
12
applications/solvers/DNSandLES/coodles/hEqn.H
Normal file
12
applications/solvers/DNSandLES/coodles/hEqn.H
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
solve
|
||||||
|
(
|
||||||
|
fvm::ddt(rho, h)
|
||||||
|
+ fvm::div(phi, h)
|
||||||
|
- fvm::laplacian(turbulence->alphaEff(), h)
|
||||||
|
==
|
||||||
|
DpDt
|
||||||
|
);
|
||||||
|
|
||||||
|
thermo->correct();
|
||||||
|
}
|
||||||
68
applications/solvers/DNSandLES/coodles/pEqn.H
Normal file
68
applications/solvers/DNSandLES/coodles/pEqn.H
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
rho = thermo->rho();
|
||||||
|
|
||||||
|
volScalarField rUA = 1.0/UEqn.A();
|
||||||
|
U = rUA*UEqn.H();
|
||||||
|
|
||||||
|
if (transonic)
|
||||||
|
{
|
||||||
|
surfaceScalarField phid
|
||||||
|
(
|
||||||
|
"phid",
|
||||||
|
fvc::interpolate(thermo->psi())
|
||||||
|
*(
|
||||||
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
|
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
{
|
||||||
|
fvScalarMatrix pEqn
|
||||||
|
(
|
||||||
|
fvm::ddt(psi, p)
|
||||||
|
+ fvm::div(phid, p)
|
||||||
|
- fvm::laplacian(rho*rUA, p)
|
||||||
|
);
|
||||||
|
|
||||||
|
pEqn.solve();
|
||||||
|
|
||||||
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
{
|
||||||
|
phi == pEqn.flux();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
phi =
|
||||||
|
fvc::interpolate(rho)*
|
||||||
|
(
|
||||||
|
(fvc::interpolate(U) & mesh.Sf())
|
||||||
|
+ fvc::ddtPhiCorr(rUA, rho, U, phi)
|
||||||
|
);
|
||||||
|
|
||||||
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
{
|
||||||
|
fvScalarMatrix pEqn
|
||||||
|
(
|
||||||
|
fvm::ddt(psi, p)
|
||||||
|
+ fvc::div(phi)
|
||||||
|
- fvm::laplacian(rho*rUA, p)
|
||||||
|
);
|
||||||
|
|
||||||
|
pEqn.solve();
|
||||||
|
|
||||||
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
{
|
||||||
|
phi += pEqn.flux();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "rhoEqn.H"
|
||||||
|
#include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
|
U -= rUA*fvc::grad(p);
|
||||||
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
|
DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object transportProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
UOsigma 0.090295049;
|
||||||
|
|
||||||
|
UOalpha 0.81532036;
|
||||||
|
|
||||||
|
UOKupper 10;
|
||||||
|
|
||||||
|
UOKlower 7;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
grad(p) Gauss linear;
|
||||||
|
grad(U) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
div(phi,U) Gauss cubic;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
laplacian(nu,U) Gauss linear corrected;
|
||||||
|
laplacian((1|A(U)),p) Gauss linear corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
interpolate(U) linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
p ICCG 1e-06 0;
|
||||||
|
U BICCG 1e-05 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
PISO
|
||||||
|
{
|
||||||
|
nCorrectors 2;
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
69
applications/solvers/DNSandLES/dnsFoam/FoamX/dnsFoam.cfg
Normal file
69
applications/solvers/DNSandLES/dnsFoam/FoamX/dnsFoam.cfg
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
description "Direct numerical simulation (DNS) code";
|
||||||
|
|
||||||
|
dictionaries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/controlDict/controlDict.cfg";
|
||||||
|
fvSchemes;
|
||||||
|
fvSolution;
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/transportProperties/NewtonianSinglePhaseTransportProperties.cfg";
|
||||||
|
turbulenceProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
fields
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/pKinematic.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/U.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchPhysicalTypes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/patches.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/patches.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchFieldsPhysicalTypes
|
||||||
|
{
|
||||||
|
U
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/U.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
p
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/p.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
k
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/k.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
nuSgs
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/nuSgs.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/nuSgs.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
B
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/B.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/B.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
nuTilda
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/nuTilda.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/nuTilda.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
44
applications/solvers/DNSandLES/dnsFoam/FoamX/fvSchemes.cfg
Normal file
44
applications/solvers/DNSandLES/dnsFoam/FoamX/fvSchemes.cfg
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 1.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes.cfg;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/fvSchemes.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/ddt/transient.cfg";
|
||||||
|
|
||||||
|
include "../../../incompressible/turbFoam/FoamX/fvSchemes/gradSchemes.cfg";
|
||||||
|
include "../../../incompressible/icoFoam/FoamX/fvSchemes/divSchemes.cfg";
|
||||||
|
include "../../../incompressible/icoFoam/FoamX/fvSchemes/laplacianSchemes.cfg";
|
||||||
|
include "../../../incompressible/turbFoam/FoamX/fvSchemes/interpolationSchemes.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/snGrad/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/flux/p.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSchemes";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
31
applications/solvers/DNSandLES/dnsFoam/FoamX/fvSolution.cfg
Normal file
31
applications/solvers/DNSandLES/dnsFoam/FoamX/fvSolution.cfg
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/fvSolution.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
type dictionary;
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pSymm.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/U.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/PISO.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSolution";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
type dictionary;
|
||||||
|
description "Turbulence properties";
|
||||||
|
dictionaryPath "constant";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
UOsigma
|
||||||
|
{
|
||||||
|
type scalar;
|
||||||
|
}
|
||||||
|
|
||||||
|
UOalpha
|
||||||
|
{
|
||||||
|
type scalar;
|
||||||
|
}
|
||||||
|
|
||||||
|
UOKupper
|
||||||
|
{
|
||||||
|
type label;
|
||||||
|
description "Upper wave number";
|
||||||
|
}
|
||||||
|
|
||||||
|
UOKlower
|
||||||
|
{
|
||||||
|
type label;
|
||||||
|
description "Lower wave number";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/constant/turbulenceProperties";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
3
applications/solvers/DNSandLES/dnsFoam/Make/files
Normal file
3
applications/solvers/DNSandLES/dnsFoam/Make/files
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
dnsFoam.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_APPBIN)/dnsFoam
|
||||||
10
applications/solvers/DNSandLES/dnsFoam/Make/options
Normal file
10
applications/solvers/DNSandLES/dnsFoam/Make/options
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
-I$(LIB_SRC)/randomProcesses/lnInclude \
|
||||||
|
-I$(LIB_SRC)/sampling/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = \
|
||||||
|
-lfiniteVolume \
|
||||||
|
-lrandomProcesses \
|
||||||
|
-lsampling \
|
||||||
|
-lmeshTools
|
||||||
29
applications/solvers/DNSandLES/dnsFoam/createFields.H
Normal file
29
applications/solvers/DNSandLES/dnsFoam/createFields.H
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
Info<< "Reading field p\n" << endl;
|
||||||
|
volScalarField p
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"p",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Reading field U\n" << endl;
|
||||||
|
volVectorField U
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"U",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
# include "createPhi.H"
|
||||||
129
applications/solvers/DNSandLES/dnsFoam/dnsFoam.C
Normal file
129
applications/solvers/DNSandLES/dnsFoam/dnsFoam.C
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
|
||||||
|
\\/ 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 2 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, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Application
|
||||||
|
dnsFoam
|
||||||
|
|
||||||
|
Description
|
||||||
|
Direct numerical simulation solver for boxes of isotropic turbulence
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "fvCFD.H"
|
||||||
|
#include "Kmesh.H"
|
||||||
|
#include "UOprocess.H"
|
||||||
|
#include "fft.H"
|
||||||
|
#include "calcEk.H"
|
||||||
|
#include "graph.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
# include "setRootCase.H"
|
||||||
|
|
||||||
|
# include "createTime.H"
|
||||||
|
# include "createMeshNoClear.H"
|
||||||
|
# include "readTransportProperties.H"
|
||||||
|
# include "createFields.H"
|
||||||
|
# include "readTurbulenceProperties.H"
|
||||||
|
# include "initContinuityErrs.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Info<< nl << "Starting time loop" << endl;
|
||||||
|
|
||||||
|
for (runTime++; !runTime.end(); runTime++)
|
||||||
|
{
|
||||||
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
# include "readPISOControls.H"
|
||||||
|
|
||||||
|
force.internalField() = ReImSum
|
||||||
|
(
|
||||||
|
fft::reverseTransform
|
||||||
|
(
|
||||||
|
K/(mag(K) + 1.0e-6) ^ forceGen.newField(), K.nn()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
# include "globalProperties.H"
|
||||||
|
|
||||||
|
fvVectorMatrix UEqn
|
||||||
|
(
|
||||||
|
fvm::ddt(U)
|
||||||
|
+ fvm::div(phi, U)
|
||||||
|
- fvm::laplacian(nu, U)
|
||||||
|
==
|
||||||
|
force
|
||||||
|
);
|
||||||
|
|
||||||
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
|
||||||
|
|
||||||
|
// --- PISO loop
|
||||||
|
|
||||||
|
for (int corr=1; corr<=1; corr++)
|
||||||
|
{
|
||||||
|
volScalarField rUA = 1.0/UEqn.A();
|
||||||
|
|
||||||
|
U = rUA*UEqn.H();
|
||||||
|
phi = (fvc::interpolate(U) & mesh.Sf())
|
||||||
|
+ fvc::ddtPhiCorr(rUA, U, phi);
|
||||||
|
|
||||||
|
fvScalarMatrix pEqn
|
||||||
|
(
|
||||||
|
fvm::laplacian(rUA, p) == fvc::div(phi)
|
||||||
|
);
|
||||||
|
|
||||||
|
pEqn.solve();
|
||||||
|
|
||||||
|
phi -= pEqn.flux();
|
||||||
|
|
||||||
|
# include "continuityErrs.H"
|
||||||
|
|
||||||
|
U -= rUA*fvc::grad(p);
|
||||||
|
U.correctBoundaryConditions();
|
||||||
|
}
|
||||||
|
|
||||||
|
runTime.write();
|
||||||
|
|
||||||
|
if (runTime.outputTime())
|
||||||
|
{
|
||||||
|
calcEk(U, K).write(runTime.timePath()/"Ek", runTime.graphFormat());
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||||
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||||
|
<< nl << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
20
applications/solvers/DNSandLES/dnsFoam/globalProperties.H
Normal file
20
applications/solvers/DNSandLES/dnsFoam/globalProperties.H
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Info<< "k("
|
||||||
|
<< runTime.timeName()
|
||||||
|
<< ") = "
|
||||||
|
<< 3.0/2.0*average(magSqr(U)).value() << endl;
|
||||||
|
|
||||||
|
Info<< "epsilon("
|
||||||
|
<< runTime.timeName()
|
||||||
|
<< ") = "
|
||||||
|
<< (
|
||||||
|
0.5*nu*average
|
||||||
|
(
|
||||||
|
magSqr(fvc::grad(U) + fvc::grad(U)().T())
|
||||||
|
)
|
||||||
|
).value() << endl;
|
||||||
|
|
||||||
|
Info<< "U.f("
|
||||||
|
<< runTime.timeName()
|
||||||
|
<< ") = "
|
||||||
|
<< 181.0*average(U & force).value() << endl;
|
||||||
|
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
Info<< "Reading transportProperties\n" << endl;
|
||||||
|
|
||||||
|
IOdictionary transportProperties
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"transportProperties",
|
||||||
|
runTime.constant(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
dimensionedScalar nu
|
||||||
|
(
|
||||||
|
transportProperties.lookup("nu")
|
||||||
|
);
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
Info<< "Reading turbulenceProperties\n" << endl;
|
||||||
|
|
||||||
|
IOdictionary turbulenceProperties
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"turbulenceProperties",
|
||||||
|
runTime.constant(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
volVectorField force =
|
||||||
|
U/dimensionedScalar("dt", dimTime, runTime.deltaT().value());
|
||||||
|
|
||||||
|
Kmesh K(mesh);
|
||||||
|
UOprocess forceGen(K, runTime.deltaT().value(), turbulenceProperties);
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default backward;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
grad(p) Gauss linear;
|
||||||
|
grad(U) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
div(phi,U) Gauss <>;
|
||||||
|
div(phi,k) Gauss <>;
|
||||||
|
div(phi,B) Gauss <>;
|
||||||
|
div(phi,nuTilda) Gauss <>;
|
||||||
|
|
||||||
|
div(B) Gauss linear;
|
||||||
|
div((nuEff*dev(grad(U).T()))) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
laplacian(nuEff,U) Gauss linear corrected;
|
||||||
|
laplacian((1|A(U)),p) Gauss linear corrected;
|
||||||
|
laplacian(DkEff,k) Gauss linear corrected;
|
||||||
|
laplacian(DBEff,B) Gauss linear corrected;
|
||||||
|
laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
interpolate(U) linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
p ICCG 1e-06 0;
|
||||||
|
pFinal ICCG 1e-06 0;
|
||||||
|
U BICCG 1e-05 0;
|
||||||
|
k BICCG 1e-05 0;
|
||||||
|
B BICCG 1e-05 0;
|
||||||
|
nuTilda BICCG 1e-05 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
PISO
|
||||||
|
{
|
||||||
|
nCorrectors 2;
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
28
applications/solvers/DNSandLES/oodles/FoamX/fvSchemes.cfg
Normal file
28
applications/solvers/DNSandLES/oodles/FoamX/fvSchemes.cfg
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/fvSchemes.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/ddt/transient.cfg";
|
||||||
|
|
||||||
|
include "../../../incompressible/turbFoam/FoamX/fvSchemes/gradSchemes.cfg";
|
||||||
|
include "fvSchemes/divSchemes.cfg";
|
||||||
|
include "fvSchemes/laplacianSchemes.cfg";
|
||||||
|
include "../../../incompressible/turbFoam/FoamX/fvSchemes/interpolationSchemes.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/snGrad/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/flux/p.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSchemes";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phiU.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phik.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phiBT.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/B.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phiNuTilda.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/nuEffGradUT.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/nuEffU.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/1AUp.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/DkEffk.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/DBEffB.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/DnuTildaEffNuTilda.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
35
applications/solvers/DNSandLES/oodles/FoamX/fvSolution.cfg
Normal file
35
applications/solvers/DNSandLES/oodles/FoamX/fvSolution.cfg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/fvSolution.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
type dictionary;
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pSymm.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pFinal.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/U.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/B.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/nuTilda.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/PISO.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSolution";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
79
applications/solvers/DNSandLES/oodles/FoamX/oodles.cfg
Normal file
79
applications/solvers/DNSandLES/oodles/FoamX/oodles.cfg
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
description "Incompressible large eddy simulation (LES) code";
|
||||||
|
|
||||||
|
dictionaries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/controlDict/controlDict.cfg";
|
||||||
|
fvSchemes;
|
||||||
|
fvSolution;
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/transportProperties/singlePhaseTransportProperties.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/turbulenceProperties/LESmodelsIncompressible.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
fields
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/U.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/pKinematic.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/nuSgs.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/Bkinematic.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/nuTilda.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchPhysicalTypes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/patches.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/patches.cfg";
|
||||||
|
turbulentInlet
|
||||||
|
{
|
||||||
|
description "Turbulent inlet";
|
||||||
|
parentType inlet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
patchFieldsPhysicalTypes
|
||||||
|
{
|
||||||
|
U
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/U.cfg";
|
||||||
|
turbulentInlet turbulentInlet;
|
||||||
|
}
|
||||||
|
|
||||||
|
p
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/p.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
k
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/k.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/k.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
nuSgs
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/nuSgs.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/nuSgs.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
B
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/B.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/B.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
nuTilda
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/nuTilda.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/wallFunctions/nuTilda.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
3
applications/solvers/DNSandLES/oodles/Make/files
Normal file
3
applications/solvers/DNSandLES/oodles/Make/files
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
oodles.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_APPBIN)/oodles
|
||||||
13
applications/solvers/DNSandLES/oodles/Make/options
Normal file
13
applications/solvers/DNSandLES/oodles/Make/options
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-I$(LIB_SRC)/LESmodels \
|
||||||
|
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||||
|
-I$(LIB_SRC)/transportModels \
|
||||||
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
|
-I$(LIB_SRC)/sampling/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = \
|
||||||
|
-lincompressibleLESmodels \
|
||||||
|
-lincompressibleTransportModels \
|
||||||
|
-lfiniteVolume \
|
||||||
|
-lmeshTools
|
||||||
14
applications/solvers/DNSandLES/oodles/calculateAverages.H
Normal file
14
applications/solvers/DNSandLES/oodles/calculateAverages.H
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
nAveragingSteps++;
|
||||||
|
|
||||||
|
scalar nm1Coeff = scalar(nAveragingSteps - 1)/nAveragingSteps;
|
||||||
|
scalar nCoeff = 1.0/nAveragingSteps;
|
||||||
|
|
||||||
|
R += sqr(Umean);
|
||||||
|
Umean = nm1Coeff*Umean + nCoeff*U;
|
||||||
|
R = nm1Coeff*R + nCoeff*sqr(U) - sqr(Umean);
|
||||||
|
Bmean = nm1Coeff*Bmean + nCoeff*sgsModel->B();
|
||||||
|
epsilonMean = nm1Coeff*epsilonMean + nCoeff*sgsModel->epsilon();
|
||||||
|
|
||||||
|
pPrime2Mean += sqr(pMean);
|
||||||
|
pMean = nm1Coeff*pMean + nCoeff*p;
|
||||||
|
pPrime2Mean = nm1Coeff*pPrime2Mean + nCoeff*sqr(p) - sqr(pMean);
|
||||||
234
applications/solvers/DNSandLES/oodles/createAverages.H
Normal file
234
applications/solvers/DNSandLES/oodles/createAverages.H
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
label nAveragingSteps = 1;
|
||||||
|
|
||||||
|
IFstream nAveragingStepsFile
|
||||||
|
(
|
||||||
|
runTime.path()/runTime.timeName()/"uniform"/"nAveragingSteps.raw"
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
autoPtr<volVectorField> UmeanPtr;
|
||||||
|
autoPtr<volSymmTensorField> RPtr;
|
||||||
|
autoPtr<volSymmTensorField> BmeanPtr;
|
||||||
|
autoPtr<volScalarField> epsilonMeanPtr;
|
||||||
|
|
||||||
|
autoPtr<volScalarField> pMeanPtr;
|
||||||
|
autoPtr<volScalarField> pPrime2MeanPtr;
|
||||||
|
|
||||||
|
if (nAveragingStepsFile.good())
|
||||||
|
{
|
||||||
|
nAveragingStepsFile >> nAveragingSteps;
|
||||||
|
|
||||||
|
Info<< "Reading field Umean\n" << endl;
|
||||||
|
UmeanPtr.reset
|
||||||
|
(
|
||||||
|
new volVectorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"Umean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "\nReading field R\n" << endl;
|
||||||
|
RPtr.reset
|
||||||
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"R",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "\nReading field Bmean\n" << endl;
|
||||||
|
BmeanPtr.reset
|
||||||
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"Bmean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "\nReading field epsilonMean\n" << endl;
|
||||||
|
epsilonMeanPtr.reset
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"epsilonMean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Reading field pMean\n" << endl;
|
||||||
|
pMeanPtr.reset
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"pMean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Reading field pPrime2Mean\n" << endl;
|
||||||
|
pPrime2MeanPtr.reset
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"pPrime2Mean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Info<< "Creating field Umean\n" << endl;
|
||||||
|
UmeanPtr.reset
|
||||||
|
(
|
||||||
|
new volVectorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"Umean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
U
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Creating field R\n" << endl;
|
||||||
|
RPtr.reset
|
||||||
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"R",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
sqr(U) - sqr(UmeanPtr())
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Creating field Bmean\n" << endl;
|
||||||
|
BmeanPtr.reset
|
||||||
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"Bmean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
sgsModel->B()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Creating field epsilonMean\n" << endl;
|
||||||
|
epsilonMeanPtr.reset
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"epsilonMean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
sgsModel->epsilon()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Creating field pMean\n" << endl;
|
||||||
|
pMeanPtr.reset
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"pMean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
p
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Creating field pPrime2Mean\n" << endl;
|
||||||
|
pPrime2MeanPtr.reset
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"pPrime2Mean",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
sqr(p) - sqr(pMeanPtr())
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
volVectorField& Umean = UmeanPtr();
|
||||||
|
volSymmTensorField& R = RPtr();
|
||||||
|
volSymmTensorField& Bmean = BmeanPtr();
|
||||||
|
volScalarField& epsilonMean = epsilonMeanPtr();
|
||||||
|
|
||||||
|
volScalarField& pMean = pMeanPtr();
|
||||||
|
volScalarField& pPrime2Mean = pPrime2MeanPtr();
|
||||||
43
applications/solvers/DNSandLES/oodles/createFields.H
Normal file
43
applications/solvers/DNSandLES/oodles/createFields.H
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
Info<< "Reading field p\n" << endl;
|
||||||
|
volScalarField p
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"p",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Reading field U\n" << endl;
|
||||||
|
volVectorField U
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"U",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
# include "createPhi.H"
|
||||||
|
|
||||||
|
|
||||||
|
label pRefCell = 0;
|
||||||
|
scalar pRefValue = 0.0;
|
||||||
|
setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue);
|
||||||
|
|
||||||
|
|
||||||
|
singlePhaseTransportModel laminarTransport(U, phi);
|
||||||
|
|
||||||
|
autoPtr<LESmodel> sgsModel
|
||||||
|
(
|
||||||
|
LESmodel::New(U, phi, laminarTransport)
|
||||||
|
);
|
||||||
140
applications/solvers/DNSandLES/oodles/oodles.C
Normal file
140
applications/solvers/DNSandLES/oodles/oodles.C
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
|
||||||
|
\\/ 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 2 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, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Application
|
||||||
|
oodles
|
||||||
|
|
||||||
|
Description
|
||||||
|
Incompressible LES solver.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "fvCFD.H"
|
||||||
|
#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H"
|
||||||
|
#include "incompressible/transportModel/transportModel.H"
|
||||||
|
#include "incompressible/LESmodel/LESmodel.H"
|
||||||
|
#include "IFstream.H"
|
||||||
|
#include "OFstream.H"
|
||||||
|
#include "Random.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
# include "setRootCase.H"
|
||||||
|
# include "createTime.H"
|
||||||
|
# include "createMeshNoClear.H"
|
||||||
|
# include "createFields.H"
|
||||||
|
# include "createAverages.H"
|
||||||
|
# include "initContinuityErrs.H"
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Info<< "\nStarting time loop\n" << endl;
|
||||||
|
|
||||||
|
for (runTime++; !runTime.end(); runTime++)
|
||||||
|
{
|
||||||
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
# include "readPISOControls.H"
|
||||||
|
# include "CourantNo.H"
|
||||||
|
|
||||||
|
sgsModel->correct();
|
||||||
|
|
||||||
|
fvVectorMatrix UEqn
|
||||||
|
(
|
||||||
|
fvm::ddt(U)
|
||||||
|
+ fvm::div(phi, U)
|
||||||
|
+ sgsModel->divDevBeff(U)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (momentumPredictor)
|
||||||
|
{
|
||||||
|
solve(UEqn == -fvc::grad(p));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- PISO loop
|
||||||
|
|
||||||
|
for (int corr=0; corr<nCorr; corr++)
|
||||||
|
{
|
||||||
|
volScalarField rUA = 1.0/UEqn.A();
|
||||||
|
|
||||||
|
U = rUA*UEqn.H();
|
||||||
|
phi = (fvc::interpolate(U) & mesh.Sf())
|
||||||
|
+ fvc::ddtPhiCorr(rUA, U, phi);
|
||||||
|
|
||||||
|
adjustPhi(phi, U, p);
|
||||||
|
|
||||||
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
{
|
||||||
|
fvScalarMatrix pEqn
|
||||||
|
(
|
||||||
|
fvm::laplacian(rUA, p) == fvc::div(phi)
|
||||||
|
);
|
||||||
|
|
||||||
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
|
if (corr == nCorr-1 && nonOrth == nNonOrthCorr)
|
||||||
|
{
|
||||||
|
pEqn.solve(mesh.solver(p.name() + "Final"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pEqn.solve(mesh.solver(p.name()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
{
|
||||||
|
phi -= pEqn.flux();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# include "continuityErrs.H"
|
||||||
|
|
||||||
|
U -= rUA*fvc::grad(p);
|
||||||
|
U.correctBoundaryConditions();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# include "calculateAverages.H"
|
||||||
|
|
||||||
|
runTime.write();
|
||||||
|
|
||||||
|
# include "writeNaveragingSteps.H"
|
||||||
|
|
||||||
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||||
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||||
|
<< nl << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
18
applications/solvers/DNSandLES/oodles/writeNaveragingSteps.H
Normal file
18
applications/solvers/DNSandLES/oodles/writeNaveragingSteps.H
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
if (runTime.outputTime())
|
||||||
|
{
|
||||||
|
OFstream nAveragingStepsFile
|
||||||
|
(
|
||||||
|
runTime.path()/runTime.timeName()/"uniform"/"nAveragingSteps.raw"
|
||||||
|
);
|
||||||
|
|
||||||
|
if (nAveragingStepsFile.good())
|
||||||
|
{
|
||||||
|
nAveragingStepsFile << nAveragingSteps << endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FatalErrorIn(args.executable())
|
||||||
|
<< "Cannot open file " << nAveragingStepsFile.name()
|
||||||
|
<< abort(FatalError);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
grad(T) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
laplacian(DT,T) Gauss linear corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
T;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
T ICCG 1e-06 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SIMPLE
|
||||||
|
{
|
||||||
|
nNonOrthogonalCorrectors 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
29
applications/solvers/basic/laplacianFoam/FoamX/fvSchemes.cfg
Normal file
29
applications/solvers/basic/laplacianFoam/FoamX/fvSchemes.cfg
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/fvSchemes.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/ddt/transient.cfg";
|
||||||
|
|
||||||
|
include "fvSchemes/gradSchemes.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/noneOnly.cfg";
|
||||||
|
include "fvSchemes/laplacianSchemes.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/interpolation/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/snGrad/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/flux/T.cfg"
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSchemes";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/T.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/DTT.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/fvSolution.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
type dictionary;
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/Tsymm.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/SIMPLE.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSolution";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
description "Solves a simple Laplace equation, e.g. for thermal diffusion in a solid.";
|
||||||
|
|
||||||
|
dictionaries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/controlDict/controlDictSteady.cfg";
|
||||||
|
fvSchemes;
|
||||||
|
fvSolution;
|
||||||
|
transportProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
fields
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/T.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchPhysicalTypes
|
||||||
|
{
|
||||||
|
fixedTemp
|
||||||
|
{
|
||||||
|
description "Fixed T boundary condition";
|
||||||
|
}
|
||||||
|
|
||||||
|
fixedFlux
|
||||||
|
{
|
||||||
|
description "Fixed heat flux boundary bondition";
|
||||||
|
}
|
||||||
|
|
||||||
|
adiabatic
|
||||||
|
{
|
||||||
|
description "Adiabatic boundary condition";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
patchFieldsPhysicalTypes
|
||||||
|
{
|
||||||
|
T
|
||||||
|
{
|
||||||
|
fixedTemp fixedValue;
|
||||||
|
fixedFlux fixedGradient;
|
||||||
|
adiabatic zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/transportProperties/transportProperties.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/dimensionedScalar/DT.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
3
applications/solvers/basic/laplacianFoam/Make/files
Normal file
3
applications/solvers/basic/laplacianFoam/Make/files
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
laplacianFoam.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_APPBIN)/laplacianFoam
|
||||||
3
applications/solvers/basic/laplacianFoam/Make/options
Normal file
3
applications/solvers/basic/laplacianFoam/Make/options
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
EXE_INC = -I$(LIB_SRC)/finiteVolume/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = -lfiniteVolume
|
||||||
37
applications/solvers/basic/laplacianFoam/createFields.H
Normal file
37
applications/solvers/basic/laplacianFoam/createFields.H
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
Info<< "Reading field T\n" << endl;
|
||||||
|
|
||||||
|
volScalarField T
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"T",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Reading transportProperties\n" << endl;
|
||||||
|
|
||||||
|
IOdictionary transportProperties
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"transportProperties",
|
||||||
|
runTime.constant(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Reading diffusivity DT\n" << endl;
|
||||||
|
|
||||||
|
dimensionedScalar DT
|
||||||
|
(
|
||||||
|
transportProperties.lookup("DT")
|
||||||
|
);
|
||||||
78
applications/solvers/basic/laplacianFoam/laplacianFoam.C
Normal file
78
applications/solvers/basic/laplacianFoam/laplacianFoam.C
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
|
||||||
|
\\/ 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 2 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, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Application
|
||||||
|
laplacianFoam
|
||||||
|
|
||||||
|
Description
|
||||||
|
Solves a simple Laplace equation, e.g. for thermal diffusion in a solid.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "fvCFD.H"
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
# include "setRootCase.H"
|
||||||
|
|
||||||
|
# include "createTime.H"
|
||||||
|
# include "createMesh.H"
|
||||||
|
# include "createFields.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Info<< "\nCalculating temperature distribution\n" << endl;
|
||||||
|
|
||||||
|
for (runTime++; !runTime.end(); runTime++)
|
||||||
|
{
|
||||||
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
# include "readSIMPLEControls.H"
|
||||||
|
|
||||||
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
{
|
||||||
|
solve
|
||||||
|
(
|
||||||
|
fvm::ddt(T) - fvm::laplacian(DT, T)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
# include "write.H"
|
||||||
|
|
||||||
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||||
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||||
|
<< nl << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
46
applications/solvers/basic/laplacianFoam/write.H
Normal file
46
applications/solvers/basic/laplacianFoam/write.H
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
if (runTime.outputTime())
|
||||||
|
{
|
||||||
|
volVectorField gradT = fvc::grad(T);
|
||||||
|
|
||||||
|
volScalarField gradTx
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"gradTx",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
gradT.component(vector::X)
|
||||||
|
);
|
||||||
|
|
||||||
|
volScalarField gradTy
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"gradTy",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
gradT.component(vector::Y)
|
||||||
|
);
|
||||||
|
|
||||||
|
volScalarField gradTz
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"gradTz",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
gradT.component(vector::Z)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
runTime.write();
|
||||||
|
}
|
||||||
@ -0,0 +1,63 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default steadyState;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
laplacian(1,p) Gauss linear corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
p ICCG 1e-06 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SIMPLE
|
||||||
|
{
|
||||||
|
nNonOrthogonalCorrectors 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
29
applications/solvers/basic/potentialFoam/FoamX/fvSchemes.cfg
Normal file
29
applications/solvers/basic/potentialFoam/FoamX/fvSchemes.cfg
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/fvSchemes.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/ddt/steady.cfg";
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/noneOnly.cfg";
|
||||||
|
include "fvSchemes/laplacianSchemes.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/interpolation/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/snGrad/defaultOnly.cfg";
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/flux/p.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSchemes";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/1p.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/fvSolution.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
type dictionary;
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pSymm.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/SIMPLE.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSolution";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
description "Simple potential flow code.";
|
||||||
|
|
||||||
|
dictionaries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/controlDict/controlDictSteady.cfg";
|
||||||
|
fvSchemes;
|
||||||
|
fvSolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
fields
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/U.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/pKinematic.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchPhysicalTypes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/patches.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchFieldsPhysicalTypes
|
||||||
|
{
|
||||||
|
U
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/U.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
p
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/p.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
3
applications/solvers/basic/potentialFoam/Make/files
Normal file
3
applications/solvers/basic/potentialFoam/Make/files
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
potentialFoam.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_APPBIN)/potentialFoam
|
||||||
4
applications/solvers/basic/potentialFoam/Make/options
Normal file
4
applications/solvers/basic/potentialFoam/Make/options
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = -lfiniteVolume
|
||||||
50
applications/solvers/basic/potentialFoam/createFields.H
Normal file
50
applications/solvers/basic/potentialFoam/createFields.H
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
Info<< "Reading field p\n" << endl;
|
||||||
|
volScalarField p
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"p",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
p = dimensionedScalar("zero", p.dimensions(), 0.0);
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Reading field U\n" << endl;
|
||||||
|
volVectorField U
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"U",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
U = dimensionedVector("0", U.dimensions(), vector::zero);
|
||||||
|
|
||||||
|
surfaceScalarField phi
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"phi",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
fvc::interpolate(U) & mesh.Sf()
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
label pRefCell = 0;
|
||||||
|
scalar pRefValue = 0.0;
|
||||||
|
setRefCell(p, mesh.solutionDict().subDict("SIMPLE"), pRefCell, pRefValue);
|
||||||
115
applications/solvers/basic/potentialFoam/potentialFoam.C
Normal file
115
applications/solvers/basic/potentialFoam/potentialFoam.C
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
|
||||||
|
\\/ 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 2 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, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Application
|
||||||
|
potentialFoam
|
||||||
|
|
||||||
|
Description
|
||||||
|
Simple potential flow solver which can be used to generate starting fields
|
||||||
|
for full Navier-Stokes codes.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "fvCFD.H"
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
argList::validOptions.insert("writep", "");
|
||||||
|
|
||||||
|
# include "setRootCase.H"
|
||||||
|
|
||||||
|
# include "createTime.H"
|
||||||
|
# include "createMesh.H"
|
||||||
|
# include "createFields.H"
|
||||||
|
# include "readSIMPLEControls.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Info<< nl << "Calculating potential flow" << endl;
|
||||||
|
|
||||||
|
adjustPhi(phi, U, p);
|
||||||
|
|
||||||
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
{
|
||||||
|
fvScalarMatrix pEqn
|
||||||
|
(
|
||||||
|
fvm::laplacian
|
||||||
|
(
|
||||||
|
dimensionedScalar
|
||||||
|
(
|
||||||
|
"1",
|
||||||
|
dimTime/p.dimensions()*dimensionSet(0, 2, -2, 0, 0),
|
||||||
|
1
|
||||||
|
),
|
||||||
|
p
|
||||||
|
)
|
||||||
|
==
|
||||||
|
fvc::div(phi)
|
||||||
|
);
|
||||||
|
|
||||||
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
pEqn.solve();
|
||||||
|
|
||||||
|
if (nonOrth == nNonOrthCorr)
|
||||||
|
{
|
||||||
|
phi -= pEqn.flux();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "continuity error = "
|
||||||
|
<< mag(fvc::div(phi))().weightedAverage(mesh.V()).value()
|
||||||
|
<< endl;
|
||||||
|
|
||||||
|
U = fvc::reconstruct(phi);
|
||||||
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
|
Info<< "Interpolated U error = "
|
||||||
|
<< (sqrt(sum(sqr((fvc::interpolate(U) & mesh.Sf()) - phi)))
|
||||||
|
/sum(mesh.magSf())).value()
|
||||||
|
<< endl;
|
||||||
|
|
||||||
|
// Force the write
|
||||||
|
U.write();
|
||||||
|
phi.write();
|
||||||
|
|
||||||
|
if (args.options().found("writep"))
|
||||||
|
{
|
||||||
|
p.write();
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||||
|
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||||
|
<< nl << endl;
|
||||||
|
|
||||||
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
div(phi,T) Gauss <>;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
laplacian(DT,T) Gauss linear corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
T;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
T BICCG 1e-06 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SIMPLE
|
||||||
|
{
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/fvSchemes.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/ddt/transient.cfg";
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/defaultOnly.cfg";
|
||||||
|
include "fvSchemes/divSchemes.cfg";
|
||||||
|
include "../../laplacianFoam/FoamX/fvSchemes/laplacianSchemes.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/interpolation/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/snGrad/defaultOnly.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/flux/T.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSchemes";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/schemes.cfg";
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/default.cfg";
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phiT.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/fvSolution.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
type dictionary;
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/T.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/fvSolution/SIMPLE.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
include "defaults/system/fvSolution";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
description "Simple scalar transport flow code.";
|
||||||
|
|
||||||
|
dictionaries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/controlDict/controlDict.cfg";
|
||||||
|
fvSchemes;
|
||||||
|
fvSolution;
|
||||||
|
transportProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
fields
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/U.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/geometricFields/T.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchPhysicalTypes
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/patches.cfg";
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/thermal/patches.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
patchFieldsPhysicalTypes
|
||||||
|
{
|
||||||
|
U
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/U.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
T
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/thermal/T.cfg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.4 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
include "$FOAMX_CONFIG/dictionaries/transportProperties/transportProperties.cfg";
|
||||||
|
|
||||||
|
entries
|
||||||
|
{
|
||||||
|
include "$FOAMX_CONFIG/entries/dimensionedScalar/DT.cfg";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
scalarTransportFoam.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_APPBIN)/scalarTransportFoam
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = -lfiniteVolume
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
Info<< "Reading field T\n" << endl;
|
||||||
|
|
||||||
|
volScalarField T
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"T",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Reading field U\n" << endl;
|
||||||
|
|
||||||
|
volVectorField U
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"U",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Reading transportProperties\n" << endl;
|
||||||
|
|
||||||
|
IOdictionary transportProperties
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"transportProperties",
|
||||||
|
runTime.constant(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "Reading diffusivity D\n" << endl;
|
||||||
|
|
||||||
|
dimensionedScalar DT
|
||||||
|
(
|
||||||
|
transportProperties.lookup("DT")
|
||||||
|
);
|
||||||
|
|
||||||
|
# include "createPhi.H"
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
|
||||||
|
\\/ 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 2 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, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Application
|
||||||
|
scalarTransportFoam
|
||||||
|
|
||||||
|
Description
|
||||||
|
Solves a transport equation for a passive scalar
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "fvCFD.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
# include "setRootCase.H"
|
||||||
|
|
||||||
|
# include "createTime.H"
|
||||||
|
# include "createMesh.H"
|
||||||
|
# include "createFields.H"
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Info<< "\nCalculating scalar transport\n" << endl;
|
||||||
|
|
||||||
|
# include "CourantNo.H"
|
||||||
|
|
||||||
|
for (runTime++; !runTime.end(); runTime++)
|
||||||
|
{
|
||||||
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
|
# include "readSIMPLEControls.H"
|
||||||
|
|
||||||
|
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||||
|
{
|
||||||
|
solve
|
||||||
|
(
|
||||||
|
fvm::ddt(T)
|
||||||
|
+ fvm::div(phi, T)
|
||||||
|
- fvm::laplacian(DT, T)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
runTime.write();
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
32
applications/solvers/combustion/PDRFoam/Make/files
Normal file
32
applications/solvers/combustion/PDRFoam/Make/files
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
XiModels/XiModel/XiModel.C
|
||||||
|
XiModels/XiModel/newXiModel.C
|
||||||
|
XiModels/fixed/fixed.C
|
||||||
|
XiModels/algebraic/algebraic.C
|
||||||
|
XiModels/transport/transport.C
|
||||||
|
|
||||||
|
XiModels/XiEqModels/XiEqModel/XiEqModel.C
|
||||||
|
XiModels/XiEqModels/XiEqModel/newXiEqModel.C
|
||||||
|
XiModels/XiEqModels/Gulder/Gulder.C
|
||||||
|
XiModels/XiEqModels/instabilityXiEq/instabilityXiEq.C
|
||||||
|
XiModels/XiEqModels/SCOPEBlendXiEq/SCOPEBlendXiEq.C
|
||||||
|
XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.C
|
||||||
|
|
||||||
|
XiModels/XiGModels/XiGModel/XiGModel.C
|
||||||
|
XiModels/XiGModels/XiGModel/newXiGModel.C
|
||||||
|
XiModels/XiGModels/KTS/KTS.C
|
||||||
|
XiModels/XiGModels/instabilityG/instabilityG.C
|
||||||
|
|
||||||
|
PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C
|
||||||
|
|
||||||
|
PDRModels/dragModels/PDRDragModel/PDRDragModel.C
|
||||||
|
PDRModels/dragModels/PDRDragModel/newPDRDragModel.C
|
||||||
|
PDRModels/dragModels/basic/basic.C
|
||||||
|
|
||||||
|
PDRModels/XiEqModels/basicXiSubXiEq/basicXiSubXiEq.C
|
||||||
|
PDRModels/XiGModels/basicXiSubG/basicXiSubG.C
|
||||||
|
|
||||||
|
laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
|
||||||
|
|
||||||
|
PDRFoam.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_USER_APPBIN)/PDRFoam
|
||||||
29
applications/solvers/combustion/PDRFoam/Make/options
Normal file
29
applications/solvers/combustion/PDRFoam/Make/options
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-IXiModels/XiModel \
|
||||||
|
-IXiModels/XiEqModels/XiEqModel \
|
||||||
|
-IXiModels/XiGModels/XiGModel \
|
||||||
|
-IPDRModels/dragModels/PDRDragModel \
|
||||||
|
-IlaminarFlameSpeed/SCOPE \
|
||||||
|
-I$(LIB_SRC)/engine/lnInclude \
|
||||||
|
-I$(LIB_SRC)/sampling/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
|
||||||
|
-I$(LIB_SRC)/turbulenceModels/compressible/lnInclude \
|
||||||
|
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
|
||||||
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||||
|
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||||
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
|
-I$(LIB_SRC)/triSurface/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = \
|
||||||
|
-lengine \
|
||||||
|
-lmeshTools \
|
||||||
|
-lcompressibleTurbulenceModels \
|
||||||
|
-lbasicThermophysicalModels \
|
||||||
|
-lcombustionThermophysicalModels \
|
||||||
|
-lspecie \
|
||||||
|
-llaminarFlameSpeedModels \
|
||||||
|
-lfiniteVolume \
|
||||||
|
-ldynamicFvMesh
|
||||||
137
applications/solvers/combustion/PDRFoam/PDRFoam.C
Normal file
137
applications/solvers/combustion/PDRFoam/PDRFoam.C
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
|
||||||
|
\\/ 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 2 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, write to the Free Software Foundation,
|
||||||
|
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
Application
|
||||||
|
PDRFoam
|
||||||
|
|
||||||
|
Description
|
||||||
|
Compressible premixed/partially-premixed combustion solver with turbulence
|
||||||
|
modelling.
|
||||||
|
|
||||||
|
Combusting RANS code using the b-Xi two-equation model.
|
||||||
|
Xi may be obtained by either the solution of the Xi transport
|
||||||
|
equation or from an algebraic exression. Both approaches are
|
||||||
|
based on Gulder's flame speed correlation which has been shown
|
||||||
|
to be appropriate by comparison with the results from the
|
||||||
|
spectral model.
|
||||||
|
|
||||||
|
Strain effects are encorporated directly into the Xi equation
|
||||||
|
but not in the algebraic approximation. Further work need to be
|
||||||
|
done on this issue, particularly regarding the enhanced removal rate
|
||||||
|
caused by flame compression. Analysis using results of the spectral
|
||||||
|
model will be required.
|
||||||
|
|
||||||
|
For cases involving very lean Propane flames or other flames which are
|
||||||
|
very strain-sensitive, a transport equation for the laminar flame
|
||||||
|
speed is present. This equation is derived using heuristic arguments
|
||||||
|
involving the strain time scale and the strain-rate at extinction.
|
||||||
|
the transport velocity is the same as that for the Xi equation.
|
||||||
|
|
||||||
|
For large flames e.g. explosions additional modelling for the flame
|
||||||
|
wrinkling due to surface instabilities may be applied.
|
||||||
|
|
||||||
|
PDR (porosity/distributed resistance) modelling is included to handle
|
||||||
|
regions containing blockages which cannot be resolved by the mesh.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "fvCFD.H"
|
||||||
|
#include "hhuCombustionThermo.H"
|
||||||
|
#include "turbulenceModel.H"
|
||||||
|
#include "laminarFlameSpeed.H"
|
||||||
|
#include "XiModel.H"
|
||||||
|
#include "PDRDragModel.H"
|
||||||
|
#include "ignition.H"
|
||||||
|
#include "Switch.H"
|
||||||
|
#include "bound.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
# include "setRootCase.H"
|
||||||
|
|
||||||
|
# include "createTime.H"
|
||||||
|
# include "createMesh.H"
|
||||||
|
# include "readCombustionProperties.H"
|
||||||
|
# include "readEnvironmentalProperties.H"
|
||||||
|
# include "createFields.H"
|
||||||
|
# include "readPISOControls.H"
|
||||||
|
# include "initContinuityErrs.H"
|
||||||
|
# include "readTimeControls.H"
|
||||||
|
# include "CourantNo.H"
|
||||||
|
# include "setInitialDeltaT.H"
|
||||||
|
|
||||||
|
scalar StCoNum = 0.0;
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Info<< "\nStarting time loop\n" << endl;
|
||||||
|
|
||||||
|
while (runTime.run())
|
||||||
|
{
|
||||||
|
# include "readTimeControls.H"
|
||||||
|
# include "readPISOControls.H"
|
||||||
|
# include "CourantNo.H"
|
||||||
|
# include "setDeltaT.H"
|
||||||
|
|
||||||
|
runTime++;
|
||||||
|
|
||||||
|
Info<< "\n\nTime = " << runTime.timeName() << endl;
|
||||||
|
|
||||||
|
# include "rhoEqn.H"
|
||||||
|
# include "UEqn.H"
|
||||||
|
|
||||||
|
// --- PISO loop
|
||||||
|
for (int corr=1; corr<=nCorr; corr++)
|
||||||
|
{
|
||||||
|
# include "bEqn.H"
|
||||||
|
# include "ftEqn.H"
|
||||||
|
# include "huEqn.H"
|
||||||
|
# include "hEqn.H"
|
||||||
|
|
||||||
|
if (!ign.ignited())
|
||||||
|
{
|
||||||
|
hu == h;
|
||||||
|
}
|
||||||
|
|
||||||
|
# include "pEqn.H"
|
||||||
|
}
|
||||||
|
|
||||||
|
turbulence->correct();
|
||||||
|
|
||||||
|
runTime.write();
|
||||||
|
|
||||||
|
Info<< "\nExecutionTime = "
|
||||||
|
<< runTime.elapsedCpuTime()
|
||||||
|
<< " s\n" << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "\n end\n";
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user