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