mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
execFlowFunctionObjects: Replaced with script providing instructions to use the '-postProcess' option
This commit is contained in:
@ -1,4 +0,0 @@
|
|||||||
execFlowFunctionObjects.C
|
|
||||||
|
|
||||||
EXE = $(FOAM_APPBIN)/execFlowFunctionObjects
|
|
||||||
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
EXE_INC = \
|
|
||||||
-I$(LIB_SRC)/transportModels \
|
|
||||||
-I$(LIB_SRC)/transportModels \
|
|
||||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
|
||||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
|
||||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
|
||||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
|
||||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
|
||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
|
||||||
-I$(LIB_SRC)/sampling/lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
|
||||||
-lturbulenceModels \
|
|
||||||
-lincompressibleTurbulenceModels \
|
|
||||||
-lcompressibleTurbulenceModels \
|
|
||||||
-lincompressibleTransportModels \
|
|
||||||
-lcompressibleTransportModels \
|
|
||||||
-lfluidThermophysicalModels \
|
|
||||||
-lspecie \
|
|
||||||
-lfiniteVolume \
|
|
||||||
-lfvOptions \
|
|
||||||
-lgenericPatchFields \
|
|
||||||
-lmeshTools \
|
|
||||||
-lsampling
|
|
||||||
@ -1,491 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
|
||||||
\\/ 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
|
|
||||||
execFlowFunctionObjects
|
|
||||||
|
|
||||||
Description
|
|
||||||
Execute the set of functionObjects specified in the selected dictionary
|
|
||||||
(which defaults to system/controlDict) for the selected set of times.
|
|
||||||
Alternative dictionaries should be placed in the system/ directory.
|
|
||||||
|
|
||||||
The flow (p-U) and optionally turbulence fields are available for the
|
|
||||||
function objects to operate on allowing forces and other related properties
|
|
||||||
to be calculated in addition to cutting planes etc.
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include "argList.H"
|
|
||||||
#include "timeSelector.H"
|
|
||||||
|
|
||||||
#include "volFields.H"
|
|
||||||
#include "surfaceFields.H"
|
|
||||||
#include "pointFields.H"
|
|
||||||
#include "uniformDimensionedFields.H"
|
|
||||||
#include "ReadFields.H"
|
|
||||||
#include "fvOptions.H"
|
|
||||||
|
|
||||||
#include "singlePhaseTransportModel.H"
|
|
||||||
#include "turbulentTransportModel.H"
|
|
||||||
#include "turbulentFluidThermoModel.H"
|
|
||||||
|
|
||||||
using namespace Foam;
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
// Read all fields of type. Returns names of fields read. Guarantees all
|
|
||||||
// processors to read fields in same order.
|
|
||||||
template<class GeoField>
|
|
||||||
wordList ReadUniformFields
|
|
||||||
(
|
|
||||||
const IOobjectList& objects,
|
|
||||||
PtrList<GeoField>& fields,
|
|
||||||
const bool syncPar
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// Search list of objects for wanted type
|
|
||||||
IOobjectList fieldObjects(objects.lookupClass(GeoField::typeName));
|
|
||||||
|
|
||||||
wordList masterNames(fieldObjects.names());
|
|
||||||
|
|
||||||
if (syncPar && Pstream::parRun())
|
|
||||||
{
|
|
||||||
// Check that I have the same fields as the master
|
|
||||||
const wordList localNames(masterNames);
|
|
||||||
Pstream::scatter(masterNames);
|
|
||||||
|
|
||||||
HashSet<word> localNamesSet(localNames);
|
|
||||||
|
|
||||||
forAll(masterNames, i)
|
|
||||||
{
|
|
||||||
const word& masterFld = masterNames[i];
|
|
||||||
|
|
||||||
HashSet<word>::iterator iter = localNamesSet.find(masterFld);
|
|
||||||
|
|
||||||
if (iter == localNamesSet.end())
|
|
||||||
{
|
|
||||||
FatalErrorInFunction
|
|
||||||
<< "Fields not synchronised across processors." << endl
|
|
||||||
<< "Master has fields " << masterNames
|
|
||||||
<< " processor " << Pstream::myProcNo()
|
|
||||||
<< " has fields " << localNames << exit(FatalError);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
localNamesSet.erase(iter);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
forAllConstIter(HashSet<word>, localNamesSet, iter)
|
|
||||||
{
|
|
||||||
FatalErrorInFunction
|
|
||||||
<< "Fields not synchronised across processors." << endl
|
|
||||||
<< "Master has fields " << masterNames
|
|
||||||
<< " processor " << Pstream::myProcNo()
|
|
||||||
<< " has fields " << localNames << exit(FatalError);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fields.setSize(masterNames.size());
|
|
||||||
|
|
||||||
// Make sure to read in masterNames order.
|
|
||||||
|
|
||||||
forAll(masterNames, i)
|
|
||||||
{
|
|
||||||
Info<< "Reading " << GeoField::typeName << ' ' << masterNames[i]
|
|
||||||
<< endl;
|
|
||||||
|
|
||||||
const IOobject& io = *fieldObjects[masterNames[i]];
|
|
||||||
|
|
||||||
fields.set
|
|
||||||
(
|
|
||||||
i,
|
|
||||||
new GeoField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
io.name(),
|
|
||||||
io.instance(),
|
|
||||||
io.local(),
|
|
||||||
io.db(),
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE,
|
|
||||||
io.registerObject()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return masterNames;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void calc
|
|
||||||
(
|
|
||||||
const argList& args,
|
|
||||||
const Time& runTime,
|
|
||||||
const fvMesh& mesh,
|
|
||||||
functionObjectList& fol
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (args.optionFound("noFlow"))
|
|
||||||
{
|
|
||||||
Info<< " Operating in no-flow mode; no models will be loaded."
|
|
||||||
<< " All vol, surface and point fields will be loaded." << endl;
|
|
||||||
|
|
||||||
// Read objects in time directory
|
|
||||||
IOobjectList objects(mesh, runTime.timeName());
|
|
||||||
|
|
||||||
// Read vol fields.
|
|
||||||
|
|
||||||
PtrList<volScalarField> vsFlds;
|
|
||||||
ReadFields(mesh, objects, vsFlds);
|
|
||||||
|
|
||||||
PtrList<volVectorField> vvFlds;
|
|
||||||
ReadFields(mesh, objects, vvFlds);
|
|
||||||
|
|
||||||
PtrList<volSphericalTensorField> vstFlds;
|
|
||||||
ReadFields(mesh, objects, vstFlds);
|
|
||||||
|
|
||||||
PtrList<volSymmTensorField> vsymtFlds;
|
|
||||||
ReadFields(mesh, objects, vsymtFlds);
|
|
||||||
|
|
||||||
PtrList<volTensorField> vtFlds;
|
|
||||||
ReadFields(mesh, objects, vtFlds);
|
|
||||||
|
|
||||||
// Read vol-internal fields.
|
|
||||||
|
|
||||||
PtrList<volScalarField::Internal> vsiFlds;
|
|
||||||
ReadFields(mesh, objects, vsiFlds);
|
|
||||||
|
|
||||||
PtrList<volVectorField::Internal> vviFlds;
|
|
||||||
ReadFields(mesh, objects, vviFlds);
|
|
||||||
|
|
||||||
PtrList<volSphericalTensorField::Internal> vstiFlds;
|
|
||||||
ReadFields(mesh, objects, vstiFlds);
|
|
||||||
|
|
||||||
PtrList<volSymmTensorField::Internal> vsymtiFlds;
|
|
||||||
ReadFields(mesh, objects, vsymtiFlds);
|
|
||||||
|
|
||||||
PtrList<volTensorField::Internal> vtiFlds;
|
|
||||||
ReadFields(mesh, objects, vtiFlds);
|
|
||||||
|
|
||||||
// Read surface fields.
|
|
||||||
|
|
||||||
PtrList<surfaceScalarField> ssFlds;
|
|
||||||
ReadFields(mesh, objects, ssFlds);
|
|
||||||
|
|
||||||
PtrList<surfaceVectorField> svFlds;
|
|
||||||
ReadFields(mesh, objects, svFlds);
|
|
||||||
|
|
||||||
PtrList<surfaceSphericalTensorField> sstFlds;
|
|
||||||
ReadFields(mesh, objects, sstFlds);
|
|
||||||
|
|
||||||
PtrList<surfaceSymmTensorField> ssymtFlds;
|
|
||||||
ReadFields(mesh, objects, ssymtFlds);
|
|
||||||
|
|
||||||
PtrList<surfaceTensorField> stFlds;
|
|
||||||
ReadFields(mesh, objects, stFlds);
|
|
||||||
|
|
||||||
// Read point fields.
|
|
||||||
const pointMesh& pMesh = pointMesh::New(mesh);
|
|
||||||
|
|
||||||
PtrList<pointScalarField> psFlds;
|
|
||||||
ReadFields(pMesh, objects, psFlds);
|
|
||||||
|
|
||||||
PtrList<pointVectorField> pvFlds;
|
|
||||||
ReadFields(pMesh, objects, pvFlds);
|
|
||||||
|
|
||||||
PtrList<pointSphericalTensorField> pstFlds;
|
|
||||||
ReadFields(pMesh, objects, pstFlds);
|
|
||||||
|
|
||||||
PtrList<pointSymmTensorField> psymtFlds;
|
|
||||||
ReadFields(pMesh, objects, psymtFlds);
|
|
||||||
|
|
||||||
PtrList<pointTensorField> ptFlds;
|
|
||||||
ReadFields(pMesh, objects, ptFlds);
|
|
||||||
|
|
||||||
// Read uniform dimensioned fields
|
|
||||||
IOobjectList constantObjects(mesh, runTime.constant());
|
|
||||||
|
|
||||||
PtrList<uniformDimensionedScalarField> usFlds;
|
|
||||||
ReadUniformFields(constantObjects, usFlds, true);
|
|
||||||
|
|
||||||
PtrList<uniformDimensionedVectorField> uvFlds;
|
|
||||||
ReadUniformFields(constantObjects, uvFlds, true);
|
|
||||||
|
|
||||||
PtrList<uniformDimensionedSphericalTensorField> ustFlds;
|
|
||||||
ReadUniformFields(constantObjects, ustFlds, true);
|
|
||||||
|
|
||||||
PtrList<uniformDimensionedSymmTensorField> usymmtFlds;
|
|
||||||
ReadUniformFields(constantObjects, usymmtFlds, true);
|
|
||||||
|
|
||||||
PtrList<uniformDimensionedTensorField> utFlds;
|
|
||||||
ReadUniformFields(constantObjects, utFlds, true);
|
|
||||||
|
|
||||||
fol.execute(true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Info<< " Reading phi" << endl;
|
|
||||||
surfaceScalarField phi
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"phi",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
|
|
||||||
Info<< " Reading U" << endl;
|
|
||||||
volVectorField U
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"U",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
|
|
||||||
Info<< " Reading p" << endl;
|
|
||||||
volScalarField p
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"p",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
|
|
||||||
if (phi.dimensions() == dimVolume/dimTime)
|
|
||||||
{
|
|
||||||
IOobject turbulencePropertiesHeader
|
|
||||||
(
|
|
||||||
"turbulenceProperties",
|
|
||||||
runTime.constant(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ_IF_MODIFIED,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
false
|
|
||||||
);
|
|
||||||
|
|
||||||
if (turbulencePropertiesHeader.headerOk())
|
|
||||||
{
|
|
||||||
singlePhaseTransportModel laminarTransport(U, phi);
|
|
||||||
|
|
||||||
autoPtr<incompressible::turbulenceModel> turbulenceModel
|
|
||||||
(
|
|
||||||
incompressible::turbulenceModel::New
|
|
||||||
(
|
|
||||||
U,
|
|
||||||
phi,
|
|
||||||
laminarTransport
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
fol.execute(true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
IOdictionary transportProperties
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"transportProperties",
|
|
||||||
runTime.constant(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ_IF_MODIFIED,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
fol.execute(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (phi.dimensions() == dimMass/dimTime)
|
|
||||||
{
|
|
||||||
autoPtr<fluidThermo> thermo(fluidThermo::New(mesh));
|
|
||||||
|
|
||||||
volScalarField rho
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"rho",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
thermo->rho()
|
|
||||||
);
|
|
||||||
|
|
||||||
IOobject turbulencePropertiesHeader
|
|
||||||
(
|
|
||||||
"turbulenceProperties",
|
|
||||||
runTime.constant(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ_IF_MODIFIED,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
false
|
|
||||||
);
|
|
||||||
|
|
||||||
if (turbulencePropertiesHeader.headerOk())
|
|
||||||
{
|
|
||||||
autoPtr<compressible::turbulenceModel> turbulenceModel
|
|
||||||
(
|
|
||||||
compressible::turbulenceModel::New
|
|
||||||
(
|
|
||||||
rho,
|
|
||||||
U,
|
|
||||||
phi,
|
|
||||||
thermo()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
fol.execute(true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
IOdictionary transportProperties
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"transportProperties",
|
|
||||||
runTime.constant(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ_IF_MODIFIED,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
fol.execute(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FatalErrorInFunction
|
|
||||||
<< "Incorrect dimensions of phi: " << phi.dimensions()
|
|
||||||
<< nl << exit(FatalError);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
autoPtr<functionObjectList> readFunctionObjects
|
|
||||||
(
|
|
||||||
const argList& args,
|
|
||||||
const Time& runTime,
|
|
||||||
dictionary& folDict
|
|
||||||
)
|
|
||||||
{
|
|
||||||
autoPtr<functionObjectList> folPtr;
|
|
||||||
|
|
||||||
if (args.optionFound("dict"))
|
|
||||||
{
|
|
||||||
folDict = IOdictionary
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
args["dict"],
|
|
||||||
runTime,
|
|
||||||
IOobject::MUST_READ_IF_MODIFIED
|
|
||||||
)
|
|
||||||
);
|
|
||||||
folPtr.reset(new functionObjectList(runTime, folDict));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
folPtr.reset(new functionObjectList(runTime));
|
|
||||||
}
|
|
||||||
folPtr->start();
|
|
||||||
|
|
||||||
return folPtr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
Foam::timeSelector::addOptions();
|
|
||||||
#include "addRegionOption.H"
|
|
||||||
Foam::argList::addBoolOption
|
|
||||||
(
|
|
||||||
"noFlow",
|
|
||||||
"suppress creating flow models"
|
|
||||||
);
|
|
||||||
#include "addDictOption.H"
|
|
||||||
|
|
||||||
#include "setRootCase.H"
|
|
||||||
#include "createTime.H"
|
|
||||||
Foam::instantList timeDirs = Foam::timeSelector::select0(runTime, args);
|
|
||||||
#include "createNamedMesh.H"
|
|
||||||
|
|
||||||
// Externally stored dictionary for functionObjectList
|
|
||||||
// if not constructed from runTime
|
|
||||||
dictionary folDict;
|
|
||||||
|
|
||||||
// Construct functionObjectList
|
|
||||||
autoPtr<functionObjectList> folPtr
|
|
||||||
(
|
|
||||||
readFunctionObjects(args, runTime, folDict)
|
|
||||||
);
|
|
||||||
|
|
||||||
forAll(timeDirs, timeI)
|
|
||||||
{
|
|
||||||
runTime.setTime(timeDirs[timeI], timeI);
|
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << endl;
|
|
||||||
|
|
||||||
if (mesh.readUpdate() != polyMesh::UNCHANGED)
|
|
||||||
{
|
|
||||||
// Update functionObjectList if mesh changes
|
|
||||||
folPtr = readFunctionObjects(args, runTime, folDict);
|
|
||||||
}
|
|
||||||
|
|
||||||
FatalIOError.throwExceptions();
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
calc(args, runTime, mesh, folPtr());
|
|
||||||
}
|
|
||||||
catch (IOerror& err)
|
|
||||||
{
|
|
||||||
Warning<< err << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
Info<< endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
40
bin/execFlowFunctionObjects
Executable file
40
bin/execFlowFunctionObjects
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# ========= |
|
||||||
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
# \\ / O peration |
|
||||||
|
# \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
|
||||||
|
# \\/ 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/>.
|
||||||
|
#
|
||||||
|
# Script
|
||||||
|
# execFlowFunctionObjects
|
||||||
|
#
|
||||||
|
# Description
|
||||||
|
# Replacement execFlowFunctionObjects to suggest using the "-postProcess"
|
||||||
|
# solver command-line option.
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
echo "execFlowFunctionObjects has been replaced by the \
|
||||||
|
'-postProcess' solver command-line option, e.g."
|
||||||
|
|
||||||
|
echo "simpleFoam -help -postProcess"
|
||||||
|
simpleFoam -help -postProcess
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
@ -30,7 +30,7 @@ Description
|
|||||||
OpenFOAM includes a collection of functionObjects selected by the user at
|
OpenFOAM includes a collection of functionObjects selected by the user at
|
||||||
run-time to manipulate the simulation and provide mechanisms to extract
|
run-time to manipulate the simulation and provide mechanisms to extract
|
||||||
field and derived quantities. Alternatively, the same actions can be
|
field and derived quantities. Alternatively, the same actions can be
|
||||||
executed after the simulation using the \c execFlowFunctionObjects utility.
|
executed after the simulation using the \c -postProcess command-line option.
|
||||||
|
|
||||||
\linebreak
|
\linebreak
|
||||||
\subsection secFunctionObjects Using function objects
|
\subsection secFunctionObjects Using function objects
|
||||||
|
|||||||
Reference in New Issue
Block a user