Compare commits
39 Commits
feature-sp
...
maintenanc
| Author | SHA1 | Date | |
|---|---|---|---|
| 8b319324b6 | |||
| 9f40e04cc1 | |||
| 927b06a19d | |||
| e6a27e0a67 | |||
| 50b44dbfe2 | |||
| 54567be3c6 | |||
| 8c20e769ba | |||
| d1264955e8 | |||
| 2c6fc15734 | |||
| ffde9c2c6f | |||
| 0081eca87d | |||
| a3f173e937 | |||
| 06a60286d2 | |||
| 6e1fca0e46 | |||
| 7b5cfbd1b0 | |||
| 40cadfd2f2 | |||
| 91198eaf6a | |||
| 6f4196ae62 | |||
| f8dc192941 | |||
| 2c7621116e | |||
| de1aa80593 | |||
| 579883354a | |||
| 0e5dfb1f64 | |||
| cae9b6b868 | |||
| b9d6a84314 | |||
| 80318542e1 | |||
| 942c354b59 | |||
| 3d7e99b7a7 | |||
| cc65f5f0f0 | |||
| 3d842aac93 | |||
| 34a3e0abe3 | |||
| 3a6c0d7fb0 | |||
| 19398ded1c | |||
| d44c8318f0 | |||
| 91b5525749 | |||
| 48562b8649 | |||
| 145f29cc9a | |||
| 14aeaf8dab | |||
| f815a12bba |
@ -1,2 +1,2 @@
|
||||
api=2112
|
||||
patch=0
|
||||
patch=220610
|
||||
|
||||
@ -9,7 +9,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
||||
-I$(LIB_SRC)/regionFaModels/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -7,7 +7,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
||||
-I$(LIB_SRC)/regionFaModels/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -10,7 +10,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
||||
-I$(LIB_SRC)/regionFaModels/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -7,7 +7,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
||||
-I$(LIB_SRC)/regionFaModels/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -19,7 +19,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
||||
-I$(LIB_SRC)/regionFaModels/lnInclude
|
||||
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -8,7 +8,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||
-I$(LIB_SRC)/regionFaModels\lnInclude
|
||||
-I$(LIB_SRC)/regionFaModels/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -39,6 +39,6 @@ EXE_LIBS = \
|
||||
-lturbulenceModels \
|
||||
-lsampling \
|
||||
-lregionModels \
|
||||
-lregionFaModels \
|
||||
-lsurfaceFilmModels \
|
||||
-lcompressibleTwoPhaseMixtureTurbulenceModels
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/parallel/reconstruct/reconstruct/lnInclude \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
-ldynamicMesh \
|
||||
-lreconstruct
|
||||
|
||||
@ -5,6 +5,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/parallel/reconstruct/reconstruct/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
-ldynamicMesh \
|
||||
-lreconstruct
|
||||
|
||||
@ -5,6 +5,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/parallel/reconstruct/reconstruct/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
-ldynamicMesh \
|
||||
-lreconstruct
|
||||
|
||||
@ -53,8 +53,8 @@ Usage
|
||||
-rotate-angle (vector angle)
|
||||
Rotate angle degrees about vector axis.
|
||||
|
||||
or -yawPitchRoll (yawdegrees pitchdegrees rolldegrees)
|
||||
or -rollPitchYaw (rolldegrees pitchdegrees yawdegrees)
|
||||
or -yawPitchRoll : (yaw pitch roll) degrees
|
||||
or -rollPitchYaw : (roll pitch yaw) degrees
|
||||
|
||||
-scale scalar|vector
|
||||
Scale the points by the given scalar or vector on output.
|
||||
@ -259,15 +259,18 @@ int main(int argc, char *argv[])
|
||||
);
|
||||
argList::addBoolOption
|
||||
(
|
||||
"auto-origin",
|
||||
"Use bounding box centre as origin for rotations"
|
||||
"auto-centre",
|
||||
"Use bounding box centre as centre for rotations"
|
||||
);
|
||||
argList::addOption
|
||||
(
|
||||
"origin",
|
||||
"centre",
|
||||
"point",
|
||||
"Use specified <point> as origin for rotations"
|
||||
"Use specified <point> as centre for rotations"
|
||||
);
|
||||
argList::addOptionCompat("auto-centre", {"auto-origin", 2206});
|
||||
argList::addOptionCompat("centre", {"origin", 2206});
|
||||
|
||||
argList::addOption
|
||||
(
|
||||
"rotate",
|
||||
@ -411,18 +414,18 @@ int main(int argc, char *argv[])
|
||||
points += v;
|
||||
}
|
||||
|
||||
vector origin;
|
||||
bool useOrigin = args.readIfPresent("origin", origin);
|
||||
if (args.found("auto-origin") && !useOrigin)
|
||||
vector rotationCentre;
|
||||
bool useRotationCentre = args.readIfPresent("centre", rotationCentre);
|
||||
if (args.found("auto-centre") && !useRotationCentre)
|
||||
{
|
||||
useOrigin = true;
|
||||
origin = boundBox(points).centre();
|
||||
useRotationCentre = true;
|
||||
rotationCentre = boundBox(points).centre();
|
||||
}
|
||||
|
||||
if (useOrigin)
|
||||
if (useRotationCentre)
|
||||
{
|
||||
Info<< "Set origin for rotations to " << origin << endl;
|
||||
points -= origin;
|
||||
Info<< "Set centre of rotation to " << rotationCentre << endl;
|
||||
points -= rotationCentre;
|
||||
}
|
||||
|
||||
if (args.found("rotate"))
|
||||
@ -503,15 +506,15 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
if (useRotationCentre)
|
||||
{
|
||||
Info<< "Unset centre of rotation from " << rotationCentre << endl;
|
||||
points += rotationCentre;
|
||||
}
|
||||
|
||||
// Output scaling
|
||||
applyScaling(points, getScalingOpt("scale", args));
|
||||
|
||||
if (useOrigin)
|
||||
{
|
||||
Info<< "Unset origin for rotations from " << origin << endl;
|
||||
points += origin;
|
||||
}
|
||||
|
||||
|
||||
// Set the precision of the points data to 10
|
||||
IOstream::defaultPrecision(max(10u, IOstream::defaultPrecision()));
|
||||
|
||||
@ -591,7 +591,7 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
for
|
||||
(
|
||||
const word& opt
|
||||
const char * const opt
|
||||
: { "cellSet", "cellZone", "faceSet", "pointSet" }
|
||||
)
|
||||
{
|
||||
|
||||
@ -92,7 +92,7 @@ bool setCellFieldType
|
||||
|
||||
fieldType field(fieldHeader, mesh, false);
|
||||
|
||||
const Type& value = pTraits<Type>(fieldValueStream);
|
||||
const Type value = pTraits<Type>(fieldValueStream);
|
||||
|
||||
if (selectedCells.size() == field.size())
|
||||
{
|
||||
@ -244,7 +244,7 @@ bool setFaceFieldType
|
||||
|
||||
fieldType field(fieldHeader, mesh);
|
||||
|
||||
const Type& value = pTraits<Type>(fieldValueStream);
|
||||
const Type value = pTraits<Type>(fieldValueStream);
|
||||
|
||||
// Create flat list of selected faces and their value.
|
||||
Field<Type> allBoundaryValues(mesh.nBoundaryFaces());
|
||||
|
||||
@ -188,15 +188,18 @@ int main(int argc, char *argv[])
|
||||
);
|
||||
argList::addBoolOption
|
||||
(
|
||||
"auto-origin",
|
||||
"Use bounding box centre as origin for rotations"
|
||||
"auto-centre",
|
||||
"Use bounding box centre as centre for rotations"
|
||||
);
|
||||
argList::addOption
|
||||
(
|
||||
"origin",
|
||||
"centre",
|
||||
"point",
|
||||
"Use specified <point> as origin for rotations"
|
||||
"Use specified <point> as centre for rotations"
|
||||
);
|
||||
argList::addOptionCompat("auto-centre", {"auto-origin", 2206});
|
||||
argList::addOptionCompat("centre", {"origin", 2206});
|
||||
|
||||
argList::addOption
|
||||
(
|
||||
"rotate",
|
||||
@ -334,18 +337,18 @@ int main(int argc, char *argv[])
|
||||
points += v;
|
||||
}
|
||||
|
||||
vector origin;
|
||||
bool useOrigin = args.readIfPresent("origin", origin);
|
||||
if (args.found("auto-origin") && !useOrigin)
|
||||
vector rotationCentre;
|
||||
bool useRotationCentre = args.readIfPresent("centre", rotationCentre);
|
||||
if (args.found("auto-centre") && !useRotationCentre)
|
||||
{
|
||||
useOrigin = true;
|
||||
origin = boundBox(points).centre();
|
||||
useRotationCentre = true;
|
||||
rotationCentre = boundBox(points).centre();
|
||||
}
|
||||
|
||||
if (useOrigin)
|
||||
if (useRotationCentre)
|
||||
{
|
||||
Info<< "Set origin for rotations to " << origin << endl;
|
||||
points -= origin;
|
||||
Info<< "Set centre of rotation to " << rotationCentre << endl;
|
||||
points -= rotationCentre;
|
||||
}
|
||||
|
||||
if (args.found("rotate"))
|
||||
@ -406,15 +409,15 @@ int main(int argc, char *argv[])
|
||||
points = transform(rot, points);
|
||||
}
|
||||
|
||||
if (useRotationCentre)
|
||||
{
|
||||
Info<< "Unset centre of rotation from " << rotationCentre << endl;
|
||||
points += rotationCentre;
|
||||
}
|
||||
|
||||
// Output scaling
|
||||
applyScaling(points, getScalingOpt("write-scale", args));
|
||||
|
||||
if (useOrigin)
|
||||
{
|
||||
Info<< "Unset origin for rotations from " << origin << endl;
|
||||
points += origin;
|
||||
}
|
||||
|
||||
surf1.movePoints(points);
|
||||
surf1.write(exportName, writeFileType);
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
|
||||
# [WM_PROJECT_VERSION] - A human-readable version name
|
||||
# A development version is often named 'com' - as in www.openfoam.com
|
||||
export WM_PROJECT_VERSION=com
|
||||
export WM_PROJECT_VERSION=v2112
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Configuration environment variables.
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2017-2020 OpenCFD Ltd.
|
||||
# Copyright (C) 2017-2022 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
@ -20,7 +20,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
|
||||
|
||||
set adios2_version=ADIOS2-2.6.0
|
||||
set adios2_version=ADIOS2-2.7.1
|
||||
setenv ADIOS2_ARCH_PATH "$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios2_version"
|
||||
|
||||
# END OF (NORMAL) USER EDITABLE PART
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2018-2021 OpenCFD Ltd.
|
||||
# Copyright (C) 2018-2022 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
@ -210,8 +210,8 @@ endif
|
||||
|
||||
# Remove duplicates from environment paths
|
||||
|
||||
_foamClean PATH "$foamOldDirs"
|
||||
_foamClean MANPATH "$foamOldDirs"
|
||||
_foamClean PATH
|
||||
_foamClean MANPATH
|
||||
_foamClean -lib
|
||||
|
||||
# Add trailing ':' for system manpages
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2017-2020 OpenCFD Ltd.
|
||||
# Copyright (C) 2017-2022 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
@ -21,7 +21,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
|
||||
|
||||
adios2_version=ADIOS2-2.6.0
|
||||
adios2_version=ADIOS2-2.7.1
|
||||
export ADIOS2_ARCH_PATH="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$adios2_version"
|
||||
|
||||
# END OF (NORMAL) USER EDITABLE PART
|
||||
|
||||
@ -149,7 +149,7 @@ then
|
||||
then
|
||||
case "$foamVar_end" in
|
||||
(/*) # Absolute path
|
||||
_foamAddLib "foamVar_end"
|
||||
_foamAddLib "$foamVar_end"
|
||||
;;
|
||||
(*) # Relative to prefix
|
||||
_foamAddLib "$foamVar_prefix/$foamVar_end"
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
|
||||
# [WM_PROJECT_VERSION] - A human-readable version name
|
||||
# A development version is often named 'com' - as in www.openfoam.com
|
||||
setenv WM_PROJECT_VERSION com
|
||||
setenv WM_PROJECT_VERSION v2112
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Configuration environment variables.
|
||||
|
||||
@ -32,8 +32,8 @@ Description
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef OSHA1stream_H
|
||||
#define OSHA1stream_H
|
||||
#ifndef Foam_OSHA1stream_H
|
||||
#define Foam_OSHA1stream_H
|
||||
|
||||
#include "OSstream.H"
|
||||
#include "SHA1.H"
|
||||
@ -63,10 +63,17 @@ class osha1stream
|
||||
|
||||
protected:
|
||||
|
||||
//- Handle overflow
|
||||
virtual int overflow(int c = EOF)
|
||||
{
|
||||
if (c != EOF) sha1_.append(c);
|
||||
return c;
|
||||
}
|
||||
|
||||
//- Put sequence of characters
|
||||
virtual std::streamsize xsputn(const char* s, std::streamsize n)
|
||||
{
|
||||
sha1_.append(s, n);
|
||||
if (n) sha1_.append(s, n);
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
@ -174,7 +174,7 @@ Foam::tokenList Foam::functionEntries::evalEntry::evaluate
|
||||
result.writeField(toks);
|
||||
}
|
||||
|
||||
return std::move(toks);
|
||||
return tokenList(std::move(toks.tokens()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -37,8 +37,8 @@ Description
|
||||
|
||||
#include "token.H"
|
||||
|
||||
#ifndef runTimeSelectionTables_H
|
||||
#define runTimeSelectionTables_H
|
||||
#ifndef Foam_runTimeSelectionTables_H
|
||||
#define Foam_runTimeSelectionTables_H
|
||||
|
||||
#include <memory> // For std::unique_ptr
|
||||
#include <utility> // For std::pair
|
||||
@ -89,6 +89,7 @@ Description
|
||||
|
||||
|
||||
// Not used directly: storage and helper methods for runtime tables
|
||||
// - uses automatic cleanup for compat table (issue #2314)
|
||||
#define defineRunTimeSelectionTableBase(baseType,prefix,Tspecialize) \
|
||||
\
|
||||
/* Define table singleton (storage) */ \
|
||||
@ -124,8 +125,6 @@ Description
|
||||
{ \
|
||||
delete prefix##TablePtr_; \
|
||||
prefix##TablePtr_ = nullptr; \
|
||||
prefix##CompatTablePtr_.reset(nullptr); \
|
||||
constructed = false; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -41,9 +41,11 @@ void Foam::expressions::exprDriver::fill_random
|
||||
{
|
||||
if (seed <= 0)
|
||||
{
|
||||
if (timeStatePtr_)
|
||||
const TimeState* ts = this->timeState();
|
||||
|
||||
if (ts)
|
||||
{
|
||||
seed = (timeStatePtr_->timeIndex() - seed);
|
||||
seed = (ts->timeIndex() - seed);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2015-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -1273,6 +1273,7 @@ void Foam::argList::parse
|
||||
{
|
||||
source = "-roots";
|
||||
runControl_.distributed(true);
|
||||
|
||||
if (roots.empty())
|
||||
{
|
||||
FatalErrorInFunction
|
||||
@ -1354,7 +1355,9 @@ void Foam::argList::parse
|
||||
|
||||
// Disable any parallel comms happening inside the fileHandler
|
||||
// since we are on master. This can happen e.g. inside
|
||||
// the masterUncollated/collated handler.
|
||||
// the masterUncollated/collated handler. Note that we
|
||||
// also have to protect the actual dictionary parsing since
|
||||
// it might trigger file access (e.g. #include, #codeStream)
|
||||
const bool oldParRun = Pstream::parRun(false);
|
||||
|
||||
autoPtr<ISstream> dictStream
|
||||
@ -1362,8 +1365,6 @@ void Foam::argList::parse
|
||||
fileHandler().NewIFstream(source)
|
||||
);
|
||||
|
||||
Pstream::parRun(oldParRun); // Restore parallel state
|
||||
|
||||
if (dictStream && dictStream->good())
|
||||
{
|
||||
dictionary decompDict(*dictStream);
|
||||
@ -1412,6 +1413,8 @@ void Foam::argList::parse
|
||||
}
|
||||
}
|
||||
|
||||
Pstream::parRun(oldParRun); // Restore parallel state
|
||||
|
||||
if (Pstream::nProcs() == 1)
|
||||
{
|
||||
Warning
|
||||
@ -1485,12 +1488,12 @@ void Foam::argList::parse
|
||||
options_.set("case", roots[subproci-1]/globalCase_);
|
||||
|
||||
OPstream toProc(Pstream::commsTypes::scheduled, subproci);
|
||||
|
||||
toProc
|
||||
<< args_ << options_
|
||||
<< runControl_.distributed()
|
||||
<< label(runControl_.dryRun())
|
||||
<< label(runControl_.verbose());
|
||||
|
||||
}
|
||||
options_.erase("case");
|
||||
|
||||
@ -1538,6 +1541,7 @@ void Foam::argList::parse
|
||||
for (const int subproci : Pstream::subProcs())
|
||||
{
|
||||
OPstream toProc(Pstream::commsTypes::scheduled, subproci);
|
||||
|
||||
toProc
|
||||
<< args_ << options_
|
||||
<< runControl_.distributed()
|
||||
@ -1557,6 +1561,7 @@ void Foam::argList::parse
|
||||
Pstream::commsTypes::scheduled,
|
||||
Pstream::masterNo()
|
||||
);
|
||||
|
||||
fromMaster
|
||||
>> args_ >> options_
|
||||
>> isDistributed
|
||||
|
||||
@ -202,7 +202,8 @@ inline Foam::Matrix<Form, Type>::Matrix
|
||||
)
|
||||
:
|
||||
mRows_(Mb.m()),
|
||||
nCols_(Mb.n())
|
||||
nCols_(Mb.n()),
|
||||
v_(nullptr)
|
||||
{
|
||||
doAlloc();
|
||||
|
||||
@ -224,7 +225,8 @@ inline Foam::Matrix<Form, Type>::Matrix
|
||||
)
|
||||
:
|
||||
mRows_(Mb.m()),
|
||||
nCols_(Mb.n())
|
||||
nCols_(Mb.n()),
|
||||
v_(nullptr)
|
||||
{
|
||||
doAlloc();
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2018-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2018-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -395,12 +395,12 @@ public:
|
||||
|
||||
//- Collect indirect data in processor order on master
|
||||
// Offsets needed on master only.
|
||||
template<class Type, class Addr>
|
||||
template<class ProcIDsContainer, class Type, class Addr>
|
||||
static void gather
|
||||
(
|
||||
const labelUList& offsets,
|
||||
const label comm, //!< communicator
|
||||
const UList<int>& procIDs,
|
||||
const ProcIDsContainer& procIDs,
|
||||
const IndirectListBase<Type, Addr>& fld,
|
||||
List<Type>& allFld,
|
||||
const int tag = UPstream::msgType(),
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -225,12 +225,12 @@ void Foam::globalIndex::gather
|
||||
}
|
||||
|
||||
|
||||
template<class Type, class Addr>
|
||||
template<class ProcIDsContainer, class Type, class Addr>
|
||||
void Foam::globalIndex::gather
|
||||
(
|
||||
const labelUList& off,
|
||||
const label comm,
|
||||
const UList<int>& procIDs,
|
||||
const ProcIDsContainer& procIDs,
|
||||
const IndirectListBase<Type, Addr>& fld,
|
||||
List<Type>& allFld,
|
||||
const int tag,
|
||||
@ -302,7 +302,7 @@ void Foam::globalIndex::gather
|
||||
gather
|
||||
(
|
||||
comm,
|
||||
UPstream::procID(comm),
|
||||
UPstream::allProcs(comm), // All communicator ranks
|
||||
fld,
|
||||
allFld,
|
||||
tag,
|
||||
@ -325,7 +325,7 @@ void Foam::globalIndex::gather
|
||||
(
|
||||
offsets_,
|
||||
comm,
|
||||
UPstream::procID(comm),
|
||||
UPstream::allProcs(comm), // All communicator ranks
|
||||
fld,
|
||||
allFld,
|
||||
tag,
|
||||
@ -370,7 +370,7 @@ void Foam::globalIndex::gather
|
||||
gather
|
||||
(
|
||||
comm,
|
||||
UPstream::procID(comm),
|
||||
UPstream::allProcs(comm), // All communicator ranks
|
||||
fld,
|
||||
allFld,
|
||||
tag,
|
||||
@ -658,7 +658,7 @@ void Foam::globalIndex::scatter
|
||||
(
|
||||
offsets_,
|
||||
comm,
|
||||
UPstream::procID(comm),
|
||||
UPstream::allProcs(comm), // All communicator ranks
|
||||
allFld,
|
||||
fld,
|
||||
tag,
|
||||
|
||||
@ -513,6 +513,10 @@ inline Foam::Tensor<Cmpt> Foam::Tensor<Cmpt>::T() const
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
// Workaround for gcc (11+) that fails to handle tensor dot vector
|
||||
__attribute__((optimize("no-tree-vectorize")))
|
||||
#endif
|
||||
inline Foam::Tensor<Cmpt>
|
||||
Foam::Tensor<Cmpt>::inner(const Tensor<Cmpt>& t2) const
|
||||
{
|
||||
@ -536,6 +540,10 @@ Foam::Tensor<Cmpt>::inner(const Tensor<Cmpt>& t2) const
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
// Workaround for gcc (11+) that fails to handle tensor dot vector
|
||||
__attribute__((optimize("no-tree-vectorize")))
|
||||
#endif
|
||||
inline Foam::Tensor<Cmpt>
|
||||
Foam::Tensor<Cmpt>::schur(const Tensor<Cmpt>& t2) const
|
||||
{
|
||||
@ -971,6 +979,10 @@ operator&(const Tensor<Cmpt>& t1, const Tensor<Cmpt>& t2)
|
||||
|
||||
//- Inner-product of a SphericalTensor and a Tensor
|
||||
template<class Cmpt>
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
// Workaround for gcc (11+) that fails to handle tensor dot vector
|
||||
__attribute__((optimize("no-tree-vectorize")))
|
||||
#endif
|
||||
inline Tensor<Cmpt>
|
||||
operator&(const SphericalTensor<Cmpt>& st1, const Tensor<Cmpt>& t2)
|
||||
{
|
||||
@ -985,6 +997,10 @@ operator&(const SphericalTensor<Cmpt>& st1, const Tensor<Cmpt>& t2)
|
||||
|
||||
//- Inner-product of a Tensor and a SphericalTensor
|
||||
template<class Cmpt>
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
// Workaround for gcc (11+) that fails to handle tensor dot vector
|
||||
__attribute__((optimize("no-tree-vectorize")))
|
||||
#endif
|
||||
inline Tensor<Cmpt>
|
||||
operator&(const Tensor<Cmpt>& t1, const SphericalTensor<Cmpt>& st2)
|
||||
{
|
||||
@ -999,6 +1015,10 @@ operator&(const Tensor<Cmpt>& t1, const SphericalTensor<Cmpt>& st2)
|
||||
|
||||
//- Inner-product of a SymmTensor and a Tensor
|
||||
template<class Cmpt>
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
// Workaround for gcc (11+) that fails to handle tensor dot vector
|
||||
__attribute__((optimize("no-tree-vectorize")))
|
||||
#endif
|
||||
inline Tensor<Cmpt>
|
||||
operator&(const SymmTensor<Cmpt>& st1, const Tensor<Cmpt>& t2)
|
||||
{
|
||||
@ -1021,6 +1041,10 @@ operator&(const SymmTensor<Cmpt>& st1, const Tensor<Cmpt>& t2)
|
||||
|
||||
//- Inner-product of a Tensor and a SymmTensor
|
||||
template<class Cmpt>
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
// Workaround for gcc (11+) that fails to handle tensor dot vector
|
||||
__attribute__((optimize("no-tree-vectorize")))
|
||||
#endif
|
||||
inline Tensor<Cmpt>
|
||||
operator&(const Tensor<Cmpt>& t1, const SymmTensor<Cmpt>& st2)
|
||||
{
|
||||
@ -1043,7 +1067,11 @@ operator&(const Tensor<Cmpt>& t1, const SymmTensor<Cmpt>& st2)
|
||||
|
||||
//- Inner-product of a Tensor and a Vector
|
||||
template<class Cmpt>
|
||||
inline typename innerProduct<Tensor<Cmpt>, Vector<Cmpt>>::type
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
// Workaround for gcc (11+) that fails to handle tensor dot vector
|
||||
__attribute__((optimize("no-tree-vectorize")))
|
||||
#endif
|
||||
inline Vector<Cmpt>
|
||||
operator&(const Tensor<Cmpt>& t, const Vector<Cmpt>& v)
|
||||
{
|
||||
return Vector<Cmpt>
|
||||
@ -1057,7 +1085,11 @@ operator&(const Tensor<Cmpt>& t, const Vector<Cmpt>& v)
|
||||
|
||||
//- Inner-product of a Vector and a Tensor
|
||||
template<class Cmpt>
|
||||
inline typename innerProduct<Vector<Cmpt>, Tensor<Cmpt>>::type
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
// Workaround for gcc (11+) that fails to handle tensor dot vector
|
||||
__attribute__((optimize("no-tree-vectorize")))
|
||||
#endif
|
||||
inline Vector<Cmpt>
|
||||
operator&(const Vector<Cmpt>& v, const Tensor<Cmpt>& t)
|
||||
{
|
||||
return Vector<Cmpt>
|
||||
|
||||
@ -28,6 +28,8 @@ License
|
||||
#include "MathFunctions.H"
|
||||
#include "mathematicalConstants.H"
|
||||
#include "error.H"
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
|
||||
// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * * //
|
||||
|
||||
|
||||
@ -36,6 +36,7 @@ Description
|
||||
#include "mathematicalConstants.H"
|
||||
#include "error.H"
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
|
||||
// * * * * * * * * * * * * * * * Local Functions * * * * * * * * * * * * * * //
|
||||
|
||||
|
||||
@ -35,6 +35,8 @@ Description
|
||||
#include "MathFunctions.H"
|
||||
#include "mathematicalConstants.H"
|
||||
#include "error.H"
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
|
||||
using namespace Foam::constant::mathematical;
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -42,8 +42,8 @@ SourceFiles
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef SHA1_H
|
||||
#define SHA1_H
|
||||
#ifndef Foam_SHA1_H
|
||||
#define Foam_SHA1_H
|
||||
|
||||
#include <string>
|
||||
#include <cstdint>
|
||||
@ -113,6 +113,9 @@ public:
|
||||
//- Reset the hashed data before appending more
|
||||
void clear() noexcept;
|
||||
|
||||
//- Append single character
|
||||
inline void append(char c);
|
||||
|
||||
//- Append data for processing
|
||||
inline SHA1& append(const char* str);
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -52,6 +52,12 @@ inline Foam::SHA1::SHA1(const std::string& str)
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
inline void Foam::SHA1::append(char c)
|
||||
{
|
||||
processBytes(&c, 1);
|
||||
}
|
||||
|
||||
|
||||
inline Foam::SHA1& Foam::SHA1::append(const char* data, size_t len)
|
||||
{
|
||||
processBytes(data, len);
|
||||
|
||||
@ -29,6 +29,7 @@ License
|
||||
#include "word.H"
|
||||
#include "debug.H"
|
||||
#include <cctype>
|
||||
#include <cstdint>
|
||||
#include <sstream>
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -1265,7 +1265,17 @@ void Foam::UPstream::allocatePstreamCommunicator
|
||||
|
||||
void Foam::UPstream::freePstreamCommunicator(const label communicator)
|
||||
{
|
||||
if (communicator != 0)
|
||||
// Not touching the first communicator (WORLD)
|
||||
// or anything out-of bounds.
|
||||
//
|
||||
// No UPstream communicator indices when MPI is initialized outside
|
||||
// of OpenFOAM - thus needs a bounds check too!
|
||||
|
||||
if
|
||||
(
|
||||
communicator > 0
|
||||
&& (communicator < PstreamGlobals::MPICommunicators_.size())
|
||||
)
|
||||
{
|
||||
if (PstreamGlobals::MPICommunicators_[communicator] != MPI_COMM_NULL)
|
||||
{
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2018-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2018-2020,2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -135,7 +135,7 @@ void Foam::totalFlowRateAdvectiveDiffusiveFvPatchScalarField::autoMap
|
||||
const fvPatchFieldMapper& m
|
||||
)
|
||||
{
|
||||
scalarField::autoMap(m);
|
||||
mixedFvPatchField<scalar>::autoMap(m);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -264,6 +264,7 @@ void RNGkEpsilon<BasicTurbulenceModel>::correct()
|
||||
tmp<volTensorField> tgradU = fvc::grad(U);
|
||||
const volScalarField::Internal GbyNu
|
||||
(
|
||||
this->type() + ":GbyNu",
|
||||
tgradU().v() && dev(twoSymm(tgradU().v()))
|
||||
);
|
||||
tgradU.clear();
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2014-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2018-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2018-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -115,10 +115,10 @@ atmBoundaryLayer::atmBoundaryLayer(const atmBoundaryLayer& abl)
|
||||
ppMin_(abl.ppMin_),
|
||||
time_(abl.time_),
|
||||
patch_(abl.patch_),
|
||||
flowDir_(abl.flowDir_),
|
||||
zDir_(abl.zDir_),
|
||||
Uref_(abl.Uref_),
|
||||
Zref_(abl.Zref_),
|
||||
flowDir_(abl.flowDir_.clone()),
|
||||
zDir_(abl.zDir_.clone()),
|
||||
Uref_(abl.Uref_.clone()),
|
||||
Zref_(abl.Zref_.clone()),
|
||||
z0_(abl.z0_.clone(patch_)),
|
||||
d_(abl.d_.clone(patch_))
|
||||
{}
|
||||
@ -274,10 +274,22 @@ void atmBoundaryLayer::write(Ostream& os) const
|
||||
os.writeEntry("Cmu", Cmu_);
|
||||
os.writeEntry("C1", C1_);
|
||||
os.writeEntry("C2", C2_);
|
||||
flowDir_->writeData(os);
|
||||
zDir_->writeData(os);
|
||||
Uref_->writeData(os);
|
||||
Zref_->writeData(os);
|
||||
if (flowDir_)
|
||||
{
|
||||
flowDir_->writeData(os);
|
||||
}
|
||||
if (zDir_)
|
||||
{
|
||||
zDir_->writeData(os);
|
||||
}
|
||||
if (Uref_)
|
||||
{
|
||||
Uref_->writeData(os);
|
||||
}
|
||||
if (Zref_)
|
||||
{
|
||||
Zref_->writeData(os);
|
||||
}
|
||||
if (z0_)
|
||||
{
|
||||
z0_->writeData(os) ;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 ENERCON GmbH
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -131,7 +131,7 @@ atmTurbulentHeatFluxTemperatureFvPatchScalarField
|
||||
fixedGradientFvPatchScalarField(atmpsf),
|
||||
heatSource_(atmpsf.heatSource_),
|
||||
alphaEffName_(atmpsf.alphaEffName_),
|
||||
Cp0_(atmpsf.Cp0_),
|
||||
Cp0_(atmpsf.Cp0_.clone()),
|
||||
q_(atmpsf.q_.clone(this->patch().patch()))
|
||||
{}
|
||||
|
||||
@ -146,7 +146,7 @@ atmTurbulentHeatFluxTemperatureFvPatchScalarField
|
||||
fixedGradientFvPatchScalarField(atmpsf, iF),
|
||||
heatSource_(atmpsf.heatSource_),
|
||||
alphaEffName_(atmpsf.alphaEffName_),
|
||||
Cp0_(atmpsf.Cp0_),
|
||||
Cp0_(atmpsf.Cp0_.clone()),
|
||||
q_(atmpsf.q_.clone(this->patch().patch()))
|
||||
{}
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 ENERCON GmbH
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -145,7 +145,7 @@ atmAlphatkWallFunctionFvPatchScalarField
|
||||
fixedValueFvPatchScalarField(wfpsf),
|
||||
Cmu_(wfpsf.Cmu_),
|
||||
kappa_(wfpsf.kappa_),
|
||||
Pr_(wfpsf.Pr_),
|
||||
Pr_(wfpsf.Pr_.clone()),
|
||||
Prt_(wfpsf.Prt_.clone(this->patch().patch())),
|
||||
z0_(wfpsf.z0_.clone(this->patch().patch()))
|
||||
{
|
||||
@ -163,7 +163,7 @@ atmAlphatkWallFunctionFvPatchScalarField
|
||||
fixedValueFvPatchScalarField(wfpsf, iF),
|
||||
Cmu_(wfpsf.Cmu_),
|
||||
kappa_(wfpsf.kappa_),
|
||||
Pr_(wfpsf.Pr_),
|
||||
Pr_(wfpsf.Pr_.clone()),
|
||||
Prt_(wfpsf.Prt_.clone(this->patch().patch())),
|
||||
z0_(wfpsf.z0_.clone(this->patch().patch()))
|
||||
{
|
||||
@ -289,9 +289,18 @@ void atmAlphatkWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||
fvPatchField<scalar>::write(os);
|
||||
os.writeEntry("Cmu", Cmu_);
|
||||
os.writeEntry("kappa", kappa_);
|
||||
Pr_->writeData(os);
|
||||
Prt_->writeData(os);
|
||||
z0_->writeData(os);
|
||||
if (Pr_)
|
||||
{
|
||||
Pr_->writeData(os);
|
||||
}
|
||||
if (Prt_)
|
||||
{
|
||||
Prt_->writeData(os);
|
||||
}
|
||||
if (z0_)
|
||||
{
|
||||
z0_->writeData(os);
|
||||
}
|
||||
writeEntry("value", os);
|
||||
}
|
||||
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/fileFormats/lnInclude \
|
||||
-I$(LIB_SRC)/surfMesh/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/mesh/extrudeModel/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lfileFormats \
|
||||
-lsurfMesh \
|
||||
-lmeshTools \
|
||||
-lextrudeModel
|
||||
|
||||
@ -44,7 +44,6 @@ $(basicFaPatchFields)/transform/transformFaPatchScalarField.C
|
||||
constraintFaPatchFields = $(faPatchFields)/constraint
|
||||
$(constraintFaPatchFields)/empty/emptyFaPatchFields.C
|
||||
$(constraintFaPatchFields)/processor/processorFaPatchFields.C
|
||||
$(constraintFaPatchFields)/processor/processorFaPatchScalarField.C
|
||||
$(constraintFaPatchFields)/wedge/wedgeFaPatchFields.C
|
||||
$(constraintFaPatchFields)/wedge/wedgeFaPatchScalarField.C
|
||||
$(constraintFaPatchFields)/cyclic/cyclicFaPatchFields.C
|
||||
|
||||
@ -181,13 +181,6 @@ public:
|
||||
|
||||
// Coupled interface functionality
|
||||
|
||||
//- Transform given patch component field
|
||||
virtual void transformCoupleField
|
||||
(
|
||||
solveScalarField& f,
|
||||
const direction cmpt
|
||||
) const = 0;
|
||||
|
||||
//- Update result field based on interface functionality
|
||||
virtual void updateInterfaceMatrix
|
||||
(
|
||||
|
||||
@ -1,58 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2016-2017 Wikki Ltd
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef transformFaPatchFieldsFwd_H
|
||||
#define transformFaPatchFieldsFwd_H
|
||||
|
||||
#include "fieldTypes.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type> class transformFaPatchField;
|
||||
|
||||
// typedef transformFaPatchField<scalar> transformFaPatchScalarField;
|
||||
// typedef transformFaPatchField<vector> transformFaPatchVectorField;
|
||||
// typedef transformFaPatchField<tensor> transformFaPatchTensorField;
|
||||
|
||||
// template<class Type> class transformFaPatchField;
|
||||
|
||||
makeFaPatchTypeFieldTypedefs(transform)
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2016-2017 Wikki Ltd
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -187,20 +187,7 @@ void Foam::cyclicFaPatchField<Type>::updateInterfaceMatrix
|
||||
transformCoupleField(pnf, cmpt);
|
||||
|
||||
// Multiply the field by coefficients and add into the result
|
||||
if (add)
|
||||
{
|
||||
forAll(faceCells, elemI)
|
||||
{
|
||||
result[faceCells[elemI]] += coeffs[elemI]*pnf[elemI];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
forAll(faceCells, elemI)
|
||||
{
|
||||
result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
|
||||
}
|
||||
}
|
||||
this->addToInternalField(result, !add, faceCells, coeffs, pnf);
|
||||
}
|
||||
|
||||
|
||||
@ -227,21 +214,11 @@ void Foam::cyclicFaPatchField<Type>::updateInterfaceMatrix
|
||||
pnf[facei + sizeby2] = psiInternal[faceCells[facei]];
|
||||
}
|
||||
|
||||
// Transform according to the transformation tensors
|
||||
transformCoupleField(pnf);
|
||||
|
||||
// Multiply the field by coefficients and add into the result
|
||||
if (add)
|
||||
{
|
||||
forAll(faceCells, elemI)
|
||||
{
|
||||
result[faceCells[elemI]] += coeffs[elemI]*pnf[elemI];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
forAll(faceCells, elemI)
|
||||
{
|
||||
result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
|
||||
}
|
||||
}
|
||||
this->addToInternalField(result, !add, faceCells, coeffs, pnf);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -164,16 +164,6 @@ public:
|
||||
|
||||
// Coupled interface functionality
|
||||
|
||||
//- Transform neighbour field
|
||||
virtual void transformCoupleField
|
||||
(
|
||||
solveScalarField& f,
|
||||
const direction cmpt
|
||||
) const
|
||||
{
|
||||
cyclicLduInterfaceField::transformCoupleField(f, cmpt);
|
||||
}
|
||||
|
||||
//- Update result field based on interface functionality
|
||||
virtual void updateInterfaceMatrix
|
||||
(
|
||||
|
||||
@ -132,13 +132,6 @@ Foam::processorFaPatchField<Type>::processorFaPatchField
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
Foam::processorFaPatchField<Type>::~processorFaPatchField()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type>
|
||||
@ -205,6 +198,8 @@ void Foam::processorFaPatchField<Type>::initInterfaceMatrixUpdate
|
||||
commsType,
|
||||
this->patch().patchInternalField(psiInternal)()
|
||||
);
|
||||
|
||||
const_cast<processorFaPatchField<Type>&>(*this).updatedMatrix() = false;
|
||||
}
|
||||
|
||||
|
||||
@ -221,32 +216,28 @@ void Foam::processorFaPatchField<Type>::updateInterfaceMatrix
|
||||
const Pstream::commsTypes commsType
|
||||
) const
|
||||
{
|
||||
if (this->updatedMatrix())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const labelUList& faceCells = this->patch().edgeFaces();
|
||||
|
||||
solveScalarField pnf
|
||||
(
|
||||
procPatch_.receive<solveScalar>(commsType, this->size())()
|
||||
procPatch_.receive<solveScalar>(commsType, this->size())
|
||||
);
|
||||
|
||||
// Transform according to the transformation tensor
|
||||
transformCoupleField(pnf, cmpt);
|
||||
if (!std::is_arithmetic<Type>::value)
|
||||
{
|
||||
// Transform non-scalar data according to the transformation tensor
|
||||
transformCoupleField(pnf, cmpt);
|
||||
}
|
||||
|
||||
// Multiply the field by coefficients and add into the result
|
||||
this->addToInternalField(result, !add, faceCells, coeffs, pnf);
|
||||
|
||||
const labelUList& edgeFaces = this->patch().edgeFaces();
|
||||
|
||||
if (add)
|
||||
{
|
||||
forAll(edgeFaces, elemI)
|
||||
{
|
||||
result[edgeFaces[elemI]] += coeffs[elemI]*pnf[elemI];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
forAll(edgeFaces, elemI)
|
||||
{
|
||||
result[edgeFaces[elemI]] -= coeffs[elemI]*pnf[elemI];
|
||||
}
|
||||
}
|
||||
const_cast<processorFaPatchField<Type>&>(*this).updatedMatrix() = true;
|
||||
}
|
||||
|
||||
|
||||
@ -267,6 +258,8 @@ void Foam::processorFaPatchField<Type>::initInterfaceMatrixUpdate
|
||||
commsType,
|
||||
this->patch().patchInternalField(psiInternal)()
|
||||
);
|
||||
|
||||
const_cast<processorFaPatchField<Type>&>(*this).updatedMatrix() = false;
|
||||
}
|
||||
|
||||
|
||||
@ -282,29 +275,25 @@ void Foam::processorFaPatchField<Type>::updateInterfaceMatrix
|
||||
const Pstream::commsTypes commsType
|
||||
) const
|
||||
{
|
||||
if (this->updatedMatrix())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const labelUList& faceCells = this->patch().edgeFaces();
|
||||
|
||||
Field<Type> pnf
|
||||
(
|
||||
procPatch_.receive<Type>(commsType, this->size())()
|
||||
procPatch_.receive<Type>(commsType, this->size())
|
||||
);
|
||||
|
||||
// Transform according to the transformation tensor
|
||||
transformCoupleField(pnf);
|
||||
|
||||
// Multiply the field by coefficients and add into the result
|
||||
this->addToInternalField(result, !add, faceCells, coeffs, pnf);
|
||||
|
||||
const labelUList& edgeFaces = this->patch().edgeFaces();
|
||||
|
||||
if (add)
|
||||
{
|
||||
forAll(edgeFaces, elemI)
|
||||
{
|
||||
result[edgeFaces[elemI]] += coeffs[elemI]*pnf[elemI];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
forAll(edgeFaces, elemI)
|
||||
{
|
||||
result[edgeFaces[elemI]] -= coeffs[elemI]*pnf[elemI];
|
||||
}
|
||||
}
|
||||
const_cast<processorFaPatchField<Type>&>(*this).updatedMatrix() = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2016-2017 Wikki Ltd
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -38,8 +38,8 @@ SourceFiles
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef processorFaPatchField_H
|
||||
#define processorFaPatchField_H
|
||||
#ifndef Foam_processorFaPatchField_H
|
||||
#define Foam_processorFaPatchField_H
|
||||
|
||||
#include "coupledFaPatchField.H"
|
||||
#include "processorLduInterfaceField.H"
|
||||
@ -139,9 +139,8 @@ public:
|
||||
}
|
||||
|
||||
|
||||
// Destructor
|
||||
|
||||
~processorFaPatchField();
|
||||
//- Destructor
|
||||
~processorFaPatchField() = default;
|
||||
|
||||
|
||||
// Member functions
|
||||
@ -176,17 +175,8 @@ public:
|
||||
//- Return patch-normal gradient
|
||||
virtual tmp<Field<Type>> snGrad() const;
|
||||
|
||||
// Coupled interface functionality
|
||||
|
||||
//- Transform neighbour field
|
||||
virtual void transformCoupleField
|
||||
(
|
||||
solveScalarField& f,
|
||||
const direction cmpt
|
||||
) const
|
||||
{
|
||||
processorLduInterfaceField::transformCoupleField(f, cmpt);
|
||||
}
|
||||
// Coupled interface functionality
|
||||
|
||||
//- Initialise neighbour matrix update
|
||||
virtual void initInterfaceMatrixUpdate
|
||||
|
||||
@ -25,10 +25,10 @@ License
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef processorFaPatchFields_H
|
||||
#define processorFaPatchFields_H
|
||||
#ifndef Foam_processorFaPatchFields_H
|
||||
#define Foam_processorFaPatchFields_H
|
||||
|
||||
#include "processorFaPatchScalarField.H"
|
||||
#include "processorFaPatchField.H"
|
||||
#include "fieldTypes.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2016-2017 Wikki Ltd
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef processorFaPatchFieldsFwd_H
|
||||
#define processorFaPatchFieldsFwd_H
|
||||
|
||||
#include "fieldTypes.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class Type> class processorFaPatchField;
|
||||
|
||||
makeFaPatchTypeFieldTypedefs(processor)
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,100 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2016-2017 Wikki Ltd
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "processorFaPatchScalarField.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<>
|
||||
void Foam::processorFaPatchField<Foam::scalar>::transformCoupleField
|
||||
(
|
||||
solveScalarField& f,
|
||||
const direction cmpt
|
||||
) const
|
||||
{}
|
||||
|
||||
|
||||
template<>
|
||||
void Foam::processorFaPatchField<Foam::scalar>::initInterfaceMatrixUpdate
|
||||
(
|
||||
solveScalarField& result,
|
||||
const bool add,
|
||||
const lduAddressing& lduAddr,
|
||||
const label patchId,
|
||||
const solveScalarField& psiInternal,
|
||||
const scalarField& coeffs,
|
||||
const direction,
|
||||
const Pstream::commsTypes commsType
|
||||
) const
|
||||
{
|
||||
procPatch_.send
|
||||
(
|
||||
commsType,
|
||||
patch().patchInternalField(psiInternal)()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
template<>
|
||||
void Foam::processorFaPatchField<Foam::scalar>::updateInterfaceMatrix
|
||||
(
|
||||
solveScalarField& result,
|
||||
const bool add,
|
||||
const lduAddressing& lduAddr,
|
||||
const label patchId,
|
||||
const solveScalarField&,
|
||||
const scalarField& coeffs,
|
||||
const direction,
|
||||
const Pstream::commsTypes commsType
|
||||
) const
|
||||
{
|
||||
solveScalarField pnf
|
||||
(
|
||||
procPatch_.receive<solveScalar>(commsType, this->size())()
|
||||
);
|
||||
|
||||
const labelUList& edgeFaces = patch().edgeFaces();
|
||||
|
||||
if (add)
|
||||
{
|
||||
forAll(edgeFaces, facei)
|
||||
{
|
||||
result[edgeFaces[facei]] -= coeffs[facei]*pnf[facei];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
forAll(edgeFaces, facei)
|
||||
{
|
||||
result[edgeFaces[facei]] -= coeffs[facei]*pnf[facei];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,86 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2016-2017 Wikki Ltd
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef processorFaPatchScalarField_H
|
||||
#define processorFaPatchScalarField_H
|
||||
|
||||
#include "processorFaPatchField.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<>
|
||||
void processorFaPatchField<scalar>::transformCoupleField
|
||||
(
|
||||
solveScalarField& f,
|
||||
const direction cmpt
|
||||
) const;
|
||||
|
||||
|
||||
template<>
|
||||
void processorFaPatchField<scalar>::initInterfaceMatrixUpdate
|
||||
(
|
||||
solveScalarField& result,
|
||||
const bool add,
|
||||
const lduAddressing& lduAddr,
|
||||
const label patchId,
|
||||
const solveScalarField&,
|
||||
const scalarField& coeffs,
|
||||
const direction,
|
||||
const Pstream::commsTypes commsType
|
||||
) const;
|
||||
|
||||
|
||||
template<>
|
||||
void processorFaPatchField<scalar>::updateInterfaceMatrix
|
||||
(
|
||||
solveScalarField& result,
|
||||
const bool add,
|
||||
const lduAddressing& lduAddr,
|
||||
const label patchId,
|
||||
const solveScalarField&,
|
||||
const scalarField& coeffs,
|
||||
const direction,
|
||||
const Pstream::commsTypes commsType
|
||||
) const;
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -161,38 +161,38 @@ Foam::turbulentDigitalFilterInletFvPatchVectorField::indexPairs()
|
||||
|
||||
void Foam::turbulentDigitalFilterInletFvPatchVectorField::checkR() const
|
||||
{
|
||||
const vectorField& faceCentres = this->patch().patch().faceCentres();
|
||||
label badFacei = -1;
|
||||
|
||||
forAll(R_, facei)
|
||||
{
|
||||
if (R_[facei].xx() <= 0)
|
||||
{
|
||||
badFacei = facei;
|
||||
FatalErrorInFunction
|
||||
<< "Reynolds stress tensor component Rxx cannot be negative"
|
||||
<< " or zero, where Rxx = " << R_[facei].xx()
|
||||
<< " at the face centre = " << faceCentres[facei]
|
||||
<< exit(FatalError);
|
||||
<< " or zero, where Rxx = " << R_[facei].xx();
|
||||
break;
|
||||
}
|
||||
|
||||
if (R_[facei].yy() < 0 || R_[facei].zz() < 0)
|
||||
{
|
||||
badFacei = facei;
|
||||
FatalErrorInFunction
|
||||
<< "Reynolds stress tensor components Ryy or Rzz cannot be"
|
||||
<< " negative where Ryy = " << R_[facei].yy()
|
||||
<< ", and Rzz = " << R_[facei].zz()
|
||||
<< " at the face centre = " << faceCentres[facei]
|
||||
<< exit(FatalError);
|
||||
<< ", and Rzz = " << R_[facei].zz();
|
||||
break;
|
||||
}
|
||||
|
||||
const scalar x0 = R_[facei].xx()*R_[facei].yy() - sqr(R_[facei].xy());
|
||||
|
||||
if (x0 <= 0)
|
||||
{
|
||||
badFacei = facei;
|
||||
FatalErrorInFunction
|
||||
<< "Reynolds stress tensor component group, Rxx*Ryy - Rxy^2"
|
||||
<< " cannot be negative or zero"
|
||||
<< " at the face centre = " << faceCentres[facei]
|
||||
<< exit(FatalError);
|
||||
<< " cannot be negative or zero";
|
||||
break;
|
||||
}
|
||||
|
||||
const scalar x1 = R_[facei].zz() - sqr(R_[facei].xz())/R_[facei].xx();
|
||||
@ -202,15 +202,23 @@ void Foam::turbulentDigitalFilterInletFvPatchVectorField::checkR() const
|
||||
|
||||
if (x3 < 0)
|
||||
{
|
||||
badFacei = facei;
|
||||
FatalErrorInFunction
|
||||
<< "Reynolds stress tensor component group, "
|
||||
<< "Rzz - Rxz^2/Rxx - (Ryz - Rxy*Rxz/(Rxx*(Rxx*Ryy - Rxy^2)))^2"
|
||||
<< " cannot be negative at the face centre = "
|
||||
<< faceCentres[facei]
|
||||
<< exit(FatalError);
|
||||
<< " cannot be negative";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (badFacei >= 0)
|
||||
{
|
||||
FatalError
|
||||
<< " at the face centre = "
|
||||
<< this->patch().patch().faceCentres()[badFacei]
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
Info<< " # Reynolds stress tensor on patch is consistent #" << endl;
|
||||
}
|
||||
|
||||
|
||||
@ -393,7 +393,7 @@ bool Foam::functionObjects::fvExpressionField::read(const dictionary& dict)
|
||||
}
|
||||
|
||||
autowrite_ = dict.getOrDefault("autowrite", false);
|
||||
store_ = dict.getOrDefault("autowrite", true);
|
||||
store_ = dict.getOrDefault("store", true);
|
||||
|
||||
// "dimensions" is optional
|
||||
dimensions_.clear();
|
||||
|
||||
@ -79,7 +79,7 @@ void Foam::functionObjects::nearWallFields::calcAddressing()
|
||||
const vectorField nf(patch.nf());
|
||||
const vectorField faceCellCentres(patch.patch().faceCellCentres());
|
||||
const labelUList& faceCells = patch.patch().faceCells();
|
||||
const vectorField::subField& faceCentres = patch.patch().faceCentres();
|
||||
const vectorField::subField faceCentres = patch.patch().faceCentres();
|
||||
|
||||
forAll(patch, patchFacei)
|
||||
{
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2015-2019 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -67,15 +67,20 @@ void Foam::functionObjects::timeActivatedFileUpdate::updateFile()
|
||||
|
||||
if (i > lastIndex_)
|
||||
{
|
||||
Log << nl << type() << ": copying file" << nl << timeVsFile_[i].second()
|
||||
<< nl << "to:" << nl << fileToUpdate_ << nl << endl;
|
||||
const fileName& srcFile = timeVsFile_[i].second();
|
||||
|
||||
// Report case-relative path for information
|
||||
Log << nl << type() << ": copying file" << nl
|
||||
<< "from: " << time_.relativePath(srcFile, true) << nl
|
||||
<< "to : " << time_.relativePath(fileToUpdate_, true) << nl
|
||||
<< endl;
|
||||
|
||||
if (Pstream::master() || time_.distributed())
|
||||
{
|
||||
// Slaves do not copy if running non-distributed
|
||||
fileName destFile(fileToUpdate_ + Foam::name(pid()));
|
||||
cp(timeVsFile_[i].second(), destFile);
|
||||
mv(destFile, fileToUpdate_);
|
||||
fileName tmpFile(fileToUpdate_ + Foam::name(pid()));
|
||||
Foam::cp(srcFile, tmpFile);
|
||||
Foam::mv(tmpFile, fileToUpdate_);
|
||||
}
|
||||
lastIndex_ = i;
|
||||
modified_ = true;
|
||||
@ -122,16 +127,23 @@ bool Foam::functionObjects::timeActivatedFileUpdate::read
|
||||
|
||||
forAll(timeVsFile_, i)
|
||||
{
|
||||
timeVsFile_[i].second() = timeVsFile_[i].second().expand();
|
||||
if (!isFile(timeVsFile_[i].second()))
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "File: " << timeVsFile_[i].second() << " not found"
|
||||
<< nl << exit(FatalError);
|
||||
}
|
||||
timeVsFile_[i].second().expand();
|
||||
const fileName& srcFile = timeVsFile_[i].second();
|
||||
|
||||
// Report case-relative path for information
|
||||
Info<< " " << timeVsFile_[i].first() << tab
|
||||
<< timeVsFile_[i].second() << endl;
|
||||
<< time_.relativePath(srcFile, true) << endl;
|
||||
|
||||
if (Pstream::master() || time_.distributed())
|
||||
{
|
||||
if (!Foam::isFile(srcFile))
|
||||
{
|
||||
// Report full path on error
|
||||
FatalErrorInFunction
|
||||
<< "File not found: " << srcFile << endl
|
||||
<< exit(FatalError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Copy starting files
|
||||
|
||||
@ -62,7 +62,8 @@ License
|
||||
makeCloudFunctionObjectType(PatchPostProcessing, CloudType); \
|
||||
makeCloudFunctionObjectType(PatchParticleHistogram, CloudType); \
|
||||
makeCloudFunctionObjectType(RemoveParcels, CloudType); \
|
||||
makeCloudFunctionObjectType(VoidFraction, CloudType);
|
||||
makeCloudFunctionObjectType(VoidFraction, CloudType); \
|
||||
makeCloudFunctionObjectType(KinematicReynoldsNumber, CloudType);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -51,7 +51,7 @@ Description
|
||||
Operand | Type | Location
|
||||
input | - | -
|
||||
output file | - | -
|
||||
output field | scalarField | \<time\>/lagrangian/\<cloud\>/kinematicRe
|
||||
output field | scalarField | \<time\>/lagrangian/\<cloud\>/Re
|
||||
\endtable
|
||||
|
||||
Usage
|
||||
@ -62,15 +62,15 @@ Usage
|
||||
KinematicReynoldsNumber1
|
||||
{
|
||||
// Mandatory entries
|
||||
type KinematicReynoldsNumber;
|
||||
type ReynoldsNumber;
|
||||
}
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
type | Type name: KinematicReynoldsNumber | word | yes | -
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
type | Type name: ReynoldsNumber | word | yes | -
|
||||
\endtable
|
||||
|
||||
See also
|
||||
|
||||
@ -51,7 +51,7 @@ Description
|
||||
Operand | Type | Location
|
||||
input | - | -
|
||||
output file | - | -
|
||||
output field | scalarField | \<time\>/lagrangian/\<cloud\>/thermoRe
|
||||
output field | scalarField | \<time\>/lagrangian/\<cloud\>/Re
|
||||
\endtable
|
||||
|
||||
Usage
|
||||
@ -62,22 +62,22 @@ Usage
|
||||
ThermoReynoldsNumber1
|
||||
{
|
||||
// Mandatory entries
|
||||
type ThermoReynoldsNumber;
|
||||
type ReynoldsNumber;
|
||||
}
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
type | Type name: ThermoReynoldsNumber | word | yes | -
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
type | Type name: ReynoldsNumber | word | yes | -
|
||||
\endtable
|
||||
|
||||
Note
|
||||
- Normalisation factors \c rhoc and \c muc are based on temperature
|
||||
dependent values calculated inside the film surrounding the particle
|
||||
rather than freestream values; therefore, \c ThermoReynoldsNumber should not
|
||||
be expected to operate with kinematic (non-thermo) applications.
|
||||
dependent values calculated inside the film surrounding the particle
|
||||
rather than freestream values; therefore, the thermo \c ReynoldsNumber
|
||||
should not be expected to operate with kinematic (non-thermo) applications.
|
||||
|
||||
See also
|
||||
- Foam::KinematicReynoldsNumber
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2015-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -159,7 +159,7 @@ Foam::scalar Foam::ManualInjection<CloudType>::timeEnd() const
|
||||
{
|
||||
// Injection is instantaneous - but allow for a finite interval to
|
||||
// avoid numerical issues when interval is zero
|
||||
return ROOTVSMALL;
|
||||
return this->SOI_ + SMALL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -62,6 +62,53 @@ Foam::ThermoSurfaceFilm<CloudType>::ThermoSurfaceFilm
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
template<class filmType>
|
||||
void Foam::ThermoSurfaceFilm<CloudType>::absorbInteraction
|
||||
(
|
||||
filmType& film,
|
||||
const parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
const scalar mass,
|
||||
bool& keepParticle
|
||||
)
|
||||
{
|
||||
DebugInfo<< "Parcel " << p.origId() << " absorbInteraction" << endl;
|
||||
|
||||
// Patch face normal
|
||||
const vector& nf = pp.faceNormals()[facei];
|
||||
|
||||
// Patch velocity
|
||||
const vector& Up = this->owner().U().boundaryField()[pp.index()][facei];
|
||||
|
||||
// Relative parcel velocity
|
||||
const vector Urel(p.U() - Up);
|
||||
|
||||
// Parcel normal velocity
|
||||
const vector Un(nf*(Urel & nf));
|
||||
|
||||
// Parcel tangential velocity
|
||||
const vector Ut(Urel - Un);
|
||||
|
||||
film.addSources
|
||||
(
|
||||
pp.index(),
|
||||
facei,
|
||||
mass, // mass
|
||||
mass*Ut, // tangential momentum
|
||||
mass*mag(Un), // impingement pressure
|
||||
mass*p.hs() // energy
|
||||
);
|
||||
|
||||
this->nParcelsTransferred()++;
|
||||
|
||||
this->totalMassTransferred() += mass;
|
||||
|
||||
keepParticle = false;
|
||||
}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
bool Foam::ThermoSurfaceFilm<CloudType>::transferParcel
|
||||
(
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
Copyright (C) 2021-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -141,6 +141,21 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
// Interaction models
|
||||
|
||||
//- Absorb parcel into film
|
||||
template<class filmType>
|
||||
void absorbInteraction
|
||||
(
|
||||
filmType&,
|
||||
const parcelType& p,
|
||||
const polyPatch& pp,
|
||||
const label facei,
|
||||
const scalar mass,
|
||||
bool& keepParticle
|
||||
);
|
||||
|
||||
|
||||
// Evaluation
|
||||
|
||||
//- Transfer parcel from cloud to surface film
|
||||
|
||||
@ -294,6 +294,7 @@ void Foam::SprayParcel<ParcelType>::calcBreakup
|
||||
// Add child parcel as copy of parent
|
||||
SprayParcel<ParcelType>* child = new SprayParcel<ParcelType>(*this);
|
||||
child->origId() = this->getNewParticleID();
|
||||
child->origProc() = Pstream::myProcNo();
|
||||
child->d() = dChild;
|
||||
child->d0() = dChild;
|
||||
const scalar massChild = child->mass();
|
||||
|
||||
@ -37,7 +37,7 @@ Description
|
||||
Typical use might be to e.g. average face centres to points on a patch
|
||||
|
||||
const labelListList& pointFaces = pp.pointFaces();
|
||||
const pointField& faceCentres = pp.faceCentres();
|
||||
const vectorField::subField faceCentres = pp.faceCentres();
|
||||
|
||||
Field<weightedPosition> avgBoundary(pointFaces.size());
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2015-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2020,2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -476,4 +476,16 @@ bool Foam::advancingFrontAMI::calculate
|
||||
}
|
||||
|
||||
|
||||
void Foam::advancingFrontAMI::write(Ostream& os) const
|
||||
{
|
||||
AMIInterpolation::write(os);
|
||||
os.writeEntryIfDifferent<word>
|
||||
(
|
||||
"triMode",
|
||||
faceAreaIntersect::triangulationModeNames_[faceAreaIntersect::tmMesh],
|
||||
faceAreaIntersect::triangulationModeNames_[triMode_]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -252,6 +252,12 @@ public:
|
||||
//- Labels of faces that are not overlapped by any target faces
|
||||
// Note: this should be empty for correct functioning
|
||||
inline const labelList& srcNonOverlap() const;
|
||||
|
||||
|
||||
// I-O
|
||||
|
||||
//- Write
|
||||
virtual void write(Ostream& os) const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020,2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -520,6 +520,7 @@ bool Foam::faceAreaWeightAMI2D::calculate
|
||||
void Foam::faceAreaWeightAMI2D::write(Ostream& os) const
|
||||
{
|
||||
advancingFrontAMI::write(os);
|
||||
os.writeEntryIfDifferent<scalar>("Cbb", 0.1, Cbb_);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020,2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -405,4 +405,11 @@ bool Foam::nearestFaceAMI::calculate
|
||||
}
|
||||
|
||||
|
||||
void Foam::nearestFaceAMI::write(Ostream& os) const
|
||||
{
|
||||
AMIInterpolation::write(os);
|
||||
os.writeEntryIfDifferent<scalar>("maxDistance2", GREAT, maxDistance2_);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -155,6 +155,9 @@ public:
|
||||
const primitivePatch& tgtPatch,
|
||||
const autoPtr<searchableSurface>& surfPtr = nullptr
|
||||
);
|
||||
|
||||
//- Write
|
||||
virtual void write(Ostream& os) const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -155,7 +155,7 @@ bool Foam::vtk::writePointSet
|
||||
|
||||
if (parallel)
|
||||
{
|
||||
vtk::writeListParallel(format(), mesh.points(), pointLabels);
|
||||
vtk::writeListParallel(format.ref(), mesh.points(), pointLabels);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -1845,7 +1845,7 @@ Foam::distributedTriSurfaceMesh::independentlyDistributedBbs
|
||||
// //globalBorderTris.gather
|
||||
// //(
|
||||
// // UPstream::worldComm,
|
||||
// // UPstream::procID(Pstream::worldComm),
|
||||
// // UPstream::allProcs(UPstream::worldComm),
|
||||
// // globalBorderCentres
|
||||
// //);
|
||||
// pointField globalBorderCentres(allCentres);
|
||||
@ -1893,7 +1893,7 @@ Foam::distributedTriSurfaceMesh::independentlyDistributedBbs
|
||||
// //globalBorderTris.scatter
|
||||
// //(
|
||||
// // UPstream::worldComm,
|
||||
// // UPstream::procID(Pstream::worldComm),
|
||||
// // UPstream::allProcs(UPstream::worldComm),
|
||||
// // isMasterPoint
|
||||
// //);
|
||||
// //boolList isMasterBorder(s.size(), false);
|
||||
@ -1990,7 +1990,7 @@ Foam::distributedTriSurfaceMesh::independentlyDistributedBbs
|
||||
globalTris().gather
|
||||
(
|
||||
UPstream::worldComm,
|
||||
UPstream::procID(Pstream::worldComm),
|
||||
UPstream::allProcs(UPstream::worldComm),
|
||||
allCentres
|
||||
);
|
||||
}
|
||||
@ -2040,7 +2040,7 @@ Foam::distributedTriSurfaceMesh::independentlyDistributedBbs
|
||||
globalTris().scatter
|
||||
(
|
||||
UPstream::worldComm,
|
||||
UPstream::procID(Pstream::worldComm),
|
||||
UPstream::allProcs(UPstream::worldComm),
|
||||
allDistribution,
|
||||
distribution
|
||||
);
|
||||
|
||||
@ -5,6 +5,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
-ldynamicMesh \
|
||||
-ldecompositionMethods
|
||||
|
||||
@ -843,15 +843,15 @@ Foam::meshToMesh::mapTgtToSrc
|
||||
label srcPatchi = srcPatchID_[i];
|
||||
label tgtPatchi = tgtPatchID_[i];
|
||||
|
||||
if (!srcPatchFields.set(tgtPatchi))
|
||||
if (!srcPatchFields.set(srcPatchi))
|
||||
{
|
||||
srcPatchFields.set
|
||||
(
|
||||
srcPatchi,
|
||||
fvPatchField<Type>::New
|
||||
(
|
||||
tgtBfld[srcPatchi],
|
||||
srcMesh.boundary()[tgtPatchi],
|
||||
tgtBfld[tgtPatchi],
|
||||
srcMesh.boundary()[srcPatchi],
|
||||
DimensionedField<Type, volMesh>::null(),
|
||||
directFvPatchFieldMapper
|
||||
(
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -107,7 +107,7 @@ void Foam::polySurface::storeField
|
||||
|
||||
if (dimfield)
|
||||
{
|
||||
dimfield->dimensions() = dims;
|
||||
dimfield->dimensions().reset(dims); // Dimensions may have changed
|
||||
dimfield->field() = values;
|
||||
}
|
||||
else
|
||||
@ -148,7 +148,7 @@ void Foam::polySurface::storeField
|
||||
|
||||
if (dimfield)
|
||||
{
|
||||
dimfield->dimensions() = dims;
|
||||
dimfield->dimensions().reset(dims); // Dimensions may have changed
|
||||
dimfield->field() = std::move(values);
|
||||
}
|
||||
else
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2022 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -45,7 +45,7 @@ void Foam::surfMesh::storeField
|
||||
|
||||
if (dimfield)
|
||||
{
|
||||
dimfield->dimensions() = dims;
|
||||
dimfield->dimensions().reset(dims); // Dimensions may have changed
|
||||
dimfield->field() = values;
|
||||
}
|
||||
else
|
||||
@ -85,7 +85,7 @@ void Foam::surfMesh::storeField
|
||||
|
||||
if (dimfield)
|
||||
{
|
||||
dimfield->dimensions() = dims;
|
||||
dimfield->dimensions().reset(dims); // Dimensions may have changed
|
||||
dimfield->field() = std::move(values);
|
||||
}
|
||||
else
|
||||
|
||||
@ -436,7 +436,15 @@ Foam::autoPtr<Foam::basicThermo> Foam::basicThermo::New
|
||||
|
||||
Foam::basicThermo::~basicThermo()
|
||||
{
|
||||
db().checkOut("p");
|
||||
if (pOwner_)
|
||||
{
|
||||
db().checkOut(p_.name());
|
||||
}
|
||||
|
||||
if (TOwner_)
|
||||
{
|
||||
db().checkOut(T_.name());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -140,17 +140,6 @@ Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
|
||||
|
||||
if (mesh_.nSolutionD() == 2)
|
||||
{
|
||||
// Omega for 2D
|
||||
omega_ = deltaPhi;
|
||||
|
||||
// dAve for 2D
|
||||
dAve_ = vector
|
||||
(
|
||||
2*sinPhi*Foam::sin(0.5*deltaPhi),
|
||||
2*cosPhi*Foam::sin(0.5*deltaPhi),
|
||||
0
|
||||
);
|
||||
|
||||
vector meshDir(Zero);
|
||||
if (dom_.meshOrientation() != vector::zero)
|
||||
{
|
||||
@ -172,7 +161,6 @@ Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
|
||||
|
||||
dAve_ = coordRot & dAve_;
|
||||
d_ = coordRot & d_;
|
||||
|
||||
}
|
||||
else if (mesh_.nSolutionD() == 1)
|
||||
{
|
||||
@ -195,9 +183,6 @@ Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
|
||||
|
||||
dAve_ = (dAve_ & normal)*meshDir;
|
||||
d_ = (d_ & normal)*meshDir;
|
||||
|
||||
// Omega normalization for 1D
|
||||
omega_ /= 2;
|
||||
}
|
||||
|
||||
autoPtr<volScalarField> IDefaultPtr;
|
||||
|
||||
@ -136,7 +136,7 @@ void Foam::faceReflecting::initialise(const dictionary& coeffs)
|
||||
forAll(patches, patchI)
|
||||
{
|
||||
const polyPatch& pp = patches[patchI];
|
||||
const pointField& cf = pp.faceCentres();
|
||||
const vectorField::subField cf = pp.faceCentres();
|
||||
|
||||
if (!pp.coupled() && !isA<cyclicAMIPolyPatch>(pp))
|
||||
{
|
||||
|
||||
@ -155,7 +155,7 @@ void Foam::faceShading::calculate()
|
||||
forAll(patches, patchI)
|
||||
{
|
||||
const polyPatch& pp = patches[patchI];
|
||||
const pointField& cf = pp.faceCentres();
|
||||
const vectorField::subField cf = pp.faceCentres();
|
||||
|
||||
if (!pp.coupled() && !isA<cyclicAMIPolyPatch>(pp))
|
||||
{
|
||||
|
||||
@ -14,4 +14,5 @@ LIB_LIBS = \
|
||||
-lsolidSpecie \
|
||||
-lfluidThermophysicalModels \
|
||||
-lreactionThermophysicalModels \
|
||||
-lthermophysicalProperties \
|
||||
-lcompressibleTransportModels
|
||||
|
||||
@ -14,6 +14,8 @@ relVelocity
|
||||
name relVelocity;
|
||||
libs ( utilityFunctionObjects );
|
||||
|
||||
writeControl writeTime;
|
||||
|
||||
coeffs
|
||||
{
|
||||
// User input (duplicate of constant/dynamicMeshDict)
|
||||
@ -72,7 +74,7 @@ relVelocity
|
||||
}
|
||||
#};
|
||||
|
||||
codeExecute // codeWrite
|
||||
codeWrite
|
||||
#{
|
||||
const dictionary& context = this->codeContext();
|
||||
|
||||
|
||||
@ -121,7 +121,12 @@ subModels
|
||||
|
||||
|
||||
cloudFunctions
|
||||
{}
|
||||
{
|
||||
ReynoldsNumber1
|
||||
{
|
||||
type ReynoldsNumber;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
Reference in New Issue
Block a user