mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' into develop
This commit is contained in:
@ -79,6 +79,7 @@ functionObjects/Allwmake $targetType $*
|
|||||||
|
|
||||||
wmake $targetType lumpedPointMotion
|
wmake $targetType lumpedPointMotion
|
||||||
wmake $targetType sixDoFRigidBodyMotion
|
wmake $targetType sixDoFRigidBodyMotion
|
||||||
|
wmake $targetType sixDoFRigidBodyState
|
||||||
wmake $targetType rigidBodyDynamics
|
wmake $targetType rigidBodyDynamics
|
||||||
wmake $targetType rigidBodyMeshMotion
|
wmake $targetType rigidBodyMeshMotion
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
\\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -647,7 +647,7 @@ Foam::sampledTriSurfaceMesh::sampledTriSurfaceMesh
|
|||||||
surfaceName,
|
surfaceName,
|
||||||
mesh.time().constant(), // instance
|
mesh.time().constant(), // instance
|
||||||
"triSurface", // local
|
"triSurface", // local
|
||||||
mesh, // registry
|
mesh.time(), // registry
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
false
|
false
|
||||||
@ -679,7 +679,7 @@ Foam::sampledTriSurfaceMesh::sampledTriSurfaceMesh
|
|||||||
dict.lookup("surface"),
|
dict.lookup("surface"),
|
||||||
mesh.time().constant(), // instance
|
mesh.time().constant(), // instance
|
||||||
"triSurface", // local
|
"triSurface", // local
|
||||||
mesh, // registry
|
mesh.time(), // registry
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
false
|
false
|
||||||
@ -713,7 +713,7 @@ Foam::sampledTriSurfaceMesh::sampledTriSurfaceMesh
|
|||||||
name,
|
name,
|
||||||
mesh.time().constant(), // instance
|
mesh.time().constant(), // instance
|
||||||
"triSurface", // local
|
"triSurface", // local
|
||||||
mesh, // registry
|
mesh.time(), // registry
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
false
|
false
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
\\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -642,7 +642,7 @@ Foam::discreteSurface::discreteSurface
|
|||||||
surfaceName,
|
surfaceName,
|
||||||
mesh.time().constant(), // instance
|
mesh.time().constant(), // instance
|
||||||
"triSurface", // local
|
"triSurface", // local
|
||||||
mesh, // registry
|
mesh.time(), // registry
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
false
|
false
|
||||||
@ -680,7 +680,7 @@ Foam::discreteSurface::discreteSurface
|
|||||||
dict.lookup("surface"),
|
dict.lookup("surface"),
|
||||||
mesh.time().constant(), // instance
|
mesh.time().constant(), // instance
|
||||||
"triSurface", // local
|
"triSurface", // local
|
||||||
mesh, // registry
|
mesh.time(), // registry
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
false
|
false
|
||||||
@ -716,7 +716,7 @@ Foam::discreteSurface::discreteSurface
|
|||||||
name,
|
name,
|
||||||
mesh.time().constant(), // instance
|
mesh.time().constant(), // instance
|
||||||
"triSurface", // local
|
"triSurface", // local
|
||||||
mesh, // registry
|
mesh.time(), // registry
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
false
|
false
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2017 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2017 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -46,6 +46,34 @@ namespace functionObjects
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Foam::Enum
|
||||||
|
<
|
||||||
|
Foam::functionObjects::sixDoFRigidBodyState::angleTypes
|
||||||
|
>
|
||||||
|
Foam::functionObjects::sixDoFRigidBodyState::angleTypeNames_
|
||||||
|
{
|
||||||
|
{ angleTypes::RADIANS, "radians" },
|
||||||
|
{ angleTypes::DEGREES, "degrees" }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::functionObjects::sixDoFRigidBodyState::writeFileHeader(Ostream& os)
|
||||||
|
{
|
||||||
|
writeHeader(os, "Motion State");
|
||||||
|
writeHeaderValue(os, "Angle Units", angleTypeNames_[angleFormat_]);
|
||||||
|
writeCommented(os, "Time");
|
||||||
|
|
||||||
|
os << tab
|
||||||
|
<< "centreOfRotation" << tab
|
||||||
|
<< "centreOfMass" << tab
|
||||||
|
<< "rotation" << tab
|
||||||
|
<< "velocity" << tab
|
||||||
|
<< "omega" << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -57,10 +85,11 @@ Foam::functionObjects::sixDoFRigidBodyState::sixDoFRigidBodyState
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fvMeshFunctionObject(name, runTime, dict),
|
fvMeshFunctionObject(name, runTime, dict),
|
||||||
logFiles(obr_, name)
|
writeFile(mesh_, name, typeName, dict),
|
||||||
|
angleFormat_(angleTypes::RADIANS)
|
||||||
{
|
{
|
||||||
read(dict);
|
read(dict);
|
||||||
resetName(typeName);
|
writeFileHeader(file());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -74,27 +103,20 @@ Foam::functionObjects::sixDoFRigidBodyState::~sixDoFRigidBodyState()
|
|||||||
|
|
||||||
bool Foam::functionObjects::sixDoFRigidBodyState::read(const dictionary& dict)
|
bool Foam::functionObjects::sixDoFRigidBodyState::read(const dictionary& dict)
|
||||||
{
|
{
|
||||||
fvMeshFunctionObject::read(dict);
|
if (fvMeshFunctionObject::read(dict))
|
||||||
angleFormat_ = dict.lookupOrDefault<word>("angleFormat", "radians");
|
{
|
||||||
|
angleFormat_ =
|
||||||
|
angleTypeNames_.lookupOrDefault
|
||||||
|
(
|
||||||
|
"angleFormat",
|
||||||
|
dict,
|
||||||
|
angleTypes::RADIANS
|
||||||
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
void Foam::functionObjects::sixDoFRigidBodyState::writeFileHeader(const label)
|
|
||||||
{
|
|
||||||
OFstream& file = this->file();
|
|
||||||
|
|
||||||
writeHeader(file, "Motion State");
|
|
||||||
writeHeaderValue(file, "Angle Units", angleFormat_);
|
|
||||||
writeCommented(file, "Time");
|
|
||||||
|
|
||||||
file<< tab
|
|
||||||
<< "centreOfRotation" << tab
|
|
||||||
<< "centreOfMass" << tab
|
|
||||||
<< "rotation" << tab
|
|
||||||
<< "velocity" << tab
|
|
||||||
<< "omega" << endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -106,26 +128,29 @@ bool Foam::functionObjects::sixDoFRigidBodyState::execute()
|
|||||||
|
|
||||||
bool Foam::functionObjects::sixDoFRigidBodyState::write()
|
bool Foam::functionObjects::sixDoFRigidBodyState::write()
|
||||||
{
|
{
|
||||||
logFiles::write();
|
const dynamicMotionSolverFvMesh& mesh =
|
||||||
|
refCast<const dynamicMotionSolverFvMesh>(obr_);
|
||||||
|
|
||||||
if (Pstream::master())
|
const sixDoFRigidBodyMotionSolver& motionSolver_ =
|
||||||
|
refCast<const sixDoFRigidBodyMotionSolver>(mesh.motion());
|
||||||
|
|
||||||
|
const sixDoFRigidBodyMotion& motion = motionSolver_.motion();
|
||||||
|
|
||||||
|
vector rotationAngle
|
||||||
|
(
|
||||||
|
quaternion(motion.orientation()).eulerAngles(quaternion::XYZ)
|
||||||
|
);
|
||||||
|
|
||||||
|
vector angularVelocity(motion.omega());
|
||||||
|
|
||||||
|
switch (angleFormat_)
|
||||||
{
|
{
|
||||||
const dynamicMotionSolverFvMesh& mesh =
|
case angleTypes::RADIANS:
|
||||||
refCast<const dynamicMotionSolverFvMesh>(obr_);
|
{
|
||||||
|
// Nothing to do - already in radians
|
||||||
const sixDoFRigidBodyMotionSolver& motionSolver_ =
|
break;
|
||||||
refCast<const sixDoFRigidBodyMotionSolver>(mesh.motion());
|
}
|
||||||
|
case angleTypes::DEGREES:
|
||||||
const sixDoFRigidBodyMotion& motion = motionSolver_.motion();
|
|
||||||
|
|
||||||
vector rotationAngle
|
|
||||||
(
|
|
||||||
quaternion(motion.orientation()).eulerAngles(quaternion::XYZ)
|
|
||||||
);
|
|
||||||
|
|
||||||
vector angularVelocity(motion.omega());
|
|
||||||
|
|
||||||
if (angleFormat_ == "degrees")
|
|
||||||
{
|
{
|
||||||
rotationAngle.x() = radToDeg(rotationAngle.x());
|
rotationAngle.x() = radToDeg(rotationAngle.x());
|
||||||
rotationAngle.y() = radToDeg(rotationAngle.y());
|
rotationAngle.y() = radToDeg(rotationAngle.y());
|
||||||
@ -134,18 +159,25 @@ bool Foam::functionObjects::sixDoFRigidBodyState::write()
|
|||||||
angularVelocity.x() = radToDeg(angularVelocity.x());
|
angularVelocity.x() = radToDeg(angularVelocity.x());
|
||||||
angularVelocity.y() = radToDeg(angularVelocity.y());
|
angularVelocity.y() = radToDeg(angularVelocity.y());
|
||||||
angularVelocity.z() = radToDeg(angularVelocity.z());
|
angularVelocity.z() = radToDeg(angularVelocity.z());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
FatalErrorInFunction
|
||||||
|
<< "Unhandled enumeration " << angleTypeNames_[angleFormat_]
|
||||||
|
<< abort(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
writeTime(file());
|
|
||||||
file()
|
|
||||||
<< tab
|
|
||||||
<< motion.centreOfRotation() << tab
|
|
||||||
<< motion.centreOfMass() << tab
|
|
||||||
<< rotationAngle << tab
|
|
||||||
<< motion.v() << tab
|
|
||||||
<< angularVelocity << endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
writeTime(file());
|
||||||
|
file()
|
||||||
|
<< tab
|
||||||
|
<< motion.centreOfRotation() << tab
|
||||||
|
<< motion.centreOfMass() << tab
|
||||||
|
<< rotationAngle << tab
|
||||||
|
<< motion.v() << tab
|
||||||
|
<< angularVelocity << endl;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2017 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2017 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -25,7 +25,7 @@ Class
|
|||||||
Foam::functionObjects::sixDoFRigidBodyState
|
Foam::functionObjects::sixDoFRigidBodyState
|
||||||
|
|
||||||
Group
|
Group
|
||||||
grpFieldFunctionObjects
|
grpSixDoFRigidBodyFunctionObjects
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Writes the 6-DoF motion state.
|
Writes the 6-DoF motion state.
|
||||||
@ -49,7 +49,7 @@ Usage
|
|||||||
|
|
||||||
See also
|
See also
|
||||||
Foam::functionObjects::fvMeshFunctionObject
|
Foam::functionObjects::fvMeshFunctionObject
|
||||||
Foam::functionObjects::logFiles
|
Foam::functionObjects::writeFile
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
sixDoFRigidBodyState.C
|
sixDoFRigidBodyState.C
|
||||||
@ -60,7 +60,8 @@ SourceFiles
|
|||||||
#define sixDoFRigidBodyState_H
|
#define sixDoFRigidBodyState_H
|
||||||
|
|
||||||
#include "fvMeshFunctionObject.H"
|
#include "fvMeshFunctionObject.H"
|
||||||
#include "logFiles.H"
|
#include "writeFile.H"
|
||||||
|
#include "Enum.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -70,17 +71,27 @@ namespace functionObjects
|
|||||||
{
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class sixDoFRigidBodyState Declaration
|
Class sixDoFRigidBodyState Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class sixDoFRigidBodyState
|
class sixDoFRigidBodyState
|
||||||
:
|
:
|
||||||
public fvMeshFunctionObject,
|
public fvMeshFunctionObject,
|
||||||
public logFiles
|
public writeFile
|
||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
word angleFormat_;
|
enum class angleTypes
|
||||||
|
{
|
||||||
|
RADIANS, //!< Radians
|
||||||
|
DEGREES //!< Degrees
|
||||||
|
};
|
||||||
|
|
||||||
|
//- Angle type names
|
||||||
|
static const Enum<angleTypes> angleTypeNames_;
|
||||||
|
|
||||||
|
//- Angle format
|
||||||
|
angleTypes angleFormat_;
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
@ -96,8 +107,8 @@ protected:
|
|||||||
|
|
||||||
// Protected Member Functions
|
// Protected Member Functions
|
||||||
|
|
||||||
//- overloaded writeFileHeader from writeFile
|
//- Overloaded writeFileHeader from writeFile
|
||||||
virtual void writeFileHeader(const label i = 0);
|
virtual void writeFileHeader(Ostream& os);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -2,6 +2,17 @@
|
|||||||
cd ${0%/*} || exit 1 # Run from this directory
|
cd ${0%/*} || exit 1 # Run from this directory
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
||||||
|
|
||||||
|
if isTest $@
|
||||||
|
then
|
||||||
|
# Reset the controlDict
|
||||||
|
if [ -f system/controlDict.orig ]
|
||||||
|
then
|
||||||
|
echo "$0: restoring the controlDict from controlDict.orig"
|
||||||
|
mv system/controlDict.orig system/controlDict
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
runApplication blockMesh
|
runApplication blockMesh
|
||||||
|
|
||||||
application=$(getApplication)
|
application=$(getApplication)
|
||||||
|
|||||||
@ -1,14 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
cd ${0%/*} || exit 1 # Run from this directory
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
|
||||||
|
|
||||||
# Reset the controlDict
|
|
||||||
if [ -f system/controlDict.orig ]
|
|
||||||
then
|
|
||||||
echo "$0: restoring the controlDict from controlDict.orig"
|
|
||||||
mv system/controlDict.orig system/controlDict
|
|
||||||
fi
|
|
||||||
|
|
||||||
./Allrun
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
@ -5,4 +5,4 @@
|
|||||||
(cd cylinderMesh && ./Allrun.pre)
|
(cd cylinderMesh && ./Allrun.pre)
|
||||||
|
|
||||||
# Add background mesh
|
# Add background mesh
|
||||||
(cd cylinderAndBackground && ./Allrun)
|
(cd cylinderAndBackground && ./Allrun $*)
|
||||||
|
|||||||
@ -4,55 +4,56 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
|
|
||||||
setControlDict()
|
setControlDict()
|
||||||
{
|
{
|
||||||
sed \
|
foamDictionary -entry "deltaT" -set "1e-05" system/controlDict
|
||||||
-e "s/\(deltaT[ \t]*\) 5e-06;/\1 1e-05;/g" \
|
foamDictionary -entry "endTime" -set "0.015" system/controlDict
|
||||||
-e "s/\(endTime[ \t]*\) 0.005;/\1 0.015;/g" \
|
foamDictionary -entry "writeInterval" -set "50" system/controlDict
|
||||||
-e "s/\(writeInterval[ \t]*\) 10;/\1 50;/g" \
|
|
||||||
-i system/controlDict
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setCombustionProperties()
|
setCombustionProperties()
|
||||||
{
|
{
|
||||||
sed \
|
foamDictionary -entry "laminarFlameSpeedCorrelation" \
|
||||||
-e "s/\(laminarFlameSpeedCorrelation[ \t]*\) Gulders;/\1 RaviPetersen;/g" \
|
-set "RaviPetersen" constant/combustionProperties
|
||||||
-e "s/\(fuel[ \t]*\) Propane;/\1 HydrogenInAir;/g" \
|
foamDictionary -entry "fuel" \
|
||||||
-i constant/combustionProperties
|
-set "HydrogenInAir" constant/combustionProperties
|
||||||
}
|
}
|
||||||
|
|
||||||
# Do moriyoshiHomogeneous
|
# Do moriyoshiHomogeneous
|
||||||
( cd moriyoshiHomogeneous && foamRunTutorials )
|
( cd moriyoshiHomogeneous && foamRunTutorials )
|
||||||
|
|
||||||
# Clone case for second phase
|
if ! isTest $@
|
||||||
cloneCase moriyoshiHomogeneous moriyoshiHomogeneousPart2
|
then
|
||||||
|
# Clone case for second phase
|
||||||
|
cloneCase moriyoshiHomogeneous moriyoshiHomogeneousPart2
|
||||||
|
|
||||||
# Modify and execute
|
# Modify and execute
|
||||||
(
|
(
|
||||||
cd moriyoshiHomogeneousPart2 || exit
|
cd moriyoshiHomogeneousPart2 || exit
|
||||||
|
|
||||||
# The following 2 command lines are a generic implementation of the
|
# The following 2 command lines are a generic implementation of the
|
||||||
# following command:
|
# following command:
|
||||||
# cp -r ../moriyoshiHomogeneous/0.005 .
|
# cp -r ../moriyoshiHomogeneous/0.005 .
|
||||||
|
|
||||||
lastTimeStep=$(foamListTimes -case ../moriyoshiHomogeneous -latestTime)
|
lastTimeStep=$(foamListTimes -case ../moriyoshiHomogeneous -latestTime)
|
||||||
cp -r ../moriyoshiHomogeneous/$lastTimeStep .
|
cp -r ../moriyoshiHomogeneous/$lastTimeStep .
|
||||||
|
|
||||||
setControlDict
|
setControlDict
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Clone case for hydrogen
|
# Clone case for hydrogen
|
||||||
cloneCase moriyoshiHomogeneous moriyoshiHomogeneousHydrogen
|
cloneCase moriyoshiHomogeneous moriyoshiHomogeneousHydrogen
|
||||||
|
|
||||||
# Modify and execute
|
# Modify and execute
|
||||||
(
|
(
|
||||||
cd moriyoshiHomogeneousHydrogen || exit
|
cd moriyoshiHomogeneousHydrogen || exit
|
||||||
|
|
||||||
setCombustionProperties
|
setCombustionProperties
|
||||||
mv constant/thermophysicalProperties \
|
mv constant/thermophysicalProperties \
|
||||||
constant/thermophysicalProperties.propane
|
constant/thermophysicalProperties.propane
|
||||||
mv constant/thermophysicalProperties.hydrogen \
|
mv constant/thermophysicalProperties.hydrogen \
|
||||||
constant/thermophysicalProperties
|
constant/thermophysicalProperties
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
)
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -9,6 +9,9 @@ runApplication chemkinToFoam \
|
|||||||
|
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
(cd validation && ./Allrun $*)
|
if ! isTest $@
|
||||||
|
then
|
||||||
|
(cd validation && ./Allrun $*)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -4,6 +4,9 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
|
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
(cd validation && ./Allrun $*)
|
if ! isTest $@
|
||||||
|
then
|
||||||
|
(cd validation && ./Allrun $*)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -4,6 +4,9 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
|
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
(cd validation && ./Allrun $*)
|
if ! isTest $@
|
||||||
|
then
|
||||||
|
(cd validation && ./Allrun $*)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -4,6 +4,9 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
|
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
(cd validation && ./Allrun $*)
|
if ! isTest $@
|
||||||
|
then
|
||||||
|
(cd validation && ./Allrun $*)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -4,6 +4,9 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
|
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
(cd validation && ./Allrun $*)
|
if ! isTest $@
|
||||||
|
then
|
||||||
|
(cd validation && ./Allrun $*)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -21,6 +21,9 @@ runParallel $(getApplication)
|
|||||||
paraFoam -touch
|
paraFoam -touch
|
||||||
paraFoam -touch -region panelRegion
|
paraFoam -touch -region panelRegion
|
||||||
|
|
||||||
(cd validation && ./createGraphs)
|
if ! isTest $@
|
||||||
|
then
|
||||||
|
(cd validation && ./createGraphs)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -5,8 +5,7 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Application name
|
# Application name
|
||||||
application=$(getApplication)
|
application=$(getApplication)
|
||||||
|
|
||||||
rm -f 0
|
restore0Dir
|
||||||
cp -r 0.orig 0
|
|
||||||
|
|
||||||
runApplication chemkinToFoam \
|
runApplication chemkinToFoam \
|
||||||
chemkin/grimech30.dat chemkin/thermo30.dat chemkin/transportProperties \
|
chemkin/grimech30.dat chemkin/thermo30.dat chemkin/transportProperties \
|
||||||
@ -15,20 +14,27 @@ runApplication chemkinToFoam \
|
|||||||
runApplication blockMesh
|
runApplication blockMesh
|
||||||
runApplication setFields
|
runApplication setFields
|
||||||
|
|
||||||
|
if isTest $@
|
||||||
|
then
|
||||||
|
# Test without chemistry
|
||||||
|
foamDictionary -entry "chemistry" -set "off" constant/chemistryProperties
|
||||||
|
runApplication $application
|
||||||
|
else
|
||||||
|
# Run the application without chemistry until 1500 to let the flow field
|
||||||
|
# develop
|
||||||
|
foamDictionary -entry "writeInterval" -set "1500" system/controlDict
|
||||||
|
foamDictionary -entry "endTime" -set "1500" system/controlDict
|
||||||
|
foamDictionary -entry "chemistry" -set "off" constant/chemistryProperties
|
||||||
|
|
||||||
# Run the application without chemistry until 1500 to let the flow field develop
|
runApplication $application
|
||||||
foamDictionary -entry "writeInterval" -set "1500" system/controlDict
|
|
||||||
foamDictionary -entry "endTime" -set "1500" system/controlDict
|
|
||||||
foamDictionary -entry "chemistry" -set "off" constant/chemistryProperties
|
|
||||||
|
|
||||||
runApplication $application
|
|
||||||
|
|
||||||
|
|
||||||
# Run with chemistry until flame reach its full size
|
# Run with chemistry until flame reach its full size
|
||||||
foamDictionary -entry "writeInterval" -set "100" system/controlDict
|
foamDictionary -entry "writeInterval" -set "100" system/controlDict
|
||||||
foamDictionary -entry "endTime" -set "5000" system/controlDict
|
foamDictionary -entry "endTime" -set "5000" system/controlDict
|
||||||
foamDictionary -entry "chemistry" -set "on" constant/chemistryProperties
|
foamDictionary -entry "chemistry" -set "on" constant/chemistryProperties
|
||||||
|
|
||||||
runApplication -o $application
|
runApplication -o $application
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -5,4 +5,4 @@
|
|||||||
(cd cylinderMesh && ./Allrun.pre)
|
(cd cylinderMesh && ./Allrun.pre)
|
||||||
|
|
||||||
# Add background mesh
|
# Add background mesh
|
||||||
(cd cylinderAndBackground && ./Allrun)
|
(cd cylinderAndBackground && ./Allrun $*)
|
||||||
|
|||||||
@ -29,20 +29,23 @@ run resolved
|
|||||||
# Run with the plenum modelled by a boundary condition
|
# Run with the plenum modelled by a boundary condition
|
||||||
run modelled
|
run modelled
|
||||||
|
|
||||||
# Plot a comparison of the pressure in the neck
|
if ! isTest $@
|
||||||
cat << EOF | gnuplot -persist
|
then
|
||||||
|
# Plot a comparison of the pressure in the neck
|
||||||
|
cat << EOF | gnuplot -persist
|
||||||
|
|
||||||
set terminal postscript eps size 5,4 enhanced color
|
set terminal postscript eps size 5,4 enhanced color
|
||||||
|
|
||||||
set xlabel "Time (s)"
|
set xlabel "Time (s)"
|
||||||
set ylabel "Guage pressure in the neck (Pa)"
|
set ylabel "Guage pressure in the neck (Pa)"
|
||||||
|
|
||||||
set output "pressure.eps"
|
set output "pressure.eps"
|
||||||
|
|
||||||
plot \
|
plot \
|
||||||
"resolved/postProcessing/probes/0/p" us 1:(\$4-1e5) t "Resolved Plenum" w l, \
|
"resolved/postProcessing/probes/0/p" us 1:(\$4-1e5) t "Resolved Plenum" w l, \
|
||||||
"modelled/postProcessing/probes/0/p" us 1:(\$4-1e5) t "Modelled Plenum" w l
|
"modelled/postProcessing/probes/0/p" us 1:(\$4-1e5) t "Modelled Plenum" w l
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -26,18 +26,21 @@ setDecompressionTankFine()
|
|||||||
# Do decompressionTank
|
# Do decompressionTank
|
||||||
( cd decompressionTank && foamRunTutorials )
|
( cd decompressionTank && foamRunTutorials )
|
||||||
|
|
||||||
# Clone case
|
if ! isTest $@
|
||||||
cloneCase decompressionTank decompressionTankFine
|
then
|
||||||
|
# Clone case
|
||||||
|
cloneCase decompressionTank decompressionTankFine
|
||||||
|
|
||||||
(
|
(
|
||||||
cd decompressionTankFine || exit
|
cd decompressionTankFine || exit
|
||||||
|
|
||||||
# Modify case
|
# Modify case
|
||||||
setDecompressionTankFine
|
setDecompressionTankFine
|
||||||
|
|
||||||
# And execute
|
# And execute
|
||||||
runApplication blockMesh
|
runApplication blockMesh
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
)
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -6,6 +6,9 @@ runApplication blockMesh
|
|||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
runApplication -s sample postProcess -latestTime -func sample
|
runApplication -s sample postProcess -latestTime -func sample
|
||||||
|
|
||||||
runApplication validation/createGraphs
|
if ! istest $@
|
||||||
|
then
|
||||||
|
runApplication validation/createGraphs
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -32,37 +32,39 @@ do
|
|||||||
rm -rf logs
|
rm -rf logs
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if ! isTest $@
|
||||||
|
then
|
||||||
|
# create validation plot
|
||||||
|
# Test if gnuplot exists on the system
|
||||||
|
command -v gnuplot >/dev/null 2>&1 || {
|
||||||
|
echo "gnuplot not found - skipping graph creation" 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
# create validation plot
|
graphName="OF_vs_ANALYTICAL.eps"
|
||||||
# Test if gnuplot exists on the system
|
|
||||||
command -v gnuplot >/dev/null 2>&1 || {
|
|
||||||
echo "gnuplot not found - skipping graph creation" 1>&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
graphName="OF_vs_ANALYTICAL.eps"
|
echo "Creating graph of u+ vs y+ to $graphName"
|
||||||
|
gnuplot<<EOF
|
||||||
echo "Creating graph of u+ vs y+ to $graphName"
|
set terminal postscript eps color enhanced
|
||||||
gnuplot<<EOF
|
set output "$graphName"
|
||||||
set terminal postscript eps color enhanced
|
set grid
|
||||||
set output "$graphName"
|
set xlabel "y+"
|
||||||
set grid
|
set ylabel "u+"
|
||||||
set xlabel "y+"
|
set key top left
|
||||||
set ylabel "u+"
|
set size 0.75, 0.75
|
||||||
set key top left
|
set parametric
|
||||||
set size 0.75, 0.75
|
# u+ range
|
||||||
set parametric
|
set trange [0:35]
|
||||||
# u+ range
|
# Spaldings law
|
||||||
set trange [0:35]
|
k=0.41
|
||||||
# Spaldings law
|
E=9.8
|
||||||
k=0.41
|
f(t) = t + 1/E*(exp(k*t) - 1 - k*t*(1 + 0.5*k*t) - 1/6*k*t**3)
|
||||||
E=9.8
|
set logscale x
|
||||||
f(t) = t + 1/E*(exp(k*t) - 1 - k*t*(1 + 0.5*k*t) - 1/6*k*t**3)
|
set format x "10^{%T}"
|
||||||
set logscale x
|
plot f(t),t title "Spalding" with lines linetype -1, \
|
||||||
set format x "10^{%T}"
|
"yPlus_vs_uPlus" title "OpenFOAM" with points lt 1 pt 6
|
||||||
plot f(t),t title "Spalding" with lines linetype -1, \
|
|
||||||
"yPlus_vs_uPlus" title "OpenFOAM" with points lt 1 pt 6
|
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
echo Done
|
echo Done
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,6 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
(cd cylinderMesh && ./Allrun.pre)
|
(cd cylinderMesh && ./Allrun.pre)
|
||||||
|
|
||||||
# Add background mesh
|
# Add background mesh
|
||||||
(cd cylinderAndBackground && ./Allrun)
|
(cd cylinderAndBackground && ./Allrun $*)
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -15,7 +15,12 @@ runParallel $(getApplication)
|
|||||||
|
|
||||||
# Run noise tool for both point and surface
|
# Run noise tool for both point and surface
|
||||||
|
|
||||||
runParallel -s point noise -dict system/noiseDict-point
|
if ! isTest $@
|
||||||
|
then
|
||||||
|
runParallel -s point noise -dict system/noiseDict-point
|
||||||
|
|
||||||
|
runParallel -s surface noise -dict system/noiseDict-surface
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
runParallel -s surface noise -dict system/noiseDict-surface
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,18 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
cd ${0%/*} || exit 1 # Run from this directory
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
|
||||||
|
|
||||||
rm -f system/blockMeshDict
|
|
||||||
m4 system/blockMeshDict.m4 > system/blockMeshDict
|
|
||||||
|
|
||||||
runApplication blockMesh
|
|
||||||
|
|
||||||
restore0Dir
|
|
||||||
|
|
||||||
runApplication decomposePar
|
|
||||||
|
|
||||||
runParallel $(getApplication)
|
|
||||||
|
|
||||||
# Note: not running the noise utility since no pressure data will be generated
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
@ -24,21 +24,25 @@ setDamBreakFine ()
|
|||||||
# Do damBreak
|
# Do damBreak
|
||||||
(cd damBreak && foamRunTutorials)
|
(cd damBreak && foamRunTutorials)
|
||||||
|
|
||||||
# Clone case
|
|
||||||
cloneCase damBreak damBreakFine
|
|
||||||
|
|
||||||
(
|
if ! isTest $@
|
||||||
cd damBreakFine || exit
|
then
|
||||||
|
# Clone case
|
||||||
|
cloneCase damBreak damBreakFine
|
||||||
|
|
||||||
# Modify case
|
(
|
||||||
setDamBreakFine
|
cd damBreakFine || exit
|
||||||
\cp ../damBreak/0/alpha.water.orig 0/alpha.water
|
|
||||||
# And execute
|
# Modify case
|
||||||
runApplication blockMesh
|
setDamBreakFine
|
||||||
runApplication setFields
|
\cp ../damBreak/0/alpha.water.orig 0/alpha.water
|
||||||
runApplication decomposePar
|
# And execute
|
||||||
runParallel $(getApplication)
|
runApplication blockMesh
|
||||||
runApplication reconstructPar
|
runApplication setFields
|
||||||
)
|
runApplication decomposePar
|
||||||
|
runParallel $(getApplication)
|
||||||
|
runApplication reconstructPar
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -24,21 +24,24 @@ setDamBreakFine ()
|
|||||||
# Do damBreak
|
# Do damBreak
|
||||||
(cd damBreak && foamRunTutorials)
|
(cd damBreak && foamRunTutorials)
|
||||||
|
|
||||||
# Clone case
|
if ! isTest $@
|
||||||
cloneCase damBreak damBreakFine
|
then
|
||||||
|
# Clone case
|
||||||
|
cloneCase damBreak damBreakFine
|
||||||
|
|
||||||
(
|
(
|
||||||
cd damBreakFine || exit
|
cd damBreakFine || exit
|
||||||
|
|
||||||
# Modify case
|
# Modify case
|
||||||
setDamBreakFine
|
setDamBreakFine
|
||||||
\cp ../damBreak/0/alpha.water.orig 0/alpha.water
|
\cp ../damBreak/0/alpha.water.orig 0/alpha.water
|
||||||
# And execute
|
# And execute
|
||||||
runApplication blockMesh
|
runApplication blockMesh
|
||||||
runApplication setFields
|
runApplication setFields
|
||||||
runApplication decomposePar
|
runApplication decomposePar
|
||||||
runParallel $(getApplication)
|
runParallel $(getApplication)
|
||||||
runApplication reconstructPar
|
runApplication reconstructPar
|
||||||
)
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -2,8 +2,13 @@
|
|||||||
cd ${0%/*} || exit 1 # Run from this directory
|
cd ${0%/*} || exit 1 # Run from this directory
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
||||||
|
|
||||||
(cd eulerianInjection && ./Allrun)
|
(cd eulerianInjection && ./Allrun $*)
|
||||||
(cd lagrangianParticleInjection && ./Allrun)
|
|
||||||
(cd lagrangianDistributionInjection && ./Allrun)
|
if ! isTest $@
|
||||||
|
then
|
||||||
|
# Note: particle data only available if running complete case
|
||||||
|
(cd lagrangianParticleInjection && ./Allrun $*)
|
||||||
|
(cd lagrangianDistributionInjection && ./Allrun $*)
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
cd ${0%/*} || exit 1 # Run from this directory
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
|
||||||
|
|
||||||
(cd eulerianInjection && ./Allrun)
|
|
||||||
|
|
||||||
# Note: only running the Eulerian test - particle data not yet available
|
|
||||||
# (after 1 iter) for subsequent Lagrangian cases
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
@ -4,6 +4,8 @@ cd ${0%/*} || exit 1 # run from this directory
|
|||||||
# Source tutorial run functions
|
# Source tutorial run functions
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
params=$@
|
||||||
|
|
||||||
runApplication blockMesh
|
runApplication blockMesh
|
||||||
|
|
||||||
cat system/schemesToTest | while read scheme
|
cat system/schemesToTest | while read scheme
|
||||||
@ -16,6 +18,9 @@ do
|
|||||||
|
|
||||||
runApplication -s ${schemeTag} scalarTransportFoam
|
runApplication -s ${schemeTag} scalarTransportFoam
|
||||||
|
|
||||||
# Save the line plot
|
if ! isTest $params
|
||||||
mv postProcessing/sample1/100/line1_T.xy line1_T_${schemeTag}.xy
|
then
|
||||||
|
# Save the line plot
|
||||||
|
mv postProcessing/sample1/100/line1_T.xy line1_T_${schemeTag}.xy
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user