mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
8
.gitignore
vendored
8
.gitignore
vendored
@ -38,12 +38,8 @@ SiCortex*Gcc*/
|
||||
solaris*Gcc*/
|
||||
SunOS*Gcc*/
|
||||
|
||||
# reinstate wmake/rules that might look like build folders
|
||||
!wmake/rules/*/
|
||||
|
||||
# but do continue to ignore the derived wmake files
|
||||
wmake/rules/*/dirToString
|
||||
wmake/rules/*/wmkdep
|
||||
# all of the wmake wmkdep and dirToString binaries
|
||||
wmake/bin
|
||||
|
||||
# doxygen generated documentation
|
||||
doc/[Dd]oxygen/html
|
||||
|
||||
259
ReleaseNotes-1.6
259
ReleaseNotes-1.6
@ -38,155 +38,122 @@
|
||||
|
||||
*** Regular Expressions
|
||||
The addition of regular expressions marks a major improvement in usability.
|
||||
|
||||
+ *New* =regExp= class provides support for accessing POSIX extended regular
|
||||
expresssions from within OpenFOAM.
|
||||
See the manpages on your system (/man 7 regex/) for more information
|
||||
about the extended regular expresssion syntax. Since entire strings are
|
||||
matched, the =^= and =$= anchors are not required.
|
||||
|
||||
+ *New* =wordRe= class can contain a =word= or a =regExp= .
|
||||
The match() method matches appropriately (as a =word= or as a =regExp=).
|
||||
|
||||
expresssions from within OpenFOAM. See the manpages on your system (/man
|
||||
7 regex/) for more information about the extended regular expression
|
||||
syntax. Since entire strings are matched, the =^= and =$= anchors are not
|
||||
required.
|
||||
+ *New* =wordRe= class can contain a =word= or a =regExp= . The match()
|
||||
method matches appropriately (as a =word= or as a =regExp=).
|
||||
+ *New* =stringListOps= to search string lists based on regular expressions,
|
||||
=wordRe= or =wordReList= .
|
||||
|
||||
+ =Istream= and =Ostream= now retain backslashes when reading/writing strings.
|
||||
The backslash continues to be used as an escape character for double-quote
|
||||
and newline, but otherwise get passed through "as-is" without any other
|
||||
special meaning (ie, they are /not/ C-style strings). This especially
|
||||
helps with input/output of regular expressions.
|
||||
|
||||
+ =Istream= and =Ostream= now retain backslashes when reading/writing
|
||||
strings. The backslash continues to be used as an escape character for
|
||||
double-quote and newline, but otherwise get passed through "as-is" without
|
||||
any other special meaning (ie, they are /not/ C-style strings). This
|
||||
especially helps with input/output of regular expressions.
|
||||
|
||||
*** Dictionary improvements/changes
|
||||
+ Dictionaries can use words (unquoted) or regular expressions (quoted)
|
||||
for their keywords. When searching, an exact match has priority
|
||||
over a regular expression match.
|
||||
+ Dictionaries can use words (unquoted) or regular expressions (quoted) for
|
||||
their keywords. When searching, an exact match has priority over a regular
|
||||
expression match.
|
||||
MJ: If multiple regular expressions they get matched in reverse order.
|
||||
|
||||
+ The default =#inputMode= is now '=merge=', which corresponds to the most
|
||||
general usage. The =#inputMode warn= corresponds to the previous
|
||||
default behaviour.
|
||||
|
||||
+ The *new* =#inputMode protect= can be used to conditionally merge default
|
||||
general usage. The =#inputMode warn= corresponds to the previous default
|
||||
behaviour.
|
||||
+ The *new* =#inputMode protect= can be used to conditionally merge default
|
||||
values into existing dictionaries.
|
||||
|
||||
+ *New* =digest()= method to calculate and return the SHA1 message digest
|
||||
|
||||
|
||||
*** Improved list containers
|
||||
+ It is now possible to append a =UList= to an existing =List= or
|
||||
=DynamicList= .
|
||||
|
||||
+ =DynamicList= is now much more flexible. It can be used with the
|
||||
=append()= method, or with the =setSize()= method and =operator[]=, as
|
||||
per =List= . =DynamicList= also has more methods for adjusting the
|
||||
space allocated.
|
||||
|
||||
=append()= method, or with the =setSize()= method and =operator[]=, as per
|
||||
=List= . =DynamicList= also has more methods for adjusting the space
|
||||
allocated.
|
||||
+ =SortableList= now uses stable sort and allows =reverseSort()= as well.
|
||||
=SortableList= is also more versatile - the indices mostly remain
|
||||
unallocated until they are required in the =sort()= method.
|
||||
The sort indices can be deallocated with the =shrink()= method.
|
||||
Works as expected with =transfer()= and assignment from other lists.
|
||||
|
||||
unallocated until they are required in the =sort()= method. The sort
|
||||
indices can be deallocated with the =shrink()= method. Works as expected
|
||||
with =transfer()= and assignment from other lists.
|
||||
+ Specialization for =UList<bool>::operator[](..) const= to return =false=
|
||||
for out-of-range elements. This allows lazy evaluation with no noticeable
|
||||
change in performance.
|
||||
|
||||
+ =PackedList= has much better performance, *new* lazy evaluation and
|
||||
*new* auto-vivify of elements on assignment. Any auto-vivified
|
||||
elements will also flood-fill the gaps with zero. The =append()= method
|
||||
can be used like in =DynamicList= to append a single element. The =set()=
|
||||
method can be used like in =labelHashSet= .
|
||||
A =PackedBoolList= can thus replace =labelHashSet= in many places.
|
||||
|
||||
+ =PackedList= has much better performance, *new* lazy evaluation and *new*
|
||||
auto-vivify of elements on assignment. Any auto-vivified elements will
|
||||
also flood-fill the gaps with zero. The =append()= method can be used
|
||||
like in =DynamicList= to append a single element. The =set()= method can
|
||||
be used like in =labelHashSet= . A =PackedBoolList= can thus replace
|
||||
=labelHashSet= in many places.
|
||||
+ *New* =UIndirectList= for an indirect list without storing the addressing.
|
||||
|
||||
|
||||
*** New hashing algorithms
|
||||
+ Bob Jenkins' hash routine for performance improvement (5-10% faster for
|
||||
string hashing than the previous algorithm) and fewer collisions.
|
||||
|
||||
+ SHA1 hashing and SHA1 message digests (NIST specification FIPS-180-1)
|
||||
added. The SHA1 digest provides a compact (20 bytes) means of
|
||||
determining if the contents of an object have changed. The *new*
|
||||
=OSHA1stream= class can be used to calculate SHA1 digests for anything
|
||||
that can write to an output stream.
|
||||
|
||||
added. The SHA1 digest provides a compact (20 bytes) means of determining
|
||||
if the contents of an object have changed. The *new* =OSHA1stream= class
|
||||
can be used to calculate SHA1 digests for anything that can write to an
|
||||
output stream.
|
||||
|
||||
*** HashTable/HashSet improvements
|
||||
+ Performance improvements for querying on empty tables
|
||||
|
||||
+ The =erase()= method can take a list of keys or the keys from any
|
||||
another =HashTable=/=HashSet= .
|
||||
|
||||
+ =HashSet= has an =operator[]() const= that allows the same syntax
|
||||
to be used for =boolList=, =PackedBoolList= and =labelHashSet= .
|
||||
|
||||
+ The =erase()= method can take a list of keys or the keys from any another
|
||||
=HashTable=/=HashSet= .
|
||||
+ =HashSet= has an =operator[]() const= that allows the same syntax to be
|
||||
used for =boolList=, =PackedBoolList= and =labelHashSet= .
|
||||
+ =HashSet has additional operators '+=', '-=', '&=' to add, remove or
|
||||
intersect keys, respectively.
|
||||
|
||||
|
||||
*** Improved bool/Switch
|
||||
+ The =Switch= class has reduced the storage to be on par with =bool= .
|
||||
It is now more flexible and behaves much more like a =bool= .
|
||||
|
||||
+ The =Switch= class has reduced the storage to be on par with =bool= . It
|
||||
is now more flexible and behaves much more like a =bool= .
|
||||
+ The IO for =bool= uses =Switch= internally for reading, so the end-user
|
||||
doesn't need to know if a particular class used =bool= or =Switch= .
|
||||
|
||||
|
||||
*** Miscellaneous container class improvments
|
||||
+ *New* Boost-style =StaticAssert= added.
|
||||
Which is useful to catch invalid template sizes, for example.
|
||||
|
||||
+ Various containers now have C++0x-style =cbegin()=, =cend()= iterator methods.
|
||||
|
||||
+ *New* Boost-style =StaticAssert= added. Which is useful to catch invalid
|
||||
template sizes, for example.
|
||||
+ Various containers now have C++0x-style =cbegin()=, =cend()= iterator
|
||||
methods.
|
||||
+ Various containers now have STL-style =empty()= method, which may be more
|
||||
readable and universal than =!size()= or =!valid()= conditions.
|
||||
|
||||
+ various containers now have an =xfer()= method for yielding their contents
|
||||
to a corresponding =Xfer= class.
|
||||
|
||||
|
||||
*** *New* Xfer class
|
||||
Provides finer grained control over copying or transferring objects with
|
||||
very little overhead. It can be used for any object that has a =transfer()=
|
||||
method and a =operator=()= copy method.
|
||||
Since it is decided upon construction of the =Xfer= object whether the
|
||||
parameter is to be copied or transferred, the contents of the resulting
|
||||
Xfer object can be transferred unconditionally. This greatly simplifies
|
||||
defining constructors or methods in other classes with mixed
|
||||
transfer/copy semantics without requiring 2^N different versions.
|
||||
|
||||
+ =xferCopy()=, =xferMove()= and =xferCopyTo()=, =xferMoveTo()= functions
|
||||
to ease the use of the =Xfer= class.
|
||||
method and a =operator=()= copy method. Since it is decided upon
|
||||
construction of the =Xfer= object whether the parameter is to be copied or
|
||||
transferred, the contents of the resulting Xfer object can be transferred
|
||||
unconditionally. This greatly simplifies defining constructors or methods in
|
||||
other classes with mixed transfer/copy semantics without requiring 2^N
|
||||
different versions.
|
||||
+ =xferCopy()=, =xferMove()= and =xferCopyTo()=, =xferMoveTo()= functions to
|
||||
ease the use of the =Xfer= class.
|
||||
|
||||
*** Convenience changes
|
||||
+ =IOobject= has a *new* constructor for creating an =IOobject= from a
|
||||
single-path specification (eg, see =blockMesh -dict= option).
|
||||
|
||||
+ =argList= has *new* convenience methods for accessing options more directly:
|
||||
=option()=, =optionFound()=, =optionLookup()=, =optionRead()=,
|
||||
+ =argList= has *new* convenience methods for accessing options more
|
||||
directly: =option()=, =optionFound()=, =optionLookup()=, =optionRead()=,
|
||||
=optionReadIfPresent()= .
|
||||
|
||||
+ The *new* =readList(Istream&)= can read a bracket-delimited list or
|
||||
handle a single value as a list of size 1. This can be a useful
|
||||
convenience when processing command-line options.
|
||||
|
||||
+ The *new* =readList(Istream&)= can read a bracket-delimited list or handle
|
||||
a single value as a list of size 1. This can be a useful convenience when
|
||||
processing command-line options.
|
||||
|
||||
*** Misc. improvements
|
||||
+ Improved consistency and interoperability between =face= and =triFace= classes.
|
||||
|
||||
+ =face::triangles()= can split and append to a =DynamicList=
|
||||
|
||||
+ =coordinateSystems= can access global systems (similar to =MeshObject=)
|
||||
|
||||
|
||||
|
||||
** Turbulence modelling
|
||||
+ Major development of turbulence model libraries to give extra flexibility
|
||||
at the solver level. For solvers that can support either RAS/LES
|
||||
computations, the selection is made in the
|
||||
/constant/turbulenceProperties/,
|
||||
computations, the selection is made in the /constant/turbulenceProperties/,
|
||||
by setting the =simulationType= keyword to:
|
||||
- =laminar=
|
||||
- =RASModel=
|
||||
@ -197,17 +164,15 @@
|
||||
|
||||
**** RAS wall functions
|
||||
Wall functions are now run-time selectable per patch for RAS.
|
||||
+ Velocity:
|
||||
- Apply to turbulent viscosities =nut= or =mut=
|
||||
- Apply to =k=, =Q=, =R=
|
||||
- Apply to =epsilon=, =omega=
|
||||
+ Temperature:
|
||||
- Apply to turbulent thermal diffusivity, =alphat= (compressible only)
|
||||
|
||||
****** Velocity:
|
||||
+ Apply to turbulent viscosities =nut= or =mut=
|
||||
+ Apply to =k=, =Q=, =R=
|
||||
+ Apply to =epsilon=, =omega=
|
||||
|
||||
****** Temperature:
|
||||
+ Apply to turbulent thermal diffusivity, =alphat= (compressible only)
|
||||
|
||||
****** To apply wall functions:
|
||||
+ To recapture the functionality of previous OpenFOAM versions (v1.5 and
|
||||
+ To apply wall functions:
|
||||
- To recapture the functionality of previous OpenFOAM versions (v1.5 and
|
||||
earlier) assign:
|
||||
- for velocity:
|
||||
- =nut=: =nutWallFunction=
|
||||
@ -217,7 +182,7 @@
|
||||
- =k=, =Q=, =R=: =kQRWallFunction=
|
||||
- for temperature:
|
||||
- =alphat=: =alphatWallFunction=
|
||||
+ New =alphaSgsJayatillekeWallFunction= thermal wall function for
|
||||
- New =alphaSgsJayatillekeWallFunction= thermal wall function for
|
||||
compressible LES
|
||||
|
||||
**** *New* LES turbulence models
|
||||
@ -259,10 +224,10 @@
|
||||
** Lagrangian
|
||||
|
||||
**** Intermediate
|
||||
- Overhaul of the underlying framework
|
||||
- Reacting now split into reacting and reacting multiphase
|
||||
- New structure for variable composition
|
||||
- Many new sub-models, including:
|
||||
+ Overhaul of the underlying framework
|
||||
+ Reacting now split into reacting and reacting multiphase
|
||||
+ New structure for variable composition
|
||||
+ Many new sub-models, including:
|
||||
- Injection
|
||||
- =PatchInjection= - injection local to patch face cells
|
||||
- =FieldActivatedInjection= - injection based on satisfying external
|
||||
@ -278,30 +243,24 @@
|
||||
- liquid evaporation
|
||||
|
||||
**** Coal combustion
|
||||
- *New* library - extension of reacting-multiphase functionality
|
||||
+ *New* library - extension of reacting-multiphase functionality
|
||||
- Surface reaction/combustion models
|
||||
|
||||
** Discrete methods
|
||||
- *New* library offering DSMC simulation functionality - see =dsmcFoam=
|
||||
+ *New* library offering DSMC simulation functionality - see =dsmcFoam=
|
||||
below
|
||||
- *New* libraries offering molecular dynamics simulation functionality - see
|
||||
+ *New* libraries offering molecular dynamics simulation functionality - see
|
||||
=mdFoam= and =mdEquilibrationFoam=: below.
|
||||
|
||||
|
||||
** *New* surfMesh library
|
||||
Provides a more efficient storage mechanism than possible with =triSurface=
|
||||
without restrictions on the shape of the face (templated parameter).
|
||||
It will however take quite some time before it can fully replace
|
||||
=triSurface= .
|
||||
|
||||
without restrictions on the shape of the face (templated parameter). It will
|
||||
however take quite some time before it can fully replace =triSurface= .
|
||||
+ =MeshedSurface= class - with zero or more contiguous =surfZones= .
|
||||
|
||||
+ =UnsortedMeshedSurface= class - unordered surface zones
|
||||
(as per =triSurface=)
|
||||
|
||||
+ =UnsortedMeshedSurface= class - unordered surface zones (as per
|
||||
=triSurface=)
|
||||
+ =surfMesh= class - for reading/writing in native OpenFOAM format
|
||||
|
||||
|
||||
* Solver restructuring
|
||||
The upgrade to the turbulence models means that the simulation type, i.e.
|
||||
laminar, RAS or LES can be selected at run time. This has allowed a reduction
|
||||
@ -318,48 +277,42 @@
|
||||
- =channelOodles= \rightarrow =channelFoam= (LES)
|
||||
|
||||
* General changes
|
||||
- pd to p ------------------------------------------------------------ [HENRY]
|
||||
- gravity ------------------------------------------------------------ [HENRY]
|
||||
+ pd to p ------------------------------------------------------------ [HENRY]
|
||||
+ gravity ------------------------------------------------------------ [HENRY]
|
||||
|
||||
** Solver control improvments
|
||||
** Solver control improvements
|
||||
Use dictionary entries instead of an =Istream= for the solver controls.
|
||||
+ This Allows dictionary substitutions and regular expressions in
|
||||
/system/fvSolution/
|
||||
|
||||
+ The old solver control syntax is still supported (warning emitted), but
|
||||
the *new* =foamUpgradeFvSolution= utility can be used to convert
|
||||
/system/fvSolution/ to the new format.
|
||||
|
||||
|
||||
* Tutorial restructuring
|
||||
to reflect solver application structure
|
||||
|
||||
* Post-processing ---------------------------------------------------- [MATTIJS]
|
||||
- SAMPLING - improved plane, iso-surface handling
|
||||
- Output to any surface geometry format supported by the =surfMesh= library.
|
||||
|
||||
* sampling on iso-surfaces, interpolated or non-interpolated
|
||||
* sampling on surface defined by distance to surface (distanceSurface)
|
||||
* cutting planes on non-convex cells
|
||||
* Output to any surface geometry format supported by the =surfMesh= library.
|
||||
* *New* Solvers
|
||||
+ =buoyantBoussinesqSimpleFoam=
|
||||
Steady state heat transfer solver using a Boussinesq approximation for
|
||||
buoyancy, with laminar, RAS or LES turbulence modelling
|
||||
|
||||
+ =buoyantBoussinesqPisoFoam=
|
||||
Transient heat transfer solver using a Boussinesq approximation for
|
||||
buoyancy, with laminar, RAS or LES turbulence modelling
|
||||
|
||||
+ =coalChemistryFoam=
|
||||
Transient, reacting lagrangian solver, employing a coal cloud and a thermo
|
||||
cloud, with chemistry, and laminar, RAS or LES turbulence modelling
|
||||
|
||||
+ =porousExplicitSourceReactingParcelFoam=
|
||||
Transient, reacting lagrangian solver, employing a single phase reacting
|
||||
cloud, with porous media, explicit mass sources, and laminar, RAS or LES
|
||||
turbulence modelling
|
||||
|
||||
+ =rhoReactingFoam=
|
||||
Density-based thermodynamics variant of the reactingFoam solver, i.e. now
|
||||
applicable to liquid systems
|
||||
|
||||
+ =dsmcFoam=
|
||||
DSMC (Direct Simulation Monte-Carlo) solver for rarefied gas dynamics
|
||||
simulations, able to simulate mixtures of an arbitrary number of gas species.
|
||||
@ -377,12 +330,15 @@
|
||||
molecules interact with short-range dispersion forces and pairwise
|
||||
electrostatic interactions using methods described in:
|
||||
Fennell and Gezelter, J. Chem. Phys. 124, 234104 (2006)
|
||||
|
||||
+ =mdEquilibrationFoam=
|
||||
Similar to mdFoam, but employs velocity scaling to adjust the simulation
|
||||
temperature to a target value. Useful to equilibrate a case before
|
||||
simulation.
|
||||
|
||||
+ =chtMultiRegionFoam=
|
||||
New boundary condition allows independent decomposition of coupled regions
|
||||
without any constraint on the decomposition.
|
||||
|
||||
* Function objects
|
||||
|
||||
** Improvements for function objects and time-looping
|
||||
@ -390,30 +346,28 @@
|
||||
which allows a chaining of operations. It is thus internally more
|
||||
efficient when /system/controlDict/ uses =functions {..}= instead of
|
||||
=functions (..)=, but both forms are supported.
|
||||
|
||||
+ The =functionObject= now has an additional =end()= method that is called
|
||||
when =Time::loop()= or =Time::run()= determine that the time-loop exits.
|
||||
Accordingly, one of these two idioms should be used in solver code:
|
||||
1. =while (runTime.loop() { ... }=
|
||||
2. =while (runTime.run()) { runTime++; ... }=
|
||||
|
||||
+ *New* - =functionObjectList= now tracks the SHA1 message digest of the
|
||||
sub-directories. This avoids reloading a =functionObject= when
|
||||
something unrelated in /system/controlDict/ changed.
|
||||
|
||||
** *New* function objects:
|
||||
- =systemCall= - executes a list of system instructions
|
||||
- =fieldMinMax= - computes the min/max of a <field>
|
||||
- =staticPressure= - converts kinematic pressure to static pressure
|
||||
- =dsmcFields= - calculates intensive fields (velocity and temperature) from
|
||||
+ =systemCall= - executes a list of system instructions
|
||||
+ =fieldMinMax= - computes the min/max of a <field>
|
||||
+ =staticPressure= - converts kinematic pressure to static pressure
|
||||
+ =dsmcFields= - calculates intensive fields (velocity and temperature) from
|
||||
averaged extensive fields (i.e. momentum and energy)
|
||||
|
||||
** Usage
|
||||
- Improved output control: =timeStep= or =outputTime=
|
||||
+ Improved output control: =timeStep= or =outputTime=
|
||||
|
||||
* Boundary conditions
|
||||
- Improved set of direct mapped boundary conditions
|
||||
- Buoyancy boundary condition ---------------------------------------- [HENRY]
|
||||
+ Improved set of direct mapped boundary conditions
|
||||
+ Buoyancy boundary condition ---------------------------------------- [HENRY]
|
||||
|
||||
* Utilities
|
||||
|
||||
@ -429,30 +383,35 @@
|
||||
+ =foamToEnsightParts= has *new* =-noMesh= and =-index= options that can
|
||||
be useful when post-processing results incrementally.
|
||||
|
||||
+ =snappyHexMesh= has lower memory footprint. New distributed triangulated
|
||||
surface type for meshing surfaces with extremely large triangle count.
|
||||
|
||||
** *New* utilities
|
||||
- =particleTracks= - generate particle tracks for lagrangian calculations
|
||||
- =dsmcInitialise= - preprocessing utility to create initial configurations of
|
||||
+ =particleTracks= - generate particle tracks for lagrangian calculations
|
||||
+ =dsmcInitialise= - preprocessing utility to create initial configurations of
|
||||
DSMC particles in a geometry
|
||||
|
||||
+ =surfaceRedistributePar= - preprocessing utility to create distributed
|
||||
triangulated surface.
|
||||
*** *New* foamCalc functions
|
||||
- =interpolate= - performs fvc::interpolate(<field>)
|
||||
- =randomise= - randomises a <field> by a given perturbation
|
||||
- =addSubtract= - simple add/subtract field functionality
|
||||
+ =interpolate= - performs fvc::interpolate(<field>)
|
||||
+ =randomise= - randomises a <field> by a given perturbation
|
||||
+ =addSubtract= - simple add/subtract field functionality
|
||||
|
||||
** Usage
|
||||
+ =timeSelector= can now combine =-time ranges= and =-latestTime= options.
|
||||
+ =timeSelector= can now combine =-time ranges= and =-latestTime= options
|
||||
(e.g. -time '0.01:0.09', -time '0.01:').
|
||||
More reliable behaviour for cases missing /constant// or /0//
|
||||
directories. When the =-noZero= option is enabled, =-latestTime= will not
|
||||
select the =0/= directory unless the =-zeroTime= option is given.
|
||||
This helps avoid ill effects caused by accidentally using the
|
||||
/0// directory in certain utilities (eg, =reconstructPar=).
|
||||
+ =-region= option added to more utilities.
|
||||
|
||||
** Improvements to Paraview reader module
|
||||
+ =PV3FoamReader= added mesh region handling. The region name is parsed
|
||||
from the filename. Eg, /case{region}.OpenFOAM/
|
||||
|
||||
+ =paraFoam= with a *new* =-region= option for specifying an alternative
|
||||
region. A *new* =-touch= option to generate the /.OpenFOAM/ file only.
|
||||
Only creates (and removes) /.OpenFOAM/ files if they didn't already
|
||||
exist, which is useful in connection with the =-touch= option.
|
||||
|
||||
|
||||
@ -47,6 +47,7 @@ Description
|
||||
#include "cyclicPolyPatch.H"
|
||||
#include "Swap.H"
|
||||
#include "IFstream.H"
|
||||
#include "readHexLabel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -92,6 +93,9 @@ DynamicList<label> cellGroupStartIndex;
|
||||
DynamicList<label> cellGroupEndIndex;
|
||||
DynamicList<label> cellGroupType;
|
||||
|
||||
// Special parsing of (incorrect) Cubit files
|
||||
bool cubitFile = false;
|
||||
|
||||
|
||||
void uniquify(word& name, HashSet<word>& patchNames)
|
||||
{
|
||||
@ -622,11 +626,20 @@ endOfSection {space}")"{space}
|
||||
BEGIN(readZoneGroupData);
|
||||
}
|
||||
|
||||
<readZoneGroupData>{space}{label}{space}{word}{space}{word}{space}{label}? {
|
||||
<readZoneGroupData>{space}{hexLabel}{space}{word}{space}{word}{space}{label}? {
|
||||
IStringStream zoneDataStream(YYText());
|
||||
|
||||
// cell zone-ID not in hexadecimal!!! Inconsistency
|
||||
label zoneID(readLabel(zoneDataStream));
|
||||
label zoneID = -1;
|
||||
|
||||
if (cubitFile)
|
||||
{
|
||||
zoneID = readHexLabel(zoneDataStream);
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneID = readLabel(zoneDataStream);
|
||||
}
|
||||
|
||||
groupType.insert(zoneID, word(zoneDataStream));
|
||||
groupName.insert(zoneID, word(zoneDataStream));
|
||||
@ -752,6 +765,7 @@ int main(int argc, char *argv[])
|
||||
argList::validOptions.insert("scale", "scale factor");
|
||||
argList::validOptions.insert("ignoreCellGroups", "cell group names");
|
||||
argList::validOptions.insert("ignoreFaceGroups", "face group names");
|
||||
argList::validOptions.insert("cubit", "");
|
||||
|
||||
argList args(argc, argv);
|
||||
|
||||
@ -774,6 +788,17 @@ int main(int argc, char *argv[])
|
||||
args.optionLookup("ignoreFaceGroups")() >> ignoreFaceGroups;
|
||||
}
|
||||
|
||||
cubitFile = args.options().found("cubit");
|
||||
|
||||
if (cubitFile)
|
||||
{
|
||||
Info<< nl
|
||||
<< "Assuming Cubit generated file"
|
||||
<< " (incorrect face orientation; hexadecimal zoneIDs)."
|
||||
<< nl << endl;
|
||||
}
|
||||
|
||||
|
||||
# include "createTime.H"
|
||||
|
||||
fileName fluentFile(args.additionalArgs()[0]);
|
||||
@ -827,7 +852,10 @@ int main(int argc, char *argv[])
|
||||
)
|
||||
{
|
||||
fm[facei] = true;
|
||||
faces[facei] = faces[facei].reverseFace();
|
||||
if (!cubitFile)
|
||||
{
|
||||
faces[facei] = faces[facei].reverseFace();
|
||||
}
|
||||
Swap(owner[facei], neighbour[facei]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,12 +31,11 @@ Description
|
||||
#include "Time.H"
|
||||
#include "polyMesh.H"
|
||||
#include "globalMeshData.H"
|
||||
#include "topoSetSource.H"
|
||||
#include "topoSet.H"
|
||||
#include "IStringStream.H"
|
||||
#include "topoSet.H"
|
||||
#include "cellSet.H"
|
||||
#include "faceSet.H"
|
||||
#include "pointSet.H"
|
||||
#include "topoSetSource.H"
|
||||
#include "OFstream.H"
|
||||
#include "IFstream.H"
|
||||
#include "demandDrivenData.H"
|
||||
|
||||
@ -58,8 +58,6 @@ withQTSUPPORT=true
|
||||
|
||||
# Set the path to the Qt-4.3.? qmake if the system Qt is other than this version
|
||||
QMAKE_PATH=""
|
||||
#QMAKE_PATH=/usr/local/Trolltech/Qt-4.3.5/bin/qmake
|
||||
#QMAKE_PATH=$WM_THIRD_PARTY_DIR/qt-x11-opensource-src-4.3.5/platforms/linux64GccDPOpt/bin/qmake
|
||||
|
||||
#
|
||||
# No further editing below this line
|
||||
@ -87,14 +85,14 @@ For finer control, the build stages can be also selected individually
|
||||
-make
|
||||
-makedoc
|
||||
-install
|
||||
[-envpath] alter absolute paths in CMake files to use env variables
|
||||
-envpath alter absolute paths in CMake files to use env variables
|
||||
|
||||
Build and install paraview-$ParaView_VERSION
|
||||
- run from folder above the ParaView source folder or place the ParaView
|
||||
source under \$WM_THIRD_PARTY_DIR ($WM_THIRD_PARTY_DIR)
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
exit 1
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -114,7 +112,7 @@ runCONFIG=true
|
||||
runMAKE=true
|
||||
runMAKEDOC=true
|
||||
runINSTALL=true
|
||||
runENVPATH=false
|
||||
runENVPATH=true
|
||||
|
||||
|
||||
# parse options
|
||||
@ -152,7 +150,7 @@ do
|
||||
runINSTALL=true
|
||||
shift
|
||||
;;
|
||||
-envpath) # optional: change cmake files to use env variables
|
||||
-envpath) # stage 5: change cmake files to use env variables
|
||||
runCONFIG=false
|
||||
runMAKE=false
|
||||
runMAKEDOC=false
|
||||
@ -183,6 +181,11 @@ do
|
||||
withQTSUPPORT=true
|
||||
shift
|
||||
;;
|
||||
-qmake)
|
||||
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
|
||||
export QMAKE_PATH=$2
|
||||
shift 2
|
||||
;;
|
||||
-verbose)
|
||||
withVERBOSE=true
|
||||
shift
|
||||
|
||||
18
bin/foamJob
18
bin/foamJob
@ -204,24 +204,6 @@ else
|
||||
#
|
||||
echo "Parallel processing using $WM_MPLIB with $NPROCS processors"
|
||||
case "$WM_MPLIB" in
|
||||
LAM)
|
||||
lamPid=`getPID lamd`
|
||||
if [ ! "$lamPid" ] ; then
|
||||
echo "No LAM daemon running."
|
||||
if [ -r system/machines ] ; then
|
||||
echo "system/machines file exists"
|
||||
echo "Try starting the LAM multicomputer with \"lamboot -v system/machines\""
|
||||
exit 1
|
||||
else
|
||||
echo "Cannot find a 'machines' file for LAM in system/"
|
||||
echo "required to start a LAM multicomputer"
|
||||
consultGuide
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "LAM daemon running (PID $lamPid). Proceeding with MPI run."
|
||||
fi
|
||||
;;
|
||||
OPENMPI)
|
||||
# add hostfile info
|
||||
for hostfile in \
|
||||
|
||||
@ -86,9 +86,10 @@ find -H $packDir \
|
||||
-a ! -name "log[0-9]*" \
|
||||
-a ! -name "so_locations" \
|
||||
| sed \
|
||||
-e "\@$packDir/.git/@d" \
|
||||
-e "\@$packDir/lib/@d" \
|
||||
-e '\@applications/bin/@d' \
|
||||
-e '\@/\.git/@d' \
|
||||
-e '\@applications/bin/@d' \
|
||||
-e '\@wmake/utilbin/@d' \
|
||||
-e '\@/t/@d' \
|
||||
-e '\@Make[.A-Za-z]*/[^/]*/@d' \
|
||||
-e '\@doc/[Dd]oxygen/html@d' \
|
||||
@ -100,7 +101,7 @@ find -H $packDir \
|
||||
|
||||
tar czpf $packFile --files-from $tmpFile
|
||||
|
||||
if [ $? = 0 ]
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "Finished packing and compressing $packDir into file $packFile"
|
||||
else
|
||||
|
||||
@ -33,14 +33,17 @@
|
||||
|
||||
if [ $# -eq 0 ]
|
||||
then
|
||||
echo "Error: architecture type expected, exiting"
|
||||
echo
|
||||
echo "Usage : ${0##*/} <arch> [outputDir]"
|
||||
echo
|
||||
exit 1
|
||||
echo "Error: architecture type expected, exiting"
|
||||
echo
|
||||
echo "Usage : ${0##*/} <arch> [outputDir]"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
arch=$1
|
||||
|
||||
# base arch (w/o precision, optimization, etc)
|
||||
baseArch=$(echo "$arch" | sed -e 's@[DS]P.*$@@')
|
||||
|
||||
timeStamp=$(date +%Y-%m-%d)
|
||||
packDir=$WM_PROJECT-$WM_PROJECT_VERSION
|
||||
packFile=${packDir}.${arch}_${timeStamp}.gtgz
|
||||
@ -48,49 +51,50 @@ packFile=${packDir}.${arch}_${timeStamp}.gtgz
|
||||
# add optional output directory
|
||||
if [ -d "$2" ]
|
||||
then
|
||||
packFile="$2/$packFile"
|
||||
packFile="$2/$packFile"
|
||||
fi
|
||||
|
||||
if [ -f $packFile ]
|
||||
then
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# check for essential directories
|
||||
for dir in $packDir $packDir/lib/$arch $packDir/applications/bin/$arch
|
||||
do
|
||||
if [ ! -d $dir ]
|
||||
then
|
||||
echo "Error: directory $dir does not exist"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -d $dir ]
|
||||
then
|
||||
echo "Error: directory $dir does not exist"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# get list of directories
|
||||
dirList=$(
|
||||
for dir in \
|
||||
$packDir/lib/$arch \
|
||||
$packDir/applications/bin/$arch \
|
||||
$packDir/wmake/rules \
|
||||
;
|
||||
do
|
||||
[ -d $dir ] && echo $dir
|
||||
done
|
||||
for dir in \
|
||||
$packDir/lib/$arch \
|
||||
$packDir/applications/bin/$arch \
|
||||
$packDir/wmake/rules \
|
||||
$packDir/wmake/utilbin/$baseArch \
|
||||
;
|
||||
do
|
||||
[ -d $dir ] && echo $dir
|
||||
done
|
||||
)
|
||||
|
||||
echo
|
||||
echo "Packing $arch port of $packDir into $packFile"
|
||||
echo "Packing $arch ($baseArch) port of $packDir into $packFile"
|
||||
echo
|
||||
|
||||
tar czpf $packFile $dirList
|
||||
|
||||
if [ $? = 0 ]
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "Finished packing and compressing file $packFile"
|
||||
echo "Finished packing and compressing file $packFile"
|
||||
else
|
||||
echo "Error: failure packing $packFile"
|
||||
rm -f $packFile 2>/dev/null
|
||||
echo "Error: failure packing $packFile"
|
||||
rm -f $packFile 2>/dev/null
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -34,14 +34,14 @@ packDir=$WM_PROJECT-$WM_PROJECT_VERSION
|
||||
|
||||
if [ ! -d $packDir ]
|
||||
then
|
||||
echo "Error: directory $packDir does not exist"
|
||||
exit 1
|
||||
echo "Error: directory $packDir does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# obtain arch types from lib/
|
||||
for bin in $packDir/lib/*
|
||||
do
|
||||
foamPackBin ${bin##*/} $@
|
||||
foamPackBin ${bin##*/} $@
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -41,7 +41,7 @@ Usage: ${0##*/} [-prefix DIR] [-o outputDir]
|
||||
Packs and compresses the OpenFOAM doxygen html for release
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
exit 1
|
||||
}
|
||||
|
||||
unset prefix outputDir
|
||||
@ -87,16 +87,16 @@ fi
|
||||
#
|
||||
if [ -d "$outputDir" ]
|
||||
then
|
||||
packFile="$outputDir/$packDir$packTag"
|
||||
packFile="$outputDir/$packDir$packTag"
|
||||
else
|
||||
packFile="$packDir$packTag"
|
||||
packFile="$packDir$packTag"
|
||||
fi
|
||||
|
||||
|
||||
if [ -f $packFile ]
|
||||
then
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Pack and compress the packFile using GNU tar
|
||||
@ -107,16 +107,16 @@ echo
|
||||
|
||||
if [ -n "$prefix" ]
|
||||
then
|
||||
tar czpf $packFile --transform="s@^@$prefix/@" doc/Doxygen/html
|
||||
tar czpf $packFile --transform="s@^@$prefix/@" doc/Doxygen/html
|
||||
else
|
||||
tar czpf $packFile $packDir/doc/Doxygen/html
|
||||
tar czpf $packFile $packDir/doc/Doxygen/html
|
||||
fi
|
||||
|
||||
if [ $? = 0 ]
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "Finished packing doxygen html into file $packFile"
|
||||
echo "Finished packing doxygen html into file $packFile"
|
||||
else
|
||||
echo "Error: failure packing doxygen html file $packFile"
|
||||
echo "Error: failure packing doxygen html file $packFile"
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -37,20 +37,20 @@ packFile=${packDir}.General_${timeStamp}.gtgz
|
||||
|
||||
if [ ! -d $packDir ]
|
||||
then
|
||||
echo "Error: directory $packDir does not exist"
|
||||
exit 1
|
||||
echo "Error: directory $packDir does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# add optional output directory
|
||||
if [ -d "$1" ]
|
||||
then
|
||||
packFile="$1/$packFile"
|
||||
packFile="$1/$packFile"
|
||||
fi
|
||||
|
||||
if [ -f $packFile ]
|
||||
then
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create time stamp file
|
||||
@ -62,7 +62,7 @@ echo $timeStamp 2>/dev/null > $packDir/.timeStamp
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
echo
|
||||
echo "Packing $packDir into $packFile"
|
||||
echo "Packing $packDir source files into $packFile"
|
||||
echo
|
||||
|
||||
foamPackSource $packDir $packFile
|
||||
|
||||
@ -35,12 +35,12 @@ tmpFile=${TMPDIR:-/tmp}/foamPackFiles.$$
|
||||
|
||||
if [ $# -ne 2 ]
|
||||
then
|
||||
echo "Usage : ${0##*/} directory tarFile"
|
||||
echo ""
|
||||
echo "Packs all .C and .H files and Make/options and Make/files into"
|
||||
echo "<tarFile>"
|
||||
echo ""
|
||||
exit 1
|
||||
echo "Usage : ${0##*/} directory tarFile"
|
||||
echo ""
|
||||
echo "Packs all .C and .H files and Make/options and Make/files into"
|
||||
echo "<tarFile>"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# canonical form (no double and no trailing dashes)
|
||||
@ -49,14 +49,14 @@ packFile=$2
|
||||
|
||||
if [ ! -d $packDir ]
|
||||
then
|
||||
echo "Error: directory $packDir does not exist"
|
||||
exit 1
|
||||
echo "Error: directory $packDir does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f $packFile ]
|
||||
then
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Clean up on termination and on Ctrl-C
|
||||
@ -78,24 +78,29 @@ find -H $packDir \
|
||||
-a ! -name "log[0-9]*" \
|
||||
-a ! -name "libccmio*" \
|
||||
| sed \
|
||||
-e "\@$packDir/.git/@d" \
|
||||
-e "\@/.tags/@d" \
|
||||
-e "\@$packDir/lib/@d" \
|
||||
-e "\@libccmio.*/@d" \
|
||||
-e '\@/\.git/@d' \
|
||||
-e '\@/\.tags/@d' \
|
||||
-e '\@applications/bin/@d' \
|
||||
-e '\@wmake/utilbin/@d' \
|
||||
-e '\@/t/@d' \
|
||||
-e '\@/Make[.A-Za-z]*/[^/]*/@d'\
|
||||
-e '\@/platforms/@d' \
|
||||
-e '\@libccmio.*/@d' \
|
||||
> $tmpFile
|
||||
|
||||
|
||||
# provide some feedback
|
||||
wc $tmpFile | awk '{print "Packing",$1,"files - this could take some time ..."}'
|
||||
|
||||
tar czpf $packFile --files-from $tmpFile
|
||||
|
||||
if [ $? = 0 ]
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "Finished packing and compressing $packDir into file $packFile"
|
||||
echo "Finished packing and compressing $packDir into file $packFile"
|
||||
else
|
||||
echo "Error: failure packing $packDir into file $packFile"
|
||||
rm -f $packFile 2>/dev/null
|
||||
echo "Error: failure packing $packDir into file $packFile"
|
||||
rm -f $packFile 2>/dev/null
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -31,36 +31,43 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
if [ $# = 0 ]
|
||||
if [ $# -eq 0 ]
|
||||
then
|
||||
echo "Error: archOptions type expected, exiting"
|
||||
echo
|
||||
echo "Usage : ${0##*/} <archOptions> [outputDir]"
|
||||
echo
|
||||
exit 1
|
||||
echo "Error: archOptions type expected, exiting"
|
||||
echo
|
||||
echo "Usage : ${0##*/} <archOptions> [outputDir]"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
archOptions=$1
|
||||
arch=${archOptions%%G*} # TODO: works for Gcc only
|
||||
arch3264=$(echo "$arch" | sed 's@64@-64@')
|
||||
arch3264=$(echo "$arch" | sed -e 's@64@-64@')
|
||||
|
||||
echo "archOptions=$archOptions"
|
||||
echo "arch=$arch"
|
||||
echo "arch3264=$arch3264"
|
||||
|
||||
timeStamp=$(date +%Y-%m-%d)
|
||||
packDir=ThirdParty
|
||||
packDir=${WM_THIRD_PARTY_DIR:-ThirdParty}
|
||||
packDir=${packDir##*/}
|
||||
packFile=${packDir}.${archOptions}_${timeStamp}.gtgz
|
||||
|
||||
if [ ! -d $packDir ]
|
||||
then
|
||||
echo "Error: directory $packDir does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# add optional output directory
|
||||
if [ -d "$2" ]
|
||||
then
|
||||
packFile="$2/$packFile"
|
||||
packFile="$2/$packFile"
|
||||
fi
|
||||
|
||||
if [ -f $packFile ]
|
||||
then
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# get list of directories
|
||||
@ -71,12 +78,12 @@ echo
|
||||
|
||||
tar czpf $packFile $dirList
|
||||
|
||||
if [ $? = 0 ]
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "Finished packing and compressing file $packFile"
|
||||
echo "Finished packing and compressing file $packFile"
|
||||
else
|
||||
echo "Error: failure packing $packFile"
|
||||
rm -f $packFile 2>/dev/null
|
||||
echo "Error: failure packing $packFile"
|
||||
rm -f $packFile 2>/dev/null
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -32,25 +32,26 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
timeStamp=$(date +%Y-%m-%d)
|
||||
packDir=ThirdParty
|
||||
packDir=${WM_THIRD_PARTY_DIR:-ThirdParty}
|
||||
packDir=${packDir##*/}
|
||||
packFile=${packDir}.General_${timeStamp}.gtgz
|
||||
|
||||
if [ ! -d $packDir ]
|
||||
then
|
||||
echo "Error: directory $packDir does not exist"
|
||||
exit 1
|
||||
echo "Error: directory $packDir does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# add optional output directory
|
||||
if [ -d "$1" ]
|
||||
then
|
||||
packFile="$1/$packFile"
|
||||
packFile="$1/$packFile"
|
||||
fi
|
||||
|
||||
if [ -f $packFile ]
|
||||
then
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
echo "Error: $packFile already exists"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create time stamp file
|
||||
@ -62,7 +63,7 @@ echo $timeStamp 2>/dev/null > $packDir/.timeStamp
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
echo
|
||||
echo "Packing $packDir into $packFile"
|
||||
echo "Packing $packDir source files into $packFile"
|
||||
echo
|
||||
|
||||
foamPackSource $packDir $packFile
|
||||
|
||||
@ -162,10 +162,6 @@ do
|
||||
|
||||
if [ .$WM_MPLIB = .OPENMPI ]; then
|
||||
node="-np 1 "
|
||||
elif [ .$WM_MPLIB = .LAM ]; then
|
||||
if [ "$spawn" -eq 2 ]; then
|
||||
node="c${proc} "
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "#!/bin/sh" > $procCmdFile
|
||||
@ -210,8 +206,6 @@ done
|
||||
cmd=""
|
||||
if [ .$WM_MPLIB = .OPENMPI ]; then
|
||||
cmd="mpirun -app $PWD/mpirun.schema </dev/null"
|
||||
elif [ .$WM_MPLIB = .LAM ]; then
|
||||
cmd="mpirun $PWD/mpirun.schema </dev/null"
|
||||
fi
|
||||
|
||||
echo "Constructed $PWD/mpirun.schema file."
|
||||
|
||||
@ -171,10 +171,13 @@ addQtSupport()
|
||||
|
||||
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
|
||||
|
||||
qmakeExe=qmake
|
||||
|
||||
if [ -n "$QMAKE_PATH" ]
|
||||
then
|
||||
if [ -x "$QMAKE_PATH" ]
|
||||
then
|
||||
qmakeExe=$QMAKE_PATH
|
||||
addCMakeVariable QT_QMAKE_EXECUTABLE:FILEPATH=$QMAKE_PATH
|
||||
else
|
||||
echo
|
||||
@ -184,6 +187,28 @@ addQtSupport()
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check qmake can be found
|
||||
if [ `which $qmakeExe` ]
|
||||
then
|
||||
# Check the Qt version selected
|
||||
QtVersion=`$qmakeExe -v | grep Using | sed "s/.* version \(.\..\).*/\1/"`
|
||||
QtMajor=`echo $QtVersion | sed "s/\(.\)\../\1/"`
|
||||
QtMinor=`echo $QtVersion | sed "s/.\.\(.\)/\1/"`
|
||||
|
||||
if [ $QtMajor -lt 4 -o $QtMinor -lt 3 ]
|
||||
then
|
||||
echo "*** Error: Qt version provided < 4.3"
|
||||
echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.3 "
|
||||
echo "*** e.g."
|
||||
echo "*** -qmake /usr/local/Trolltech/Qt-4.3.5/bin/qmake"
|
||||
echo "*** -qmake $WM_THIRD_PARTY_DIR/qt-x11-opensource-src-4.3.5/platforms/$WM_OPTIONS/bin/qmake"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "*** Error: cannot find qmake either at \$QMAKE_PATH or in current \$PATH"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -33,8 +33,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
export WM_PROJECT=OpenFOAM
|
||||
# export WM_PROJECT_VERSION=1.5.x
|
||||
: ${WM_PROJECT_VERSION:=dev}; export WM_PROJECT_VERSION
|
||||
export WM_PROJECT_VERSION=1.6
|
||||
|
||||
################################################################################
|
||||
# USER EDITABLE PART
|
||||
@ -102,10 +101,7 @@ export WM_COMPILER_LIB_ARCH=
|
||||
# WM_COMPILE_OPTION = Opt | Debug | Prof
|
||||
: ${WM_COMPILE_OPTION:=Opt}; export WM_COMPILE_OPTION
|
||||
|
||||
# WM_JAVAC_OPTION = Opt | Debug
|
||||
: ${WM_JAVAC_OPTION:=Opt}; export WM_JAVAC_OPTION
|
||||
|
||||
# WM_MPLIB = | OPENMPI | LAM | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI
|
||||
# WM_MPLIB = | OPENMPI | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI
|
||||
: ${WM_MPLIB:=OPENMPI}; export WM_MPLIB
|
||||
|
||||
|
||||
|
||||
@ -32,8 +32,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
setenv WM_PROJECT OpenFOAM
|
||||
# setenv WM_PROJECT_VERSION 1.5.x
|
||||
if ( ! $?WM_PROJECT_VERSION ) setenv WM_PROJECT_VERSION dev
|
||||
setenv WM_PROJECT_VERSION 1.6
|
||||
|
||||
################################################################################
|
||||
# USER EDITABLE PART
|
||||
@ -96,10 +95,7 @@ if ( ! $?WM_PRECISION_OPTION ) setenv WM_PRECISION_OPTION DP
|
||||
# WM_COMPILE_OPTION = Opt | Debug | Prof
|
||||
if ( ! $?WM_COMPILE_OPTION ) setenv WM_COMPILE_OPTION Opt
|
||||
|
||||
# WM_JAVAC_OPTION = Opt | Debug
|
||||
if ( ! $?WM_JAVAC_OPTION ) setenv WM_JAVAC_OPTION Opt
|
||||
|
||||
# WM_MPLIB = | OPENMPI | LAM | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI
|
||||
# WM_MPLIB = | OPENMPI | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI
|
||||
if ( ! $?WM_MPLIB ) setenv WM_MPLIB OPENMPI
|
||||
|
||||
|
||||
|
||||
@ -118,7 +118,7 @@ unset MPI_ARCH_PATH
|
||||
|
||||
switch ("$WM_MPLIB")
|
||||
case OPENMPI:
|
||||
set mpi_version=openmpi-1.3.2
|
||||
set mpi_version=openmpi-1.3.3
|
||||
setenv MPI_HOME $WM_THIRD_PARTY_DIR/$mpi_version
|
||||
setenv MPI_ARCH_PATH $MPI_HOME/platforms/$WM_OPTIONS
|
||||
|
||||
@ -132,20 +132,6 @@ case OPENMPI:
|
||||
unset mpi_version
|
||||
breaksw
|
||||
|
||||
case LAM:
|
||||
set mpi_version=lam-7.1.4
|
||||
setenv MPI_HOME $WM_THIRD_PARTY_DIR/$mpi_version
|
||||
setenv MPI_ARCH_PATH $MPI_HOME/platforms/$WM_OPTIONS
|
||||
setenv LAMHOME $WM_THIRD_PARTY_DIR/$mpi_version
|
||||
# note: LAMHOME is deprecated, should probably point to MPI_ARCH_PATH too
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddLib $MPI_ARCH_PATH/lib
|
||||
|
||||
setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/$mpi_version
|
||||
unset mpi_version
|
||||
breaksw
|
||||
|
||||
case MPICH:
|
||||
set mpi_version=mpich-1.2.4
|
||||
setenv MPI_HOME $WM_THIRD_PARTY_DIR/$mpi_version
|
||||
|
||||
@ -34,21 +34,21 @@
|
||||
# prefix to PATH
|
||||
_foamAddPath()
|
||||
{
|
||||
while [ $# -ge 1 ]
|
||||
do
|
||||
export PATH=$1:$PATH
|
||||
shift
|
||||
done
|
||||
while [ $# -ge 1 ]
|
||||
do
|
||||
export PATH=$1:$PATH
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
# prefix to LD_LIBRARY_PATH
|
||||
_foamAddLib()
|
||||
{
|
||||
while [ $# -ge 1 ]
|
||||
do
|
||||
export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH
|
||||
shift
|
||||
done
|
||||
while [ $# -ge 1 ]
|
||||
do
|
||||
export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
@ -142,7 +142,7 @@ unset MPI_ARCH_PATH
|
||||
|
||||
case "$WM_MPLIB" in
|
||||
OPENMPI)
|
||||
mpi_version=openmpi-1.3.2
|
||||
mpi_version=openmpi-1.3.3
|
||||
export MPI_HOME=$WM_THIRD_PARTY_DIR/$mpi_version
|
||||
export MPI_ARCH_PATH=$MPI_HOME/platforms/$WM_OPTIONS
|
||||
|
||||
@ -156,20 +156,6 @@ OPENMPI)
|
||||
unset mpi_version
|
||||
;;
|
||||
|
||||
LAM)
|
||||
mpi_version=lam-7.1.4
|
||||
export MPI_HOME=$WM_THIRD_PARTY_DIR/$mpi_version
|
||||
export MPI_ARCH_PATH=$MPI_HOME/platforms/$WM_OPTIONS
|
||||
export LAMHOME=$WM_THIRD_PARTY_DIR/$mpi_version
|
||||
# note: LAMHOME is deprecated, should probably point to MPI_ARCH_PATH too
|
||||
|
||||
_foamAddPath $MPI_ARCH_PATH/bin
|
||||
_foamAddLib $MPI_ARCH_PATH/lib
|
||||
|
||||
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/$mpi_version
|
||||
unset mpi_version
|
||||
;;
|
||||
|
||||
MPICH)
|
||||
mpi_version=mpich-1.2.4
|
||||
export MPI_HOME=$WM_THIRD_PARTY_DIR/$mpi_version
|
||||
|
||||
@ -5,7 +5,7 @@ set -x
|
||||
wmake libso dummy
|
||||
|
||||
case "$WM_MPLIB" in
|
||||
LAM | *MPI* )
|
||||
*MPI*)
|
||||
set +x
|
||||
echo
|
||||
echo "Note: ignore spurious warnings about missing mpicxx.h headers"
|
||||
|
||||
@ -1,114 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 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
|
||||
|
||||
Description
|
||||
Read token and binary block from IPstream using pvm.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "error.H"
|
||||
|
||||
#include "IPstream.H"
|
||||
|
||||
#include <pvm3.h>
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructor * * * * * * * * * * * * * * * //
|
||||
|
||||
IPstream::IPstream
|
||||
(
|
||||
const int fromProcNo,
|
||||
const label bufSize,
|
||||
streamFormat format,
|
||||
versionNumber version
|
||||
)
|
||||
:
|
||||
Pstream(bufSize),
|
||||
Istream(format, version),
|
||||
fromProcNo_(fromProcNo),
|
||||
messageSize_(0)
|
||||
{
|
||||
setOpened();
|
||||
setGood();
|
||||
|
||||
int bufid, tag, tid;
|
||||
|
||||
// If the buffer size is not specified then probe the incomming message
|
||||
|
||||
if (!bufSize)
|
||||
{
|
||||
// Probe read buffer until message arrives.
|
||||
while (!(bufid = pvm_probe(procID(fromProcNo_), msgType())));
|
||||
|
||||
// When the message arrives find its size
|
||||
pvm_bufinfo(bufid, &messageSize_, &tag, &tid);
|
||||
|
||||
// Resize buffer to message size
|
||||
buf_.setSize(messageSize_);
|
||||
}
|
||||
|
||||
|
||||
// Read message into buffer
|
||||
|
||||
if
|
||||
(
|
||||
pvm_precv
|
||||
(
|
||||
procID(fromProcNo_),
|
||||
msgType(),
|
||||
buf_.begin(),
|
||||
buf_.size(),
|
||||
PVM_BYTE,
|
||||
&tid, &tag, &messageSize_
|
||||
) != PvmOk
|
||||
)
|
||||
{
|
||||
FatalErrorIn("IPstream::IPstream(const int fromProcNo)")
|
||||
<< "pvm_precv cannot receive incomming message"
|
||||
<< ::abort;
|
||||
}
|
||||
|
||||
|
||||
// Check size of message read
|
||||
|
||||
if (messageSize_ > buf_.size())
|
||||
{
|
||||
FatalErrorIn("IPstream::IPstream(const int fromProcNo)")
|
||||
<< "buffer (" << buf_.size()
|
||||
<< ") not large enough for incomming message ("
|
||||
<< messageSize_ << ')'
|
||||
<< ::abort;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,5 +0,0 @@
|
||||
OPwrite.C
|
||||
IPread.C
|
||||
Pstream.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/pvm-$(LAM_VERSION)/libPstream
|
||||
@ -1,4 +0,0 @@
|
||||
include $(RULES)/mplib$(WM_MPLIB)
|
||||
|
||||
EXE_INC = $(PFLAGS) $(PINC)
|
||||
LIB_LIBS = $(PLIBS)
|
||||
@ -1,68 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 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
|
||||
|
||||
Description
|
||||
Write primitive and binary block from OPstream using pvm.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "error.H"
|
||||
|
||||
#include "OPstream.H"
|
||||
|
||||
#include <pvm3.h>
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
OPstream::~OPstream()
|
||||
{
|
||||
if
|
||||
(
|
||||
pvm_psend
|
||||
(
|
||||
procID(toProcNo_),
|
||||
msgType(),
|
||||
buf_.begin(),
|
||||
bufPosition_,
|
||||
PVM_BYTE
|
||||
) != PvmOk
|
||||
)
|
||||
{
|
||||
FatalErrorIn("OPstream::~OPstream()")
|
||||
<< "pvm_psend cannot send outgoing message"
|
||||
<< ::abort;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,393 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 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
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "Pstream.H"
|
||||
#include "PstreamReduceOps.H"
|
||||
|
||||
#include <cstring>
|
||||
#include <cstdlib>
|
||||
#include <csignal>
|
||||
|
||||
#include <pvm3.h>
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
void Pstream::addValidParOptions(HashTable<string>& validParOptions)
|
||||
{
|
||||
validParOptions.insert("np", "");
|
||||
validParOptions.insert("p4pg", "PI file");
|
||||
validParOptions.insert("p4wd", "directory");
|
||||
validParOptions.insert("p4amslave", "");
|
||||
validParOptions.insert("p4yourname", "hostname");
|
||||
}
|
||||
|
||||
|
||||
bool Pstream::init(int& argc, char**& argv)
|
||||
{
|
||||
// Set the comunications options
|
||||
pvm_setopt(PvmRoute, PvmRouteDirect);
|
||||
|
||||
// Get the ID of this processor
|
||||
int mytid = pvm_mytid();
|
||||
|
||||
#ifdef USECRAYSHMEM
|
||||
|
||||
// Get the size of the NULL group
|
||||
procIDs_.setSize(pvm_gsize(NULL));
|
||||
|
||||
// For each processor of the NULL group get its ID
|
||||
for (int proci=0; proci<ProcIDs.size(); proci++)
|
||||
{
|
||||
procIDs_[proci] = pvm_gettid(NULL, proci);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
// Initialisation message type
|
||||
int initMsgType = 0;
|
||||
|
||||
// If this is not a slave then it must be the master.
|
||||
// Master spawns the rest of the child processes in the same manner as MPI
|
||||
if (string(argv[argc-1]) != "-slave")
|
||||
{
|
||||
// Last argument is number of processors in parallel run
|
||||
int nProcs = atoi(argv[argc-1]);
|
||||
|
||||
// If it is less than 2 this is not a parallel run!
|
||||
if (nProcs < 2)
|
||||
{
|
||||
FatalErrorIn("Pstream::init(int& argc, char**& argv)")
|
||||
<< "Attempt to run parallel on < 2 processors ... stopping."
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
|
||||
Info<< "Starting parallel run on " << nProcs << " processors ... "
|
||||
<< nl << endl;
|
||||
|
||||
|
||||
// set size of ID list
|
||||
procIDs_.setSize(nProcs);
|
||||
procIDs_ = 0;
|
||||
|
||||
// I am the master
|
||||
myProcNo_ = 1;
|
||||
|
||||
// Put my ID in the list
|
||||
procIDs_[0] = mytid;
|
||||
|
||||
// Setup arguments of children
|
||||
typedef char* charPtr;
|
||||
char** Argv = new charPtr[argc + 1];
|
||||
|
||||
for (int i=0; i<argc-1; i++)
|
||||
{
|
||||
Argv[i] = new char[strlen(argv[i+1] + 1)];
|
||||
strcpy(Argv[i], argv[i+1]);
|
||||
}
|
||||
|
||||
Argv[argc-1] = new char[7];
|
||||
strcpy(Argv[argc-1], "-slave");
|
||||
|
||||
Argv[argc] = NULL;
|
||||
|
||||
// Spawn children as copies of me
|
||||
if
|
||||
(
|
||||
pvm_spawn
|
||||
(
|
||||
argv[0],
|
||||
Argv,
|
||||
PvmTaskDefault,
|
||||
"",
|
||||
nProcs-1,
|
||||
&(procIDs_[1])
|
||||
) != nProcs-1
|
||||
)
|
||||
{
|
||||
FatalErrorIn("Pstream::init(int& argc, char**& argv)")
|
||||
<< "Unable to spawn processes ... stopping."
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
|
||||
// Broadcast task IDs to all children
|
||||
pvm_setopt(PvmRoute, PvmRouteDirect);
|
||||
pvm_initsend(PvmDataDefault);
|
||||
pvm_pkint((int*)(&nProcs), 1, 1);
|
||||
pvm_pkint(procIDs_.begin(), nProcs, 1);
|
||||
pvm_mcast(procIDs_.begin(), nProcs, initMsgType);
|
||||
|
||||
|
||||
Info<< "nProcs : " << nProcs << endl;
|
||||
Info<< "TIDS : ";
|
||||
for (int proci=0; proci<procIDs_.size(); proci++)
|
||||
{
|
||||
cout<< hex << procIDs_[proci] << ' ';
|
||||
}
|
||||
cout<< dec << nl << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Receive processor data from master
|
||||
pvm_recv(-1, initMsgType);
|
||||
|
||||
// Should have received the number of processors in the run
|
||||
int nProcs;
|
||||
pvm_upkint(&nProcs, 1, 1);
|
||||
|
||||
// ... set size of ID list
|
||||
procIDs_.setSize(nProcs);
|
||||
|
||||
// ... and unpack the processor IDs
|
||||
pvm_upkint(procIDs_.begin(), nProcs, 1);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// Find which processor number this is
|
||||
for (int proci=0; proci<procIDs_.size(); proci++)
|
||||
{
|
||||
if (procIDs_[proci] == mytid)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Set the processor numbers to start from 1
|
||||
myProcNo_ = proci + 1;
|
||||
|
||||
/*
|
||||
if (pvm_joingroup("foam") < 0)
|
||||
{
|
||||
FatalErrorIn("Pstream::init(int& argc, char**& argv)")
|
||||
<< "Pstream::init(int*, char **[]) : "
|
||||
<< "could not join group ... stopping."
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
pvm_barrier("foam", nProcs());
|
||||
*/
|
||||
|
||||
// Setup signal handler to catch an interupt (^C) and abort the run
|
||||
// This doesn't work, it causes
|
||||
// libpvm [t40003]: pvm_sendsig(): Not implemented
|
||||
// libpvm [t40003]: pvm_kill(): Not implemented
|
||||
// messages
|
||||
//signal(SIGINT, stop);
|
||||
|
||||
if (master())
|
||||
{
|
||||
Sout<< "Master started successfully." << nl << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
Sout<< "Child " << myProcNo_ << " started successfully." << nl << endl;
|
||||
}
|
||||
|
||||
setParRun();
|
||||
|
||||
// Everything is OK
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void Pstream::exit(int errnum)
|
||||
{
|
||||
//pvm_lvgroup("foam");
|
||||
|
||||
if (errnum != 0)
|
||||
{
|
||||
for (int proci=1; proci<=procIDs_.size(); proci++)
|
||||
{
|
||||
if (proci != myProcNo())
|
||||
{
|
||||
pvm_kill(procID(proci));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pvm_exit();
|
||||
::exit(errnum);
|
||||
}
|
||||
|
||||
|
||||
void Pstream::abort()
|
||||
{
|
||||
for (int proci=1; proci<=procIDs_.size(); proci++)
|
||||
{
|
||||
if (proci != myProcNo())
|
||||
{
|
||||
pvm_kill(procID(proci));
|
||||
}
|
||||
}
|
||||
|
||||
pvm_exit();
|
||||
//::abort();
|
||||
}
|
||||
|
||||
|
||||
void reduce(scalar& Value, const sumOp<scalar>& bop)
|
||||
{
|
||||
if (Pstream::parRun())
|
||||
{
|
||||
# ifdef PVM_REDUCE
|
||||
if
|
||||
(
|
||||
pvm_reduce
|
||||
(
|
||||
PvmSum,
|
||||
&Value,
|
||||
1,
|
||||
PVM_DOUBLE,
|
||||
Pstream::msgType(),
|
||||
"foam",
|
||||
0
|
||||
) != PvmOk
|
||||
)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"reduce(scalar& Value, const sumOp<scalar>& sumOp)"
|
||||
) << "pvm_reduce failed"
|
||||
<< abort(FatalError);
|
||||
}
|
||||
# endif
|
||||
|
||||
if (Pstream::master())
|
||||
{
|
||||
for
|
||||
(
|
||||
int slave=Pstream::firstSlave();
|
||||
slave<=Pstream::lastSlave();
|
||||
slave++
|
||||
)
|
||||
{
|
||||
scalar value;
|
||||
int atid, atag, alen;
|
||||
|
||||
if
|
||||
(
|
||||
pvm_precv
|
||||
(
|
||||
Pstream::procID(slave),
|
||||
Pstream::msgType(),
|
||||
&value,
|
||||
1,
|
||||
PVM_DOUBLE,
|
||||
&atid, &atag, &alen
|
||||
) != PvmOk
|
||||
)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"reduce(scalar& Value, const sumOp<scalar>& sumOp)"
|
||||
) << "pvm_precv failed"
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
Value = bop(Value, value);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if
|
||||
(
|
||||
pvm_psend
|
||||
(
|
||||
Pstream::procID(Pstream::masterNo()),
|
||||
Pstream::msgType(),
|
||||
&Value,
|
||||
1,
|
||||
PVM_DOUBLE
|
||||
) != PvmOk
|
||||
)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"reduce(scalar& Value, const sumOp<scalar>& sumOp)"
|
||||
) << "pvm_psend failed"
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (Pstream::master())
|
||||
{
|
||||
pvm_initsend(PvmDataDefault);
|
||||
pvm_pkdouble(&Value, 1, 1);
|
||||
|
||||
if
|
||||
(
|
||||
pvm_mcast
|
||||
(
|
||||
(int*)Pstream::procIDs().begin(),
|
||||
Pstream::nProcs(),
|
||||
Pstream::msgType()
|
||||
) != PvmOk
|
||||
)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"reduce(scalar& Value, const sumOp<scalar>& sumOp)"
|
||||
) << "pvm_mcast failed"
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if
|
||||
(
|
||||
pvm_recv
|
||||
(
|
||||
Pstream::procID(Pstream::masterNo()),
|
||||
Pstream::msgType()
|
||||
) <= 0
|
||||
)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"reduce(scalar& Value, const sumOp<scalar>& sumOp)"
|
||||
) << "pvm_psend failed"
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
pvm_upkdouble(&Value, 1, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -157,8 +157,15 @@ void Foam::activeBaffleVelocityFvPatchVectorField::autoMap
|
||||
//- Note: cannot map field from cyclic patch anyway so just recalculate
|
||||
// Areas should be consistent when doing autoMap except in case of
|
||||
// topo changes.
|
||||
initWallSf_ = patch().Sf();
|
||||
initCyclicSf_ = patch().boundaryMesh()[cyclicPatchLabel_].Sf();
|
||||
//- Note: we don't want to use Sf here since triggers rebuilding of
|
||||
// fvMesh::S() which will give problems when mapped (since already
|
||||
// on new mesh)
|
||||
const vectorField& areas = patch().boundaryMesh().mesh().faceAreas();
|
||||
initWallSf_ = patch().patchSlice(areas);
|
||||
initCyclicSf_ = patch().boundaryMesh()
|
||||
[
|
||||
cyclicPatchLabel_
|
||||
].patchSlice(areas);
|
||||
}
|
||||
|
||||
void Foam::activeBaffleVelocityFvPatchVectorField::rmap
|
||||
@ -169,10 +176,13 @@ void Foam::activeBaffleVelocityFvPatchVectorField::rmap
|
||||
{
|
||||
fixedValueFvPatchVectorField::rmap(ptf, addr);
|
||||
|
||||
//- Note: cannot map field from cyclic patch anyway so just recalculate
|
||||
// Areas should be consistent when doing rmap (mainly reconstructPar)
|
||||
initWallSf_ = patch().Sf();
|
||||
initCyclicSf_ = patch().boundaryMesh()[cyclicPatchLabel_].Sf();
|
||||
// See autoMap.
|
||||
const vectorField& areas = patch().boundaryMesh().mesh().faceAreas();
|
||||
initWallSf_ = patch().patchSlice(areas);
|
||||
initCyclicSf_ = patch().boundaryMesh()
|
||||
[
|
||||
cyclicPatchLabel_
|
||||
].patchSlice(areas);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
[Dolphin]
|
||||
AdditionalInfo=3
|
||||
SortOrder=0
|
||||
Timestamp=2009,6,10,15,58,20
|
||||
ViewMode=1
|
||||
@ -33,13 +33,13 @@ Class
|
||||
Foam::compressible::LESModel
|
||||
|
||||
Description
|
||||
Class for all compressible flow LES SGS models.
|
||||
Base class for all compressible flow LES SGS models.
|
||||
|
||||
This class defines the basic interface for a compressible flow SGS model,
|
||||
and encapsulates data of value to all possible models. In particular
|
||||
this includes references to all the dependent fields (rho, U, phi),
|
||||
the physical viscosity mu, and the LESProperties dictionary,
|
||||
which contains the model selection and model coefficients.
|
||||
This class defines the basic interface for a compressible flow SGS
|
||||
model, and encapsulates data of value to all possible models.
|
||||
In particular this includes references to all the dependent fields
|
||||
(rho, U, phi), the physical viscosity mu, and the LESProperties
|
||||
dictionary, which contains the model selection and model coefficients.
|
||||
|
||||
SourceFiles
|
||||
LESModel.C
|
||||
|
||||
@ -9,6 +9,8 @@ dynOneEqEddy/dynOneEqEddy.C
|
||||
DeardorffDiffStress/DeardorffDiffStress.C
|
||||
SpalartAllmaras/SpalartAllmaras.C
|
||||
|
||||
vanDriestDelta/vanDriestDelta.C
|
||||
|
||||
/* Wall functions */
|
||||
wallFunctions=derivedFvPatchFields/wallFunctions
|
||||
|
||||
|
||||
@ -0,0 +1,160 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 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
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "vanDriestDelta.H"
|
||||
#include "LESModel.H"
|
||||
#include "wallFvPatch.H"
|
||||
#include "wallDistData.H"
|
||||
#include "wallPointYPlus.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
namespace LESModels
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(vanDriestDelta, 0);
|
||||
addToRunTimeSelectionTable(LESdelta, vanDriestDelta, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
void vanDriestDelta::calcDelta()
|
||||
{
|
||||
const LESModel& lesModel = mesh_.lookupObject<LESModel>("LESProperties");
|
||||
|
||||
const volVectorField& U = lesModel.U();
|
||||
const volScalarField& rho = lesModel.rho();
|
||||
const volScalarField& mu = lesModel.mu();
|
||||
tmp<volScalarField> muSgs = lesModel.muSgs();
|
||||
|
||||
volScalarField ystar
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ystar",
|
||||
mesh_.time().constant(),
|
||||
mesh_
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar("ystar", dimLength, GREAT)
|
||||
);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
forAll(patches, patchi)
|
||||
{
|
||||
if (isType<wallFvPatch>(patches[patchi]))
|
||||
{
|
||||
const fvPatchVectorField& Uw = U.boundaryField()[patchi];
|
||||
const scalarField& rhow = rho.boundaryField()[patchi];
|
||||
const scalarField& muw = mu.boundaryField()[patchi];
|
||||
const scalarField& muSgsw = muSgs().boundaryField()[patchi];
|
||||
|
||||
ystar.boundaryField()[patchi] =
|
||||
muw/(rhow*sqrt((muw + muSgsw)*mag(Uw.snGrad())/rhow + VSMALL));
|
||||
}
|
||||
}
|
||||
|
||||
wallPointYPlus::yPlusCutOff = 500;
|
||||
wallDistData<wallPointYPlus> y(mesh_, ystar);
|
||||
|
||||
delta_ = min
|
||||
(
|
||||
static_cast<const volScalarField&>(geometricDelta_()),
|
||||
(kappa_/Cdelta_)*((scalar(1) + SMALL) - exp(-y/ystar/Aplus_))*y
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
vanDriestDelta::vanDriestDelta
|
||||
(
|
||||
const word& name,
|
||||
const fvMesh& mesh,
|
||||
const dictionary& dd
|
||||
)
|
||||
:
|
||||
LESdelta(name, mesh),
|
||||
geometricDelta_
|
||||
(
|
||||
LESdelta::New("geometricDelta", mesh, dd.subDict(type() + "Coeffs"))
|
||||
),
|
||||
kappa_(dd.lookupOrDefault<scalar>("kappa", 0.4187)),
|
||||
Aplus_
|
||||
(
|
||||
dd.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Aplus", 26.0)
|
||||
),
|
||||
Cdelta_
|
||||
(
|
||||
dd.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Cdelta", 0.158)
|
||||
),
|
||||
calcInterval_
|
||||
(
|
||||
dd.subDict(type() + "Coeffs").lookupOrDefault<label>("calcInterval", 1)
|
||||
)
|
||||
{
|
||||
delta_ = geometricDelta_();
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void vanDriestDelta::read(const dictionary& d)
|
||||
{
|
||||
const dictionary& dd(d.subDict(type() + "Coeffs"));
|
||||
|
||||
geometricDelta_().read(dd);
|
||||
d.readIfPresent<scalar>("kappa", kappa_);
|
||||
dd.readIfPresent<scalar>("Aplus", Aplus_);
|
||||
dd.readIfPresent<scalar>("Cdelta", Cdelta_);
|
||||
dd.readIfPresent<label>("calcInterval", calcInterval_);
|
||||
calcDelta();
|
||||
}
|
||||
|
||||
|
||||
void vanDriestDelta::correct()
|
||||
{
|
||||
if (mesh().time().timeIndex() % calcInterval_ == 0)
|
||||
{
|
||||
geometricDelta_().correct();
|
||||
calcDelta();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace LESModels
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,114 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 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
|
||||
|
||||
Class
|
||||
Foam::compressible::LESModels::vanDriestDelta
|
||||
|
||||
Description
|
||||
Simple cube-root of cell volume delta used in compressible LES models.
|
||||
|
||||
SourceFiles
|
||||
vanDriestDelta.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef vanDriestDelta_H
|
||||
#define vanDriestDelta_H
|
||||
|
||||
#include "LESdelta.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
namespace LESModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class vanDriestDelta Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class vanDriestDelta
|
||||
:
|
||||
public LESdelta
|
||||
{
|
||||
// Private data
|
||||
|
||||
autoPtr<LESdelta> geometricDelta_;
|
||||
scalar kappa_;
|
||||
scalar Aplus_;
|
||||
scalar Cdelta_;
|
||||
label calcInterval_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow default bitwise copy construct and assignment
|
||||
vanDriestDelta(const vanDriestDelta&);
|
||||
void operator=(const vanDriestDelta&);
|
||||
|
||||
// Calculate the delta values
|
||||
void calcDelta();
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("vanDriest");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from name, mesh and IOdictionary
|
||||
vanDriestDelta(const word& name, const fvMesh& mesh, const dictionary&);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~vanDriestDelta()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Read the LESdelta dictionary
|
||||
virtual void read(const dictionary&);
|
||||
|
||||
// Correct values
|
||||
virtual void correct();
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace LESModels
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -51,8 +51,8 @@ void kQRWallFunctionFvPatchField<Type>::checkType()
|
||||
<< "Invalid wall function specification" << nl
|
||||
<< " Patch type for patch " << this->patch().name()
|
||||
<< " must be wall" << nl
|
||||
<< " Current patch type is " << this->patch().type()
|
||||
<< nl << endl << abort(FatalError);
|
||||
<< " Current patch type is " << this->patch().type() << nl << endl
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -30,12 +30,11 @@ Description
|
||||
|
||||
SourceFiles
|
||||
laminar.C
|
||||
laminarCorrect.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef compressibleLaminar_H
|
||||
#define compressibleLaminar_H
|
||||
#ifndef compressibleRasLaminar_H
|
||||
#define compressibleRasLaminar_H
|
||||
|
||||
#include "RASModel.H"
|
||||
|
||||
@ -82,42 +81,42 @@ public:
|
||||
// Member Functions
|
||||
|
||||
//- Return the turbulence viscosity, i.e. 0 for laminar flow
|
||||
tmp<volScalarField> mut() const;
|
||||
virtual tmp<volScalarField> mut() const;
|
||||
|
||||
//- Return the effective viscosity, i.e. the laminar viscosity
|
||||
tmp<volScalarField> muEff() const
|
||||
virtual tmp<volScalarField> muEff() const
|
||||
{
|
||||
return tmp<volScalarField>(new volScalarField("muEff", mu()));
|
||||
}
|
||||
|
||||
//- Return the effective turbulent thermal diffusivity,
|
||||
// i.e. the laminar thermal diffusivity
|
||||
tmp<volScalarField> alphaEff() const
|
||||
virtual tmp<volScalarField> alphaEff() const
|
||||
{
|
||||
return tmp<volScalarField>(new volScalarField("alphaEff", alpha()));
|
||||
}
|
||||
|
||||
//- Return the turbulence kinetic energy, i.e. 0 for laminar flow
|
||||
tmp<volScalarField> k() const;
|
||||
virtual tmp<volScalarField> k() const;
|
||||
|
||||
//- Return the turbulence kinetic energy dissipation rate,
|
||||
// i.e. 0 for laminar flow
|
||||
tmp<volScalarField> epsilon() const;
|
||||
virtual tmp<volScalarField> epsilon() const;
|
||||
|
||||
//- Return the Reynolds stress tensor, i.e. 0 for laminar flow
|
||||
tmp<volSymmTensorField> R() const;
|
||||
virtual tmp<volSymmTensorField> R() const;
|
||||
|
||||
//- Return the effective stress tensor, i.e. the laminar stress
|
||||
tmp<volSymmTensorField> devRhoReff() const;
|
||||
virtual tmp<volSymmTensorField> devRhoReff() const;
|
||||
|
||||
//- Return the source term for the momentum equation
|
||||
tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
|
||||
virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
|
||||
|
||||
//- Correct the laminar viscosity
|
||||
void correct();
|
||||
virtual void correct();
|
||||
|
||||
//- Read RASProperties dictionary
|
||||
bool read();
|
||||
virtual bool read();
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
|
||||
@ -52,10 +52,10 @@ laminar::laminar
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& phi,
|
||||
const basicThermo& thermoPhysicalModel
|
||||
const basicThermo& thermophysicalModel
|
||||
)
|
||||
:
|
||||
turbulenceModel(rho, U, phi, thermoPhysicalModel)
|
||||
turbulenceModel(rho, U, phi, thermophysicalModel)
|
||||
{}
|
||||
|
||||
|
||||
@ -66,10 +66,10 @@ autoPtr<laminar> laminar::New
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& phi,
|
||||
const basicThermo& thermoPhysicalModel
|
||||
const basicThermo& thermophysicalModel
|
||||
)
|
||||
{
|
||||
return autoPtr<laminar>(new laminar(rho, U, phi, thermoPhysicalModel));
|
||||
return autoPtr<laminar>(new laminar(rho, U, phi, thermophysicalModel));
|
||||
}
|
||||
|
||||
|
||||
@ -96,18 +96,6 @@ tmp<volScalarField> laminar::mut() const
|
||||
}
|
||||
|
||||
|
||||
tmp<volScalarField> laminar::muEff() const
|
||||
{
|
||||
return tmp<volScalarField>(new volScalarField("muEff", mu()));
|
||||
}
|
||||
|
||||
|
||||
tmp<volScalarField> laminar::alphaEff() const
|
||||
{
|
||||
return tmp<volScalarField>(new volScalarField("alphaEff", alpha()));
|
||||
}
|
||||
|
||||
|
||||
tmp<volScalarField> laminar::k() const
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
|
||||
@ -33,8 +33,8 @@ SourceFiles
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef laminar_H
|
||||
#define laminar_H
|
||||
#ifndef compressibleLaminar_H
|
||||
#define compressibleLaminar_H
|
||||
|
||||
#include "turbulenceModel.H"
|
||||
|
||||
@ -67,7 +67,7 @@ public:
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& phi,
|
||||
const basicThermo& thermoPhysicalModel
|
||||
const basicThermo& thermophysicalModel
|
||||
);
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@ public:
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& phi,
|
||||
const basicThermo& thermoPhysicalModel
|
||||
const basicThermo& thermophysicalModel
|
||||
);
|
||||
|
||||
|
||||
@ -94,10 +94,17 @@ public:
|
||||
virtual tmp<volScalarField> mut() const;
|
||||
|
||||
//- Return the effective viscosity, i.e. the laminar viscosity
|
||||
virtual tmp<volScalarField> muEff() const;
|
||||
virtual tmp<volScalarField> muEff() const
|
||||
{
|
||||
return tmp<volScalarField>(new volScalarField("muEff", mu()));
|
||||
}
|
||||
|
||||
//- Return the effective turbulent thermal diffusivity
|
||||
virtual tmp<volScalarField> alphaEff() const;
|
||||
//- Return the effective turbulent thermal diffusivity,
|
||||
// i.e. the laminar thermal diffusivity
|
||||
virtual tmp<volScalarField> alphaEff() const
|
||||
{
|
||||
return tmp<volScalarField>(new volScalarField("alphaEff", alpha()));
|
||||
}
|
||||
|
||||
//- Return the turbulence kinetic energy, i.e. 0 for laminar flow
|
||||
virtual tmp<volScalarField> k() const;
|
||||
@ -109,7 +116,7 @@ public:
|
||||
//- Return the Reynolds stress tensor, i.e. 0 for laminar flow
|
||||
virtual tmp<volSymmTensorField> R() const;
|
||||
|
||||
//- Return the effective stress tensor including the laminar stress
|
||||
//- Return the effective stress tensor, i.e. the laminar stress
|
||||
virtual tmp<volSymmTensorField> devRhoReff() const;
|
||||
|
||||
//- Return the source term for the momentum equation
|
||||
|
||||
@ -117,12 +117,6 @@ autoPtr<turbulenceModel> turbulenceModel::New
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
turbulenceModel::~turbulenceModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void turbulenceModel::correct()
|
||||
|
||||
@ -65,7 +65,7 @@ namespace compressible
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class turbulenceModel Declaration
|
||||
Class turbulenceModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class turbulenceModel
|
||||
@ -144,7 +144,8 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~turbulenceModel();
|
||||
virtual ~turbulenceModel()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
@ -124,8 +124,8 @@ autoPtr<LESModel> LESModel::New
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"LESModel::select(const volVectorField&, const "
|
||||
"surfaceScalarField&, transportModel&)"
|
||||
"LESModel::New(const volVectorField& U, const "
|
||||
"surfaceScalarField& phi, transportModel&)"
|
||||
) << "Unknown LESModel type " << modelName
|
||||
<< endl << endl
|
||||
<< "Valid LESModel types are :" << endl
|
||||
@ -137,12 +137,6 @@ autoPtr<LESModel> LESModel::New
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
LESModel::~LESModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void LESModel::correct(const tmp<volTensorField>&)
|
||||
|
||||
@ -35,10 +35,10 @@ Description
|
||||
Base class for all incompressible flow LES SGS models.
|
||||
|
||||
This class defines the basic interface for an incompressible flow SGS
|
||||
model, and encapsulates data of value to all possible models. In
|
||||
particular this includes references to all the dependent fields (U,
|
||||
phi), the physical viscosity nu, and the LESProperties
|
||||
dictionary which contains the model selection and model coefficients.
|
||||
model, and encapsulates data of value to all possible models.
|
||||
In particular this includes references to all the dependent fields
|
||||
(U, phi), the physical viscosity nu, and the LESProperties
|
||||
dictionary, which contains the model selection and model coefficients.
|
||||
|
||||
SourceFiles
|
||||
LESModel.C
|
||||
@ -151,7 +151,8 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~LESModel();
|
||||
virtual ~LESModel()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -240,14 +241,14 @@ public:
|
||||
}
|
||||
|
||||
|
||||
//- Correct Eddy-Viscosity and related properties
|
||||
virtual void correct(const tmp<volTensorField>& gradU);
|
||||
|
||||
//- Correct Eddy-Viscosity and related properties.
|
||||
// This calls correct(const tmp<volTensorField>& gradU) by supplying
|
||||
// gradU calculated locally.
|
||||
void correct();
|
||||
|
||||
//- Correct Eddy-Viscosity and related properties
|
||||
virtual void correct(const tmp<volTensorField>& gradU);
|
||||
|
||||
//- Read LESProperties dictionary
|
||||
virtual bool read() = 0;
|
||||
};
|
||||
|
||||
@ -133,12 +133,6 @@ dynOneEqEddy::dynOneEqEddy
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
dynOneEqEddy::~dynOneEqEddy()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void dynOneEqEddy::correct(const tmp<volTensorField>& gradU)
|
||||
|
||||
@ -116,7 +116,8 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~dynOneEqEddy();
|
||||
virtual ~dynOneEqEddy()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
@ -124,12 +124,6 @@ dynSmagorinsky::dynSmagorinsky
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
dynSmagorinsky::~dynSmagorinsky()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void dynSmagorinsky::correct(const tmp<volTensorField>& gradU)
|
||||
|
||||
@ -125,7 +125,8 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~dynSmagorinsky();
|
||||
virtual ~dynSmagorinsky()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
@ -34,8 +34,8 @@ SourceFiles
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef laminar_H
|
||||
#define laminar_H
|
||||
#ifndef lesLaminar_H
|
||||
#define lesLaminar_H
|
||||
|
||||
#include "LESModel.H"
|
||||
#include "volFields.H"
|
||||
|
||||
@ -126,12 +126,6 @@ locDynOneEqEddy::locDynOneEqEddy
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
locDynOneEqEddy::~locDynOneEqEddy()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void locDynOneEqEddy::correct(const tmp<volTensorField>& gradU)
|
||||
|
||||
@ -138,7 +138,8 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~locDynOneEqEddy();
|
||||
virtual ~locDynOneEqEddy()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
@ -56,12 +56,6 @@ scaleSimilarity::scaleSimilarity
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
scaleSimilarity::~scaleSimilarity()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
tmp<volScalarField> scaleSimilarity::k() const
|
||||
|
||||
@ -90,7 +90,8 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~scaleSimilarity();
|
||||
virtual ~scaleSimilarity()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
@ -174,14 +174,9 @@ autoPtr<RASModel> RASModel::New
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
RASModel::~RASModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
|
||||
scalar RASModel::yPlusLam(const scalar kappa, const scalar E) const
|
||||
{
|
||||
scalar ypl = 11.0;
|
||||
|
||||
@ -182,7 +182,8 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~RASModel();
|
||||
virtual ~RASModel()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -310,9 +311,6 @@ public:
|
||||
);
|
||||
}
|
||||
|
||||
//- Return yPlus for the given patch
|
||||
virtual tmp<scalarField> yPlus(const label patchI) const;
|
||||
|
||||
//- Return the turbulence kinetic energy
|
||||
virtual tmp<volScalarField> k() const = 0;
|
||||
|
||||
@ -328,6 +326,9 @@ public:
|
||||
//- Return the source term for the momentum equation
|
||||
virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const = 0;
|
||||
|
||||
//- Return yPlus for the given patch
|
||||
virtual tmp<scalarField> yPlus(const label patchI) const;
|
||||
|
||||
//- Solve the turbulence equations and correct the turbulence viscosity
|
||||
virtual void correct() = 0;
|
||||
|
||||
|
||||
@ -77,12 +77,6 @@ tmp<volScalarField> laminar::nut() const
|
||||
}
|
||||
|
||||
|
||||
tmp<volScalarField> laminar::nuEff() const
|
||||
{
|
||||
return tmp<volScalarField>(new volScalarField("nuEff", nu()));
|
||||
}
|
||||
|
||||
|
||||
tmp<volScalarField> laminar::k() const
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
|
||||
@ -33,8 +33,8 @@ SourceFiles
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef laminar_H
|
||||
#define laminar_H
|
||||
#ifndef rasLaminar_H
|
||||
#define rasLaminar_H
|
||||
|
||||
#include "RASModel.H"
|
||||
|
||||
@ -83,7 +83,10 @@ public:
|
||||
virtual tmp<volScalarField> nut() const;
|
||||
|
||||
//- Return the effective viscosity, i.e. the laminar viscosity
|
||||
virtual tmp<volScalarField> nuEff() const;
|
||||
virtual tmp<volScalarField> nuEff() const
|
||||
{
|
||||
return tmp<volScalarField>(new volScalarField("nuEff", nu()));
|
||||
}
|
||||
|
||||
//- Return the turbulence kinetic energy, i.e. 0 for laminar flow
|
||||
virtual tmp<volScalarField> k() const;
|
||||
@ -95,7 +98,7 @@ public:
|
||||
//- Return the Reynolds stress tensor, i.e. 0 for laminar flow
|
||||
virtual tmp<volSymmTensorField> R() const;
|
||||
|
||||
//- Return the effective stress tensor including the laminar stress
|
||||
//- Return the effective stress tensor, i.e. the laminar stress
|
||||
virtual tmp<volSymmTensorField> devReff() const;
|
||||
|
||||
//- Return the source term for the momentum equation
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
LIB_LIBS = \
|
||||
|
||||
@ -104,7 +104,7 @@ public:
|
||||
//- Return the Reynolds stress tensor, i.e. 0 for laminar flow
|
||||
virtual tmp<volSymmTensorField> R() const;
|
||||
|
||||
//- Return the effective stress tensor including the laminar stress
|
||||
//- Return the effective stress tensor, i.e. the laminar stress
|
||||
virtual tmp<volSymmTensorField> devReff() const;
|
||||
|
||||
//- Return the source term for the momentum equation
|
||||
|
||||
@ -110,12 +110,6 @@ autoPtr<turbulenceModel> turbulenceModel::New
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
turbulenceModel::~turbulenceModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void turbulenceModel::correct()
|
||||
|
||||
@ -139,7 +139,8 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~turbulenceModel();
|
||||
virtual ~turbulenceModel()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
@ -42,7 +42,7 @@ boundaryField
|
||||
lowerWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 293;
|
||||
value uniform 570;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
|
||||
@ -42,7 +42,7 @@ boundaryField
|
||||
lowerWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 293;
|
||||
value uniform 570;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
|
||||
@ -32,15 +32,13 @@ boundaryField
|
||||
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
//type compressible::alphaSgsWallFunction;
|
||||
type compressible::alphaSgsJayatillekeWallFunction;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
//type compressible::alphaSgsWallFunction;
|
||||
type compressible::alphaSgsJayatillekeWallFunction;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
|
||||
@ -32,15 +32,13 @@ boundaryField
|
||||
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
//type compressible::muSgsWallFunction;
|
||||
type compressible::muSgsWallFunction;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
//type compressible::muSgsWallFunction;
|
||||
type compressible::muSgsWallFunction;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ FoamFile
|
||||
|
||||
dimensions [1 -1 -2 0 0 0 0];
|
||||
|
||||
internalField uniform 100000;
|
||||
internalField uniform 1e5;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
@ -27,8 +27,15 @@ boundaryField
|
||||
|
||||
outlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 100000;
|
||||
type waveTransmissive;
|
||||
field p;
|
||||
phi phi;
|
||||
rho rho;
|
||||
psi psi;
|
||||
gamma 1.3;
|
||||
fieldInf 1e5;
|
||||
lInf 0.3;
|
||||
value uniform 1e5;
|
||||
}
|
||||
|
||||
upperWall
|
||||
|
||||
@ -19,6 +19,8 @@ LESModel oneEqEddy;
|
||||
|
||||
delta cubeRootVol;
|
||||
|
||||
turbulence on;
|
||||
|
||||
printCoeffs on;
|
||||
|
||||
laminarCoeffs
|
||||
@ -123,6 +125,7 @@ kappa 0.4187;
|
||||
wallFunctionCoeffs
|
||||
{
|
||||
E 9;
|
||||
Prt 0.85;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@ fuel Propane;
|
||||
|
||||
Su Su [0 1 -1 0 0 0 0] 0.135;
|
||||
|
||||
SuModel unstrained;
|
||||
SuModel transport;
|
||||
|
||||
equivalenceRatio equivalenceRatio [0 0 0 0 0 0 0] 0.6;
|
||||
|
||||
@ -68,7 +68,7 @@ GuldersCoeffs
|
||||
}
|
||||
}
|
||||
|
||||
ignite yes;
|
||||
ignite yes;
|
||||
|
||||
ignitionSites
|
||||
(
|
||||
@ -76,8 +76,8 @@ ignitionSites
|
||||
location (0.005 -0.02 0);
|
||||
diameter 0.003;
|
||||
start 0;
|
||||
duration 0.1;
|
||||
strength 40;
|
||||
duration 0.05;
|
||||
strength 20;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@ -16,55 +16,55 @@ FoamFile
|
||||
|
||||
convertToMeters 0.001;
|
||||
|
||||
vertices
|
||||
vertices
|
||||
(
|
||||
(-20.6 0 -0.5)
|
||||
(-20.6 3 -0.5)
|
||||
(-20.6 12.7 -0.5)
|
||||
(-20.6 25.4 -0.5)
|
||||
(0 -25.4 -0.5)
|
||||
(0 -5 -0.5)
|
||||
(0 0 -0.5)
|
||||
(0 3 -0.5)
|
||||
(0 12.7 -0.5)
|
||||
(0 25.4 -0.5)
|
||||
(206 -25.4 -0.5)
|
||||
(206 -8.5 -0.5)
|
||||
(206 0 -0.5)
|
||||
(206 6.5 -0.5)
|
||||
(206 17 -0.5)
|
||||
(206 25.4 -0.5)
|
||||
(290 -16.6 -0.5)
|
||||
(290 -6.3 -0.5)
|
||||
(290 0 -0.5)
|
||||
(290 4.5 -0.5)
|
||||
(290 11 -0.5)
|
||||
(290 16.6 -0.5)
|
||||
(-20.6 0 0.5)
|
||||
(-20.6 3 0.5)
|
||||
(-20.6 12.7 0.5)
|
||||
(-20.6 25.4 0.5)
|
||||
(0 -25.4 0.5)
|
||||
(0 -5 0.5)
|
||||
(0 0 0.5)
|
||||
(0 3 0.5)
|
||||
(0 12.7 0.5)
|
||||
(0 25.4 0.5)
|
||||
(206 -25.4 0.5)
|
||||
(206 -8.5 0.5)
|
||||
(206 0 0.5)
|
||||
(206 6.5 0.5)
|
||||
(206 17 0.5)
|
||||
(206 25.4 0.5)
|
||||
(290 -16.6 0.5)
|
||||
(290 -6.3 0.5)
|
||||
(290 0 0.5)
|
||||
(290 4.5 0.5)
|
||||
(290 11 0.5)
|
||||
(290 16.6 0.5)
|
||||
(-20.6 0 0)
|
||||
(-20.6 3 0)
|
||||
(-20.6 12.7 0)
|
||||
(-20.6 25.4 0)
|
||||
(0 -25.4 0)
|
||||
(0 -5 0)
|
||||
(0 0 0)
|
||||
(0 3 0)
|
||||
(0 12.7 0)
|
||||
(0 25.4 0)
|
||||
(206 -25.4 0)
|
||||
(206 -8.5 0)
|
||||
(206 0 0)
|
||||
(206 6.5 0)
|
||||
(206 17 0)
|
||||
(206 25.4 0)
|
||||
(290 -16.6 0)
|
||||
(290 -6.3 0)
|
||||
(290 0 0)
|
||||
(290 4.5 0)
|
||||
(290 11 0)
|
||||
(290 16.6 0)
|
||||
(-20.6 0 38.1)
|
||||
(-20.6 3 38.1)
|
||||
(-20.6 12.7 38.1)
|
||||
(-20.6 25.4 38.1)
|
||||
(0 -25.4 38.1)
|
||||
(0 -5 38.1)
|
||||
(0 0 38.1)
|
||||
(0 3 38.1)
|
||||
(0 12.7 38.1)
|
||||
(0 25.4 38.1)
|
||||
(206 -25.4 38.1)
|
||||
(206 -8.5 38.1)
|
||||
(206 0 38.1)
|
||||
(206 6.5 38.1)
|
||||
(206 17 38.1)
|
||||
(206 25.4 38.1)
|
||||
(290 -16.6 38.1)
|
||||
(290 -6.3 38.1)
|
||||
(290 0 38.1)
|
||||
(290 4.5 38.1)
|
||||
(290 11 38.1)
|
||||
(290 16.6 38.1)
|
||||
);
|
||||
|
||||
blocks
|
||||
blocks
|
||||
(
|
||||
hex (0 6 7 1 22 28 29 23) (18 7 1) simpleGrading (0.5 1.8 1)
|
||||
hex (1 7 8 2 23 29 30 24) (18 10 1) simpleGrading (0.5 4 1)
|
||||
@ -81,19 +81,19 @@ blocks
|
||||
hex (14 20 21 15 36 42 43 37) (25 13 1) simpleGrading (2.5 0.25 1)
|
||||
);
|
||||
|
||||
edges
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
patches
|
||||
patches
|
||||
(
|
||||
patch inlet
|
||||
patch inlet
|
||||
(
|
||||
(0 22 23 1)
|
||||
(1 23 24 2)
|
||||
(2 24 25 3)
|
||||
)
|
||||
patch outlet
|
||||
patch outlet
|
||||
(
|
||||
(16 17 39 38)
|
||||
(17 18 40 39)
|
||||
@ -101,13 +101,13 @@ patches
|
||||
(19 20 42 41)
|
||||
(20 21 43 42)
|
||||
)
|
||||
wall upperWall
|
||||
wall upperWall
|
||||
(
|
||||
(3 25 31 9)
|
||||
(9 31 37 15)
|
||||
(15 37 43 21)
|
||||
)
|
||||
wall lowerWall
|
||||
wall lowerWall
|
||||
(
|
||||
(0 6 28 22)
|
||||
(6 5 27 28)
|
||||
@ -115,7 +115,7 @@ patches
|
||||
(4 10 32 26)
|
||||
(10 16 38 32)
|
||||
)
|
||||
empty frontAndBack
|
||||
empty frontAndBack
|
||||
(
|
||||
(22 28 29 23)
|
||||
(23 29 30 24)
|
||||
|
||||
@ -15,19 +15,44 @@ FoamFile
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
thermoType hhuMixtureThermo<homogeneousMixture<sutherlandTransport<specieThermo<janafThermo<perfectGas>>>>>;
|
||||
thermoType
|
||||
hhuMixtureThermo<homogeneousMixture<sutherlandTransport<specieThermo<janafThermo<perfectGas>>>>>;
|
||||
|
||||
stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [ 0 0 0 0 0 0 0 ] 15.675;
|
||||
stoichiometricAirFuelMassRatio
|
||||
stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.675;
|
||||
|
||||
fuel fuel 1 44.0962 200 5000 1000 7.53414 0.0188722 -6.27185e-06 9.14756e-10 -4.78381e-14 -16467.5 -17.8923 0.933554 0.0264246 6.10597e-06 -2.19775e-08 9.51493e-12 -13958.5 19.2017 1.67212e-06 170.672;
|
||||
// phi = 0.57
|
||||
// ft = 0.0352993
|
||||
// Tad = 1650.1
|
||||
|
||||
oxidant oxidant 1 28.8504 200 6000 1000 3.10205 0.00123963 -4.17512e-07 6.60292e-11 -3.87448e-15 -985.517 5.35187 3.58378 -0.0007269 1.66985e-06 -1.08452e-10 -4.31951e-13 -1050.53 3.11223 1.67212e-06 170.672;
|
||||
fuel fuel 1 44.0962
|
||||
100 5000 1000
|
||||
7.53414 0.0188722 -6.27185e-06 9.14756e-10 -4.78381e-14 -16467.5 -17.8923
|
||||
0.933554 0.0264246 6.10597e-06 -2.19775e-08 9.51493e-12 -13958.5 19.2017
|
||||
1.67212e-06 170.672;
|
||||
|
||||
reactants reactants 24.8095 29.4649 200 5000 1000 3.28069 0.00195035 -6.53483e-07 1.00239e-10 -5.64653e-15 -1609.55 4.41496 3.47696 0.000367499 1.84866e-06 -9.8993e-10 -3.10214e-14 -1570.81 3.76075 1.67212e-06 170.672;
|
||||
oxidant oxidant 1 28.8504
|
||||
100 6000 1000
|
||||
3.10131 0.00124137 -4.18816e-07 6.64158e-11 -3.91274e-15 -985.266 5.35597
|
||||
3.58378 -0.000727005 1.67057e-06 -1.09203e-10 -4.31765e-13 -1050.53 3.11239
|
||||
1.67212e-06 170.672;
|
||||
|
||||
products products 1 28.3233 200 5000 1000 3.106 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872 3.49612 0.000650364 -2.08029e-07 1.2291e-09 -7.73697e-13 -11080.3 3.18978 1.67212e-06 170.672;
|
||||
reactants reactants 1 29.2068
|
||||
100 5000 1000
|
||||
3.20495 0.00165359 -5.55661e-07 8.62503e-11 -4.93973e-15 -1347.25 4.81241
|
||||
3.52181 -9.21936e-05 1.77427e-06 -6.2049e-10 -1.99209e-13 -1352.32 3.48856
|
||||
1.67212e-06 170.672;
|
||||
|
||||
burntProducts burntProducts 25.8095 28.3233 200 6000 1000 3.106 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872 3.49612 0.000650364 -2.08029e-07 1.2291e-09 -7.73697e-13 -11080.3 3.18978 1.67212e-06 170.672;
|
||||
burntProducts burntProducts 1 28.3233
|
||||
100 6000 1000
|
||||
3.10558 0.00179747 -5.94696e-07 9.05605e-11 -5.08443e-15 -11003.6 5.12104
|
||||
3.49796 0.000638555 -1.83881e-07 1.20989e-09 -7.68691e-13 -11080.5 3.18188
|
||||
1.67212e-06 170.672;
|
||||
|
||||
products products 1 28.5396
|
||||
100 5000 1000
|
||||
3.10383 0.00156927 -5.22523e-07 8.06527e-11 -4.60363e-15 -6892.54 5.21744
|
||||
3.53318 7.81943e-05 5.77097e-07 6.68595e-10 -6.30433e-13 -6964.71 3.15336
|
||||
1.67212e-06 170.672;
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -23,7 +23,7 @@ startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 10;
|
||||
endTime 0.5;
|
||||
|
||||
deltaT 5e-06;
|
||||
|
||||
|
||||
@ -17,34 +17,29 @@ FoamFile
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
default backward;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
grad(p) Gauss linear;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default none;
|
||||
div(phi,U) Gauss limitedLinearV 1;
|
||||
div(phid,p) Gauss linear;
|
||||
div(phi,U) Gauss linear;
|
||||
div(phiU,p) Gauss linear;
|
||||
div(phi,k) Gauss limitedLinear 1;
|
||||
div(phi,B) Gauss limitedLinear 1;
|
||||
div(B) Gauss linear;
|
||||
div(phiXi,Xi) Gauss limitedLinear 1;
|
||||
div(phiXi,Su) Gauss limitedLinear 1;
|
||||
div(phiSt,b) Gauss limitedLinear01 1;
|
||||
div(phi,k) Gauss limitedLinear 0.1;
|
||||
div(phiXi,Xi) Gauss limitedLinear01 0.1;
|
||||
div(phiXi,Su) Gauss limitedLinear01 0.1;
|
||||
div(phiSt,b) Gauss limitedLinear01 0.1;
|
||||
div(phi,ft_b_h_hu) Gauss multivariateSelection
|
||||
{
|
||||
fu limitedLinear01 1;
|
||||
ft limitedLinear01 1;
|
||||
b limitedLinear01 1;
|
||||
h limitedLinear 1;
|
||||
hu limitedLinear 1;
|
||||
ft limitedLinear01 0.1;
|
||||
b limitedLinear01 0.1;
|
||||
h limitedLinear 0.1;
|
||||
hu limitedLinear 0.1;
|
||||
};
|
||||
div(U) Gauss linear;
|
||||
div((Su*grad(b))) Gauss linear;
|
||||
|
||||
@ -124,8 +124,8 @@ solvers
|
||||
|
||||
PISO
|
||||
{
|
||||
nOuterCorrectors 1;
|
||||
nCorrectors 2;
|
||||
nOuterCorrectors 2;
|
||||
nCorrectors 1;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
}
|
||||
|
||||
|
||||
@ -1,50 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volTensorField;
|
||||
object B;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [1 -1 -2 0 0 0 0];
|
||||
|
||||
internalField uniform (0 0 0 0 0 0 0 0 0);
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform (0 0 0 0 0 0 0 0 0);
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -20,30 +20,30 @@ internalField uniform 0.135;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 0.135;
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform 0.135;
|
||||
value uniform 0.135;
|
||||
}
|
||||
|
||||
upperWall
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -20,32 +20,32 @@ internalField uniform 293;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 293;
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform 293;
|
||||
value uniform 293;
|
||||
}
|
||||
|
||||
upperWall
|
||||
upperWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 293;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
lowerWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 293;
|
||||
value uniform 570;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -20,32 +20,32 @@ internalField uniform 293;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 293;
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform 293;
|
||||
value uniform 293;
|
||||
}
|
||||
|
||||
upperWall
|
||||
upperWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 293;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
lowerWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 293;
|
||||
value uniform 570;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -20,33 +20,33 @@ internalField uniform (0 0 0);
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type turbulentInlet;
|
||||
referenceField uniform (13.3 0 0);
|
||||
fluctuationScale (0.04 0.02 0.02);
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform (0 0 0);
|
||||
value uniform (0 0 0);
|
||||
}
|
||||
|
||||
upperWall
|
||||
upperWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform (0 0 0);
|
||||
}
|
||||
|
||||
lowerWall
|
||||
lowerWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform (0 0 0);
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -20,30 +20,30 @@ internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1;
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform 1;
|
||||
value uniform 1;
|
||||
}
|
||||
|
||||
upperWall
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -20,27 +20,29 @@ internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
upperWall
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
type compressible::alphaSgsJayatillekeWallFunction;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
type compressible::alphaSgsJayatillekeWallFunction;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -20,30 +20,30 @@ internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1;
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform 1;
|
||||
value uniform 1;
|
||||
}
|
||||
|
||||
upperWall
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object ft;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform 0;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -35,14 +35,14 @@ boundaryField
|
||||
|
||||
upperWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1e-8;
|
||||
type zeroGradient;
|
||||
value uniform 2e-05;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1e-8;
|
||||
type zeroGradient;
|
||||
value uniform 2e-05;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
|
||||
@ -20,27 +20,29 @@ internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
upperWall
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
type compressible::muSgsWallFunction;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
type compressible::muSgsWallFunction;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -16,32 +16,39 @@ FoamFile
|
||||
|
||||
dimensions [1 -1 -2 0 0 0 0];
|
||||
|
||||
internalField uniform 100000;
|
||||
internalField uniform 1e5;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
outlet
|
||||
outlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 100000;
|
||||
type waveTransmissive;
|
||||
field p;
|
||||
phi phi;
|
||||
rho rho;
|
||||
psi psi;
|
||||
gamma 1.3;
|
||||
fieldInf 1e5;
|
||||
lInf 0.3;
|
||||
value uniform 1e5;
|
||||
}
|
||||
|
||||
upperWall
|
||||
upperWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
lowerWall
|
||||
lowerWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
frontAndBack
|
||||
frontAndBack
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -19,6 +19,8 @@ LESModel oneEqEddy;
|
||||
|
||||
delta cubeRootVol;
|
||||
|
||||
turbulence on;
|
||||
|
||||
printCoeffs on;
|
||||
|
||||
laminarCoeffs
|
||||
@ -123,6 +125,7 @@ kappa 0.4187;
|
||||
wallFunctionCoeffs
|
||||
{
|
||||
E 9;
|
||||
Prt 0.85;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -68,16 +68,16 @@ GuldersCoeffs
|
||||
}
|
||||
}
|
||||
|
||||
ignite yes;
|
||||
ignite yes;
|
||||
|
||||
ignitionSites
|
||||
(
|
||||
{
|
||||
location (0 0 0);
|
||||
location (0.005 -0.02 0.01905);
|
||||
diameter 0.003;
|
||||
start 0;
|
||||
duration 0.001;
|
||||
strength 2;
|
||||
duration 0.1;
|
||||
strength 200;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -15,19 +15,44 @@ FoamFile
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
thermoType hhuMixtureThermo<homogeneousMixture<sutherlandTransport<specieThermo<janafThermo<perfectGas>>>>>;
|
||||
thermoType
|
||||
hhuMixtureThermo<homogeneousMixture<sutherlandTransport<specieThermo<janafThermo<perfectGas>>>>>;
|
||||
|
||||
stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [ 0 0 0 0 0 0 0 ] 15.675;
|
||||
stoichiometricAirFuelMassRatio
|
||||
stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.675;
|
||||
|
||||
fuel fuel 1 44.0962 200 5000 1000 7.53414 0.0188722 -6.27185e-06 9.14756e-10 -4.78381e-14 -16467.5 -17.8923 0.933554 0.0264246 6.10597e-06 -2.19775e-08 9.51493e-12 -13958.5 19.2017 1.67212e-06 170.672;
|
||||
// phi = 0.57
|
||||
// ft = 0.0352993
|
||||
// Tad = 1650.1
|
||||
|
||||
oxidant oxidant 1 28.8504 200 6000 1000 3.10205 0.00123963 -4.17512e-07 6.60292e-11 -3.87448e-15 -985.517 5.35187 3.58378 -0.0007269 1.66985e-06 -1.08452e-10 -4.31951e-13 -1050.53 3.11223 1.67212e-06 170.672;
|
||||
fuel fuel 1 44.0962
|
||||
100 5000 1000
|
||||
7.53414 0.0188722 -6.27185e-06 9.14756e-10 -4.78381e-14 -16467.5 -17.8923
|
||||
0.933554 0.0264246 6.10597e-06 -2.19775e-08 9.51493e-12 -13958.5 19.2017
|
||||
1.67212e-06 170.672;
|
||||
|
||||
reactants reactants 24.8095 29.4649 200 5000 1000 3.28069 0.00195035 -6.53483e-07 1.00239e-10 -5.64653e-15 -1609.55 4.41496 3.47696 0.000367499 1.84866e-06 -9.8993e-10 -3.10214e-14 -1570.81 3.76075 1.67212e-06 170.672;
|
||||
oxidant oxidant 1 28.8504
|
||||
100 6000 1000
|
||||
3.10131 0.00124137 -4.18816e-07 6.64158e-11 -3.91274e-15 -985.266 5.35597
|
||||
3.58378 -0.000727005 1.67057e-06 -1.09203e-10 -4.31765e-13 -1050.53 3.11239
|
||||
1.67212e-06 170.672;
|
||||
|
||||
products products 1 28.3233 200 5000 1000 3.106 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872 3.49612 0.000650364 -2.08029e-07 1.2291e-09 -7.73697e-13 -11080.3 3.18978 1.67212e-06 170.672;
|
||||
reactants reactants 1 29.2068
|
||||
100 5000 1000
|
||||
3.20495 0.00165359 -5.55661e-07 8.62503e-11 -4.93973e-15 -1347.25 4.81241
|
||||
3.52181 -9.21936e-05 1.77427e-06 -6.2049e-10 -1.99209e-13 -1352.32 3.48856
|
||||
1.67212e-06 170.672;
|
||||
|
||||
burntProducts burntProducts 25.8095 28.3233 200 6000 1000 3.106 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872 3.49612 0.000650364 -2.08029e-07 1.2291e-09 -7.73697e-13 -11080.3 3.18978 1.67212e-06 170.672;
|
||||
burntProducts burntProducts 1 28.3233
|
||||
100 6000 1000
|
||||
3.10558 0.00179747 -5.94696e-07 9.05605e-11 -5.08443e-15 -11003.6 5.12104
|
||||
3.49796 0.000638555 -1.83881e-07 1.20989e-09 -7.68691e-13 -11080.5 3.18188
|
||||
1.67212e-06 170.672;
|
||||
|
||||
products products 1 28.5396
|
||||
100 5000 1000
|
||||
3.10383 0.00156927 -5.22523e-07 8.06527e-11 -4.60363e-15 -6892.54 5.21744
|
||||
3.53318 7.81943e-05 5.77097e-07 6.68595e-10 -6.30433e-13 -6964.71 3.15336
|
||||
1.67212e-06 170.672;
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -17,13 +17,13 @@ FoamFile
|
||||
|
||||
application XiFoam;
|
||||
|
||||
startFrom startTime;
|
||||
startFrom latestTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 0.02;
|
||||
endTime 0.5;
|
||||
|
||||
deltaT 5e-06;
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -17,28 +17,30 @@ FoamFile
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
default backward;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
grad(p) Gauss linear;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default none;
|
||||
div(phi,U) Gauss limitedLinearV 1;
|
||||
div(phid,p) Gauss linear;
|
||||
div(phi,U) Gauss linear;
|
||||
div(phiU,p) Gauss linear;
|
||||
div(phi,k) Gauss limitedLinear 1;
|
||||
div(phi,B) Gauss limitedLinear 1;
|
||||
div(B) Gauss linear;
|
||||
div(phiXi,Xi) Gauss limitedLinear 1;
|
||||
div(phiXi,Su) Gauss limitedLinear 1;
|
||||
div(phiSt,b) Gauss limitedLinear01 1;
|
||||
div(phi,ft_b_h_hu) Gauss multivariateSelection { fu limitedLinear01 1 ; ft limitedLinear01 1 ; b limitedLinear01 1 ; h limitedLinear 1 ; hu limitedLinear 1 ; };
|
||||
div(phi,k) Gauss limitedLinear 0.1;
|
||||
div(phiXi,Xi) Gauss limitedLinear01 0.1;
|
||||
div(phiXi,Su) Gauss limitedLinear01 0.1;
|
||||
div(phiSt,b) Gauss limitedLinear01 0.1;
|
||||
div(phi,ft_b_h_hu) Gauss multivariateSelection
|
||||
{
|
||||
ft limitedLinear01 0.1;
|
||||
b limitedLinear01 0.1;
|
||||
h limitedLinear 0.1;
|
||||
hu limitedLinear 0.1;
|
||||
};
|
||||
div(U) Gauss linear;
|
||||
div((Su*grad(b))) Gauss linear;
|
||||
div((U+((Su*Xi)*grad(b)))) Gauss linear;
|
||||
@ -52,8 +54,8 @@ laplacianSchemes
|
||||
laplacian(DkEff,k) Gauss linear corrected;
|
||||
laplacian(DBEff,B) Gauss linear corrected;
|
||||
laplacian((rho*(1|A(U))),p) Gauss linear corrected;
|
||||
laplacian(muEff,b) Gauss linear corrected;
|
||||
laplacian(muEff,ft) Gauss linear corrected;
|
||||
laplacian(alphaEff,b) Gauss linear corrected;
|
||||
laplacian(alphaEff,ft) Gauss linear corrected;
|
||||
laplacian(alphaEff,h) Gauss linear corrected;
|
||||
laplacian(alphaEff,hu) Gauss linear corrected;
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -124,7 +124,8 @@ solvers
|
||||
|
||||
PISO
|
||||
{
|
||||
nCorrectors 2;
|
||||
nOuterCorrectors 2;
|
||||
nCorrectors 1;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
}
|
||||
|
||||
|
||||
@ -17,6 +17,8 @@ FoamFile
|
||||
|
||||
LESModel oneEqEddy;
|
||||
|
||||
turbulence on;
|
||||
|
||||
printCoeffs on;
|
||||
|
||||
delta cubeRootVol;
|
||||
|
||||
@ -106,7 +106,7 @@ SEXE = a.out
|
||||
|
||||
GENERAL_RULES = $(WM_DIR)/rules/General
|
||||
RULES = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
|
||||
UTILBIN = $(WM_DIR)/utilbin/$(WM_ARCH)$(WM_COMPILER)
|
||||
BIN = $(WM_DIR)/bin/$(WM_ARCH)$(WM_COMPILER)
|
||||
|
||||
include $(GENERAL_RULES)/general
|
||||
include $(RULES)/general
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
.SUFFIXES: .java .class
|
||||
|
||||
javac = javac
|
||||
|
||||
include $(GENERAL_RULES)/java$(WM_JAVAC_OPTION)
|
||||
|
||||
javaFLAGS = -classpath $(CLASS_PATH):$(CLASSES_DIR):. $(EXE_INC) $(javaOPT) $(javaDBUG) -d $(CLASSES_DIR) -deprecation
|
||||
|
||||
javatoclass = mkdir -p $(CLASSES_DIR) ; \
|
||||
( $(javac) $(javaFLAGS) $$SOURCE || ( rm -f $@ ) )
|
||||
@ -1,2 +0,0 @@
|
||||
javaDBUG = -g
|
||||
javaOPT =
|
||||
@ -1,2 +0,0 @@
|
||||
javaDBUG =
|
||||
javaOPT = -O
|
||||
@ -1,4 +1,4 @@
|
||||
.SUFFIXES: .c .cc .cxx .cpp .C .java .F .f .dep
|
||||
.SUFFIXES: .c .cc .cxx .cpp .C .F .f .dep
|
||||
|
||||
MKDEP = $(UTILBIN)/wmkdep -I$(*D) $(LIB_HEADER_DIRS)
|
||||
|
||||
@ -17,9 +17,6 @@ MKDEP = $(UTILBIN)/wmkdep -I$(*D) $(LIB_HEADER_DIRS)
|
||||
.C.dep:
|
||||
$(MAKE_DEP)
|
||||
|
||||
.java.dep:
|
||||
$(MAKE_DEP)
|
||||
|
||||
.F.dep:
|
||||
$(MAKE_DEP)
|
||||
|
||||
|
||||
@ -2,7 +2,6 @@ include $(GENERAL_RULES)/version
|
||||
|
||||
include $(GENERAL_RULES)/sourceToDep
|
||||
|
||||
include $(GENERAL_RULES)/java
|
||||
include $(GENERAL_RULES)/flex
|
||||
include $(GENERAL_RULES)/flex++
|
||||
#include $(GENERAL_RULES)/byacc
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
PFLAGS =
|
||||
PINC = -I$(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi -llam -lpthread -lutil
|
||||
@ -1,3 +0,0 @@
|
||||
PFLAGS =
|
||||
PINC = -I$(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi -llam -lpthread -lutil
|
||||
@ -1,3 +0,0 @@
|
||||
PFLAGS =
|
||||
PINC = -I$(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi -llam -lpthread -lutil
|
||||
@ -1,3 +0,0 @@
|
||||
PFLAGS =
|
||||
PINC = -I$(MPI_ARCH_PATH)/include
|
||||
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi -llam -lutil
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user