mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: add filtering version of dictionary copy
- can be useful when extracting portions of larger field files
This commit is contained in:
3
applications/test/dictionaryCopy/Make/files
Normal file
3
applications/test/dictionaryCopy/Make/files
Normal file
@ -0,0 +1,3 @@
|
||||
Test-dictionaryCopy.C
|
||||
|
||||
EXE = $(FOAM_USER_APPBIN)/Test-dictionaryCopy
|
||||
1
applications/test/dictionaryCopy/Make/options
Normal file
1
applications/test/dictionaryCopy/Make/options
Normal file
@ -0,0 +1 @@
|
||||
EXE_INC =
|
||||
98
applications/test/dictionaryCopy/Test-dictionaryCopy.C
Normal file
98
applications/test/dictionaryCopy/Test-dictionaryCopy.C
Normal file
@ -0,0 +1,98 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
|
||||
Application
|
||||
Test-dictionaryCopy
|
||||
|
||||
Description
|
||||
Test copying a dictionary with filtering
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "argList.H"
|
||||
#include "IOobject.H"
|
||||
#include "IOstreams.H"
|
||||
#include "IFstream.H"
|
||||
#include "dictionaryContent.H"
|
||||
|
||||
using namespace Foam;
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// Main program:
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
argList::noParallel();
|
||||
argList::addArgument("dict .. dictN");
|
||||
argList args(argc, argv, false, true);
|
||||
|
||||
const wordRes allow;
|
||||
const wordRes deny
|
||||
({
|
||||
wordRe("boundary.*", wordRe::REGEX)
|
||||
});
|
||||
|
||||
Info<< nl
|
||||
<< "allow: " << flatOutput(allow) << nl
|
||||
<< "deny: " << flatOutput(deny) << nl << nl;
|
||||
|
||||
if (args.size() <= 1)
|
||||
{
|
||||
const string dictFile = "testDictCopy";
|
||||
IFstream is(dictFile);
|
||||
|
||||
dictionary input(is);
|
||||
|
||||
dictionary copied
|
||||
(
|
||||
dictionaryContent::copyDict
|
||||
(
|
||||
input,
|
||||
allow,
|
||||
deny
|
||||
)
|
||||
);
|
||||
|
||||
IOobject::writeDivider(Info);
|
||||
input.writeEntry("input", Info);
|
||||
copied.writeEntry("copied", Info);
|
||||
}
|
||||
|
||||
for (label argi=1; argi < args.size(); ++argi)
|
||||
{
|
||||
const string& dictFile = args[argi];
|
||||
IFstream is(dictFile);
|
||||
|
||||
dictionary input(is);
|
||||
|
||||
dictionary copied
|
||||
(
|
||||
dictionaryContent::copyDict
|
||||
(
|
||||
input,
|
||||
allow,
|
||||
deny
|
||||
)
|
||||
);
|
||||
|
||||
IOobject::writeDivider(Info);
|
||||
input.writeEntry("input", Info);
|
||||
copied.writeEntry("copied", Info);
|
||||
}
|
||||
|
||||
IOobject::writeEndDivider(Info);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
27
applications/test/dictionaryCopy/testDictCopy
Normal file
27
applications/test/dictionaryCopy/testDictCopy
Normal file
@ -0,0 +1,27 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object testDictCopy;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 1 2 -2 0 0 0 0 ];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet_1 { type patch; }
|
||||
inlet_2 { type patch; }
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
Reference in New Issue
Block a user