Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
d7a4088c
Commit
d7a4088c
authored
May 29, 2017
by
Mark Olesen
Browse files
COMP: explicit handling of fallthrough cases
parent
8afc6cbd
Changes
5
Hide whitespace changes
Inline
Side-by-side
src/OSspecific/POSIX/POSIX.C
View file @
d7a4088c
...
...
@@ -943,7 +943,7 @@ bool Foam::mvBak(const fileName& src, const std::string& ext)
}
}
// fall
-
through: nothing to do
// fallthrough: nothing to do
return
false
;
}
...
...
src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.C
View file @
d7a4088c
...
...
@@ -123,10 +123,10 @@ Type Foam::interpolation2DTable<Type>::interpolateValue
const
scalar
lookupValue
)
const
{
label
n
=
data
.
size
();
const
label
n
=
data
.
size
();
scalar
minLimit
=
data
.
first
().
first
();
scalar
maxLimit
=
data
.
last
().
first
();
const
scalar
minLimit
=
data
.
first
().
first
();
const
scalar
maxLimit
=
data
.
last
().
first
();
if
(
lookupValue
<
minLimit
)
{
...
...
@@ -147,7 +147,9 @@ Type Foam::interpolation2DTable<Type>::interpolateValue
<<
"bound ("
<<
minLimit
<<
")"
<<
nl
<<
" Continuing with the first entry"
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
return
data
.
first
().
second
();
break
;
}
case
interpolation2DTable
:
:
CLAMP
:
{
...
...
@@ -175,7 +177,9 @@ Type Foam::interpolation2DTable<Type>::interpolateValue
<<
"bound ("
<<
maxLimit
<<
")"
<<
nl
<<
" Continuing with the last entry"
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
return
data
.
last
().
second
();
break
;
}
case
interpolation2DTable
:
:
CLAMP
:
{
...
...
@@ -251,16 +255,19 @@ Foam::label Foam::interpolation2DTable<Type>::Xi
WarningInFunction
<<
"value ("
<<
valueX
<<
") out of bounds"
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
return
limitI
;
break
;
}
case
interpolation2DTable
:
:
CLAMP
:
{
return
limitI
;
break
;
}
default:
{
FatalErrorInFunction
<<
"Un
-
handled enumeration "
<<
boundsHandling_
<<
"Unhandled enumeration "
<<
boundsHandling_
<<
abort
(
FatalError
);
}
}
...
...
@@ -299,7 +306,7 @@ Type Foam::interpolation2DTable<Type>::operator()
)
const
{
// Considers all of the list in Y being equal
label
nX
=
this
->
size
();
const
label
nX
=
this
->
size
();
const
table
&
t
=
*
this
;
...
...
@@ -320,8 +327,8 @@ Type Foam::interpolation2DTable<Type>::operator()
// have 2-D data, interpolate
// find low and high indices in the X range that bound valueX
label
x0i
=
Xi
(
lessOp
<
scalar
>
(),
valueX
,
false
);
label
x1i
=
Xi
(
greaterOp
<
scalar
>
(),
valueX
,
true
);
const
label
x0i
=
Xi
(
lessOp
<
scalar
>
(),
valueX
,
false
);
const
label
x1i
=
Xi
(
greaterOp
<
scalar
>
(),
valueX
,
true
);
if
(
x0i
==
x1i
)
{
...
...
@@ -333,8 +340,8 @@ Type Foam::interpolation2DTable<Type>::operator()
Type
y1
(
interpolateValue
(
t
[
x1i
].
second
(),
valueY
));
// gradient in X
scalar
x0
=
t
[
x0i
].
first
();
scalar
x1
=
t
[
x1i
].
first
();
const
scalar
x0
=
t
[
x0i
].
first
();
const
scalar
x1
=
t
[
x1i
].
first
();
Type
mX
=
(
y1
-
y0
)
/
(
x1
-
x0
);
// interpolate
...
...
@@ -420,7 +427,7 @@ Foam::interpolation2DTable<Type>::outOfBounds
template
<
class
Type
>
void
Foam
::
interpolation2DTable
<
Type
>::
checkOrder
()
const
{
label
n
=
this
->
size
();
const
label
n
=
this
->
size
();
const
table
&
t
=
*
this
;
scalar
prevValue
=
t
[
0
].
first
();
...
...
@@ -445,10 +452,8 @@ void Foam::interpolation2DTable<Type>::checkOrder() const
template
<
class
Type
>
void
Foam
::
interpolation2DTable
<
Type
>::
write
(
Ostream
&
os
)
const
{
os
.
writeKeyword
(
"file"
)
<<
fileName_
<<
token
::
END_STATEMENT
<<
nl
;
os
.
writeKeyword
(
"outOfBounds"
)
<<
boundsHandlingToWord
(
boundsHandling_
)
<<
token
::
END_STATEMENT
<<
nl
;
os
.
writeEntry
(
"file"
,
fileName_
);
os
.
writeEntry
(
"outOfBounds"
,
boundsHandlingToWord
(
boundsHandling_
));
os
<<
*
this
;
}
...
...
src/OpenFOAM/interpolations/interpolation2DTable/interpolation2DTable.H
View file @
d7a4088c
...
...
@@ -66,7 +66,7 @@ public:
CLAMP
//!< Clamp value to the start/end value
};
//- C
c
onvenience typedef
//- Convenience typedef
typedef
List
<
Tuple2
<
scalar
,
List
<
Tuple2
<
scalar
,
Type
>>>>
table
;
...
...
@@ -156,7 +156,7 @@ public:
const
List
<
Tuple2
<
scalar
,
Type
>>&
operator
[](
const
label
)
const
;
//- Return an interpolated value
Type
operator
()(
const
scalar
,
const
scalar
)
const
;
Type
operator
()(
const
scalar
valueX
,
const
scalar
valueY
)
const
;
};
...
...
src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C
View file @
d7a4088c
...
...
@@ -205,8 +205,8 @@ Foam::interpolationTable<Type>::outOfBounds
template
<
class
Type
>
void
Foam
::
interpolationTable
<
Type
>::
check
()
const
{
label
n
=
this
->
size
();
scalar
prevValue
=
List
<
Tuple2
<
scalar
,
Type
>>::
operator
[](
0
).
first
();
const
label
n
=
this
->
size
();
scalar
prevValue
=
this
->
first
(
).
first
();
for
(
label
i
=
1
;
i
<
n
;
++
i
)
{
...
...
@@ -229,10 +229,8 @@ void Foam::interpolationTable<Type>::check() const
template
<
class
Type
>
void
Foam
::
interpolationTable
<
Type
>::
write
(
Ostream
&
os
)
const
{
os
.
writeKeyword
(
"file"
)
<<
fileName_
<<
token
::
END_STATEMENT
<<
nl
;
os
.
writeKeyword
(
"outOfBounds"
)
<<
boundsHandlingToWord
(
boundsHandling_
)
<<
token
::
END_STATEMENT
<<
nl
;
os
.
writeEntry
(
"file"
,
fileName_
);
os
.
writeEntry
(
"outOfBounds"
,
boundsHandlingToWord
(
boundsHandling_
));
if
(
reader_
.
valid
())
{
reader_
->
write
(
os
);
...
...
@@ -251,8 +249,8 @@ Type Foam::interpolationTable<Type>::rateOfChange(const scalar value) const
return
0
;
}
scalar
minLimit
=
List
<
Tuple2
<
scalar
,
Type
>>::
operator
[](
0
).
first
();
scalar
maxLimit
=
List
<
Tuple2
<
scalar
,
Type
>>::
operator
[](
n
-
1
).
first
();
const
scalar
minLimit
=
this
->
first
(
).
first
();
const
scalar
maxLimit
=
this
->
last
(
).
first
();
scalar
lookupValue
=
value
;
if
(
lookupValue
<
minLimit
)
...
...
@@ -272,7 +270,9 @@ Type Foam::interpolationTable<Type>::rateOfChange(const scalar value) const
<<
"value ("
<<
lookupValue
<<
") underflow"
<<
nl
<<
" Zero rate of change."
<<
endl
;
// fall-through to 'CLAMP'
// behaviour as per 'CLAMP'
return
0
;
break
;
}
case
interpolationTable
:
:
CLAMP
:
{
...
...
@@ -305,7 +305,9 @@ Type Foam::interpolationTable<Type>::rateOfChange(const scalar value) const
<<
"value ("
<<
lookupValue
<<
") overflow"
<<
nl
<<
" Zero rate of change."
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
return
0
;
break
;
}
case
interpolationTable
:
:
CLAMP
:
{
...
...
@@ -346,7 +348,7 @@ Type Foam::interpolationTable<Type>::rateOfChange(const scalar value) const
}
else
if
(
hi
==
0
)
{
// this treatment should
should
only occur under these conditions:
// this treatment should only occur under these conditions:
// -> the 'REPEAT' treatment
// -> (0 <= value <= minLimit)
// -> minLimit > 0
...
...
@@ -414,7 +416,9 @@ Foam::interpolationTable<Type>::operator[](const label i) const
<<
"index ("
<<
ii
<<
") underflow"
<<
nl
<<
" Continuing with the first entry"
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
ii
=
0
;
break
;
}
case
interpolationTable
:
:
CLAMP
:
{
...
...
@@ -448,7 +452,9 @@ Foam::interpolationTable<Type>::operator[](const label i) const
<<
"index ("
<<
ii
<<
") overflow"
<<
nl
<<
" Continuing with the last entry"
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
ii
=
n
-
1
;
break
;
}
case
interpolationTable
:
:
CLAMP
:
{
...
...
@@ -477,11 +483,11 @@ Type Foam::interpolationTable<Type>::operator()(const scalar value) const
if
(
n
<=
1
)
{
return
List
<
Tuple2
<
scalar
,
Type
>>::
operator
[](
0
).
second
();
return
this
->
first
(
).
second
();
}
scalar
minLimit
=
List
<
Tuple2
<
scalar
,
Type
>>::
operator
[](
0
).
first
();
scalar
maxLimit
=
List
<
Tuple2
<
scalar
,
Type
>>::
operator
[](
n
-
1
).
first
();
const
scalar
minLimit
=
this
->
first
(
).
first
();
const
scalar
maxLimit
=
this
->
last
(
).
first
();
scalar
lookupValue
=
value
;
if
(
lookupValue
<
minLimit
)
...
...
@@ -501,17 +507,19 @@ Type Foam::interpolationTable<Type>::operator()(const scalar value) const
<<
"value ("
<<
lookupValue
<<
") underflow"
<<
nl
<<
" Continuing with the first entry"
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
return
this
->
first
().
second
();
break
;
}
case
interpolationTable
:
:
CLAMP
:
{
return
List
<
Tuple2
<
scalar
,
Type
>>::
operator
[](
0
).
second
();
return
this
->
first
(
).
second
();
break
;
}
case
interpolationTable
:
:
REPEAT
:
{
// adjust lookupValue to >= minLimit
scalar
span
=
maxLimit
-
minLimit
;
const
scalar
span
=
maxLimit
-
minLimit
;
lookupValue
=
fmod
(
lookupValue
-
minLimit
,
span
)
+
minLimit
;
break
;
}
...
...
@@ -534,17 +542,19 @@ Type Foam::interpolationTable<Type>::operator()(const scalar value) const
<<
"value ("
<<
lookupValue
<<
") overflow"
<<
nl
<<
" Continuing with the last entry"
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
return
this
->
last
().
second
();
break
;
}
case
interpolationTable
:
:
CLAMP
:
{
return
List
<
Tuple2
<
scalar
,
Type
>>::
operator
[](
n
-
1
).
second
();
return
this
->
last
(
).
second
();
break
;
}
case
interpolationTable
:
:
REPEAT
:
{
// adjust lookupValue <= maxLimit
scalar
span
=
maxLimit
-
minLimit
;
const
scalar
span
=
maxLimit
-
minLimit
;
lookupValue
=
fmod
(
lookupValue
-
minLimit
,
span
)
+
minLimit
;
break
;
}
...
...
@@ -575,7 +585,7 @@ Type Foam::interpolationTable<Type>::operator()(const scalar value) const
}
else
if
(
hi
==
0
)
{
// this treatment should
should
only occur under these conditions:
// this treatment should only occur under these conditions:
// -> the 'REPEAT' treatment
// -> (0 <= value <= minLimit)
// -> minLimit > 0
...
...
src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C
View file @
d7a4088c
...
...
@@ -195,7 +195,7 @@ void Foam::Function1Types::TableBase<Type>::check() const
<<
nl
<<
exit
(
FatalError
);
}
label
n
=
table_
.
size
();
const
label
n
=
table_
.
size
();
scalar
prevValue
=
table_
[
0
].
first
();
for
(
label
i
=
1
;
i
<
n
;
++
i
)
...
...
@@ -221,7 +221,7 @@ bool Foam::Function1Types::TableBase<Type>::checkMinBounds
scalar
&
xDash
)
const
{
if
(
x
<
table_
[
0
]
.
first
())
if
(
x
<
table_
.
first
()
.
first
())
{
switch
(
boundsHandling_
)
{
...
...
@@ -238,19 +238,28 @@ bool Foam::Function1Types::TableBase<Type>::checkMinBounds
<<
"value ("
<<
x
<<
") underflow"
<<
nl
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
xDash
=
table_
.
first
().
first
();
return
true
;
break
;
}
case
CLAMP
:
{
xDash
=
table_
[
0
]
.
first
();
xDash
=
table_
.
first
()
.
first
();
return
true
;
break
;
}
case
REPEAT
:
{
// adjust x to >= minX
scalar
span
=
table_
.
last
().
first
()
-
table_
[
0
].
first
();
xDash
=
fmod
(
x
-
table_
[
0
].
first
(),
span
)
+
table_
[
0
].
first
();
const
scalar
span
=
table_
.
last
().
first
()
-
table_
.
first
().
first
();
xDash
=
(
fmod
(
x
-
table_
.
first
().
first
(),
span
)
+
table_
.
first
().
first
()
);
break
;
}
}
...
...
@@ -288,7 +297,10 @@ bool Foam::Function1Types::TableBase<Type>::checkMaxBounds
<<
"value ("
<<
x
<<
") overflow"
<<
nl
<<
endl
;
// fall-through to 'CLAMP'
// Behaviour as per 'CLAMP'
xDash
=
table_
.
last
().
first
();
return
true
;
break
;
}
case
CLAMP
:
{
...
...
@@ -299,8 +311,14 @@ bool Foam::Function1Types::TableBase<Type>::checkMaxBounds
case
REPEAT
:
{
// adjust x to >= minX
scalar
span
=
table_
.
last
().
first
()
-
table_
[
0
].
first
();
xDash
=
fmod
(
x
-
table_
[
0
].
first
(),
span
)
+
table_
[
0
].
first
();
const
scalar
span
=
table_
.
last
().
first
()
-
table_
.
first
().
first
();
xDash
=
(
fmod
(
x
-
table_
.
first
().
first
(),
span
)
+
table_
.
first
().
first
()
);
break
;
}
}
...
...
@@ -335,7 +353,7 @@ Type Foam::Function1Types::TableBase<Type>::value(const scalar x) const
if
(
checkMinBounds
(
x
,
xDash
))
{
return
table_
[
0
]
.
second
();
return
table_
.
first
()
.
second
();
}
if
(
checkMaxBounds
(
xDash
,
xDash
))
...
...
@@ -411,13 +429,11 @@ void Foam::Function1Types::TableBase<Type>::writeEntries(Ostream& os) const
{
if
(
boundsHandling_
!=
CLAMP
)
{
os
.
writeKeyword
(
"outOfBounds"
)
<<
boundsHandlingToWord
(
boundsHandling_
)
<<
token
::
END_STATEMENT
<<
nl
;
os
.
writeEntry
(
"outOfBounds"
,
boundsHandlingToWord
(
boundsHandling_
));
}
if
(
interpolationScheme_
!=
"linear"
)
{
os
.
writeKeyword
(
"interpolationScheme"
)
<<
interpolationScheme_
<<
token
::
END_STATEMENT
<<
nl
;
os
.
writeEntry
(
"interpolationScheme"
,
interpolationScheme_
);
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment