-
-
Notifications
You must be signed in to change notification settings - Fork 112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add channel-transport transport OpenFOAM #551
base: develop
Are you sure you want to change the base?
Changes from all commits
1d949e5
ea64e38
a1c142c
f2fb4f3
9a1e7b9
e363145
e103c9a
38f1424
14db9a1
a4d0899
900eef5
759e9e5
78e4769
3b001ee
c711cce
5602cfd
9d72498
7e6502b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
- Added OpenFOAM variant of the transport participant to the channel-transport tutorial. |
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I start feeling very uneasy that we duplicate this file everywhere. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is no uniform style in the tutorials repo. I don't see an easy solution for this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is a Let's discuss in #559. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
--- | ||
Language: Cpp | ||
# BasedOnStyle: LLVM | ||
# | ||
# Proposed clang-format-11 style for OpenFOAM, trying to follow the OpenFOAM style guide: | ||
# https://develop.openfoam.com/Development/openfoam/-/wikis/coding/style/style | ||
# Configuration developed for the OpenFOAM-preCICE adapter code: | ||
# https://github.com/precice/openfoam-adapter | ||
# Contribute to the discussion at the respective OpenFOAM issue: | ||
# https://develop.openfoam.com/Development/openfoam/-/issues/1634 | ||
# | ||
# Keep `public:` at the first indentation level | ||
AccessModifierOffset: -4 | ||
# Undocumented guideline: align arguments after an open bracket. | ||
AlignAfterOpenBracket: Align | ||
AlignConsecutiveMacros: false | ||
AlignConsecutiveAssignments: false | ||
AlignConsecutiveBitFields: false | ||
AlignConsecutiveDeclarations: false | ||
AlignEscapedNewlines: Right | ||
# Align operands after operators (+,*,<<) (see BreakBeforeBinaryOperators) | ||
AlignOperands: AlignAfterOperator | ||
AlignTrailingComments: true | ||
AllowAllArgumentsOnNextLine: true | ||
AllowAllConstructorInitializersOnNextLine: true | ||
AllowAllParametersOfDeclarationOnNextLine: true | ||
AllowShortEnumsOnASingleLine: true | ||
AllowShortBlocksOnASingleLine: Never | ||
AllowShortCaseLabelsOnASingleLine: false | ||
AllowShortFunctionsOnASingleLine: All | ||
AllowShortLambdasOnASingleLine: All | ||
AllowShortIfStatementsOnASingleLine: Always | ||
AllowShortLoopsOnASingleLine: false | ||
# Guideline: Splitting return type and function name | ||
# (this guideline is apparently not strictly followed in OpenFOAM) | ||
# AlwaysBreakAfterReturnType: All | ||
AlwaysBreakBeforeMultilineStrings: false | ||
AlwaysBreakTemplateDeclarations: Yes | ||
BinPackArguments: false | ||
BinPackParameters: false | ||
# Covered by "BreakBeforeBraces" | ||
BraceWrapping: | ||
AfterCaseLabel: true | ||
AfterClass: true | ||
AfterControlStatement: Always | ||
AfterEnum: true | ||
AfterFunction: true | ||
AfterNamespace: true | ||
AfterObjCDeclaration: true | ||
AfterStruct: true | ||
AfterUnion: true | ||
AfterExternBlock: true | ||
BeforeCatch: true | ||
BeforeElse: true | ||
BeforeLambdaBody: true | ||
BeforeWhile: true | ||
IndentBraces: true | ||
SplitEmptyFunction: true | ||
SplitEmptyRecord: true | ||
SplitEmptyNamespace: true | ||
# Guideline (almost): Splitting long lines at an = sign. Indent after split. | ||
# Guideline (almost): Splitting formulae over several lines. | ||
BreakBeforeBinaryOperators: NonAssignment | ||
# Always break before braces: if, for, functions, classes, etc. | ||
BreakBeforeBraces: Allman | ||
BreakBeforeInheritanceComma: false | ||
BreakInheritanceList: BeforeColon | ||
# Guideline (almost): Splitting logical tests over several lines. | ||
BreakBeforeTernaryOperators: true | ||
BreakConstructorInitializersBeforeComma: false | ||
# Undocumented guideline (almost): Have the initializer : in a new line. | ||
BreakConstructorInitializers: BeforeColon | ||
BreakStringLiterals: true | ||
# Here we could set the 80 charactes limit, but that would lead to more aggressive changes. | ||
ColumnLimit: 0 | ||
CommentPragmas: '^ IWYU pragma:' | ||
CompactNamespaces: false | ||
ConstructorInitializerAllOnOneLineOrOnePerLine: false | ||
ConstructorInitializerIndentWidth: 0 | ||
ContinuationIndentWidth: 4 | ||
Cpp11BracedListStyle: true | ||
DeriveLineEnding: true | ||
DerivePointerAlignment: false | ||
DisableFormat: false | ||
# Undocumented guideline: add line after "public:" etc (since clang-format 12) | ||
# EmptyLineAfterAccessModifier: Always | ||
ExperimentalAutoDetectBinPacking: false | ||
FixNamespaceComments: false | ||
# Guideline: Macro loops are like for loops, but without a space. | ||
ForEachMacros: | ||
- forAllIters | ||
- forAllConstIters | ||
- forAllReverseIters | ||
- forAllConstReverseIters | ||
- forAll | ||
- forAllReverse | ||
- forAllIter | ||
- forAllConstIter | ||
IncludeBlocks: Preserve | ||
IncludeCategories: | ||
- Regex: '^"(llvm|llvm-c|clang|clang-c)/' | ||
Priority: 2 | ||
SortPriority: 0 | ||
- Regex: '^(<|"(gtest|gmock|isl|json)/)' | ||
Priority: 3 | ||
SortPriority: 0 | ||
- Regex: '.*' | ||
Priority: 1 | ||
SortPriority: 0 | ||
IncludeIsMainRegex: '(Test)?$' | ||
IncludeIsMainSourceRegex: '' | ||
IndentCaseLabels: false | ||
IndentCaseBlocks: false | ||
IndentGotoLabels: true | ||
IndentPPDirectives: None | ||
IndentExternBlock: AfterExternBlock | ||
# Guideline: The normal indentation is 4 spaces per logical level. | ||
IndentWidth: 4 | ||
IndentWrappedFunctionNames: false | ||
InsertTrailingCommas: None | ||
KeepEmptyLinesAtTheStartOfBlocks: true | ||
MacroBlockBegin: '' | ||
MacroBlockEnd: '' | ||
# Required to not change code following the guidelines | ||
# "Leave two empty lines between sections" and | ||
# "Use two empty lines between functions" | ||
MaxEmptyLinesToKeep: 2 | ||
NamespaceIndentation: None | ||
PenaltyBreakAssignment: 2 | ||
PenaltyBreakBeforeFirstCallParameter: 19 | ||
PenaltyBreakComment: 300 | ||
PenaltyBreakFirstLessLess: 120 | ||
PenaltyBreakString: 1000 | ||
PenaltyBreakTemplateDeclaration: 10 | ||
PenaltyExcessCharacter: 1000000 | ||
PenaltyReturnTypeOnItsOwnLine: 60 | ||
PointerAlignment: Left | ||
ReflowComments: true | ||
# Do not change the order of include statements (could be catastrophic for OpenFOAM) | ||
SortIncludes: false | ||
SortUsingDeclarations: false | ||
SpaceAfterCStyleCast: false | ||
SpaceAfterLogicalNot: false | ||
# No "template <T>" (guideline already used, but not documented) | ||
SpaceAfterTemplateKeyword: false | ||
SpaceBeforeAssignmentOperators: true | ||
# No a{1} (no guideline) | ||
SpaceBeforeCpp11BracedList: true | ||
SpaceBeforeCtorInitializerColon: true | ||
SpaceBeforeInheritanceColon: true | ||
# Guideline: Spaces in "if ()", "for ()", but not "forAll ()". | ||
SpaceBeforeParens: ControlStatementsExceptForEachMacros | ||
# Guideline: Range-based for should have a space surrounding the ':'. | ||
SpaceBeforeRangeBasedForLoopColon: true | ||
SpaceInEmptyBlock: false | ||
SpaceInEmptyParentheses: false | ||
SpacesBeforeTrailingComments: 1 | ||
SpacesInAngles: false | ||
SpacesInConditionalStatement: false | ||
# No "arr[3] = [ 1, 2, 3 ]" (no guideline). | ||
SpacesInContainerLiterals: false | ||
SpacesInCStyleCastParentheses: false | ||
SpacesInParentheses: false | ||
SpacesInSquareBrackets: false | ||
SpaceBeforeSquareBrackets: false | ||
# Treat the code as C++11 or later | ||
Standard: Latest | ||
StatementMacros: | ||
TabWidth: 4 | ||
UseCRLF: false | ||
# Guideline: No tab characters - only use spaces for indentation. | ||
UseTab: Never | ||
WhitespaceSensitiveMacros: | ||
... | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should have these in the central gitignore: https://github.com/precice/tutorials/blob/develop/.gitignore The There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's the other way around.
Lines 41 to 43 in 3f253cc
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Interestingly, we don't have a But again, the |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Make/* | ||
!Make/files | ||
!Make/options | ||
0/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
FoamFile | ||
{ | ||
version 2.0; | ||
format ascii; | ||
class volScalarField; | ||
object T; | ||
} | ||
|
||
dimensions [0 0 0 1 0 0 0]; | ||
|
||
internalField uniform 0; | ||
|
||
boundaryField | ||
{ | ||
inlet | ||
{ | ||
type zeroGradient; | ||
} | ||
|
||
outlet | ||
{ | ||
type zeroGradient; | ||
} | ||
|
||
obstacle | ||
{ | ||
type zeroGradient; | ||
} | ||
|
||
upperWall | ||
{ | ||
type zeroGradient; | ||
} | ||
|
||
lowerWall | ||
{ | ||
type zeroGradient; | ||
} | ||
|
||
frontAndBack | ||
{ | ||
type empty; | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
FoamFile | ||
{ | ||
version 2.0; | ||
format ascii; | ||
class volVectorField; | ||
object U; | ||
} | ||
|
||
dimensions [0 1 -1 0 0 0 0]; | ||
internalField uniform (0 0 0); | ||
|
||
boundaryField | ||
{ | ||
inlet | ||
{ | ||
type fixedValue; | ||
value $internalField; | ||
} | ||
outlet | ||
{ | ||
type zeroGradient; | ||
} | ||
obstacle | ||
{ | ||
type noSlip; | ||
} | ||
upperWall | ||
{ | ||
type noSlip; | ||
} | ||
lowerWall | ||
{ | ||
type noSlip; | ||
} | ||
frontAndBack | ||
{ | ||
type empty; | ||
} | ||
} |
fsimonis marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
dynamicScalarTransportFoam.C | ||
|
||
EXE = $(FOAM_USER_APPBIN)/dynamicScalarTransportFoam |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
EXE_INC = \ | ||
-I$(LIB_SRC)/finiteVolume/lnInclude \ | ||
-I$(LIB_SRC)/meshTools/lnInclude \ | ||
-I$(LIB_SRC)/sampling/lnInclude | ||
|
||
EXE_LIBS = \ | ||
-lfiniteVolume \ | ||
-lfvOptions \ | ||
-lmeshTools \ | ||
-lsampling |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/usr/bin/env sh | ||
set -e -u | ||
|
||
. ../../tools/cleaning-tools.sh | ||
|
||
clean_openfoam . | ||
rm -rf ./0/ | ||
rm -rf ./Make/linux* |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
FoamFile | ||
{ | ||
version 2.0; | ||
format ascii; | ||
class dictionary; | ||
object transportProperties; | ||
} | ||
|
||
DT 0.1; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
Info << "Reading field T\n" | ||
<< endl; | ||
|
||
volScalarField T( | ||
IOobject( | ||
"T", | ||
runTime.timeName(), | ||
mesh, | ||
IOobject::MUST_READ, | ||
IOobject::AUTO_WRITE), | ||
mesh); | ||
|
||
Info << "Reading field U\n" | ||
<< endl; | ||
|
||
volVectorField U( | ||
IOobject( | ||
"U", | ||
runTime.timeName(), | ||
mesh, | ||
IOobject::MUST_READ, | ||
IOobject::AUTO_WRITE), | ||
mesh); | ||
|
||
Info << "Reading transportProperties\n" | ||
<< endl; | ||
|
||
IOdictionary transportProperties( | ||
IOobject( | ||
"transportProperties", | ||
runTime.constant(), | ||
mesh, | ||
IOobject::MUST_READ_IF_MODIFIED, | ||
IOobject::NO_WRITE)); | ||
|
||
Info << "Reading diffusivity DT\n" | ||
<< endl; | ||
|
||
dimensionedScalar DT("DT", dimViscosity, transportProperties); | ||
|
||
#include "createPhi.H" | ||
|
||
#include "createFvOptions.H" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency.
However: is this really intended, or a modelling issue?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a modelling issue that I couldn't find a solution for. I also ran out of people to ask for help
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should better understand this, and either add details, or fix it. I think right now it just looks wrong.