mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' into cvm
Conflicts: src/mesh/Allwmake
This commit is contained in:
3
applications/test/codeStream/Make/files
Normal file
3
applications/test/codeStream/Make/files
Normal file
@ -0,0 +1,3 @@
|
||||
Test-codeStream.C
|
||||
|
||||
EXE = $(FOAM_USER_APPBIN)/Test-codeStream
|
||||
1
applications/test/codeStream/Make/options
Normal file
1
applications/test/codeStream/Make/options
Normal file
@ -0,0 +1 @@
|
||||
EXE_INC =
|
||||
75
applications/test/codeStream/Test-codeStream.C
Normal file
75
applications/test/codeStream/Test-codeStream.C
Normal file
@ -0,0 +1,75 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 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/>.
|
||||
|
||||
Application
|
||||
Test-codeStream
|
||||
|
||||
Description
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "argList.H"
|
||||
#include "IOstreams.H"
|
||||
#include "IOobject.H"
|
||||
#include "IFstream.H"
|
||||
#include "dictionary.H"
|
||||
|
||||
using namespace Foam;
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// Main program:
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
argList::noParallel();
|
||||
argList::validArgs.insert("dict .. dictN");
|
||||
argList args(argc, argv, false, true);
|
||||
|
||||
Info<< nl
|
||||
<< "FOAM_CASE=" << getEnv("FOAM_CASE") << nl
|
||||
<< "FOAM_CASENAME=" << getEnv("FOAM_CASENAME") << nl
|
||||
<< endl;
|
||||
|
||||
if (args.size() <= 1)
|
||||
{
|
||||
Info<<"specify dictionaries to test\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
IOobject::writeDivider(Info);
|
||||
for (label argI=1; argI < args.size(); ++argI)
|
||||
{
|
||||
const string& dictFile = args[argI];
|
||||
IFstream is(dictFile);
|
||||
|
||||
dictionary dict(is);
|
||||
|
||||
Info<< dict << endl;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -10,37 +10,50 @@ FoamFile
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object testDictCalcError;
|
||||
object testDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
flowRatePerHour 720;
|
||||
// values from outer-scope
|
||||
begIter 0;
|
||||
endIter 200;
|
||||
|
||||
x 10;
|
||||
y 20;
|
||||
z t s v;
|
||||
// z #test{ // this
|
||||
// 123 - 456
|
||||
// // comments // are
|
||||
// /* stripped
|
||||
// * 10
|
||||
// * {}
|
||||
// */
|
||||
// + 1 /*100 */ 10
|
||||
// };
|
||||
writeInterval #codeStream
|
||||
{
|
||||
// values from inner-scope
|
||||
nDumps 5;
|
||||
|
||||
p this calculation #calc{
|
||||
1xxx1 + 2 + 10 * 15 +
|
||||
$x - $y
|
||||
// $x + $y
|
||||
}
|
||||
is done inplace;
|
||||
codeInclude
|
||||
#{
|
||||
#include "fvCFD.H"
|
||||
#};
|
||||
|
||||
codeOptions
|
||||
#{
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
#};
|
||||
|
||||
localCode
|
||||
#{
|
||||
static int someCode()
|
||||
{
|
||||
Info<<"called someCode\n";
|
||||
return 10;
|
||||
}
|
||||
#};
|
||||
|
||||
code
|
||||
#{
|
||||
label interval = ($endIter - $begIter);
|
||||
// label nDumps = $nDumps;
|
||||
label nDumps = someCode();
|
||||
os << (interval / nDumps);
|
||||
#};
|
||||
};
|
||||
|
||||
|
||||
flowRate #calc{ $flowRatePerHour / 3600};
|
||||
// play with cleanup
|
||||
#remove begIter
|
||||
|
||||
xxx yyy;
|
||||
foo 30;
|
||||
bar 15;
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -1,31 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: Any |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object testDictCalc;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
flowRatePerHour 720;
|
||||
|
||||
x 10;
|
||||
y 20;
|
||||
z t s v;
|
||||
p #calc{ 1 + 2 + 10 * 15 + $x - $y };
|
||||
|
||||
// this calculation is in-place, but does not work inside a string:
|
||||
flowRate "The flow rate " #calc{ $flowRatePerHour / 3600 } "kg/s";
|
||||
|
||||
// this is also okay
|
||||
x #calc{ $x * 1E-3 };
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -22,10 +22,10 @@ License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Application
|
||||
fileName
|
||||
Test-fileName
|
||||
|
||||
Description
|
||||
|
||||
Test some basic fileName functionality
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -52,9 +52,10 @@ int main()
|
||||
fileName pathName(wrdList);
|
||||
|
||||
Info<< "pathName = " << pathName << nl
|
||||
<< "pathName.name() = " << pathName.name() << nl
|
||||
<< "pathName.path() = " << pathName.path() << nl
|
||||
<< "pathName.ext() = " << pathName.ext() << endl;
|
||||
<< "pathName.name() = >" << pathName.name() << "<\n"
|
||||
<< "pathName.path() = " << pathName.path() << nl
|
||||
<< "pathName.ext() = >" << pathName.ext() << "<\n"
|
||||
<< "pathName.name(true) = >" << pathName.name(true) << "<\n";
|
||||
|
||||
Info<< "pathName.components() = " << pathName.components() << nl
|
||||
<< "pathName.component(2) = " << pathName.component(2) << nl
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -22,10 +22,13 @@ License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Description
|
||||
Test some string functionality
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "string.H"
|
||||
#include "stringOps.H"
|
||||
#include "dictionary.H"
|
||||
#include "IOstreams.H"
|
||||
|
||||
using namespace Foam;
|
||||
@ -35,11 +38,30 @@ using namespace Foam;
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
string test("$HOME kjhkjhkjh \" \\$HOME/tyetyery ${FOAM_RUN} \n ; hkjh ;$");
|
||||
string test
|
||||
(
|
||||
" $HOME kjhkjhkjh \" \\$HOME/tyetyery $; ${FOAM_RUN} \n $; hkjh;"
|
||||
" $(DONOTSUBST) some other <${USER}> with '${__UNKNOWN:-some default}'"
|
||||
" value "
|
||||
);
|
||||
|
||||
dictionary dict;
|
||||
dict.add("HOME", "myHome");
|
||||
|
||||
dictionary subDict;
|
||||
subDict.add("value1", "test1");
|
||||
subDict.add("value2", "test2");
|
||||
dict.add("FOAM_RUN", subDict);
|
||||
|
||||
|
||||
Info<< "string:" << test << nl << "hash:"
|
||||
<< unsigned(string::hash()(test)) << endl;
|
||||
|
||||
Info<<"trimLeft: " << stringOps::trimLeft(test) << endl;
|
||||
Info<<"trimRight: " << stringOps::trimRight(test) << endl;
|
||||
Info<<"trim: " << stringOps::trim(test) << endl;
|
||||
|
||||
|
||||
// test sub-strings via iterators
|
||||
string::const_iterator iter = test.end();
|
||||
string::const_iterator iter2 = test.end();
|
||||
@ -64,7 +86,10 @@ int main(int argc, char *argv[])
|
||||
Info<< string(test).replaceAll("kj", "zzz") << endl;
|
||||
Info<< string(test).replaceAll("kj", "z") << endl;
|
||||
|
||||
Info<< string(test).expand() << endl;
|
||||
Info<< "expanded: " << string(test).expand() << endl;
|
||||
|
||||
Info<<"dictionary-based substitution: " << dict << endl;
|
||||
Info<< "expand dict: " << stringOps::expand(test, dict) << endl;
|
||||
|
||||
string test2("~OpenFOAM/controlDict");
|
||||
Info<< test2 << " => " << test2.expand() << endl;
|
||||
|
||||
Reference in New Issue
Block a user