New MD tutorials.

This commit is contained in:
graham
2009-06-29 16:34:27 +01:00
parent c73fa61a97
commit 786a2621ad
46 changed files with 1088 additions and 917 deletions

View File

@ -3,9 +3,20 @@
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cd periodicCube
rm -rf 0
rm -rf Ar-Ar
rm -rf constant/idList
cd periodicCubeArgon
rm -rf 0/*
rm -f Ar-Ar
rm -f electrostatic
rm -f constant/idList
rm -rf constant/polyMesh/sets
cleanCase
cd ..
cd periodicCubeWater
rm -rf 0/*
rm -f O-O
rm -f electrostatic
rm -f constant/idList
rm -rf constant/polyMesh/sets
cleanCase
cd ..

View File

@ -5,9 +5,14 @@
application="mdEquilibrationFoam"
cd periodicCube
runApplication blockMesh
runApplication molConfig
runApplication $application
cd ..
# cd periodicCubeArgon
# runApplication blockMesh
# runApplication mdInitialise
# runApplication $application
# cd ..
cd periodicCubeWater
runApplication blockMesh
runApplication mdInitialise
runApplication $application
cd ..

View File

@ -1,65 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object potentialDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
removalOrder 1 ( Ar );
pair
{
Ar-Ar
{
pairPotential azizChen;
rCut 1.2e-09;
rMin 1.5e-10;
dr 2e-14;
azizChenCoeffs
{
epsilon 1.97742255e-21;
rm 3.759e-10;
A 9502720;
alpha 16.345655;
C6 1.0914254;
C8 0.6002595;
C10 0.3700113;
D 1.4;
gamma 2;
}
energyScalingFunction noScaling;
writeTables yes;
}
}
tether
{
Ar
{
tetherPotential restrainedHarmonicSpring;
restrainedHarmonicSpringCoeffs
{
springConstant 0.0277;
rR 1.2e-09;
}
}
}
external
{
gravity ( 0 0 0 );
}
// ************************************************************************* //

View File

@ -0,0 +1,36 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object moleculeProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Ar
{
siteIds (Ar);
pairPotentialSiteIds (Ar);
siteReferencePositions
(
(0 0 0)
);
siteMasses
(
6.63352033e-26
);
siteCharges
(
0
);
}
// ************************************************************************* //

View File

@ -1,17 +1,25 @@
/*--------------------------------*- C++ -*----------------------------------*\
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / O peration | Version: 1.3 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 2.462491658e-9;
@ -61,4 +69,5 @@ mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,7 +10,6 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -45,5 +44,4 @@ runTimeModifiable yes;
adjustTimeStep no;
// ************************************************************************* //

View File

@ -0,0 +1,64 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.3 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 2;
method simple;
simpleCoeffs
{
n (2 1 1);
delta 0.001;
}
hierarchicalCoeffs
{
n (1 1 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
processorWeights
(
1
3
);
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots
(
);
// ************************************************************************* //

View File

@ -17,43 +17,37 @@ FoamFile
ddtSchemes
{
default Euler;
default none;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
default none;
}
divSchemes
{
default none;
div(phi,U) Gauss linear;
}
laplacianSchemes
{
default none;
laplacian(nu,U) Gauss linear corrected;
laplacian(1|A(U),p) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
interpolate(HbyA) linear;
default none;
}
snGradSchemes
{
default corrected;
default none;
}
fluxRequired
{
default no;
p ;
}

View File

@ -11,11 +11,12 @@ FoamFile
format ascii;
class dictionary;
location "system";
object mdEquilibrationDict;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
equilibrationTargetTemperature 300;
solvers
{
}
// ************************************************************************* //

View File

@ -0,0 +1,19 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object mdEquilibrationDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
equilibrationTargetTemperature 300.0;
// ************************************************************************* //

View File

@ -0,0 +1,44 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.3 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object molConfigDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Euler angles, expressed in degrees as phi, theta, psi, see
// http://mathworld.wolfram.com/EulerAngles.html
liquid
{
massDensity 1220;
temperature 300;
bulkVelocity (0.0 0.0 0.0);
latticeIds (Ar);
tetherSiteIds ();
latticePositions
(
(0 0 0)
);
anchor (0 0 0);
orientationAngles (0 0 0);
latticeCellShape (1 1 1);
}
// ************************************************************************* //

View File

@ -0,0 +1,121 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
n| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object potentials;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Subdictionaries specifying types of intermolecular potential.
// Sub-sub dictionaries specify the potentials themselves.
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Removal order
// This is the order in which to remove overlapping pairs if more than one
// type of molecule is present. The most valuable molecule type is at the
// right hand end, the molecule that will be removed 1st is 1st on the list.
// Not all types need to be present, a molecule that is not present is
// automatically less valuable than any on the list. For molecules of the
// same type there is no control over which is removed.
removalOrder ( Ar );
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Potential Energy Limit
// Maximum permissible pair energy allowed at startup. Used to remove
// overlapping molecules created during preprocessing.
potentialEnergyLimit 1e-18;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Pair potentials
// If there are r different type of molecules, and a pair force is required
// between all combinations, then there are C = r(r+1)/2 combinations,
// i.e. for r = {1,2,3,4}, C = {1,3,6,10} (sum of triangular numbers).
// Pair potentials are specified by the combinaition of their ids,
// for MOLA and MOLB, "MOLA-MOLB" OR "MOLB-MOLA" is acceptable
// (strictly OR, both or neither is an error)
pair
{
Ar-Ar
{
pairPotential maitlandSmith;
rCut 1.0e-9;
rMin 0.15e-9;
dr 5e-14;
maitlandSmithCoeffs
{
m 13.0;
gamma 7.5;
rm 0.3756e-9;
epsilon 1.990108438e-21;
}
energyScalingFunction doubleSigmoid;
doubleSigmoidCoeffs
{
shift1 0.9e-9;
scale1 0.3e11;
shift2 0.97e-9;
scale2 1.2e11;
}
writeTables yes;
}
electrostatic
{
pairPotential dampedCoulomb;
rCut 1.0e-9;
rMin 0.1e-9;
dr 2e-12;
dampedCoulombCoeffs
{
alpha 2e9;
}
energyScalingFunction shiftedForce;
writeTables yes;
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Tethering Potentials
tether
{
O
{
tetherPotential restrainedHarmonicSpring;
restrainedHarmonicSpringCoeffs
{
springConstant 0.277;
rR 1.2e-9;
}
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// External Forces
// Bulk external forces (namely gravity) will be specified as forces rather
// than potentials to allow their direction to be controlled.
external
{
gravity (0 0 0);
}
// ************************************************************************* //

View File

@ -0,0 +1,72 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object moleculeProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
water
{
siteIds (H H O M);
pairPotentialSiteIds (O);
siteReferencePositions
(
(7.56950327263661e-11 5.85882276618295e-11 0)
(-7.56950327263661e-11 5.85882276618295e-11 0)
(0 0 0)
(0 1.5e-11 0)
);
siteMasses
(
1.67353255e-27
1.67353255e-27
2.6560176e-26
0
);
siteCharges
(
8.3313177324e-20
8.3313177324e-20
0
-1.66626354648e-19
);
}
water2
{
siteIds (H2 H2 O M2);
pairPotentialSiteIds (O);
siteReferencePositions
(
(7.56950327263661e-11 5.85882276618295e-11 0)
(-7.56950327263661e-11 5.85882276618295e-11 0)
(0 0 0)
(0 1.5e-11 0)
);
siteMasses
(
1.67353255e-27
1.67353255e-27
2.6560176e-26
0
);
siteCharges
(
8.3313177324e-20
8.3313177324e-20
0
-1.66626354648e-19
);
}
// ************************************************************************* //

View File

@ -0,0 +1,73 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.3 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 2.10840e-9;
vertices
(
(-1 -1 -1)
(1 -1 -1)
(1 1 -1)
(-1 1 -1)
(-1 -1 1)
(1 -1 1)
(1 1 1)
(-1 1 1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) liquid (12 12 11) simpleGrading (1 1 1)
);
patches
(
cyclic
periodicX
(
(1 2 6 5)
(0 4 7 3)
)
cyclic
periodicY
(
(2 3 7 6)
(0 1 5 4)
)
cyclic
periodicZ
(
(0 3 2 1)
(4 5 6 7)
)
)
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
@ -9,38 +9,35 @@ FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
3
(
periodicX
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
type cyclic;
nFaces 264;
startFace 4344;
featureCos 0.9;
}
U
periodicY
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
type cyclic;
nFaces 264;
startFace 4608;
featureCos 0.9;
}
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
periodicZ
{
type cyclic;
nFaces 288;
startFace 4872;
featureCos 0.9;
}
)
// ************************************************************************* //

View File

@ -0,0 +1,47 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 5e-12;
deltaT 1e-15;
writeControl runTime;
writeInterval 2e-13;
purgeWrite 0;
writeFormat ascii;
writePrecision 12;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
// ************************************************************************* //

View File

@ -0,0 +1,64 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.3 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 4;
method simple;
simpleCoeffs
{
n (2 2 1);
delta 0.001;
}
hierarchicalCoeffs
{
n (1 1 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
processorWeights
(
1
3
);
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots
(
);
// ************************************************************************* //

View File

@ -11,23 +11,43 @@ FoamFile
format ascii;
class dictionary;
location "system";
object molConfigDict;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
liquid
ddtSchemes
{
massDensity 1220;
temperature 300;
velocityDistribution maxwellian;
bulkVelocity ( 0 0 0 );
id Ar;
mass 6.63352033e-26;
latticeStructure SC;
anchor ( 0 0 0 );
anchorSpecifies molecule;
tethered no;
orientationAngles ( 0 0 0 );
default none;
}
gradSchemes
{
default none;
}
divSchemes
{
default none;
}
laplacianSchemes
{
default none;
}
interpolationSchemes
{
default none;
}
snGradSchemes
{
default none;
}
fluxRequired
{
default no;
}

View File

@ -11,13 +11,12 @@ FoamFile
format ascii;
class dictionary;
location "system";
object mdSolution;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
integrationMethod verletLeapfrog;
potentialEnergyLimit 5.256e-20;
solvers
{
}
// ************************************************************************* //

View File

@ -0,0 +1,19 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object mdEquilibrationDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
targetTemperature 298;
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.3 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object molConfigDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Euler angles, expressed in degrees as phi, theta, psi, see
// http://mathworld.wolfram.com/EulerAngles.html
liquid
{
massDensity 980;
temperature 298;
bulkVelocity (0.0 0.0 0.0);
latticeIds
(
water
water2
water
water2
);
tetherSiteIds ();
latticePositions
(
(0 0 0)
(0 0.5 0.5)
(0.5 0 0.5)
(0.5 0.5 0)
);
anchor (0 0 0);
orientationAngles (0 0 0);
latticeCellShape (1 1 1);
}
// ************************************************************************* //

View File

@ -0,0 +1,118 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object potentials;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Subdictionaries specifying types of intermolecular potential.
// Sub-sub dictionaries specify the potentials themselves.
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Removal order
// This is the order in which to remove overlapping pairs if more than one
// type of molecule is present. The most valuable molecule type is at the
// right hand end, the molecule that will be removed 1st is 1st on the list.
// Not all types need to be present, a molecule that is not present is
// automatically less valuable than any on the list. For molecules of the
// same type there is no control over which is removed.
removalOrder ( water );
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Potential Energy Limit
// Maximum permissible pair energy allowed at startup. Used to remove
// overlapping molecules created during preprocessing.
potentialEnergyLimit 1e-18;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Pair potentials
// If a pair are not present here it is assumed that they do not interact.
// Electrostatic pair interactions are not listed here - they are handled
// separately.
// If there are r different type of molecules, and a pair force is required
// between all combinations, then there are C = r(r+1)/2 combinations,
// i.e. for r = {1,2,3,4}, C = {1,3,6,10} (sum of triangular numbers).
// Pair potentials are specified by the combinaition of their ids,
// for MOLA and MOLB, "MOLA-MOLB" OR "MOLB-MOLA" is acceptable
// (strictly OR, both or neither will throw an error)
pair
{
O-O
{
pairPotential lennardJones;
rCut 1.0e-9;
rMin 0.1e-9;
dr 1e-13;
lennardJonesCoeffs
{
sigma 3.154e-10;
epsilon 1.07690722e-21;
}
energyScalingFunction noScaling;
writeTables yes;
}
electrostatic
{
pairPotential dampedCoulomb;
rCut 1e-9;
rMin 2e-11;
dr 2e-12;
dampedCoulombCoeffs
{
alpha 2e9;
}
energyScalingFunction shiftedForce;
writeTables yes;
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Tethering Potentials
tether
{
O
{
tetherPotential restrainedHarmonicSpring;
restrainedHarmonicSpringCoeffs
{
springConstant 0.277;
rR 1.2e-9;
}
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// External Forces
// Bulk external forces (namely gravity) will be specified as forces rather
// than potentials to allow their direction to be controlled.
external
{
gravity (0 0 0);
}
// ************************************************************************* //