TUT: bridge using external lumped point motion (#1341)
- see its accompanying README for additional setup instructions
This commit is contained in:
parent
b0136d835e
commit
7db868b509
12
tutorials/incompressible/lumpedPointMotion/bridge/Allclean
Executable file
12
tutorials/incompressible/lumpedPointMotion/bridge/Allclean
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
(cd code && ./Allclean)
|
||||
|
||||
(cd steady && ./Allclean)
|
||||
|
||||
rm -rf movement
|
||||
rm -rf transient
|
||||
|
||||
#------------------------------------------------------------------------------
|
47
tutorials/incompressible/lumpedPointMotion/bridge/Allrun
Executable file
47
tutorials/incompressible/lumpedPointMotion/bridge/Allrun
Executable file
@ -0,0 +1,47 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# 1) Run steady-state to establish a good initial field
|
||||
# 2) Copy state-state results -> transient case,
|
||||
# but need to copy the pointDisplacement from the 0/ directory
|
||||
# since it will not have been used for the steady-state case
|
||||
# 3) Relocate this initial solution to coincide with the first deltaT
|
||||
# to avoid overwriting the 0/ directory at all.
|
||||
|
||||
# Do steady-state case
|
||||
steady/Allrun $*
|
||||
|
||||
if notTest "$@"
|
||||
then
|
||||
if canCompile
|
||||
then
|
||||
(cd code && wmake)
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
|
||||
. files/RunFunctions
|
||||
|
||||
caseName="transient"
|
||||
|
||||
latestTime=$(foamListTimes -case steady -noZero -latestTime -processor)
|
||||
|
||||
# Clone the steady-state case to transient
|
||||
cloneParallelCase steady "$caseName" 0 "$latestTime"
|
||||
|
||||
copyParallelPointDisplacement "$caseName" "$latestTime"
|
||||
|
||||
# Adjust application (from simpleFoam -> pimpleFoam)
|
||||
foamDictionary transient/system/controlDict \
|
||||
-entry application -set pimpleFoam
|
||||
|
||||
# Copy/link support files
|
||||
linkFiles files "$caseName"
|
||||
|
||||
# Run
|
||||
"$caseName/Allrun.$caseName" $*
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
35
tutorials/incompressible/lumpedPointMotion/bridge/Allrun.move
Executable file
35
tutorials/incompressible/lumpedPointMotion/bridge/Allrun.move
Executable file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# 1) Run meshing
|
||||
# 2) Test input zones and movement
|
||||
|
||||
# Meshing
|
||||
steady/Allrun.pre $*
|
||||
|
||||
if notTest "$@"
|
||||
then
|
||||
if canCompile
|
||||
then
|
||||
(cd code && wmake)
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
|
||||
. files/RunFunctions
|
||||
|
||||
caseName="movement"
|
||||
|
||||
# Copy/link the steady-state case to movement
|
||||
linkParallelCase steady "$caseName"
|
||||
|
||||
# Copy/link support files
|
||||
linkFiles files "$caseName"
|
||||
|
||||
# Run
|
||||
"$caseName/Allrun.$caseName" $*
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
90
tutorials/incompressible/lumpedPointMotion/bridge/README.md
Normal file
90
tutorials/incompressible/lumpedPointMotion/bridge/README.md
Normal file
@ -0,0 +1,90 @@
|
||||
Setting up the FSI linear controllers can be easy or difficult,
|
||||
depending on the complexity of the structure and the source of the
|
||||
input data.
|
||||
|
||||
If you already have an FEA model with nodes and beam elements, it will
|
||||
be fairly straightforward to instrument your structure. If you just
|
||||
have the control points but need to define the connectivity yourself,
|
||||
it will obviously be more work.
|
||||
|
||||
In this case it can help to import your raw points as a csv table in
|
||||
paraview and use the TableToPoints filter to visualize their locations
|
||||
and overlay this with the surface geometry. With this you can piece
|
||||
together the connectivity, which specifies the motion _controllors_.
|
||||
|
||||
To debug the setup, within `steady/`
|
||||
|
||||
Copy the geometry
|
||||
```
|
||||
./Allrun.init
|
||||
```
|
||||
Verify connectivity
|
||||
```
|
||||
lumpedPointZones -dry-run
|
||||
```
|
||||
|
||||
This will generate a `state.vtp` file with the lumped points, connected
|
||||
as per the controller description.
|
||||
|
||||
|
||||
Next generate the mesh (eg, with snappyHexMesh). For example,
|
||||
```
|
||||
./Allrun.pre
|
||||
```
|
||||
|
||||
Test the mapping
|
||||
```
|
||||
lumpedPointZones # serial or parallel
|
||||
|
||||
paraview lumpedPointZones.vtp
|
||||
```
|
||||
Inspect the nearest/next nearest and weighting.
|
||||
Adjust the controllers definitions if required.
|
||||
|
||||
|
||||
For setup, it is often helpful if you have some predefined structural
|
||||
response data that can be used for testing.
|
||||
|
||||
Check the quality of response data by visualizing how it affects the
|
||||
movement of the points:
|
||||
```
|
||||
lumpedPointMovement {options} -dry-run response.txt
|
||||
|
||||
paraview state.vtk.series
|
||||
```
|
||||
|
||||
You can add visualization options such as `-scale` or
|
||||
`-visual-length`. If the there are many time points in the response
|
||||
data, use `-span` to skip over some of them.
|
||||
|
||||
|
||||
The `lumpedPointMovement` command can be used as above, but without
|
||||
the `-dry-run` option. This will extract the patch surface associated
|
||||
with the controllers and generate corresponding surface files in VTK
|
||||
format.
|
||||
```
|
||||
lumpedPointMovement {options} response.txt
|
||||
|
||||
paraview geom.vtp.series
|
||||
```
|
||||
|
||||
Using a larger scale factor (eg, `-scale 10`) can help highlight
|
||||
potential interpolation problems.
|
||||
|
||||
|
||||
## Additional Notes
|
||||
|
||||
The `files/polynomials.dict` represent a vague approximation of
|
||||
measurement data, but are only intended as a compacter means of
|
||||
representing the movement. They can be used with the accompanying
|
||||
`code/polynomial-motion.C` to act as a response slave, or to
|
||||
pre-generate a response file. For example,
|
||||
|
||||
```
|
||||
code/polynomial-motion -output response.txt -deltaT 0.001 -nTimes 5001 files/polynomials.dict
|
||||
```
|
||||
|
||||
To query the values at an individual time:
|
||||
```
|
||||
code/polynomial-motion -query -time 0.5 files/polynomials.dict
|
||||
```
|
13
tutorials/incompressible/lumpedPointMotion/bridge/code/Allclean
Executable file
13
tutorials/incompressible/lumpedPointMotion/bridge/code/Allclean
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
wclean
|
||||
|
||||
# Remove executable
|
||||
rm -f polynomial-motion
|
||||
|
||||
# Remove known output/debug files
|
||||
rm -f *.txt *.vtp *.vtp.series
|
||||
|
||||
#------------------------------------------------------------------------------
|
@ -0,0 +1,3 @@
|
||||
polynomial-motion.C
|
||||
|
||||
EXE = $(PWD)/polynomial-motion
|
@ -0,0 +1,13 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/fileFormats/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||
-I$(LIB_SRC)/lumpedPointMotion/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lfileFormats \
|
||||
-lmeshTools \
|
||||
-ldynamicMesh \
|
||||
-llumpedPointMotion
|
@ -0,0 +1,642 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
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
|
||||
polynomial-motion
|
||||
|
||||
Description
|
||||
Polynomial representations of position/angle for fluid-structure
|
||||
interface check.
|
||||
Generates position and rotation angle of each node.
|
||||
|
||||
Note
|
||||
The values may or may not correspond to experimental values.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "argList.H"
|
||||
#include "Time.H"
|
||||
#include "Fstream.H"
|
||||
#include "polynomialFunction.H"
|
||||
#include "unitConversion.H"
|
||||
#include "foamVtkSeriesWriter.H"
|
||||
#include "lumpedPointTools.H"
|
||||
#include "lumpedPointState.H"
|
||||
#include "lumpedPointIOMovement.H"
|
||||
#include <algorithm>
|
||||
|
||||
using namespace Foam;
|
||||
|
||||
//- Position/angle generator based on polynomials
|
||||
class position_generator
|
||||
{
|
||||
// Private Data
|
||||
|
||||
typedef FixedList<polynomialFunction,3> xyzPoly;
|
||||
|
||||
List<xyzPoly> points_;
|
||||
List<xyzPoly> angles_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Calculate position/rotation at given time
|
||||
lumpedPointState calc(scalar currTime) const
|
||||
{
|
||||
// Limit the time
|
||||
currTime = min(currTime, maxTime);
|
||||
|
||||
const auto polyToValue =
|
||||
[=](const xyzPoly& p) -> vector
|
||||
{
|
||||
return vector
|
||||
(
|
||||
p[0].value(currTime),
|
||||
p[1].value(currTime),
|
||||
p[2].value(currTime)
|
||||
);
|
||||
};
|
||||
|
||||
pointField pts(points_.size());
|
||||
std::transform
|
||||
(
|
||||
points_.cbegin(), points_.cend(), pts.begin(), polyToValue
|
||||
);
|
||||
|
||||
vectorField ang(angles_.size());
|
||||
std::transform
|
||||
(
|
||||
angles_.cbegin(), angles_.cend(), ang.begin(), polyToValue
|
||||
);
|
||||
|
||||
return lumpedPointState{pts, ang};
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
|
||||
// Control Parameters
|
||||
|
||||
// Upper time limit on polynomials
|
||||
scalar maxTime = GREAT;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Default construct
|
||||
position_generator() = default;
|
||||
|
||||
//- Read construct from dictionary
|
||||
position_generator(const dictionary& dict)
|
||||
{
|
||||
dict.readIfPresent("maxTime", maxTime);
|
||||
dict.readEntry("points", points_);
|
||||
dict.readEntry("angles", angles_);
|
||||
|
||||
if (angles_.size() != points_.size())
|
||||
{
|
||||
Info<< "Resized angles to match number of points" << nl;
|
||||
angles_.resize(points_.size(), xyzPoly(polynomialFunction()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Calculate position/rotation at given time
|
||||
lumpedPointState state(const scalar currTime) const
|
||||
{
|
||||
return calc(currTime);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
argList::addNote
|
||||
(
|
||||
"Polynomial representations of position/angle for fluid-structure"
|
||||
" interface check."
|
||||
" Generates position and rotation angle of each node."
|
||||
);
|
||||
|
||||
argList::noBanner();
|
||||
argList::noParallel();
|
||||
|
||||
// Time control
|
||||
argList::addOption
|
||||
(
|
||||
"time",
|
||||
"value",
|
||||
"The time to use"
|
||||
);
|
||||
argList::addOption
|
||||
(
|
||||
"deltaT",
|
||||
"value",
|
||||
"The time increment for multiple time loops"
|
||||
);
|
||||
argList::addOption
|
||||
(
|
||||
"nTimes",
|
||||
"value",
|
||||
"The number of time loops"
|
||||
);
|
||||
|
||||
// Query, output
|
||||
argList::addBoolOption
|
||||
(
|
||||
"query",
|
||||
"Report values only and exit"
|
||||
);
|
||||
argList::addOption
|
||||
(
|
||||
"output",
|
||||
"file",
|
||||
"write to file, with header"
|
||||
);
|
||||
|
||||
argList::addOption
|
||||
(
|
||||
"scale",
|
||||
"factor",
|
||||
"Scaling factor for movement (default: 1)"
|
||||
);
|
||||
argList::addOption
|
||||
(
|
||||
"visual-length",
|
||||
"len",
|
||||
"Visualization length for planes (visualized as triangles)"
|
||||
);
|
||||
|
||||
// Run controls
|
||||
argList::addBoolOption
|
||||
(
|
||||
"dry-run",
|
||||
"Test movement without a mesh"
|
||||
);
|
||||
argList::addBoolOption
|
||||
(
|
||||
"removeLock",
|
||||
"Remove lock-file on termination of slave"
|
||||
);
|
||||
argList::addBoolOption
|
||||
(
|
||||
"slave",
|
||||
"Invoke as a slave responder for testing"
|
||||
);
|
||||
|
||||
argList::addArgument
|
||||
(
|
||||
"file",
|
||||
"Points/angles as triples of polynomials.\n"
|
||||
"Dictionary format"
|
||||
);
|
||||
|
||||
#include "setRootCase.H"
|
||||
|
||||
// The position/angle generator
|
||||
position_generator gen;
|
||||
|
||||
{
|
||||
// Input polynomials file
|
||||
IFstream is(args[1]);
|
||||
|
||||
dictionary dict(is);
|
||||
gen = position_generator(dict);
|
||||
}
|
||||
|
||||
|
||||
// Control parameters
|
||||
const bool dryrun = args.found("dry-run");
|
||||
const bool slave = args.found("slave");
|
||||
const bool removeLock = args.found("removeLock");
|
||||
|
||||
const bool optQuery = args.found("query");
|
||||
const fileName outputFile(args.getOrDefault<fileName>("output", ""));
|
||||
|
||||
const scalar relax = args.getOrDefault<scalar>("scale", 1);
|
||||
|
||||
args.readIfPresent("visual-length", lumpedPointState::visLength);
|
||||
|
||||
// Time parameters
|
||||
scalar currTime = args.getOrDefault<scalar>("time", 0);
|
||||
const scalar deltaT = args.getOrDefault("deltaT", 0.001);
|
||||
const label nTimes = args.getOrDefault<label>("nTimes", 1);
|
||||
|
||||
// Loop handling for slave
|
||||
const bool infiniteLoop = slave && !args.found("nTimes");
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Slave mode
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
if (slave)
|
||||
{
|
||||
Info<< "Running as slave responder" << endl;
|
||||
|
||||
if (Pstream::parRun())
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Running as slave responder is not permitted in parallel"
|
||||
<< nl
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
#include "createTime.H"
|
||||
|
||||
// Create movement without a mesh
|
||||
autoPtr<lumpedPointIOMovement> movementPtr =
|
||||
lumpedPointIOMovement::New(runTime);
|
||||
|
||||
if (!movementPtr)
|
||||
{
|
||||
Info<< "No valid movement found" << endl;
|
||||
return 1;
|
||||
}
|
||||
auto& movement = *movementPtr;
|
||||
|
||||
externalFileCoupler& coupler = movement.coupler();
|
||||
|
||||
for (label timei = 0; infiniteLoop || (timei < nTimes); ++timei)
|
||||
{
|
||||
Info<< args.executable() << ": waiting for master" << endl;
|
||||
|
||||
// Wait for master, but stop if status=done was seen
|
||||
if (!coupler.waitForMaster())
|
||||
{
|
||||
Info<< args.executable()
|
||||
<< ": stopping status=done was detected" << endl;
|
||||
break;
|
||||
}
|
||||
|
||||
scalar timeValue = currTime;
|
||||
|
||||
if (infiniteLoop)
|
||||
{
|
||||
// Get output file
|
||||
IFstream is(coupler.resolveFile(movement.outputName()));
|
||||
|
||||
dictionary dict(is);
|
||||
|
||||
timeValue = dict.get<scalar>("time");
|
||||
}
|
||||
|
||||
lumpedPointState state(gen.state(timeValue));
|
||||
|
||||
// Generate input for OpenFOAM
|
||||
{
|
||||
OFstream os(coupler.resolveFile(movement.inputName()));
|
||||
if
|
||||
(
|
||||
movement.inputFormat()
|
||||
== lumpedPointState::inputFormatType::PLAIN
|
||||
)
|
||||
{
|
||||
state.writePlain(os);
|
||||
}
|
||||
else
|
||||
{
|
||||
os.writeEntry("time", timeValue);
|
||||
state.writeDict(os);
|
||||
}
|
||||
}
|
||||
|
||||
Info<< args.executable()
|
||||
<< ": updating state " << timei
|
||||
<< " - switch to master"
|
||||
<< endl;
|
||||
|
||||
// Let OpenFOAM know that it can continue
|
||||
coupler.useMaster();
|
||||
|
||||
currTime += deltaT;
|
||||
}
|
||||
|
||||
if (removeLock)
|
||||
{
|
||||
Info<< args.executable() << ": removing lock file" << endl;
|
||||
coupler.useSlave(); // This removes the lock-file
|
||||
}
|
||||
|
||||
Info<< args.executable() << ": finishing" << nl;
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// dry-run
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
if (dryrun)
|
||||
{
|
||||
Info<< "dry-run: creating states only" << nl;
|
||||
|
||||
autoPtr<Time> runTimePtr;
|
||||
autoPtr<lumpedPointIOMovement> movementPtr;
|
||||
|
||||
const bool throwingIOError = FatalIOError.throwExceptions();
|
||||
const bool throwingError = FatalError.throwExceptions();
|
||||
|
||||
try
|
||||
{
|
||||
Info<< "Create time" << flush;
|
||||
|
||||
runTimePtr = Time::New(args);
|
||||
|
||||
// Create movement without a mesh
|
||||
movementPtr = lumpedPointIOMovement::New(*runTimePtr);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
Info<< " ... failed (optional for dry-run)";
|
||||
}
|
||||
Info<< nl << endl;
|
||||
|
||||
FatalError.throwExceptions(throwingError);
|
||||
FatalIOError.throwExceptions(throwingIOError);
|
||||
|
||||
if (!movementPtr)
|
||||
{
|
||||
Info<< "No time, run without movement information\n" << endl;
|
||||
}
|
||||
|
||||
const lumpedPointState state0(gen.state(0));
|
||||
|
||||
vtk::seriesWriter stateSeries;
|
||||
|
||||
for
|
||||
(
|
||||
label timei = 0, outputCount = 0;
|
||||
timei < nTimes;
|
||||
++timei
|
||||
)
|
||||
{
|
||||
lumpedPointState state(gen.state(currTime));
|
||||
state.relax(relax, state0);
|
||||
|
||||
Info<< "output [" << timei << '/' << nTimes << ']';
|
||||
|
||||
// State/response = what comes back from FEM
|
||||
{
|
||||
const word outputName =
|
||||
word::printf("state_%06d.vtp", outputCount);
|
||||
|
||||
Info<< " " << outputName;
|
||||
|
||||
if (movementPtr)
|
||||
{
|
||||
movementPtr->writeStateVTP(state, outputName);
|
||||
}
|
||||
else
|
||||
{
|
||||
state.writeVTP(outputName);
|
||||
}
|
||||
stateSeries.append(outputCount, outputName);
|
||||
}
|
||||
|
||||
Info<< endl;
|
||||
|
||||
++outputCount;
|
||||
currTime += deltaT;
|
||||
}
|
||||
|
||||
// Write file series
|
||||
if (stateSeries.size())
|
||||
{
|
||||
Info<< nl << "write state.vtp.series" << nl;
|
||||
stateSeries.write("state.vtp");
|
||||
}
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Report values or generate a file
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
if (optQuery || !outputFile.empty())
|
||||
{
|
||||
autoPtr<OFstream> osPtr;
|
||||
|
||||
if (!outputFile.empty())
|
||||
{
|
||||
osPtr.reset(new OFstream(outputFile));
|
||||
auto& os = *osPtr;
|
||||
|
||||
os.precision(8);
|
||||
|
||||
// One file with everything, output using OpenFOAM syntax
|
||||
|
||||
IOobject::writeBanner(os)
|
||||
<< "FoamFile\n{\n"
|
||||
<< " version " << os.version() << ";\n"
|
||||
<< " format " << os.format() << ";\n"
|
||||
<< " class " << "dictionary" << ";\n"
|
||||
<< " object " << "response" << ";\n"
|
||||
<< "}\n";
|
||||
|
||||
IOobject::writeDivider(os) << nl;
|
||||
|
||||
os << "// angles are Euler angles z-x-z (intrinsic)" << nl;
|
||||
os.writeEntry("degrees", "false");
|
||||
os << nl;
|
||||
os << "response" << nl;
|
||||
os << '(' << nl;
|
||||
}
|
||||
else
|
||||
{
|
||||
Info().precision(8);
|
||||
}
|
||||
|
||||
|
||||
for (label timei = 0; timei < nTimes; ++timei)
|
||||
{
|
||||
lumpedPointState state(gen.state(currTime));
|
||||
|
||||
if (osPtr)
|
||||
{
|
||||
// Report position/angle
|
||||
auto& os = *osPtr;
|
||||
|
||||
os.beginBlock();
|
||||
|
||||
os.writeEntry("time", currTime);
|
||||
|
||||
state.writeDict(os);
|
||||
|
||||
os.endBlock();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Report position/angle
|
||||
auto& os = Info();
|
||||
|
||||
os.writeEntry("time", currTime);
|
||||
state.writeDict(os);
|
||||
}
|
||||
|
||||
currTime += deltaT;
|
||||
}
|
||||
|
||||
|
||||
if (osPtr)
|
||||
{
|
||||
auto& os = *osPtr;
|
||||
|
||||
os << ')' << token::END_STATEMENT << nl;
|
||||
|
||||
IOobject::writeEndDivider(os);
|
||||
|
||||
Info<< nl << "wrote " << nTimes << " time values" << nl;
|
||||
Info<< "\nEnd\n" << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
InfoErr << "wrote " << nTimes << " time values" << nl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// test patch movement
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "createTime.H"
|
||||
|
||||
runTime.setTime(instant(runTime.constant()), 0);
|
||||
|
||||
#include "createNamedMesh.H"
|
||||
|
||||
// Create movement with mesh
|
||||
autoPtr<lumpedPointIOMovement> movementPtr =
|
||||
lumpedPointIOMovement::New(mesh);
|
||||
|
||||
if (!movementPtr)
|
||||
{
|
||||
Info<< "No valid movement found" << endl;
|
||||
return 1;
|
||||
}
|
||||
auto& movement = *movementPtr;
|
||||
|
||||
// Reference state0
|
||||
const lumpedPointState& state0 = movement.state0();
|
||||
|
||||
pointIOField points0(lumpedPointTools::points0Field(mesh));
|
||||
|
||||
const label nPatches = lumpedPointTools::setPatchControls(mesh, points0);
|
||||
if (!nPatches)
|
||||
{
|
||||
Info<< "No point patches with lumped movement found" << endl;
|
||||
return 2;
|
||||
}
|
||||
|
||||
Info<< "Lumped point patch controls set on "
|
||||
<< nPatches << " patches" << nl;
|
||||
|
||||
lumpedPointTools::setInterpolators(mesh, points0);
|
||||
|
||||
|
||||
// Output vtk file series
|
||||
vtk::seriesWriter stateSeries;
|
||||
vtk::seriesWriter geomSeries;
|
||||
|
||||
// Initial geometry
|
||||
movement.writeVTP("geom_init.vtp", state0, mesh, points0);
|
||||
|
||||
lumpedPointTools::setInterpolators(mesh);
|
||||
|
||||
for
|
||||
(
|
||||
label timei = 0, outputCount = 0;
|
||||
timei < nTimes;
|
||||
++timei
|
||||
)
|
||||
{
|
||||
lumpedPointState state(gen.state(currTime));
|
||||
|
||||
state += movement.origin();
|
||||
movement.scalePoints(state);
|
||||
state.relax(relax, state0);
|
||||
|
||||
Info<< "output [" << timei << '/' << nTimes << ']';
|
||||
|
||||
// State/response = what comes back from FEM
|
||||
{
|
||||
const word outputName =
|
||||
word::printf("state_%06d.vtp", outputCount);
|
||||
|
||||
Info<< " " << outputName;
|
||||
|
||||
movement.writeStateVTP(state, outputName);
|
||||
stateSeries.append(outputCount, outputName);
|
||||
}
|
||||
|
||||
{
|
||||
const word outputName =
|
||||
word::printf("geom_%06d.vtp", outputCount);
|
||||
|
||||
Info<< " " << outputName;
|
||||
|
||||
movement.writeVTP(outputName, state, mesh, points0);
|
||||
geomSeries.append(outputCount, outputName);
|
||||
}
|
||||
|
||||
Info<< endl;
|
||||
|
||||
++outputCount;
|
||||
currTime += deltaT;
|
||||
}
|
||||
|
||||
|
||||
// Write file series
|
||||
|
||||
if (geomSeries.size())
|
||||
{
|
||||
Info<< nl << "write geom.vtp.series" << nl;
|
||||
geomSeries.write("geom.vtp");
|
||||
}
|
||||
if (stateSeries.size())
|
||||
{
|
||||
Info<< nl << "write state.vtp.series" << nl;
|
||||
stateSeries.write("state.vtp");
|
||||
}
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
35
tutorials/incompressible/lumpedPointMotion/bridge/files/Allrun.moveMesh
Executable file
35
tutorials/incompressible/lumpedPointMotion/bridge/files/Allrun.moveMesh
Executable file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Cleanup old junk that may prevent things from starting
|
||||
rm -f comms/OpenFOAM.lock
|
||||
|
||||
# If OpenFOAM stops prematurely, trigger the external solver to stop
|
||||
trap '[ -e comms/OpenFOAM.lock ] && echo "status=done" > comms/OpenFOAM.lock' EXIT TERM INT
|
||||
|
||||
# Simulated external solver.
|
||||
|
||||
if false
|
||||
then
|
||||
# Create response file
|
||||
runApplication -overwrite \
|
||||
../code/polynomial-motion -deltaT 0.001 -nTimes 5001 \
|
||||
-output response.txt \
|
||||
polynomials.dict
|
||||
|
||||
# Use response file for states
|
||||
runApplication -overwrite \
|
||||
lumpedPointMovement -removeLock -slave response.txt &
|
||||
else
|
||||
|
||||
# Generate states on demand
|
||||
runApplication -overwrite \
|
||||
../code/polynomial-motion -removeLock -slave polynomials.dict &
|
||||
fi
|
||||
|
||||
# Run moveMesh with larger deltaT
|
||||
runParallel moveMesh -deltaT 0.001
|
||||
|
||||
#------------------------------------------------------------------------------
|
36
tutorials/incompressible/lumpedPointMotion/bridge/files/Allrun.movement
Executable file
36
tutorials/incompressible/lumpedPointMotion/bridge/files/Allrun.movement
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# The 0/ field only
|
||||
# runApplication reconstructPar -withZero -time 0
|
||||
runApplication reconstructParMesh -constant -withZero -time 0
|
||||
|
||||
# Check the location of the pressure zones
|
||||
# runParallel lumpedPointZones <<- Parallel file writing not yet done
|
||||
runApplication lumpedPointZones
|
||||
|
||||
# Simulated external solver
|
||||
# Use -scale=10 to exaggerate the movements
|
||||
|
||||
if false
|
||||
then
|
||||
# Create response file
|
||||
runApplication -overwrite \
|
||||
../code/polynomial-motion -deltaT 0.001 -nTimes 5001 \
|
||||
-output response.txt \
|
||||
polynomials.dict
|
||||
|
||||
# Use response file for states
|
||||
runApplication -overwrite \
|
||||
lumpedPointMovement -span 25 -scale 10 response.txt
|
||||
else
|
||||
|
||||
# Generate states on demand
|
||||
runApplication -overwrite \
|
||||
../code/polynomial-motion -scale 10 -deltaT 0.025 -nTimes 201 \
|
||||
polynomials.dict
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
35
tutorials/incompressible/lumpedPointMotion/bridge/files/Allrun.transient
Executable file
35
tutorials/incompressible/lumpedPointMotion/bridge/files/Allrun.transient
Executable file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Cleanup old junk that may prevent things from starting
|
||||
rm -f comms/OpenFOAM.lock
|
||||
|
||||
# If OpenFOAM stops prematurely, trigger the external solver to stop
|
||||
trap '[ -e comms/OpenFOAM.lock ] && echo "status=done" > comms/OpenFOAM.lock' EXIT TERM INT
|
||||
|
||||
# Simulated external solver.
|
||||
|
||||
if false
|
||||
then
|
||||
# Create response file
|
||||
runApplication -overwrite \
|
||||
../code/polynomial-motion -deltaT 0.001 -nTimes 5001 \
|
||||
-output response.txt \
|
||||
polynomials.dict
|
||||
|
||||
# Use response file for states
|
||||
runApplication -overwrite \
|
||||
lumpedPointMovement -removeLock -slave response.txt &
|
||||
else
|
||||
|
||||
# Generate states on demand
|
||||
runApplication -overwrite \
|
||||
../code/polynomial-motion -removeLock -slave polynomials.dict &
|
||||
fi
|
||||
|
||||
# Run OpenFOAM
|
||||
runParallel $(getApplication)
|
||||
|
||||
#------------------------------------------------------------------------------
|
@ -0,0 +1,147 @@
|
||||
#---------------------------------*- sh -*-------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# Script
|
||||
# RunFunctions
|
||||
#
|
||||
# Description
|
||||
# Additional functions for copy/linking FSI cases
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# copyParallelPointDisplacement caseDir timeName
|
||||
#
|
||||
# Copy pointDisplacement from caseDir/0/ to caseDir/timeName/
|
||||
#
|
||||
copyParallelPointDisplacement()
|
||||
{
|
||||
local src="$1"
|
||||
local dstTime="$2"
|
||||
local file=pointDisplacement
|
||||
|
||||
[ -d "$src" ] || {
|
||||
echo "Error: no directory: $src"
|
||||
return 1
|
||||
}
|
||||
|
||||
# Copy select directories
|
||||
echo " copy processor '$file' from 0/ -> $dstTime"
|
||||
if [ -n "$dstTime" ]
|
||||
then
|
||||
(
|
||||
cd "$src" || exit
|
||||
|
||||
for proc in processor*
|
||||
do
|
||||
if [ -d "$proc/0" ] && [ -d "$proc/$dstTime" ]
|
||||
then
|
||||
cp "$proc/0/$file" "$proc/$dstTime/$file"
|
||||
if [ -d "$proc/0/include" ]
|
||||
then
|
||||
cp -r "$proc/0/include" "$proc/$dstTime"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
)
|
||||
else
|
||||
echo " no destination time"
|
||||
fi
|
||||
|
||||
# Restart from latestTime
|
||||
foamDictionary "$src"/system/controlDict \
|
||||
-entry startFrom -set latestTime
|
||||
|
||||
deltaT=$(foamDictionary "$src"/system/controlDict -entry deltaT -value)
|
||||
latestTime=$(foamListTimes -case "$src" -noZero -latestTime -processor)
|
||||
|
||||
# Restart using steady results as first deltaT interval
|
||||
echo "deltaT=$deltaT latestTime=$latestTime"
|
||||
if [ -n "$latestTime" ] && [ "$deltaT" != "$latestTime" ]
|
||||
then
|
||||
(
|
||||
cd "$src" || exit
|
||||
|
||||
for proc in processor*
|
||||
do
|
||||
if [ -d "$proc/$latestTime" ] && [ ! -d "$proc/$deltaT" ]
|
||||
then
|
||||
mv "$proc/$latestTime" "$proc/$deltaT"
|
||||
rm -rf "$proc/$deltaT/uniform"
|
||||
fi
|
||||
done
|
||||
)
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# linkParallelCase srcDir dstDir
|
||||
#
|
||||
linkParallelCase()
|
||||
{
|
||||
local src="$1"
|
||||
local dst="$2"
|
||||
shift 2
|
||||
|
||||
if [ -e "$dst" ]
|
||||
then
|
||||
echo "Case already linked: remove case directory $dst prior to linking"
|
||||
return 1
|
||||
elif [ ! -d "$src" ]
|
||||
then
|
||||
echo "Error: no directory to link: $src"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Linking $dst parallel case from $src"
|
||||
mkdir -p "$dst"
|
||||
|
||||
# Copy system - may wish to change things
|
||||
for i in system 0
|
||||
do
|
||||
echo " copy $i/"
|
||||
( cd "$dst" && cp -r "../$src/$i" . )
|
||||
done
|
||||
|
||||
echo " link constant/"
|
||||
( cd "$dst" && ln -sf "../$src/constant" . )
|
||||
|
||||
echo " link processor*/ with $# times: $@"
|
||||
for proc in $(cd "$src" && \ls -d processor*)
|
||||
do
|
||||
( cd "$dst" && ln -sf "../$src/$proc" . )
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# linkFiles srcDir dstDir
|
||||
#
|
||||
linkFiles()
|
||||
{
|
||||
local src="$1"
|
||||
local dst="$2"
|
||||
shift
|
||||
|
||||
echo "Linking $dst control files from $src"
|
||||
mkdir -p "$dst"
|
||||
|
||||
( cd "$dst" && ln -sf ../"$src"/* . )
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
@ -0,0 +1,979 @@
|
||||
// -*- C++ -*-
|
||||
|
||||
// Points/angles as triples of polynomials
|
||||
|
||||
// Time range 0-10
|
||||
maxTime 10;
|
||||
|
||||
points
|
||||
80
|
||||
(
|
||||
|
||||
(
|
||||
( 15.3125 0.174766 -0.141268 0.048234 -0.007994 0.000635 -1.932118e-05 )
|
||||
( -250.00 -0.042347 0.030815 -0.009612 0.001467 -0.000108 3.070728e-06 )
|
||||
( 68.5906 -0.178069 0.222075 -0.097291 0.018774 -0.001641 5.318156e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.200011 -0.161636 0.055176 -0.009143 0.000726 -2.209210e-05 )
|
||||
( -242.500 -0.041980 0.030651 -0.009601 0.001471 -0.000109 3.102370e-06 )
|
||||
( 68.5906 -0.200176 0.250985 -0.110173 0.021283 -0.001862 6.036911e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.286248 -0.231412 0.079002 -0.013091 0.001039 -3.162545e-05 )
|
||||
( -216.250 -0.038305 0.028235 -0.008922 0.001376 -0.000102 2.924669e-06 )
|
||||
( 68.5906 -0.259462 0.329964 -0.145453 0.028153 -0.002466 7.996031e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.370072 -0.299434 0.102273 -0.016951 0.001346 -4.096051e-05 )
|
||||
( -190.000 -0.034293 0.025250 -0.007966 0.001225 -0.000091 2.583855e-06 )
|
||||
( 68.5906 -0.298405 0.370228 -0.161314 0.031008 -0.002703 8.729354e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.443203 -0.358789 0.122585 -0.020322 0.001614 -4.910869e-05 )
|
||||
( -163.750 -0.029645 0.021621 -0.006761 0.001030 -0.000075 2.126338e-06 )
|
||||
( 68.5906 -0.310869 0.361434 -0.152972 0.028908 -0.002490 7.970529e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.496914 -0.402271 0.137444 -0.022785 0.001809 -5.505572e-05 )
|
||||
( -137.500 -0.025053 0.018121 -0.005630 0.000851 -0.000062 1.725412e-06 )
|
||||
( 68.5906 -0.286654 0.306908 -0.124661 0.022941 -0.001937 6.099195e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.523743 -0.423912 0.144820 -0.024005 0.001906 -5.798254e-05 )
|
||||
( -107.500 -0.019629 0.013770 -0.004151 0.000607 -0.000042 1.134816e-06 )
|
||||
( 68.5906 -0.229556 0.222241 -0.084974 0.014941 -0.001213 3.679774e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.521137 -0.421542 0.143950 -0.023851 0.001893 -5.755448e-05 )
|
||||
( -77.500 -0.014477 0.009815 -0.002857 0.000400 -0.000026 6.619010e-07 )
|
||||
( 68.5906 -0.190252 0.164522 -0.058224 0.009629 -0.000740 2.125207e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.508228 -0.410595 0.140096 -0.023196 0.001839 -5.588223e-05 )
|
||||
( -47.500 -0.009253 0.006018 -0.001667 0.000214 -0.000012 2.372402e-07 )
|
||||
( 68.5906 -0.195742 0.158384 -0.053811 0.008729 -0.000668 1.938183e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.500129 -0.403623 0.137619 -0.022772 0.001805 -5.479218e-05 )
|
||||
( -17.500 -0.003856 0.001921 -0.000335 0.000000 0.000005 -2.723765e-07 )
|
||||
( 68.5906 -0.210201 0.169425 -0.057802 0.009545 -0.000753 2.270903e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.497814 -0.401671 0.136932 -0.022656 0.001795 -5.449686e-05 )
|
||||
( 0.0 -0.002144 0.000699 0.000038 -0.000056 0.000009 -3.893160e-07 )
|
||||
( 68.5906 -0.210929 0.170255 -0.058002 0.009586 -0.000758 2.297490e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.500158 -0.403658 0.137633 -0.022775 0.001805 -5.479875e-05 )
|
||||
( 17.500 -0.000439 -0.000530 0.000421 -0.000115 0.000013 -5.179919e-07 )
|
||||
( 68.5906 -0.211404 0.169353 -0.056847 0.009248 -0.000720 2.144750e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.508306 -0.410696 0.140139 -0.023204 0.001840 -5.590458e-05 )
|
||||
( 47.500 0.004956 -0.004692 0.001812 -0.000344 0.000031 -1.083547e-06 )
|
||||
( 68.5906 -0.197974 0.157318 -0.051043 0.007925 -0.000582 1.614266e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.521243 -0.421675 0.144005 -0.023861 0.001894 -5.757762e-05 )
|
||||
( 77.500 0.010204 -0.008545 0.003042 -0.000539 0.000046 -1.536890e-06 )
|
||||
( 68.5906 -0.191518 0.161596 -0.053934 0.008483 -0.000624 1.705356e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.523877 -0.424074 0.144885 -0.024016 0.001907 -5.800749e-05 )
|
||||
( 107.500 0.015353 -0.012482 0.004323 -0.000743 0.000062 -2.001406e-06 )
|
||||
( 68.5906 -0.228183 0.217780 -0.080216 0.013802 -0.001109 3.335771e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.497103 -0.402476 0.137519 -0.022797 0.001810 -5.507741e-05 )
|
||||
( 137.500 0.020752 -0.016851 0.005822 -0.000993 0.000082 -2.617232e-06 )
|
||||
( 68.5906 -0.282175 0.301717 -0.120328 0.022072 -0.001875 5.952971e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.443403 -0.358997 0.122658 -0.020333 0.001614 -4.912615e-05 )
|
||||
( 163.750 0.025392 -0.020444 0.006999 -0.001181 0.000097 -3.045990e-06 )
|
||||
( 68.5906 -0.304476 0.356182 -0.149218 0.028308 -0.002467 8.002714e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.370259 -0.299634 0.102344 -0.016962 0.001347 -4.097822e-05 )
|
||||
( 190.000 0.029783 -0.023749 0.008063 -0.001349 0.000109 -3.419932e-06 )
|
||||
( 68.5906 -0.291145 0.365224 -0.158077 0.030610 -0.002707 8.883135e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.286402 -0.231577 0.079061 -0.013100 0.001040 -3.163933e-05 )
|
||||
( 216.250 0.033970 -0.026972 0.009121 -0.001519 0.000123 -3.816657e-06 )
|
||||
( 68.5906 -0.252042 0.325242 -0.142650 0.027874 -0.002483 8.195241e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.200126 -0.161764 0.055225 -0.009151 0.000726 -2.210558e-05 )
|
||||
( 242.500 0.037682 -0.029367 0.009782 -0.001609 0.000128 -3.970004e-06 )
|
||||
( 68.5906 -0.193581 0.246854 -0.107898 0.021076 -0.001879 6.212219e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.174859 -0.141365 0.048269 -0.007999 0.000635 -1.932781e-05 )
|
||||
( 250.000 0.037897 -0.029384 0.009745 -0.001597 0.000127 -3.919994e-06 )
|
||||
( 68.5906 -0.171985 0.218249 -0.095218 0.018585 -0.001657 5.476512e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.174751 -0.141196 0.048191 -0.007985 0.000634 -1.928948e-05 )
|
||||
( -250.000 0.047805 -0.042193 0.015348 -0.002674 0.000221 -6.945774e-06 )
|
||||
( 68.5906 -0.064391 0.131054 -0.066665 0.013779 -0.001252 4.157339e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.200195 -0.161791 0.055231 -0.009152 0.000727 -2.211513e-05 )
|
||||
( -242.500 0.046983 -0.041332 0.015004 -0.002611 0.000216 -6.773582e-06 )
|
||||
( 68.5906 -0.078683 0.153737 -0.077477 0.015956 -0.001447 4.801297e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.287251 -0.232186 0.079273 -0.013138 0.001043 -3.174986e-05 )
|
||||
( -216.250 0.041311 -0.036181 0.013087 -0.002273 0.000188 -5.893467e-06 )
|
||||
( 68.5906 -0.129320 0.226699 -0.111181 0.022647 -0.002043 6.759149e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.371140 -0.300027 0.102430 -0.016973 0.001348 -4.100686e-05 )
|
||||
( -190.000 0.036340 -0.031949 0.011586 -0.002017 0.000167 -5.254454e-06 )
|
||||
( 68.5906 -0.131728 0.238274 -0.117665 0.024021 -0.002168 7.172021e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.443813 -0.358990 0.122589 -0.020315 0.001613 -4.907302e-05 )
|
||||
( -163.750 0.031115 -0.027548 0.010037 -0.001755 0.000146 -4.600551e-06 )
|
||||
( 68.5906 -0.070050 0.168940 -0.088397 0.018411 -0.001674 5.546692e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.497626 -0.402860 0.137645 -0.022818 0.001812 -5.513447e-05 )
|
||||
( -137.500 0.026024 -0.023239 0.008511 -0.001494 0.000125 -3.945772e-06 )
|
||||
( 68.5906 -0.002725 0.078986 -0.047747 0.010361 -0.000953 3.155420e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.526152 -0.426017 0.145588 -0.024139 0.001917 -5.832289e-05 )
|
||||
( -107.500 0.020252 -0.018535 0.006903 -0.001228 0.000104 -3.309073e-06 )
|
||||
( 68.5906 0.029774 0.016128 -0.016415 0.003909 -0.000365 1.198146e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.524454 -0.424270 0.144913 -0.024015 0.001906 -5.796377e-05 )
|
||||
( -77.500 0.014368 -0.013570 0.005153 -0.000932 0.000080 -2.571721e-06 )
|
||||
( 68.5906 0.068622 -0.039385 0.008795 -0.001009 0.000065 -1.870917e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.510782 -0.412641 0.140802 -0.023314 0.001849 -5.617231e-05 )
|
||||
( -47.500 0.007001 -0.007130 0.002828 -0.000532 0.000047 -1.569771e-06 )
|
||||
( 68.5906 0.149174 -0.117121 0.038679 -0.006314 0.000501 -1.536306e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.501414 -0.404676 0.137979 -0.022832 0.001809 -5.493464e-05 )
|
||||
( -17.500 0.000064 -0.001212 0.000724 -0.000174 0.000018 -6.856972e-07 )
|
||||
( 68.5906 0.204781 -0.165077 0.055984 -0.009234 0.000731 -2.217439e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.499081 -0.402709 0.137288 -0.022715 0.001800 -5.463905e-05 )
|
||||
( 0.0 -0.002144 0.000700 0.000037 -0.000056 0.000009 -3.896802e-07 )
|
||||
( 68.5906 0.208816 -0.168243 0.057250 -0.009456 0.000748 -2.265434e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.501438 -0.404709 0.137994 -0.022835 0.001810 -5.494375e-05 )
|
||||
( 17.500 -0.004351 0.002593 -0.000635 0.000058 -0.000001 -1.074590e-07 )
|
||||
( 68.5906 0.203306 -0.164924 0.056867 -0.009520 0.000763 -2.341350e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.510847 -0.412725 0.140837 -0.023321 0.001849 -5.619090e-05 )
|
||||
( 47.500 -0.011340 0.008503 -0.002702 0.000405 -0.000028 7.302513e-07 )
|
||||
( 68.5906 0.146065 -0.117411 0.041197 -0.007082 0.000585 -1.854184e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.524567 -0.424401 0.144964 -0.024024 0.001907 -5.798563e-05 )
|
||||
( 77.500 -0.018691 0.014888 -0.004985 0.000795 -0.000060 1.701534e-06 )
|
||||
( 68.5906 0.066320 -0.041231 0.012715 -0.002098 0.000177 -5.966844e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.526309 -0.426189 0.145653 -0.024149 0.001918 -5.834565e-05 )
|
||||
( 107.500 -0.024652 0.019935 -0.006765 0.001097 -0.000084 2.452272e-06 )
|
||||
( 68.5906 0.030693 0.012303 -0.011891 0.002809 -0.000264 8.627694e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.497785 -0.403030 0.137707 -0.022828 0.001813 -5.514927e-05 )
|
||||
( 137.500 -0.030325 0.024468 -0.008287 0.001344 -0.000103 3.020459e-06 )
|
||||
( 68.5906 0.001610 0.074043 -0.043503 0.009507 -0.000892 3.013965e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.443987 -0.359182 0.122662 -0.020327 0.001614 -4.909226e-05 )
|
||||
( 163.750 -0.035497 0.028877 -0.009859 0.001614 -0.000125 3.709784e-06 )
|
||||
( 68.5906 -0.063844 0.163895 -0.084701 0.017821 -0.001653 5.583930e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.371324 -0.300225 0.102505 -0.016985 0.001348 -4.102539e-05 )
|
||||
( 190.000 -0.040807 0.033416 -0.011478 0.001892 -0.000148 4.415235e-06 )
|
||||
( 68.5906 -0.124520 0.233365 -0.114448 0.023628 -0.002174 7.331505e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.287419 -0.232364 0.079340 -0.013149 0.001044 -3.176753e-05 )
|
||||
( 216.250 -0.045662 0.037460 -0.012893 0.002131 -0.000167 5.004019e-06 )
|
||||
( 68.5906 -0.121836 0.222005 -0.108386 0.022372 -0.002061 6.962625e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.200315 -0.161917 0.055277 -0.009159 0.000727 -2.212530e-05 )
|
||||
( 242.500 -0.051535 0.042857 -0.014901 0.002485 -0.000197 5.927703e-06 )
|
||||
( 68.5906 -0.072043 0.149636 -0.075214 0.015751 -0.001465 4.978519e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.174853 -0.141300 0.048227 -0.007990 0.000634 -1.929508e-05 )
|
||||
( 250.000 -0.052025 0.043341 -0.015096 0.002522 -0.000200 6.032250e-06 )
|
||||
( 68.5906 -0.058255 0.127239 -0.064596 0.013592 -0.001267 4.316771e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 7.65625 0.200032 -0.161657 0.055185 -0.009145 0.000726 -2.209662e-05 )
|
||||
( -242.500 -0.018790 0.011862 -0.003168 0.000402 -0.000024 5.082538e-07 )
|
||||
( 68.5906 -0.169998 0.226918 -0.102106 0.019972 -0.001760 5.733913e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 7.65625 0.497047 -0.402384 0.137483 -0.022792 0.001810 -5.507102e-05 )
|
||||
( -137.500 -0.012573 0.008054 -0.002194 0.000282 -0.000017 3.454186e-07 )
|
||||
( 68.5906 -0.215870 0.250190 -0.105546 0.019817 -0.001693 5.369135e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 7.65625 0.500369 -0.403822 0.137688 -0.022784 0.001806 -5.481970e-05 )
|
||||
( -17.500 -0.003664 0.001786 -0.000293 -0.000006 0.000005 -2.857221e-07 )
|
||||
( 68.5906 -0.106644 0.085972 -0.029419 0.004861 -0.000383 1.151716e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 7.65625 0.500398 -0.403857 0.137702 -0.022786 0.001806 -5.482660e-05 )
|
||||
( 17.500 -0.000630 -0.000399 0.000381 -0.000109 0.000013 -5.053096e-07 )
|
||||
( 68.5906 -0.107912 0.085954 -0.028482 0.004567 -0.000350 1.026094e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 7.65625 0.497222 -0.402574 0.137553 -0.022803 0.001811 -5.509074e-05 )
|
||||
( 137.500 0.008264 -0.006777 0.002385 -0.000424 0.000037 -1.243501e-06 )
|
||||
( 68.5906 -0.211413 0.245043 -0.101226 0.018951 -0.001631 5.223569e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 7.65625 0.200155 -0.161790 0.055234 -0.009152 0.000727 -2.210933e-05 )
|
||||
( 242.500 0.014479 -0.010630 0.003389 -0.000550 0.000044 -1.413096e-06 )
|
||||
( 68.5906 -0.163399 0.222797 -0.099834 0.019765 -0.001777 5.909594e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.200071 -0.161689 0.055196 -0.009147 0.000726 -2.210089e-05 )
|
||||
( -242.500 0.002324 -0.005170 0.002636 -0.000558 0.000052 -1.804906e-06 )
|
||||
( 68.5906 -0.139595 0.202618 -0.093945 0.018643 -0.001657 5.426236e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.497202 -0.402511 0.137526 -0.022799 0.001810 -5.508758e-05 )
|
||||
( -137.500 0.000335 -0.002362 0.001353 -0.000304 0.000030 -1.060538e-06 )
|
||||
( 68.5906 -0.144857 0.193215 -0.086328 0.016675 -0.001447 4.634344e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.500664 -0.404063 0.137770 -0.022797 0.001807 -5.485266e-05 )
|
||||
( -17.500 -0.001813 0.000291 0.000217 -0.000091 0.000012 -4.886496e-07 )
|
||||
( 68.5906 -0.002747 0.002239 -0.000940 0.000162 -0.000012 2.861926e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.500692 -0.404098 0.137785 -0.022800 0.001807 -5.485985e-05 )
|
||||
( 17.500 -0.002488 0.001104 -0.000132 -0.000024 0.000006 -3.025070e-07 )
|
||||
( 68.590 -0.004085 0.002269 -0.000015 -0.000131 0.000021 -9.691449e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.497378 -0.402701 0.137596 -0.022810 0.001811 -5.510732e-05 )
|
||||
( 137.500 -0.004582 0.003590 -0.001153 0.000163 -0.000010 1.736106e-07 )
|
||||
( 68.590 -0.140439 0.188134 -0.082032 0.015813 -0.001386 4.490008e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.200194 -0.161821 0.055245 -0.009154 0.000727 -2.211347e-05 )
|
||||
( 242.500 -0.006686 0.006475 -0.002443 0.000415 -0.000032 9.106597e-07 )
|
||||
( 68.5906 -0.132978 0.198494 -0.091671 0.018437 -0.001674 5.602200e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -7.65625 0.200124 -0.161732 0.055210 -0.009149 0.000726 -2.210650e-05 )
|
||||
( -242.500 0.023660 -0.022462 0.008554 -0.001541 0.000131 -4.185424e-06 )
|
||||
( 68.5906 -0.109084 0.178163 -0.085715 0.017301 -0.001552 5.114584e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -7.65625 0.497394 -0.402668 0.137579 -0.022807 0.001811 -5.510827e-05 )
|
||||
( -137.500 0.013384 -0.012997 0.005007 -0.000913 0.000078 -2.541339e-06 )
|
||||
( 68.5906 -0.073773 0.136123 -0.067055 0.013522 -0.001200 3.896330e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -7.65625 0.501015 -0.404351 0.137869 -0.022814 0.001808 -5.489195e-05 )
|
||||
( -17.500 0.000019 -0.001201 0.000727 -0.000175 0.000018 -6.926939e-07 )
|
||||
( 68.5906 0.101186 -0.081552 0.027567 -0.004544 0.000360 -1.096064e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -7.65625 0.501041 -0.404385 0.137883 -0.022816 0.001808 -5.489901e-05 )
|
||||
( 17.500 -0.004308 0.002585 -0.000639 0.000060 -0.000001 -9.960377e-08 )
|
||||
( 68.5906 0.099762 -0.081442 0.028463 -0.004832 0.000392 -1.220495e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -7.65625 0.497568 -0.402856 0.137648 -0.022818 0.001812 -5.512744e-05 )
|
||||
( 137.500 -0.017571 0.014108 -0.004744 0.000757 -0.000057 1.607153e-06 )
|
||||
( 68.5906 -0.069409 0.131120 -0.062788 0.012665 -0.001139 3.753554e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -7.65625 0.200246 -0.161864 0.055259 -0.009157 0.000727 -2.211898e-05 )
|
||||
( 242.500 -0.028048 0.023768 -0.008358 0.001398 -0.000110 3.292373e-06 )
|
||||
( 68.5906 -0.102442 0.174037 -0.083441 0.017095 -0.001569 5.290884e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 )
|
||||
( 0 )
|
||||
( 5 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.031916 -0.025745 0.008782 -0.001454 0.000115 -3.507344e-06 )
|
||||
( 0.0 -0.000133 0.000033 0.000010 -0.000005 0.000001 -3.082166e-08 )
|
||||
( 18.250 -0.000052 0.000085 -0.000040 0.000008 -0.000001 2.226957e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.117827 -0.095073 0.032429 -0.005369 0.000426 -1.294090e-05 )
|
||||
( 0.0 -0.000497 0.000133 0.000030 -0.000018 0.000002 -1.080594e-07 )
|
||||
( 31.500 -0.000218 0.000262 -0.000110 0.000021 -0.000002 5.596168e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.245738 -0.198304 0.067630 -0.011195 0.000888 -2.696378e-05 )
|
||||
( 0.0 -0.001043 0.000302 0.000046 -0.000034 0.000005 -2.128976e-07 )
|
||||
( 44.750 -0.000534 0.000570 -0.000228 0.000042 -0.000004 1.110370e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.406257 -0.327821 0.111774 -0.018496 0.001466 -4.451285e-05 )
|
||||
( 0.0 -0.001737 0.000547 0.000044 -0.000049 0.000007 -3.270273e-07 )
|
||||
( 58.000 -0.001018 0.001018 -0.000394 0.000071 -0.000006 1.844875e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.497702 -0.401579 0.136900 -0.022650 0.001795 -5.448249e-05 )
|
||||
( 0.0 -0.002134 0.000704 0.000032 -0.000054 0.000008 -3.828102e-07 )
|
||||
( 64.750 -0.001311 0.001289 -0.000496 0.000089 -0.000007 2.310822e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.515322 -0.415779 0.141735 -0.023449 0.001858 -5.639836e-05 )
|
||||
( 0.0 -0.002212 0.000738 0.000027 -0.000055 0.000009 -3.918457e-07 )
|
||||
( 66.000 -0.001393 0.001361 -0.000521 0.000093 -0.000008 2.402649e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 0.934946 -0.753848 0.256836 -0.042473 0.003364 -1.020165e-04 )
|
||||
( 0.0 -0.003894 0.001698 -0.000244 -0.000028 0.000008 -4.482598e-07 )
|
||||
( 88.875 -0.003548 0.003385 -0.001281 0.000227 -0.000019 5.905022e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 1.502594 -1.211985 0.413014 -0.068315 0.005410 -1.640420e-04 )
|
||||
( 0.0 -0.005674 0.002955 -0.000727 0.000047 0.000004 -3.658772e-07 )
|
||||
( 111.750 -0.007340 0.006750 -0.002495 0.000436 -0.000036 1.113284e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 2.157385 -1.742333 0.594222 -0.098351 0.007792 -2.362711e-04 )
|
||||
( 0.0 -0.006890 0.003913 -0.001172 0.000122 -0.000001 -2.674562e-07 )
|
||||
( 134.625 -0.012243 0.011027 -0.004032 0.000701 -0.000057 1.784161e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 2.856379 -2.310407 0.788752 -0.130649 0.010357 -3.141036e-04 )
|
||||
( 0.0 -0.007168 0.004197 -0.001398 0.000162 -0.000003 -2.542579e-07 )
|
||||
( 157.500 -0.017987 0.016027 -0.005820 0.001008 -0.000082 2.553218e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 3.130909 -2.533972 0.865415 -0.143392 0.011369 -3.448534e-04 )
|
||||
( 0.0 -0.006990 0.004086 -0.001402 0.000162 -0.000002 -2.885212e-07 )
|
||||
( 166.250 -0.020277 0.018035 -0.006546 0.001133 -0.000093 2.872113e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 3.407814 -2.759686 0.942867 -0.156272 0.012393 -3.759602e-04 )
|
||||
( 0.0 -0.006667 0.003857 -0.001354 0.000152 -0.000001 -3.504138e-07 )
|
||||
( 175.000 -0.022856 0.020350 -0.007390 0.001280 -0.000105 3.248637e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 3.726010 -3.019242 1.031976 -0.171098 0.013572 -4.117851e-04 )
|
||||
( 0.0 -0.006194 0.003503 -0.001250 0.000131 0.000001 -4.502211e-07 )
|
||||
( 185.000 -0.025365 0.022446 -0.008116 0.001401 -0.000114 3.541212e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 4.044664 -3.279282 1.121278 -0.185959 0.014754 -4.477087e-04 )
|
||||
( 0.0 -0.005655 0.003093 -0.001119 0.000104 0.000004 -5.661849e-07 )
|
||||
( 195.000 -0.028121 0.024805 -0.008952 0.001544 -0.000126 3.903695e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0.0 4.204106 -3.409407 1.165968 -0.193396 0.015346 -4.656879e-04 )
|
||||
( 0.0 -0.005383 0.002886 -0.001052 0.000091 0.000006 -6.248740e-07 )
|
||||
( 200.000 -0.029483 0.025985 -0.009373 0.001617 -0.000132 4.085164e-06 )
|
||||
)
|
||||
|
||||
(
|
||||
( 15.3125 0.497816 -0.401675 0.136934 -0.022656 0.001795 -5.449829e-05 )
|
||||
( 0.0 -0.002144 0.000699 0.000038 -0.000056 0.000009 -3.892899e-07 )
|
||||
( 64.750 -0.210932 0.170259 -0.058004 0.009587 -0.000759 2.297656e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( 21.525 0.497633 -0.401527 0.136884 -0.022648 0.001795 -5.447895e-05 )
|
||||
( 0.0 -0.002146 0.000697 0.000040 -0.000057 0.000009 -3.910079e-07 )
|
||||
( 64.750 -0.295607 0.238506 -0.081225 0.013421 -0.001062 3.214949e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -15.3125 0.499070 -0.402706 0.137289 -0.022715 0.001800 -5.463978e-05 )
|
||||
( 0.0 -0.002144 0.000700 0.000037 -0.000056 0.000009 -3.896576e-07 )
|
||||
( 64.750 0.208812 -0.168238 0.057249 -0.009455 0.000748 -2.265391e-05 )
|
||||
)
|
||||
|
||||
(
|
||||
( -21.525 0.499409 -0.402986 0.137384 -0.022731 0.001801 -5.467844e-05 )
|
||||
( 0.0 -0.002148 0.000699 0.000039 -0.000056 0.000009 -3.921373e-07 )
|
||||
( 64.750 0.293745 -0.236762 0.080584 -0.013311 0.001053 -3.189258e-05 )
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
angles
|
||||
80
|
||||
(
|
||||
|
||||
(
|
||||
( 0 -0.003255 0.004110 -0.001807 3.494368e-04 -3.061548e-05 9.936594e-07 )
|
||||
( 0 0.003406 -0.002711 0.000908 -1.473312e-04 1.144402e-05 -3.398864e-07 )
|
||||
( 0 -0.003415 0.002754 -0.000938 1.552114e-04 -1.230388e-05 3.739080e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.002609 0.003574 -0.001620 3.181290e-04 -2.813241e-05 9.187052e-07 )
|
||||
( 0 0.003916 -0.003118 0.001044 -1.694417e-04 1.316179e-05 -3.909124e-07 )
|
||||
( 0 -0.003242 0.002613 -0.000890 1.470687e-04 -1.165220e-05 3.539368e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001893 0.002420 -0.001058 2.030407e-04 -1.764415e-05 5.671973e-07 )
|
||||
( 0 0.005239 -0.004173 0.001398 -2.272070e-04 1.766871e-05 -5.254593e-07 )
|
||||
( 0 -0.003357 0.002718 -0.000928 1.536640e-04 -1.218977e-05 3.705821e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001054 0.000627 -0.000143 1.293093e-05 -2.642606e-07 -1.290043e-08 )
|
||||
( 0 0.006562 -0.005232 0.001755 -2.855615e-04 2.223535e-05 -6.622059e-07 )
|
||||
( 0 -0.003054 0.002477 -0.000847 1.403720e-04 -1.114274e-05 3.388877e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000125 -0.001310 0.000782 -1.734957e-04 1.649828e-05 -5.664025e-07 )
|
||||
( 0 0.007893 -0.006304 0.002118 -3.451914e-04 2.692187e-05 -8.031204e-07 )
|
||||
( 0 -0.002428 0.001967 -0.000673 1.114889e-04 -8.850226e-06 2.691432e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001729 -0.002840 0.001371 -2.799640e-04 2.552321e-05 -8.553348e-07 )
|
||||
( 0 0.009225 -0.007383 0.002486 -4.057776e-04 3.170173e-05 -9.473475e-07 )
|
||||
( 0 -0.001595 0.001285 -0.000438 7.241235e-05 -5.738565e-06 1.742821e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.002060 -0.002783 0.001265 -2.510977e-04 2.254918e-05 -7.500262e-07 )
|
||||
( 0 0.010286 -0.008245 0.002783 -4.558048e-04 3.572996e-05 -1.071737e-06 )
|
||||
( 0 -0.000371 0.000296 -0.000100 1.635638e-05 -1.278869e-06 3.813372e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000547 -0.001048 0.000510 -1.012933e-04 8.828061e-06 -2.807087e-07 )
|
||||
( 0 0.011346 -0.009108 0.003083 -5.061551e-04 3.978937e-05 -1.197208e-06 )
|
||||
( 0 0.000453 -0.000379 0.000132 -2.227406e-05 1.801216e-06 -5.599715e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000907 0.000628 -0.000211 4.007245e-05 -3.958591e-06 1.517899e-07 )
|
||||
( 0 0.012414 -0.009981 0.003385 -5.570868e-04 4.389570e-05 -1.324098e-06 )
|
||||
( 0 0.000695 -0.000579 0.000202 -3.389117e-05 2.727188e-06 -8.420360e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000037 0.000083 -0.000043 1.179179e-05 -1.444208e-06 6.172923e-08 )
|
||||
( 0 0.013484 -0.010858 0.003689 -6.083303e-04 4.802688e-05 -1.451712e-06 )
|
||||
( 0 0.000150 -0.000127 0.000045 -7.617377e-06 6.177321e-07 -1.921240e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000035 -0.000001 0.000027 -8.359653e-06 9.270073e-07 -3.582164e-08 )
|
||||
( 0 0.013606 -0.010958 0.003725 -6.145147e-04 4.854336e-05 -1.468335e-06 )
|
||||
( 0 -0.000000 -0.000000 0.000000 -5.781704e-08 5.336771e-09 -1.779522e-10 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000030 -0.000089 0.000099 -2.897690e-05 3.332291e-06 -1.342425e-07 )
|
||||
( 0 0.013476 -0.010852 0.003688 -6.081052e-04 4.801339e-05 -1.451426e-06 )
|
||||
( 0 -0.000149 0.000126 -0.000045 7.608658e-06 -6.192355e-07 1.933493e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000905 -0.000687 0.000275 -5.663200e-05 5.605464e-06 -2.107512e-07 )
|
||||
( 0 0.012406 -0.009973 0.003383 -5.567321e-04 4.386954e-05 -1.323325e-06 )
|
||||
( 0 -0.000694 0.000579 -0.000201 3.387674e-05 -2.727299e-06 8.425092e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000482 0.000984 -0.000474 9.520082e-05 -8.484438e-06 2.761317e-07 )
|
||||
( 0 0.011337 -0.009099 0.003080 -5.057038e-04 3.975401e-05 -1.196079e-06 )
|
||||
( 0 -0.000452 0.000378 -0.000132 2.221267e-05 -1.796034e-06 5.583520e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001949 0.002744 -0.001270 2.576639e-04 -2.368539e-05 8.051793e-07 )
|
||||
( 0 0.010278 -0.008235 0.002780 -4.553081e-04 3.568952e-05 -1.070378e-06 )
|
||||
( 0 0.000372 -0.000297 0.000100 -1.646407e-05 1.288833e-06 -3.847181e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001633 0.002830 -0.001394 2.913888e-04 -2.720094e-05 9.319201e-07 )
|
||||
( 0 0.009218 -0.007373 0.002482 -4.052932e-04 3.166053e-05 -9.458845e-07 )
|
||||
( 0 0.001595 -0.001286 0.000438 -7.254318e-05 5.750546e-06 -1.746810e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000077 0.001318 -0.000804 1.827562e-04 -1.782267e-05 6.262647e-07 )
|
||||
( 0 0.007888 -0.006297 0.002116 -3.448266e-04 2.688942e-05 -8.018993e-07 )
|
||||
( 0 0.002428 -0.001968 0.000673 -1.115760e-04 8.857556e-06 -2.693707e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001072 -0.000616 0.000125 -6.794678e-06 -5.109564e-07 4.570012e-08 )
|
||||
( 0 0.006559 -0.005227 0.001753 -2.852901e-04 2.220993e-05 -6.611918e-07 )
|
||||
( 0 0.003055 -0.002478 0.000847 -1.404087e-04 1.114518e-05 -3.389455e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001887 -0.002410 0.001042 -2.000811e-04 1.747588e-05 -5.652554e-07 )
|
||||
( 0 0.005237 -0.004169 0.001397 -2.270059e-04 1.764836e-05 -5.245966e-07 )
|
||||
( 0 0.003358 -0.002718 0.000928 -1.536585e-04 1.218842e-05 -3.705164e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.002551 -0.003540 0.001595 -3.157462e-04 2.832980e-05 -9.392737e-07 )
|
||||
( 0 0.003916 -0.003116 0.001043 -1.692826e-04 1.314359e-05 -3.900978e-07 )
|
||||
( 0 0.003242 -0.002613 0.000890 -1.470389e-04 1.164901e-05 -3.538205e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.003177 -0.004062 0.001777 -3.466587e-04 3.085329e-05 -1.018001e-06 )
|
||||
( 0 0.003406 -0.002710 0.000907 -1.472004e-04 1.142877e-05 -3.391941e-07 )
|
||||
( 0 0.003415 -0.002755 0.000938 -1.552103e-04 1.230286e-05 -3.738518e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001550 0.002745 -0.001350 2.754210e-04 -2.488282e-05 8.240797e-07 )
|
||||
( 0 0.003441 -0.002768 0.000934 -1.527071e-04 1.192657e-05 -3.558254e-07 )
|
||||
( 0 -0.003438 0.002780 -0.000949 1.573205e-04 -1.249011e-05 3.800229e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.002284 0.003324 -0.001541 3.062986e-04 -2.729308e-05 8.963947e-07 )
|
||||
( 0 0.003958 -0.003184 0.001074 -1.755691e-04 1.371100e-05 -4.090386e-07 )
|
||||
( 0 -0.003277 0.002653 -0.000907 1.503959e-04 -1.194699e-05 3.636400e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001534 0.002192 -0.001009 2.000021e-04 -1.780924e-05 5.851361e-07 )
|
||||
( 0 0.005259 -0.004225 0.001424 -2.325124e-04 1.814610e-05 -5.411624e-07 )
|
||||
( 0 -0.003376 0.002726 -0.000929 1.537254e-04 -1.218760e-05 3.703846e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001367 -0.001326 0.000521 -9.648874e-05 8.372076e-06 -2.738285e-07 )
|
||||
( 0 0.006579 -0.005284 0.001782 -2.909488e-04 2.271855e-05 -6.780274e-07 )
|
||||
( 0 -0.003040 0.002459 -0.000839 1.388757e-04 -1.101064e-05 3.345674e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.003317 -0.003939 0.001701 -3.293357e-04 2.914845e-05 -9.597438e-07 )
|
||||
( 0 0.007919 -0.006363 0.002147 -3.510820e-04 2.744611e-05 -8.202100e-07 )
|
||||
( 0 -0.002406 0.001955 -0.000669 1.109866e-04 -8.812307e-06 2.680041e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001784 -0.002879 0.001380 -2.808008e-04 2.551807e-05 -8.526504e-07 )
|
||||
( 0 0.009267 -0.007451 0.002517 -4.120586e-04 3.225537e-05 -9.653050e-07 )
|
||||
( 0 -0.001636 0.001335 -0.000459 7.641291e-05 -6.083821e-06 1.853579e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000425 -0.001348 0.000722 -1.516575e-04 1.384622e-05 -4.584488e-07 )
|
||||
( 0 0.010301 -0.008294 0.002809 -4.610481e-04 3.620548e-05 -1.087511e-06 )
|
||||
( 0 -0.000432 0.000342 -0.000116 1.895998e-05 -1.486585e-06 4.448722e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.002179 -0.002365 0.000963 -1.769426e-04 1.489015e-05 -4.669475e-07 )
|
||||
( 0 0.011346 -0.009142 0.003102 -5.102258e-04 4.016636e-05 -1.209920e-06 )
|
||||
( 0 0.000457 -0.000386 0.000136 -2.300549e-05 1.865952e-06 -5.810348e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.003164 -0.002790 0.001017 -1.744077e-04 1.400315e-05 -4.255774e-07 )
|
||||
( 0 0.012414 -0.010005 0.003399 -5.599926e-04 4.416634e-05 -1.333292e-06 )
|
||||
( 0 0.000755 -0.000627 0.000218 -3.669946e-05 2.954050e-06 -9.119742e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000514 -0.000380 0.000126 -1.826076e-05 1.122805e-06 -2.260065e-08 )
|
||||
( 0 0.013492 -0.010872 0.003696 -6.097241e-04 4.815469e-05 -1.456055e-06 )
|
||||
( 0 0.000175 -0.000147 0.000052 -8.751815e-06 7.093930e-07 -2.204788e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000043 0.000007 0.000024 -7.954187e-06 8.950555e-07 -3.484459e-08 )
|
||||
( 0 0.013642 -0.010998 0.003742 -6.178200e-04 4.883976e-05 -1.478305e-06 )
|
||||
( 0 0.000000 -0.000000 -0.000000 3.678547e-08 -4.891374e-09 2.113649e-10 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000595 0.000384 -0.000072 1.424635e-06 7.458768e-07 -4.957371e-08 )
|
||||
( 0 0.013485 -0.010866 0.003694 -6.093458e-04 4.812400e-05 -1.455093e-06 )
|
||||
( 0 -0.000174 0.000146 -0.000051 8.754351e-06 -7.126564e-07 2.225204e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.003191 0.002757 -0.000962 1.592090e-04 -1.244829e-05 3.688563e-07 )
|
||||
( 0 0.012405 -0.009995 0.003395 -5.593930e-04 4.411593e-05 -1.331643e-06 )
|
||||
( 0 -0.000755 0.000626 -0.000218 3.666796e-05 -2.952987e-06 9.122133e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.002098 0.002295 -0.000926 1.708662e-04 -1.455995e-05 4.631709e-07 )
|
||||
( 0 0.011338 -0.009132 0.003098 -5.095366e-04 4.010728e-05 -1.207936e-06 )
|
||||
( 0 -0.000457 0.000386 -0.000135 2.292292e-05 -1.858530e-06 5.786033e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000290 0.001286 -0.000719 1.570311e-04 -1.490500e-05 5.118984e-07 )
|
||||
( 0 0.010295 -0.008284 0.002805 -4.603600e-04 3.614493e-05 -1.085409e-06 )
|
||||
( 0 0.000432 -0.000343 0.000116 -1.906695e-05 1.496986e-06 -4.485831e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001692 0.002868 -0.001402 2.919384e-04 -2.717086e-05 9.284755e-07 )
|
||||
( 0 0.009263 -0.007443 0.002514 -4.114249e-04 3.219744e-05 -9.632086e-07 )
|
||||
( 0 0.001637 -0.001336 0.000459 -7.648456e-05 6.090083e-06 -1.855701e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.003267 0.003942 -0.001721 3.383517e-04 -3.046868e-05 1.020142e-06 )
|
||||
( 0 0.007917 -0.006357 0.002145 -3.506430e-04 2.740504e-05 -8.186559e-07 )
|
||||
( 0 0.002406 -0.001956 0.000669 -1.110260e-04 8.815584e-06 -2.681082e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001340 0.001331 -0.000538 1.024368e-04 -9.137401e-06 3.064710e-07 )
|
||||
( 0 0.006579 -0.005280 0.001780 -2.906884e-04 2.269265e-05 -6.769606e-07 )
|
||||
( 0 0.003040 -0.002460 0.000839 -1.388990e-04 1.101215e-05 -3.345996e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001529 -0.002181 0.000993 -1.969950e-04 1.765319e-05 -5.842735e-07 )
|
||||
( 0 0.005261 -0.004223 0.001423 -2.323950e-04 1.813222e-05 -5.404893e-07 )
|
||||
( 0 0.003377 -0.002726 0.000929 -1.537610e-04 1.218981e-05 -3.704280e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.002224 -0.003289 0.001516 -3.039187e-04 2.749561e-05 -9.173213e-07 )
|
||||
( 0 0.003961 -0.003184 0.001074 -1.755489e-04 1.370533e-05 -4.086511e-07 )
|
||||
( 0 0.003279 -0.002655 0.000907 -1.504779e-04 1.195301e-05 -3.638037e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001470 -0.002698 0.001320 -2.726852e-04 2.512823e-05 -8.488420e-07 )
|
||||
( 0 0.003443 -0.002768 0.000934 -1.527001e-04 1.192260e-05 -3.555210e-07 )
|
||||
( 0 0.003439 -0.002781 0.000950 -1.573879e-04 1.249468e-05 -3.801351e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.002527 0.003511 -0.001600 3.151990e-04 -2.792656e-05 9.133002e-07 )
|
||||
( 0 0.003962 -0.003162 0.001061 -1.724450e-04 1.341105e-05 -3.986823e-07 )
|
||||
( 0 -0.002842 0.002295 -0.000782 1.294464e-04 -1.026538e-05 3.120318e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001744 -0.002851 0.001373 -2.802170e-04 2.552508e-05 -8.547537e-07 )
|
||||
( 0 0.009260 -0.007419 0.002499 -4.082015e-04 3.189688e-05 -9.531804e-07 )
|
||||
( 0 -0.001672 0.001352 -0.000462 7.660425e-05 -6.084233e-06 1.851655e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000099 -0.000031 -0.000002 4.417490e-06 -8.144172e-07 4.104032e-08 )
|
||||
( 0 0.013551 -0.010914 0.003709 -6.116125e-04 4.829057e-05 -1.459810e-06 )
|
||||
( 0 -0.000180 0.000144 -0.000049 8.011968e-06 -6.314998e-07 1.906088e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000166 0.000024 0.000058 -2.167383e-05 2.710218e-06 -1.138504e-07 )
|
||||
( 0 0.013542 -0.010907 0.003707 -6.113087e-04 4.827024e-05 -1.459300e-06 )
|
||||
( 0 0.000181 -0.000145 0.000049 -8.006815e-06 6.278411e-07 -1.883966e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001647 0.002838 -0.001396 2.914582e-04 -2.718772e-05 9.308799e-07 )
|
||||
( 0 0.009253 -0.007410 0.002496 -4.076639e-04 3.185000e-05 -9.515049e-07 )
|
||||
( 0 0.001673 -0.001353 0.000463 -7.671697e-05 6.094337e-06 -1.854985e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.002469 -0.003477 0.001575 -3.128330e-04 2.812642e-05 -9.339923e-07 )
|
||||
( 0 0.003963 -0.003161 0.001060 -1.723148e-04 1.339511e-05 -3.979339e-07 )
|
||||
( 0 0.002843 -0.002295 0.000782 -1.294504e-04 1.026529e-05 -3.120201e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.002446 0.003449 -0.001580 3.122200e-04 -2.771441e-05 9.076344e-07 )
|
||||
( 0 0.003984 -0.003188 0.001071 -1.744729e-04 1.358634e-05 -4.043205e-07 )
|
||||
( 0 -0.002715 0.002195 -0.000749 1.241272e-04 -9.852273e-06 2.996815e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001757 -0.002860 0.001376 -2.804085e-04 2.552243e-05 -8.540411e-07 )
|
||||
( 0 0.009278 -0.007443 0.002509 -4.100627e-04 3.205503e-05 -9.581516e-07 )
|
||||
( 0 -0.001705 0.001383 -0.000474 7.866834e-05 -6.256998e-06 1.906391e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000237 -0.000147 0.000040 -3.120360e-06 -1.704199e-07 1.988021e-08 )
|
||||
( 0 0.013575 -0.010934 0.003716 -6.129235e-04 4.839848e-05 -1.463193e-06 )
|
||||
( 0 -0.000285 0.000231 -0.000079 1.302970e-05 -1.032395e-06 3.133868e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000308 0.000143 0.000015 -1.401019e-05 2.058402e-06 -9.251798e-08 )
|
||||
( 0 0.013566 -0.010927 0.003714 -6.125632e-04 4.837264e-05 -1.462483e-06 )
|
||||
( 0 0.000286 -0.000232 0.000079 -1.301824e-05 1.027742e-06 -3.107156e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001662 0.002848 -0.001398 2.916051e-04 -2.718090e-05 9.300376e-07 )
|
||||
( 0 0.009272 -0.007433 0.002506 -4.094840e-04 3.200359e-05 -9.563033e-07 )
|
||||
( 0 0.001706 -0.001384 0.000474 -7.876508e-05 6.265518e-06 -1.909190e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.002387 -0.003414 0.001555 -3.098527e-04 2.791544e-05 -9.284139e-07 )
|
||||
( 0 0.003985 -0.003187 0.001071 -1.743762e-04 1.357331e-05 -4.036667e-07 )
|
||||
( 0 0.002716 -0.002196 0.000749 -1.241610e-04 9.854728e-06 -2.997510e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.002365 0.003386 -0.001560 3.092508e-04 -2.750306e-05 9.019935e-07 )
|
||||
( 0 0.003983 -0.003195 0.001076 -1.755142e-04 1.368632e-05 -4.077726e-07 )
|
||||
( 0 -0.002860 0.002315 -0.000791 1.311106e-04 -1.041283e-05 3.168848e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.001771 -0.002870 0.001378 -2.806030e-04 2.552007e-05 -8.533387e-07 )
|
||||
( 0 0.009280 -0.007453 0.002515 -4.113492e-04 3.217461e-05 -9.621962e-07 )
|
||||
( 0 -0.001693 0.001377 -0.000473 7.860445e-05 -6.256850e-06 1.907029e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000375 -0.000264 0.000083 -1.068754e-05 4.760086e-07 -1.356495e-09 )
|
||||
( 0 0.013555 -0.010921 0.003712 -6.122946e-04 4.835324e-05 -1.461942e-06 )
|
||||
( 0 -0.000167 0.000134 -0.000045 7.441682e-06 -5.854182e-07 1.763524e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000451 0.000263 -0.000029 -6.317324e-06 1.404169e-06 -7.110959e-08 )
|
||||
( 0 0.013547 -0.010913 0.003710 -6.119094e-04 4.832393e-05 -1.461082e-06 )
|
||||
( 0 0.000168 -0.000135 0.000046 -7.431111e-06 5.808996e-07 -1.737391e-08 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.001677 0.002858 -0.001400 2.917549e-04 -2.717437e-05 9.292053e-07 )
|
||||
( 0 0.009276 -0.007444 0.002512 -4.107386e-04 3.211950e-05 -9.602078e-07 )
|
||||
( 0 0.001694 -0.001378 0.000473 -7.868752e-05 6.264090e-06 -1.909425e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.002305 -0.003351 0.001536 -3.068822e-04 2.770526e-05 -9.228600e-07 )
|
||||
( 0 0.003985 -0.003195 0.001076 -1.754545e-04 1.367673e-05 -4.072398e-07 )
|
||||
( 0 0.002861 -0.002316 0.000791 -1.311705e-04 1.041733e-05 -3.170130e-07 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 )
|
||||
( 0 )
|
||||
( 0 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000019 -0.000005 -0.000001 7.060541e-07 -9.745651e-08 4.203556e-09 )
|
||||
( 0 0.004534 -0.003655 0.001246 -2.060829e-04 1.633457e-05 -4.961742e-07 )
|
||||
( 0 -0.000000 0.000000 0.000000 -2.916711e-09 3.021914e-10 -1.067747e-11 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000035 -0.000010 -0.000001 1.101583e-06 -1.591357e-07 6.995117e-09 )
|
||||
( 0 0.008154 -0.006575 0.002241 -3.705656e-04 2.936028e-05 -8.913472e-07 )
|
||||
( 0 -0.000000 -0.000000 0.000000 -9.553753e-09 9.271522e-10 -3.172652e-11 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000047 -0.000015 -0.000001 1.187520e-06 -1.849987e-07 8.370018e-09 )
|
||||
( 0 0.010878 -0.008772 0.002988 -4.939876e-04 3.911871e-05 -1.186783e-06 )
|
||||
( 0 -0.000000 -0.000000 0.000000 -1.653478e-08 1.563715e-09 -5.262892e-11 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000057 -0.000022 0.000001 9.318852e-07 -1.738605e-07 8.337278e-09 )
|
||||
( 0 0.013040 -0.010511 0.003578 -5.911260e-04 4.677446e-05 -1.417628e-06 )
|
||||
( 0 -0.000000 -0.000000 0.000000 -2.237996e-08 2.072445e-09 -6.851013e-11 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000060 -0.000025 0.000003 6.674167e-07 -1.524998e-07 7.696896e-09 )
|
||||
( 0 0.013752 -0.011081 0.003770 -6.226832e-04 4.924792e-05 -1.491691e-06 )
|
||||
( 0 -0.000000 -0.000000 0.000000 -2.392253e-08 2.191703e-09 -7.166127e-11 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000062 -0.000027 0.000004 4.389049e-07 -1.328342e-07 7.069247e-09 )
|
||||
( 0 0.014279 -0.011501 0.003913 -6.461055e-04 5.109649e-05 -1.547545e-06 )
|
||||
( 0 -0.000000 -0.000000 0.000000 -2.391035e-08 2.167189e-09 -7.015203e-11 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000083 -0.000055 0.000019 -2.690328e-06 1.406644e-07 -1.743042e-09 )
|
||||
( 0 0.022256 -0.017918 0.006096 -1.007087e-03 7.966522e-05 -2.412304e-06 )
|
||||
( 0 0.000000 -0.000000 0.000000 -3.111874e-08 2.159749e-09 -5.074504e-11 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000071 -0.000053 0.000022 -3.659322e-06 2.357592e-07 -4.995653e-09 )
|
||||
( 0 0.027255 -0.022016 0.007507 -1.242134e-03 9.837023e-05 -2.980329e-06 )
|
||||
( 0 0.000001 -0.000001 0.000000 -3.994009e-08 2.220713e-09 -3.116180e-11 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000034 -0.000029 0.000016 -2.752663e-06 1.715363e-07 -3.175626e-09 )
|
||||
( 0 0.029925 -0.024265 0.008294 -1.374951e-03 1.090359e-04 -3.306190e-06 )
|
||||
( 0 0.000001 -0.000001 0.000000 -4.274877e-08 2.010295e-09 -1.028815e-11 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000010 0.000005 0.000004 -6.238466e-07 -3.218840e-09 2.323463e-09 )
|
||||
( 0 0.031175 -0.025355 0.008684 -1.441963e-03 1.144865e-04 -3.474307e-06 )
|
||||
( 0 0.000001 -0.000001 0.000000 -3.968330e-08 1.702704e-09 1.013291e-12 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000029 0.000020 -0.000003 5.565310e-07 -1.038434e-07 5.565142e-09 )
|
||||
( 0 0.031533 -0.025674 0.008800 -1.462069e-03 1.161390e-04 -3.525750e-06 )
|
||||
( 0 0.000001 -0.000001 0.000000 -3.732454e-08 1.619780e-09 -1.403512e-13 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000042 0.000031 -0.000008 1.609770e-06 -1.955993e-07 8.553063e-09 )
|
||||
( 0 0.031745 -0.025868 0.008872 -1.474642e-03 1.171824e-04 -3.558489e-06 )
|
||||
( 0 0.000001 -0.000001 0.000000 -3.473853e-08 1.578657e-09 -4.616393e-12 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000051 0.000039 -0.000012 2.448071e-06 -2.694222e-07 1.096775e-08 )
|
||||
( 0 0.031850 -0.025969 0.008910 -1.481586e-03 1.177675e-04 -3.577081e-06 )
|
||||
( 0 0.000000 -0.000001 0.000000 -3.211292e-08 1.536548e-09 -9.135488e-12 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000055 0.000042 -0.000013 2.736176e-06 -2.945144e-07 1.178197e-08 )
|
||||
( 0 0.031870 -0.025992 0.008919 -1.483319e-03 1.179179e-04 -3.581956e-06 )
|
||||
( 0 0.000000 -0.000001 0.000000 -3.067316e-08 1.477267e-09 -9.263886e-12 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 -0.000055 0.000042 -0.000013 2.735950e-06 -2.945118e-07 1.178232e-08 )
|
||||
( 0 0.031873 -0.025995 0.008920 -1.483478e-03 1.179307e-04 -3.582346e-06 )
|
||||
( 0 0.000000 -0.000001 0.000000 -3.059939e-08 1.471397e-09 -9.083708e-12 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000060 -0.000025 0.000003 6.666620e-07 -1.524006e-07 7.692742e-09 )
|
||||
( 0 0.013624 -0.010973 0.003730 -6.154170e-04 4.861836e-05 -1.470738e-06 )
|
||||
( 0 -0.000000 -0.000000 0.000000 -9.362904e-08 9.359638e-09 -3.348836e-10 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000060 -0.000025 0.000003 6.666632e-07 -1.524006e-07 7.692744e-09 )
|
||||
( 0 0.013624 -0.010973 0.003730 -6.154228e-04 4.861881e-05 -1.470751e-06 )
|
||||
( 0 -0.000000 -0.000000 0.000000 -9.392802e-08 9.389653e-09 -3.359818e-10 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000060 -0.000025 0.000003 6.679641e-07 -1.525865e-07 7.700775e-09 )
|
||||
( 0 0.013664 -0.011017 0.003749 -6.189790e-04 4.893768e-05 -1.481481e-06 )
|
||||
( 0 0.000001 0.000000 -0.000000 6.545924e-08 -7.872008e-09 3.217240e-10 )
|
||||
)
|
||||
|
||||
(
|
||||
( 0 0.000060 -0.000025 0.000003 6.679648e-07 -1.525866e-07 7.700777e-09 )
|
||||
( 0 0.013664 -0.011017 0.003749 -6.189854e-04 4.893818e-05 -1.481496e-06 )
|
||||
( 0 0.000001 0.000000 -0.000000 6.575120e-08 -7.901378e-09 3.228000e-10 )
|
||||
)
|
||||
);
|
||||
|
||||
// End-of-file
|
@ -0,0 +1,52 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volVectorField;
|
||||
object U;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "include/initialConditions"
|
||||
|
||||
dimensions [0 1 -1 0 0 0 0];
|
||||
|
||||
internalField uniform $flowVelocity;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
#include "include/environ"
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform (0 0 0);
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
ground
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
|
||||
"(?i).*bridge.*"
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,54 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object epsilon;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "include/initialConditions"
|
||||
|
||||
dimensions [0 2 -3 0 0 0 0];
|
||||
|
||||
internalField uniform $turbulentEpsilon;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
#include "include/environ"
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue $internalField;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
ground
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
"(?i).*bridge.*"
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value $internalField;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,20 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
// Controllers for lumpedPointMotion
|
||||
|
||||
controllers
|
||||
(
|
||||
girderA girderB
|
||||
girderCross1 girderCross2 girderCross3
|
||||
girderCross4 girderCross5 girderCross6
|
||||
tower
|
||||
support
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,26 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
// Unspecified negative sides
|
||||
"(_[xy])"
|
||||
{
|
||||
type slip;
|
||||
}
|
||||
|
||||
// Unspecified positive sides
|
||||
"([xy]_)"
|
||||
{
|
||||
type slip;
|
||||
}
|
||||
|
||||
sky
|
||||
{
|
||||
type slip;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,15 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
flowVelocity (100 0 0);
|
||||
pressure 0;
|
||||
turbulentKE 37;
|
||||
turbulentOmega 32;
|
||||
turbulentEpsilon 30;
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,54 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object k;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "include/initialConditions"
|
||||
|
||||
dimensions [0 2 -2 0 0 0 0];
|
||||
|
||||
internalField uniform $turbulentKE;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
#include "include/environ"
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue $internalField;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
ground
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
"(?i).*bridge.*"
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value $internalField;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,50 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object nut;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 2 -1 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
#include "include/environ"
|
||||
|
||||
inlet
|
||||
{
|
||||
type calculated;
|
||||
value $internalField;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type calculated;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
ground
|
||||
{
|
||||
type nutkWallFunction;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
"(?i).*bridge.*"
|
||||
{
|
||||
type nutkWallFunction;
|
||||
value $internalField;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,53 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object omega;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "include/initialConditions"
|
||||
|
||||
dimensions [0 0 -1 0 0 0 0];
|
||||
|
||||
internalField uniform $turbulentOmega;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
#include "include/environ"
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue $internalField;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
ground
|
||||
{
|
||||
type omegaWallFunction;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
"(?i).*bridge.*"
|
||||
{
|
||||
type omegaWallFunction;
|
||||
value $internalField;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,53 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object p;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "include/initialConditions"
|
||||
|
||||
dimensions [0 2 -2 0 0 0 0];
|
||||
|
||||
internalField uniform $pressure;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
#include "include/environ"
|
||||
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
sky
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
"(?i).*bridge.*"
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,75 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class pointVectorField;
|
||||
object pointDisplacement;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 1 0 0 0 0 0];
|
||||
|
||||
internalField uniform (0 0 0);
|
||||
|
||||
boundaryField
|
||||
{
|
||||
// Specify directly (without include) for benefit of the paraview reader
|
||||
processor
|
||||
{
|
||||
type processor;
|
||||
value uniform (0 0 0);
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue (0 0 0);
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue (0 0 0);
|
||||
}
|
||||
|
||||
// Unspecified negative sides
|
||||
"(_[xy])"
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue (0 0 0);
|
||||
}
|
||||
|
||||
// Unspecified positive sides
|
||||
"([xy]_)"
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue (0 0 0);
|
||||
}
|
||||
|
||||
sky
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue (0 0 0);
|
||||
}
|
||||
|
||||
ground
|
||||
{
|
||||
type slip;
|
||||
}
|
||||
|
||||
"(?i).*bridge.*"
|
||||
{
|
||||
type lumpedPointDisplacement;
|
||||
value uniform (0 0 0);
|
||||
#include "include/controllers"
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
14
tutorials/incompressible/lumpedPointMotion/bridge/steady/Allclean
Executable file
14
tutorials/incompressible/lumpedPointMotion/bridge/steady/Allclean
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
cleanCase0
|
||||
|
||||
# Clean up copied/derived files
|
||||
rm -rf constant/triSurface
|
||||
|
||||
# Clean up debug/setup files
|
||||
rm -f *.txt *.vtp *.vtp.series
|
||||
|
||||
#------------------------------------------------------------------------------
|
25
tutorials/incompressible/lumpedPointMotion/bridge/steady/Allrun
Executable file
25
tutorials/incompressible/lumpedPointMotion/bridge/steady/Allrun
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
./Allrun.pre
|
||||
|
||||
unset parallel
|
||||
parallel=true
|
||||
|
||||
if [ "${parallel:-false}" = false ]
|
||||
then
|
||||
# Serial
|
||||
|
||||
runApplication simpleFoam
|
||||
|
||||
else
|
||||
# Parallel
|
||||
|
||||
runParallel simpleFoam
|
||||
|
||||
fi
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
12
tutorials/incompressible/lumpedPointMotion/bridge/steady/Allrun.init
Executable file
12
tutorials/incompressible/lumpedPointMotion/bridge/steady/Allrun.init
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Copy geometry from resources directory
|
||||
# echo "Copy geometry resources"
|
||||
|
||||
mkdir -p constant/triSurface/
|
||||
cp "$FOAM_TUTORIALS"/resources/geometry/fsi-bridge1.obj constant/triSurface/
|
||||
|
||||
#------------------------------------------------------------------------------
|
50
tutorials/incompressible/lumpedPointMotion/bridge/steady/Allrun.pre
Executable file
50
tutorials/incompressible/lumpedPointMotion/bridge/steady/Allrun.pre
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Get geometry and other resources
|
||||
./Allrun.init
|
||||
|
||||
# runApplication surfaceFeatureExtract
|
||||
runApplication blockMesh
|
||||
|
||||
rm -f constant/polyMesh/*Level
|
||||
|
||||
unset parallel
|
||||
parallel=true
|
||||
|
||||
# Dummy 0 directory
|
||||
mkdir -p 0
|
||||
|
||||
if [ "${parallel:-false}" = false ]
|
||||
then
|
||||
# Serial
|
||||
|
||||
runApplication snappyHexMesh -overwrite
|
||||
rm -f constant/polyMesh/refinementHistory*
|
||||
|
||||
restore0Dir
|
||||
|
||||
runApplication renumberMesh -overwrite
|
||||
|
||||
else
|
||||
# Parallel
|
||||
|
||||
runApplication decomposePar -force
|
||||
runParallel snappyHexMesh -overwrite
|
||||
\ls -d processor* | xargs -I {} \rm -f ./{}/constant/polyMesh/refinementHistory
|
||||
|
||||
restore0Dir -processor
|
||||
|
||||
runParallel renumberMesh -overwrite
|
||||
|
||||
# In case serial calculations are needed later
|
||||
|
||||
restore0Dir # Overwrite dummy 0 directory
|
||||
# runApplication reconstructParMesh -constant
|
||||
|
||||
fi
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
@ -0,0 +1,35 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object dynamicMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
// Less frequent mesh motion
|
||||
updateControl runTime;
|
||||
|
||||
updateInterval 0.001;
|
||||
|
||||
dynamicFvMesh dynamicMotionSolverFvMesh;
|
||||
|
||||
motionSolverLibs (fvMotionSolvers);
|
||||
|
||||
solver displacementLaplacian;
|
||||
|
||||
displacementLaplacianCoeffs
|
||||
{
|
||||
diffusivity inverseDistance ( bridge );
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,21 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object transportProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
transportModel Newtonian;
|
||||
|
||||
nu [0 2 -1 0 0 0 0] 1.5e-05;
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,29 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object turbulenceProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
simulationType RAS;
|
||||
|
||||
RAS
|
||||
{
|
||||
// RASModel kOmegaSST;
|
||||
RASModel kEpsilon;
|
||||
|
||||
turbulence on;
|
||||
|
||||
printCoeffs on;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,80 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object PDRblockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
// Bounding Box : (-23.275 -250 5) (23.275 250 200)
|
||||
|
||||
scale 1;
|
||||
|
||||
x
|
||||
{
|
||||
points ( -50 50 );
|
||||
nCells ( 50 );
|
||||
ratios ( 1 );
|
||||
}
|
||||
|
||||
y
|
||||
{
|
||||
points ( -300 -25 25 300 );
|
||||
nCells ( 10 10 10 );
|
||||
ratios ( 1 1 1 );
|
||||
}
|
||||
|
||||
z
|
||||
{
|
||||
points ( 0 50 80 250 );
|
||||
nCells ( 2 10 10 );
|
||||
ratios ( 1 1 1 );
|
||||
}
|
||||
|
||||
// Low resolution
|
||||
|
||||
|
||||
// Faces: 0=x-min, 1=x-max, 2=y-min, 3=y-max, 4=z-min, 5=z-max
|
||||
|
||||
boundary
|
||||
(
|
||||
sides
|
||||
{
|
||||
type patch;
|
||||
faces ( 0 1 );
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces ( 2 );
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces ( 3 );
|
||||
}
|
||||
|
||||
ground
|
||||
{
|
||||
type wall;
|
||||
faces ( 4 );
|
||||
}
|
||||
|
||||
sky
|
||||
{
|
||||
type patch;
|
||||
faces ( 5 );
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,98 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
// Bounding Box : (-23.275 -250 5) (23.275 250 200)
|
||||
|
||||
scale 1;
|
||||
|
||||
vertices
|
||||
(
|
||||
( -160 -400 0)
|
||||
( 160 -400 0)
|
||||
( 160 400 0)
|
||||
( -160 400 0)
|
||||
( -160 -400 400)
|
||||
( 160 -400 400)
|
||||
( 160 400 400)
|
||||
( -160 400 400)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
// Higher resolution sizes ...
|
||||
|
||||
// Low resolution sizes (8 8 8)
|
||||
hex (0 1 2 3 4 5 6 7) (40 100 50) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
inlet // -ve X
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
( 0 4 7 3 )
|
||||
);
|
||||
}
|
||||
outlet // +ve X
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
( 1 2 6 5 )
|
||||
);
|
||||
}
|
||||
y_ // -ve Y
|
||||
{
|
||||
type patch; // (slip)
|
||||
faces
|
||||
(
|
||||
( 0 1 5 4)
|
||||
);
|
||||
}
|
||||
_y // +ve Y
|
||||
{
|
||||
type patch; // (slip)
|
||||
faces
|
||||
(
|
||||
( 3 7 6 2)
|
||||
);
|
||||
}
|
||||
ground
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
( 0 3 2 1)
|
||||
);
|
||||
}
|
||||
sky
|
||||
{
|
||||
type patch; // (slip)
|
||||
faces
|
||||
(
|
||||
( 4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,80 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object controlDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
libs
|
||||
(
|
||||
meshTools
|
||||
lumpedPointMotion
|
||||
fvMotionSolvers
|
||||
);
|
||||
|
||||
application simpleFoam; // Change to pimpleFoam for transient
|
||||
|
||||
startFrom startTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 0.01;
|
||||
|
||||
deltaT 1e-4;
|
||||
|
||||
writeControl timeStep;
|
||||
|
||||
writeInterval 10;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat binary;
|
||||
|
||||
writePrecision 8;
|
||||
|
||||
writeCompression off;
|
||||
|
||||
timeFormat general;
|
||||
|
||||
timePrecision 6;
|
||||
|
||||
runTimeModifiable true;
|
||||
|
||||
adjustTimeStep yes;
|
||||
|
||||
// These can be a bit larger when we restart from steady-state
|
||||
maxCo 0.75;
|
||||
|
||||
maxDeltaT 0.01;
|
||||
|
||||
|
||||
// Embed steady-state settings (simpleFoam) without changeDictionary
|
||||
_simpleFoam
|
||||
{
|
||||
endTime 500;
|
||||
writeInterval 100;
|
||||
deltaT 1;
|
||||
adjustTimeStep no;
|
||||
}
|
||||
|
||||
${_${FOAM_EXECUTABLE}};
|
||||
|
||||
#remove _simpleFoam
|
||||
|
||||
functions
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,27 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object decomposeParDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
numberOfSubdomains 12;
|
||||
method scotch;
|
||||
|
||||
// method hierarchical;
|
||||
|
||||
coeffs
|
||||
{
|
||||
n (2 6 1);
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,72 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
grad(U) cellLimited Gauss linear 1;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default none;
|
||||
div(phi,U) bounded Gauss linearUpwindV grad(U);
|
||||
div(phi,k) bounded Gauss upwind;
|
||||
div(phi,omega) bounded Gauss upwind;
|
||||
div(phi,epsilon) bounded Gauss upwind;
|
||||
div((nuEff*dev2(T(grad(U))))) Gauss linear;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default Gauss linear corrected;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
default linear;
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
default corrected;
|
||||
}
|
||||
|
||||
wallDist
|
||||
{
|
||||
method meshWave;
|
||||
}
|
||||
|
||||
|
||||
// Embed steady-state settings (simpleFoam) without changeDictionary
|
||||
_simpleFoam
|
||||
{
|
||||
ddtSchemes
|
||||
{
|
||||
default steadyState;
|
||||
}
|
||||
}
|
||||
|
||||
${_${FOAM_EXECUTABLE}};
|
||||
|
||||
#remove _simpleFoam
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,135 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
"pcorr.*"
|
||||
{
|
||||
solver GAMG;
|
||||
tolerance 1e-2;
|
||||
relTol 0;
|
||||
smoother GaussSeidel;
|
||||
}
|
||||
|
||||
p
|
||||
{
|
||||
$pcorr;
|
||||
tolerance 1e-7;
|
||||
relTol 0.01;
|
||||
}
|
||||
|
||||
"(cellDisplacement)"
|
||||
{
|
||||
$p;
|
||||
tolerance 1e-6;
|
||||
relTol 0.001;
|
||||
minIter 1;
|
||||
}
|
||||
|
||||
pFinal
|
||||
{
|
||||
$p;
|
||||
tolerance 1e-6;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
cellDisplacementFinal
|
||||
{
|
||||
$cellDisplacement;
|
||||
tolerance 1e-6;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
Phi
|
||||
{
|
||||
$p;
|
||||
}
|
||||
|
||||
"(U|k|epsilon|omega)"
|
||||
{
|
||||
solver smoothSolver;
|
||||
smoother GaussSeidel;
|
||||
tolerance 1e-8;
|
||||
relTol 0.1;
|
||||
nSweeps 1;
|
||||
}
|
||||
|
||||
"(U|k|epsilon|omega)Final"
|
||||
{
|
||||
$U;
|
||||
relTol 0;
|
||||
}
|
||||
}
|
||||
|
||||
SIMPLE
|
||||
{
|
||||
nNonOrthogonalCorrectors 0;
|
||||
consistent yes;
|
||||
pRefCell 0;
|
||||
pRefValue 0;
|
||||
}
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
nOuterCorrectors 2;
|
||||
nCorrectors 1;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
pRefCell 0;
|
||||
pRefValue 0;
|
||||
}
|
||||
|
||||
potentialFlow
|
||||
{
|
||||
nNonOrthogonalCorrectors 10;
|
||||
}
|
||||
|
||||
cache
|
||||
{
|
||||
grad(U);
|
||||
}
|
||||
|
||||
|
||||
// Default relaxation for transient
|
||||
relaxationFactors
|
||||
{
|
||||
equations
|
||||
{
|
||||
".*" 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Embed steady-state settings (simpleFoam) without changeDictionary
|
||||
_simpleFoam
|
||||
{
|
||||
fields
|
||||
{
|
||||
p 1.0;
|
||||
}
|
||||
|
||||
equations
|
||||
{
|
||||
"(U|k|epsilon)" 0.9;
|
||||
}
|
||||
}
|
||||
|
||||
relaxationFactors
|
||||
{
|
||||
${_${FOAM_EXECUTABLE}};
|
||||
}
|
||||
|
||||
#remove _simpleFoam
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,245 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
note "locations and connectivity";
|
||||
object dictionary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
//- Connectivity for motion controllers
|
||||
controllers
|
||||
{
|
||||
girderA
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
1100 1110 1120 1130 1140 1150 1160 1170 1180 1190
|
||||
1200
|
||||
1210 1220 1230 1240 1250 1260 1270 1280 1290 1300
|
||||
);
|
||||
}
|
||||
|
||||
girderB
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
2100 2110 2120 2130 2140 2150 2160 2170 2180 2190
|
||||
2200
|
||||
2210 2220 2230 2240 2250 2260 2270 2280 2290 2300
|
||||
);
|
||||
}
|
||||
girderCross1
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
1110
|
||||
3101 3102 3103
|
||||
2110
|
||||
);
|
||||
}
|
||||
|
||||
girderCross2
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
1150
|
||||
3201 3202 3203
|
||||
2150
|
||||
);
|
||||
}
|
||||
|
||||
girderCross3
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
1190
|
||||
3301 3302 3303
|
||||
2190
|
||||
);
|
||||
}
|
||||
|
||||
girderCross4
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
1210
|
||||
3401 3402 3403
|
||||
2210
|
||||
);
|
||||
}
|
||||
|
||||
girderCross5
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
1250
|
||||
3501 3502 3503
|
||||
2250
|
||||
);
|
||||
}
|
||||
|
||||
girderCross6
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
1290
|
||||
3601 3602 3603
|
||||
2290
|
||||
);
|
||||
}
|
||||
|
||||
tower
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
5100
|
||||
5110
|
||||
5120
|
||||
5130
|
||||
5140
|
||||
5150
|
||||
// can ignore this one? 5160
|
||||
5170
|
||||
5180
|
||||
5190
|
||||
5200
|
||||
5210
|
||||
5220
|
||||
5230
|
||||
5240
|
||||
5250
|
||||
);
|
||||
}
|
||||
|
||||
support
|
||||
{
|
||||
pointLabels
|
||||
(
|
||||
5310 5320
|
||||
5150 // tie to tower
|
||||
5410 5420
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//- Locations of the lumped points
|
||||
points
|
||||
80
|
||||
(
|
||||
( 15.3125 -250.000 68.5906 ) //1100
|
||||
( 15.3125 -242.500 68.5906 ) //1110
|
||||
( 15.3125 -216.250 68.5906 ) //1120
|
||||
( 15.3125 -190.000 68.5906 ) //1130
|
||||
( 15.3125 -163.750 68.5906 ) //1140
|
||||
( 15.3125 -137.500 68.5906 ) //1150
|
||||
( 15.3125 -107.500 68.5906 ) //1160
|
||||
( 15.3125 -77.500 68.5906 ) //1170
|
||||
( 15.3125 -47.500 68.5906 ) //1180
|
||||
( 15.3125 -17.500 68.5906 ) //1190
|
||||
( 15.3125 0.0 68.5906 ) //1200
|
||||
( 15.3125 17.500 68.5906 ) //1210
|
||||
( 15.3125 47.500 68.5906 ) //1220
|
||||
( 15.3125 77.500 68.5906 ) //1230
|
||||
( 15.3125 107.500 68.5906 ) //1240
|
||||
( 15.3125 137.500 68.5906 ) //1250
|
||||
( 15.3125 163.750 68.5906 ) //1260
|
||||
( 15.3125 190.000 68.5906 ) //1270
|
||||
( 15.3125 216.250 68.5906 ) //1280
|
||||
( 15.3125 242.500 68.5906 ) //1290
|
||||
( 15.3125 250.000 68.5906 ) //1300
|
||||
( -15.3125 -250.000 68.5906 ) //2100
|
||||
( -15.3125 -242.500 68.5906 ) //2110
|
||||
( -15.3125 -216.250 68.5906 ) //2120
|
||||
( -15.3125 -190.000 68.5906 ) //2130
|
||||
( -15.3125 -163.750 68.5906 ) //2140
|
||||
( -15.3125 -137.500 68.5906 ) //2150
|
||||
( -15.3125 -107.500 68.5906 ) //2160
|
||||
( -15.3125 -77.500 68.5906 ) //2170
|
||||
( -15.3125 -47.500 68.5906 ) //2180
|
||||
( -15.3125 -17.500 68.5906 ) //2190
|
||||
( -15.3125 0.0 68.5906 ) //2200
|
||||
( -15.3125 17.500 68.5906 ) //2210
|
||||
( -15.3125 47.500 68.5906 ) //2220
|
||||
( -15.3125 77.500 68.5906 ) //2230
|
||||
( -15.3125 107.500 68.5906 ) //2240
|
||||
( -15.3125 137.500 68.5906 ) //2250
|
||||
( -15.3125 163.750 68.5906 ) //2260
|
||||
( -15.3125 190.000 68.5906 ) //2270
|
||||
( -15.3125 216.250 68.5906 ) //2280
|
||||
( -15.3125 242.500 68.5906 ) //2290
|
||||
( -15.3125 250.000 68.5906 ) //2300
|
||||
( 7.65625 -242.500 68.5906 ) //3101
|
||||
( 7.65625 -137.500 68.5906 ) //3201
|
||||
( 7.65625 -17.5000 68.5906 ) //3301
|
||||
( 7.65625 17.5000 68.5906 ) //3401
|
||||
( 7.65625 137.500 68.5906 ) //3501
|
||||
( 7.65625 242.500 68.5906 ) //3601
|
||||
( 0.0 -242.500 68.5906 ) //3102
|
||||
( 0.0 -137.500 68.5906 ) //3202
|
||||
( 0.0 -17.5000 68.5906 ) //3302
|
||||
( 0.0 17.5000 68.5906 ) //3402
|
||||
( 0.0 137.500 68.5906 ) //3502
|
||||
( 0.0 242.500 68.5906 ) //3602
|
||||
( -7.65625 -242.500 68.5906 ) //3103
|
||||
( -7.65625 -137.500 68.5906 ) //3203
|
||||
( -7.65625 -17.500 68.5906 ) //3303
|
||||
( -7.65625 17.500 68.5906 ) //3403
|
||||
( -7.65625 137.500 68.5906 ) //3503
|
||||
( -7.65625 242.500 68.5906 ) //3603
|
||||
( 0.0 0.0 5.0 ) //5100
|
||||
( 0.0 0.0 18.250 ) //5110
|
||||
( 0.0 0.0 31.500 ) //5120
|
||||
( 0.0 0.0 44.750 ) //5130
|
||||
( 0.0 0.0 58.000 ) //5140
|
||||
( 0.0 0.0 64.750 ) //5150
|
||||
( 0.0 0.0 66.000 ) //5160
|
||||
( 0.0 0.0 88.875 ) //5170
|
||||
( 0.0 0.0 111.750 ) //5180
|
||||
( 0.0 0.0 134.625 ) //5190
|
||||
( 0.0 0.0 157.500 ) //5200
|
||||
( 0.0 0.0 166.250 ) //5210
|
||||
( 0.0 0.0 175.000 ) //5220
|
||||
( 0.0 0.0 185.000 ) //5230
|
||||
( 0.0 0.0 195.000 ) //5240
|
||||
( 0.0 0.0 200.000 ) //5250
|
||||
( 15.3125 0.0 64.750 ) //5310
|
||||
( 21.525 0.0 64.750 ) //5320
|
||||
( -15.3125 0.0 64.750 ) //5410
|
||||
( -21.525 0.0 64.750 ) //5420
|
||||
);
|
||||
|
||||
|
||||
//- Original (FEA) labels in order of appearance
|
||||
pointLabels
|
||||
(
|
||||
1100 1110 1120 1130 1140 1150 1160 1170 1180 1190
|
||||
1200
|
||||
1210 1220 1230 1240 1250 1260 1270 1280 1290 1300
|
||||
|
||||
2100 2110 2120 2130 2140 2150 2160 2170 2180 2190
|
||||
2200
|
||||
2210 2220 2230 2240 2250 2260 2270 2280 2290 2300
|
||||
|
||||
3101 3201 3301 3401 3501 3601
|
||||
3102 3202 3302 3402 3502 3602
|
||||
3103 3203 3303 3403 3503 3603
|
||||
|
||||
5100 5110 5120 5130 5140 5150
|
||||
5160
|
||||
5170 5180 5190 5200 5210 5220 5230 5240 5250
|
||||
|
||||
5310 5320 5410 5420
|
||||
);
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,86 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object lumpedPointMovement;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "lumpedPointControllers"
|
||||
|
||||
//- Relaxation/scaling factor when updating positions
|
||||
relax 1.0;
|
||||
|
||||
forces
|
||||
{
|
||||
//- The pressure name (default: p)
|
||||
p p;
|
||||
|
||||
//- Reference pressure [Pa] (default: 0)
|
||||
pRef 0;
|
||||
|
||||
//- Reference density for incompressible calculations (default: 1)
|
||||
rhoRef 1;
|
||||
}
|
||||
|
||||
|
||||
communication
|
||||
{
|
||||
commsDir "comms";
|
||||
|
||||
log on;
|
||||
|
||||
waitInterval 1;
|
||||
|
||||
// Coupling frequency (default: 1)
|
||||
//calcFrequency 1;
|
||||
|
||||
timeOut 100;
|
||||
|
||||
initByExternal false;
|
||||
|
||||
// Input file of positions/rotation, written by external application
|
||||
inputName positions.in;
|
||||
|
||||
// Output file of forces, written by OpenFOAM
|
||||
outputName forces.out;
|
||||
|
||||
// Log of points/forces/moments during the simulation
|
||||
logName movement.log;
|
||||
|
||||
inputFormat dictionary;
|
||||
outputFormat dictionary;
|
||||
|
||||
debugTable "<case>/output.txt";
|
||||
|
||||
// Scaling applied to values read from 'inputName'
|
||||
scaleInput
|
||||
{
|
||||
//- Length multiplier (to metres). Eg 0.001 for [mm] -> [m]
|
||||
length 1;
|
||||
}
|
||||
|
||||
// Scaling applied to values written to 'outputName'
|
||||
scaleOutput
|
||||
{
|
||||
//- Length multiplier (from metres). Eg 1000 for [m] -> [mm]
|
||||
length 1;
|
||||
|
||||
//- Force units multiplier (from Pa)
|
||||
force 1;
|
||||
|
||||
//- Moment units multiplier (from N.m)
|
||||
moment 1;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,24 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object meshQualityDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
// Include defaults parameters from master dictionary
|
||||
#includeEtc "caseDicts/meshQualityDict"
|
||||
|
||||
//- minFaceWeight (0 -> 0.5)
|
||||
minFaceWeight 0.02;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,305 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object snappyHexMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
// Which of the steps to run
|
||||
castellatedMesh true;
|
||||
snap true;
|
||||
addLayers false;
|
||||
|
||||
|
||||
// Geometry. Definition of all surfaces. All surfaces are of class
|
||||
// searchableSurface.
|
||||
// Surfaces are used
|
||||
// - to specify refinement for any mesh cell intersecting it
|
||||
// - to specify refinement for any mesh cell inside/outside/near
|
||||
// - to 'snap' the mesh boundary to the surface
|
||||
geometry
|
||||
{
|
||||
fsi-bridge1.obj
|
||||
{
|
||||
type triSurfaceMesh;
|
||||
name bridge;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Settings for the castellatedMesh generation.
|
||||
castellatedMeshControls
|
||||
{
|
||||
|
||||
// Refinement parameters
|
||||
// ~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// If local number of cells is >= maxLocalCells on any processor
|
||||
// switches from from refinement followed by balancing
|
||||
// (current method) to (weighted) balancing before refinement.
|
||||
maxLocalCells 100000;
|
||||
|
||||
// Overall cell limit (approximately). Refinement will stop immediately
|
||||
// upon reaching this number so a refinement level might not complete.
|
||||
// Note that this is the number of cells before removing the part which
|
||||
// is not 'visible' from the keepPoint. The final number of cells might
|
||||
// actually be a lot less.
|
||||
maxGlobalCells 2000000;
|
||||
|
||||
// The surface refinement loop might spend lots of iterations refining just a
|
||||
// few cells. This setting will cause refinement to stop if <= minimumRefine
|
||||
// are selected for refinement. Note: it will at least do one iteration
|
||||
// (unless the number of cells to refine is 0)
|
||||
minRefinementCells 10;
|
||||
|
||||
// Allow a certain level of imbalance during refining
|
||||
// (since balancing is quite expensive)
|
||||
// Expressed as fraction of perfect balance (= overall number of cells /
|
||||
// nProcs). 0=balance always.
|
||||
maxLoadUnbalance 0.10;
|
||||
|
||||
|
||||
// Number of buffer layers between different levels.
|
||||
// 1 means normal 2:1 refinement restriction, larger means slower
|
||||
// refinement.
|
||||
nCellsBetweenLevels 15;
|
||||
|
||||
|
||||
|
||||
// Explicit feature edge refinement
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// Specifies a level for any cell intersected by its edges.
|
||||
// This is a featureEdgeMesh, read from constant/triSurface for now.
|
||||
features
|
||||
(
|
||||
);
|
||||
|
||||
|
||||
|
||||
// Surface based refinement
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// Specifies two levels for every surface. The first is the minimum level,
|
||||
// every cell intersecting a surface gets refined up to the minimum level.
|
||||
// The second level is the maximum level. Cells that 'see' multiple
|
||||
// intersections where the intersections make an
|
||||
// angle > resolveFeatureAngle get refined up to the maximum level.
|
||||
|
||||
refinementSurfaces
|
||||
{
|
||||
bridge
|
||||
{
|
||||
// Surface-wise min and max refinement level
|
||||
level (4 4);
|
||||
|
||||
// Optional specification of patch type (default is wall). No
|
||||
// constraint types (cyclic, symmetry) etc. are allowed.
|
||||
patchInfo
|
||||
{
|
||||
type wall;
|
||||
inGroups (bridge);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Resolve sharp angles
|
||||
resolveFeatureAngle 30;
|
||||
|
||||
|
||||
// Region-wise refinement
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// Specifies refinement level for cells in relation to a surface. One of
|
||||
// three modes
|
||||
// - distance. 'levels' specifies per distance to the surface the
|
||||
// wanted refinement level. The distances need to be specified in
|
||||
// descending order.
|
||||
// - inside. 'levels' is only one entry and only the level is used. All
|
||||
// cells inside the surface get refined up to the level. The surface
|
||||
// needs to be closed for this to be possible.
|
||||
// - outside. Same but cells outside.
|
||||
|
||||
refinementRegions
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// Mesh selection
|
||||
// ~~~~~~~~~~~~~~
|
||||
|
||||
// After refinement patches get added for all refinementSurfaces and
|
||||
// all cells intersecting the surfaces get put into these patches. The
|
||||
// section reachable from the locationInMesh is kept.
|
||||
// NOTE: This point should never be on a face, always inside a cell, even
|
||||
// after refinement.
|
||||
locationInMesh (20 20 20);
|
||||
|
||||
|
||||
// Whether any faceZones (as specified in the refinementSurfaces)
|
||||
// are only on the boundary of corresponding cellZones or also allow
|
||||
// free-standing zone faces. Not used if there are no faceZones.
|
||||
allowFreeStandingZoneFaces true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Settings for the snapping.
|
||||
snapControls
|
||||
{
|
||||
//- Number of patch smoothing iterations before finding correspondence
|
||||
// to surface
|
||||
nSmoothPatch 3;
|
||||
|
||||
//- Relative distance for points to be attracted by surface feature point
|
||||
// or edge. True distance is this factor times local
|
||||
// maximum edge length.
|
||||
tolerance 2.0;
|
||||
|
||||
//- Number of mesh displacement relaxation iterations.
|
||||
nSolveIter 30;
|
||||
|
||||
//- Maximum number of snapping relaxation iterations. Should stop
|
||||
// before upon reaching a correct mesh.
|
||||
nRelaxIter 5;
|
||||
|
||||
// Feature snapping
|
||||
|
||||
//- Number of feature edge snapping iterations.
|
||||
// Leave out altogether to disable.
|
||||
nFeatureSnapIter 10;
|
||||
|
||||
//- Detect (geometric only) features by sampling the surface
|
||||
// (default=false).
|
||||
implicitFeatureSnap false;
|
||||
|
||||
//- Use castellatedMeshControls::features (default = true)
|
||||
explicitFeatureSnap true;
|
||||
|
||||
//- Detect points on multiple surfaces (only for explicitFeatureSnap)
|
||||
multiRegionFeatureSnap false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Settings for the layer addition.
|
||||
addLayersControls
|
||||
{
|
||||
// Are the thickness parameters below relative to the undistorted
|
||||
// size of the refined cell outside layer (true) or absolute sizes (false).
|
||||
relativeSizes true;
|
||||
|
||||
// Per final patch (so not geometry!) the layer information
|
||||
layers
|
||||
{
|
||||
}
|
||||
|
||||
// Expansion factor for layer mesh
|
||||
expansionRatio 1.0;
|
||||
|
||||
// Wanted thickness of final added cell layer. If multiple layers
|
||||
// is the thickness of the layer furthest away from the wall.
|
||||
// Relative to undistorted size of cell outside layer.
|
||||
// See relativeSizes parameter.
|
||||
finalLayerThickness 0.3;
|
||||
|
||||
// Minimum thickness of cell layer. If for any reason layer
|
||||
// cannot be above minThickness do not add layer.
|
||||
// Relative to undistorted size of cell outside layer.
|
||||
minThickness 0.1;
|
||||
|
||||
// If points get not extruded do nGrow layers of connected faces that are
|
||||
// also not grown. This helps convergence of the layer addition process
|
||||
// close to features.
|
||||
// Note: changed(corrected) w.r.t 1.7.x! (didn't do anything in 1.7.x)
|
||||
nGrow 0;
|
||||
|
||||
// Advanced settings
|
||||
|
||||
// When not to extrude surface. 0 is flat surface, 90 is when two faces
|
||||
// are perpendicular
|
||||
featureAngle 60;
|
||||
|
||||
// At non-patched sides allow mesh to slip if extrusion direction makes
|
||||
// angle larger than slipFeatureAngle.
|
||||
slipFeatureAngle 30;
|
||||
|
||||
// Maximum number of snapping relaxation iterations. Should stop
|
||||
// before upon reaching a correct mesh.
|
||||
nRelaxIter 3;
|
||||
|
||||
// Number of smoothing iterations of surface normals
|
||||
nSmoothSurfaceNormals 1;
|
||||
|
||||
// Number of smoothing iterations of interior mesh movement direction
|
||||
nSmoothNormals 3;
|
||||
|
||||
// Smooth layer thickness over surface patches
|
||||
nSmoothThickness 10;
|
||||
|
||||
// Stop layer growth on highly warped cells
|
||||
maxFaceThicknessRatio 0.5;
|
||||
|
||||
// Reduce layer growth where ratio thickness to medial
|
||||
// distance is large
|
||||
maxThicknessToMedialRatio 0.3;
|
||||
|
||||
// Angle used to pick up medial axis points
|
||||
// Note: changed(corrected) w.r.t 1.7.x! 90 degrees corresponds to 130
|
||||
// in 1.7.x.
|
||||
minMedialAxisAngle 90;
|
||||
|
||||
|
||||
// Create buffer region for new layer terminations
|
||||
nBufferCellsNoExtrude 0;
|
||||
|
||||
|
||||
// Overall max number of layer addition iterations. The mesher will exit
|
||||
// if it reaches this number of iterations; possibly with an illegal
|
||||
// mesh.
|
||||
nLayerIter 50;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Generic mesh quality settings. At any undoable phase these determine
|
||||
// where to undo.
|
||||
meshQualityControls
|
||||
{
|
||||
#include "meshQualityDict"
|
||||
|
||||
// Advanced
|
||||
|
||||
//- Number of error distribution iterations
|
||||
nSmoothScale 4;
|
||||
//- Amount to scale back displacement at error points
|
||||
errorReduction 0.75;
|
||||
}
|
||||
|
||||
|
||||
// Advanced
|
||||
|
||||
// Write flags
|
||||
writeFlags
|
||||
(
|
||||
scalarLevels
|
||||
layerSets
|
||||
layerFields // write volScalarField for layer coverage
|
||||
);
|
||||
|
||||
|
||||
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
|
||||
// Note: the write tolerance needs to be higher than this.
|
||||
mergeTolerance 1e-6;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,33 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2006 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object surfaceFeatureExtractDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
fsi-bridge1.obj
|
||||
{
|
||||
// How to obtain raw features (extractFromFile || extractFromSurface)
|
||||
extractionMethod extractFromSurface;
|
||||
|
||||
// Mark edges whose adjacent surface normals are at an angle less
|
||||
// than includedAngle as features
|
||||
// - 0 : selects no edges
|
||||
// - 180: selects all edges
|
||||
includedAngle 85;
|
||||
|
||||
// Write features to obj format for postprocessing
|
||||
writeObj false;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
12484
tutorials/resources/geometry/fsi-bridge1.obj
Normal file
12484
tutorials/resources/geometry/fsi-bridge1.obj
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user