Merge branch 'master' of /home/dm4/OpenFOAM/repositories/OpenFOAM-dev

This commit is contained in:
mattijs
2014-01-13 15:09:47 +00:00
31 changed files with 318 additions and 53 deletions

View File

@ -167,6 +167,19 @@
</Documentation>
</IntVectorProperty>
<!-- Force GUI update check box -->
<IntVectorProperty
name="UpdateGUI"
command="SetUpdateGUI"
number_of_elements="1"
default_values="0"
animateable="0">
<BooleanDomain name="bool"/>
<Documentation>
A simple way to cause a reader GUI modification.
</Documentation>
</IntVectorProperty>
<!--
| Selections
-->

View File

@ -2,7 +2,7 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
# \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
@ -224,9 +224,16 @@ case ThirdParty:
set mpfr_version=mpfr-3.1.0
set mpc_version=mpc-0.9
breaksw
case Gcc49:
case Gcc49++0x:
set gcc_version=gcc-4.9.0
set gmp_version=gmp-5.1.2
set mpfr_version=mpfr-3.1.2
set mpc_version=mpc-1.0.1
breaksw
case Gcc48:
case Gcc48++0x:
set gcc_version=gcc-4.8.1
set gcc_version=gcc-4.8.2
set gmp_version=gmp-5.1.2
set mpfr_version=mpfr-3.1.2
set mpc_version=mpc-1.0.1
@ -249,7 +256,7 @@ case ThirdParty:
# using clang - not gcc
setenv WM_CC 'clang'
setenv WM_CXX 'clang++'
set clang_version=llvm-3.3
set clang_version=llvm-3.4
breaksw
default:
echo

View File

@ -2,7 +2,7 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
# \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
@ -246,8 +246,14 @@ OpenFOAM | ThirdParty)
mpfr_version=mpfr-3.1.0
mpc_version=mpc-0.9
;;
Gcc49 | Gcc49++0x)
gcc_version=gcc-4.9.0
gmp_version=gmp-5.1.2
mpfr_version=mpfr-3.1.2
mpc_version=mpc-1.0.1
;;
Gcc48 | Gcc48++0x)
gcc_version=gcc-4.8.1
gcc_version=gcc-4.8.2
gmp_version=gmp-5.1.2
mpfr_version=mpfr-3.1.2
mpc_version=mpc-1.0.1
@ -268,7 +274,7 @@ OpenFOAM | ThirdParty)
# using clang - not gcc
export WM_CC='clang'
export WM_CXX='clang++'
clang_version=llvm-3.3
clang_version=llvm-3.4
;;
*)
echo 1>&2

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -36,6 +36,7 @@ License
#include "diagTensor.H"
#include "transformField.H"
#include "SubField.H"
#include "unitConversion.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -272,10 +273,14 @@ void Foam::cyclicPolyPatch::calcTransforms
if (debug)
{
scalar theta = radToDeg(acos(n0 & n1));
Pout<< "cyclicPolyPatch::calcTransforms :"
<< " patch:" << name()
<< " Specified rotation :"
<< " n0:" << n0 << " n1:" << n1 << endl;
<< " n0:" << n0 << " n1:" << n1
<< " swept angle: " << theta << " [deg]"
<< endl;
}
// Extended tensor from two local coordinate systems calculated
@ -432,10 +437,14 @@ void Foam::cyclicPolyPatch::getCentresAndAnchors
if (debug)
{
scalar theta = radToDeg(acos(n0 & n1));
Pout<< "cyclicPolyPatch::getCentresAndAnchors :"
<< " patch:" << name()
<< " Specified rotation :"
<< " n0:" << n0 << " n1:" << n1 << endl;
<< " n0:" << n0 << " n1:" << n1
<< " swept angle: " << theta << " [deg]"
<< endl;
}
// Extended tensor from two local coordinate systems calculated

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -45,7 +45,7 @@ namespace Foam
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //
Foam::vector Foam::cyclicAMIPolyPatch::findFaceMaxRadius
Foam::vector Foam::cyclicAMIPolyPatch::findFaceNormalMaxRadius
(
const pointField& faceCentres
) const
@ -138,45 +138,115 @@ void Foam::cyclicAMIPolyPatch::calcTransforms
{
case ROTATIONAL:
{
point n0 = vector::zero;
if (half0Ctrs.size())
tensor revT = tensor::zero;
if (rotationAngleDefined_)
{
n0 = findFaceMaxRadius(half0Ctrs);
tensor T(rotationAxis_*rotationAxis_);
tensor S
(
0, -rotationAxis_.z(), rotationAxis_.y(),
rotationAxis_.z(), 0, -rotationAxis_.x(),
-rotationAxis_.y(), rotationAxis_.x(), 0
);
tensor RPos
(
T
+ cos(rotationAngle_)*(tensor::I + T)
+ sin(rotationAngle_)*S
);
tensor RNeg
(
T
+ cos(-rotationAngle_)*(tensor::I + T)
+ sin(-rotationAngle_)*S
);
// check - assume correct angle when difference in face areas
// is the smallest
vector transformedAreaPos = sum(half0Areas & RPos);
vector transformedAreaNeg = sum(half0Areas & RNeg);
vector area1 = sum(half1Areas);
reduce(transformedAreaPos, sumOp<vector>());
reduce(transformedAreaNeg, sumOp<vector>());
reduce(area1, sumOp<vector>());
scalar errorPos = mag(transformedAreaPos - area1);
scalar errorNeg = mag(transformedAreaNeg - area1);
if (errorPos < errorNeg)
{
revT = RPos;
}
else
{
revT = RNeg;
rotationAngle_ *= -1;
}
if (debug)
{
scalar theta = radToDeg(rotationAngle_);
Pout<< "cyclicAMIPolyPatch::calcTransforms: patch:"
<< name()
<< " Specified rotation:"
<< " swept angle: " << theta << " [deg]"
<< " reverse transform: " << revT
<< endl;
}
}
point n1 = vector::zero;
if (half1Ctrs.size())
else
{
n1 = -findFaceMaxRadius(half1Ctrs);
point n0 = vector::zero;
point n1 = vector::zero;
if (half0Ctrs.size())
{
n0 = findFaceNormalMaxRadius(half0Ctrs);
}
if (half1Ctrs.size())
{
n1 = -findFaceNormalMaxRadius(half1Ctrs);
}
reduce(n0, maxMagSqrOp<point>());
reduce(n1, maxMagSqrOp<point>());
n0 /= mag(n0) + VSMALL;
n1 /= mag(n1) + VSMALL;
// Extended tensor from two local coordinate systems calculated
// using normal and rotation axis
const tensor E0
(
rotationAxis_,
(n0 ^ rotationAxis_),
n0
);
const tensor E1
(
rotationAxis_,
(-n1 ^ rotationAxis_),
-n1
);
revT = E1.T() & E0;
if (debug)
{
scalar theta = radToDeg(acos(n0 & n1));
Pout<< "cyclicAMIPolyPatch::calcTransforms: patch:"
<< name()
<< " Specified rotation:"
<< " n0:" << n0 << " n1:" << n1
<< " swept angle: " << theta << " [deg]"
<< " reverse transform: " << revT
<< endl;
}
}
reduce(n0, maxMagSqrOp<point>());
reduce(n1, maxMagSqrOp<point>());
n0 /= mag(n0) + VSMALL;
n1 /= mag(n1) + VSMALL;
if (debug)
{
Pout<< "cyclicAMIPolyPatch::calcTransforms : patch:" << name()
<< " Specified rotation :"
<< " n0:" << n0 << " n1:" << n1 << endl;
}
// Extended tensor from two local coordinate systems calculated
// using normal and rotation axis
const tensor E0
(
rotationAxis_,
(n0 ^ rotationAxis_),
n0
);
const tensor E1
(
rotationAxis_,
(-n1 ^ rotationAxis_),
-n1
);
const tensor revT(E1.T() & E0);
const_cast<tensorField&>(forwardT()) = tensorField(1, revT.T());
const_cast<tensorField&>(reverseT()) = tensorField(1, revT);
const_cast<vectorField&>(separation()).setSize(0);
@ -395,6 +465,8 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchID_(-1),
rotationAxis_(vector::zero),
rotationCentre_(point::zero),
rotationAngleDefined_(false),
rotationAngle_(0.0),
separationVector_(vector::zero),
AMIPtr_(NULL),
AMIReverse_(false),
@ -421,6 +493,8 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchID_(-1),
rotationAxis_(vector::zero),
rotationCentre_(point::zero),
rotationAngleDefined_(false),
rotationAngle_(0.0),
separationVector_(vector::zero),
AMIPtr_(NULL),
AMIReverse_(dict.lookupOrDefault<bool>("flipNormals", false)),
@ -466,6 +540,17 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
{
dict.lookup("rotationAxis") >> rotationAxis_;
dict.lookup("rotationCentre") >> rotationCentre_;
if (dict.readIfPresent("rotationAngle", rotationAngle_))
{
rotationAngleDefined_ = true;
rotationAngle_ = degToRad(rotationAngle_);
if (debug)
{
Info<< "rotationAngle: " << rotationAngle_ << " [rad]"
<< endl;
}
}
scalar magRot = mag(rotationAxis_);
if (magRot < SMALL)
@ -516,6 +601,8 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchID_(-1),
rotationAxis_(pp.rotationAxis_),
rotationCentre_(pp.rotationCentre_),
rotationAngleDefined_(pp.rotationAngleDefined_),
rotationAngle_(pp.rotationAngle_),
separationVector_(pp.separationVector_),
AMIPtr_(NULL),
AMIReverse_(pp.AMIReverse_),
@ -543,6 +630,8 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchID_(-1),
rotationAxis_(pp.rotationAxis_),
rotationCentre_(pp.rotationCentre_),
rotationAngleDefined_(pp.rotationAngleDefined_),
rotationAngle_(pp.rotationAngle_),
separationVector_(pp.separationVector_),
AMIPtr_(NULL),
AMIReverse_(pp.AMIReverse_),
@ -584,6 +673,8 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchID_(-1),
rotationAxis_(pp.rotationAxis_),
rotationCentre_(pp.rotationCentre_),
rotationAngleDefined_(pp.rotationAngleDefined_),
rotationAngle_(pp.rotationAngle_),
separationVector_(pp.separationVector_),
AMIPtr_(NULL),
AMIReverse_(pp.AMIReverse_),
@ -874,6 +965,14 @@ void Foam::cyclicAMIPolyPatch::write(Ostream& os) const
<< token::END_STATEMENT << nl;
os.writeKeyword("rotationCentre") << rotationCentre_
<< token::END_STATEMENT << nl;
if (rotationAngleDefined_)
{
os.writeKeyword("rotationAngle") << radToDeg(rotationAngle_)
<< token::END_STATEMENT << nl;
}
break;
}
case TRANSLATIONAL:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -75,9 +75,15 @@ private:
//- Axis of rotation for rotational cyclics
vector rotationAxis_;
//- point on axis of rotation for rotational cyclics
//- Point on axis of rotation for rotational cyclics
point rotationCentre_;
//- Flag to show whether the rotation angle is defined
bool rotationAngleDefined_;
//- Rotation angle
scalar rotationAngle_;
// For translation
@ -101,7 +107,7 @@ private:
// Private Member Functions
//- Return normal of face at max distance from rotation axis
vector findFaceMaxRadius(const pointField& faceCentres) const;
vector findFaceNormalMaxRadius(const pointField& faceCentres) const;
void calcTransforms
(

View File

@ -940,6 +940,8 @@ void Foam::forces::calcForcesMoment()
Pstream::listCombineGather(force_, plusEqOp<vectorField>());
Pstream::listCombineGather(moment_, plusEqOp<vectorField>());
Pstream::listCombineScatter(force_);
Pstream::listCombineScatter(moment_);
}

View File

@ -101,8 +101,9 @@ runParallel checkMesh $nProcs -allTopology -allGeometry -latestTime
runApplication reconstructParMesh -latestTime
# Copy the mesh into polyMesh
# Copy the mesh into polyMesh and delete the 102 directory
\cp -r 102/polyMesh constant
\rm -rf 102
# ----------------------------------------------------------------- end-of-file

View File

@ -6027,8 +6027,7 @@ boundaryField
{
inlet
{
type fixedValue;
value uniform 1;
type zeroGradient;
}
outlet
{

View File

@ -22,8 +22,7 @@ boundaryField
{
inlet
{
type fixedValue;
value uniform 1;
type zeroGradient;
}
outlet

View File

@ -0,0 +1,16 @@
.SUFFIXES: .c .h
cWARN = -Wall
cc = gcc -m64
include $(RULES)/c$(WM_COMPILE_OPTION)
cFLAGS = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@
LINK_LIBS = $(cDBUG)
LINKLIBSO = $(cc) -shared
LINKEXE = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs

View File

@ -0,0 +1,21 @@
.SUFFIXES: .C .cxx .cc .cpp
c++WARN = -Wall -Wextra -Wno-unused-parameter -Wold-style-cast
CC = g++ -m64
include $(RULES)/c++$(WM_COMPILE_OPTION)
ptFLAGS = -DNoRepository -ftemplate-depth-100
c++FLAGS = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $$SOURCE -o $@
cxxtoo = $(Ctoo)
cctoo = $(Ctoo)
cpptoo = $(Ctoo)
LINK_LIBS = $(c++DBUG)
LINKLIBSO = $(CC) $(c++FLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed
LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed -Xlinker --no-as-needed

View File

@ -0,0 +1,2 @@
c++DBUG = -ggdb3 -DFULLDEBUG
c++OPT = -O0 -fdefault-inline

View File

@ -0,0 +1,2 @@
c++DBUG =
c++OPT = -O3

View File

@ -0,0 +1,2 @@
c++DBUG = -pg
c++OPT = -O2

View File

@ -0,0 +1,2 @@
cDBUG = -ggdb -DFULLDEBUG
cOPT = -O1 -fdefault-inline -finline-functions

View File

@ -0,0 +1,2 @@
cDBUG =
cOPT = -O3

View File

@ -0,0 +1,2 @@
cDBUG = -pg
cOPT = -O2

View File

@ -0,0 +1,8 @@
CPP = cpp -traditional-cpp
PROJECT_LIBS = -l$(WM_PROJECT) -ldl
include $(GENERAL_RULES)/standard
include $(RULES)/c
include $(RULES)/c++

View File

@ -0,0 +1,3 @@
PFLAGS =
PINC = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi

View File

@ -0,0 +1,3 @@
PFLAGS = -DMPICH_SKIP_MPICXX
PINC = -I$(MPI_ARCH_PATH)/include64
PLIBS = -L$(MPI_ARCH_PATH)/lib64 -lmpi

16
wmake/rules/linuxGcc49/c Normal file
View File

@ -0,0 +1,16 @@
.SUFFIXES: .c .h
cWARN = -Wall
cc = gcc -m32
include $(RULES)/c$(WM_COMPILE_OPTION)
cFLAGS = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@
LINK_LIBS = $(cDBUG)
LINKLIBSO = $(cc) -shared
LINKEXE = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs

View File

@ -0,0 +1,21 @@
.SUFFIXES: .C .cxx .cc .cpp
c++WARN = -Wall -Wextra -Wno-unused-parameter -Wold-style-cast
CC = g++ -m32
include $(RULES)/c++$(WM_COMPILE_OPTION)
ptFLAGS = -DNoRepository -ftemplate-depth-100
c++FLAGS = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $$SOURCE -o $@
cxxtoo = $(Ctoo)
cctoo = $(Ctoo)
cpptoo = $(Ctoo)
LINK_LIBS = $(c++DBUG)
LINKLIBSO = $(CC) $(c++FLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed
LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed -Xlinker --no-as-needed

View File

@ -0,0 +1,2 @@
c++DBUG = -ggdb3 -DFULLDEBUG
c++OPT = -O0 -fdefault-inline

View File

@ -0,0 +1,2 @@
c++DBUG =
c++OPT = -O3

View File

@ -0,0 +1,2 @@
c++DBUG = -pg
c++OPT = -O2

View File

@ -0,0 +1,2 @@
cDBUG = -ggdb -DFULLDEBUG
cOPT = -O1 -fdefault-inline -finline-functions

View File

@ -0,0 +1,2 @@
cDBUG =
cOPT = -O3

View File

@ -0,0 +1,2 @@
cDBUG = -pg
cOPT = -O2

View File

@ -0,0 +1,9 @@
CPP = cpp -traditional-cpp
LD = ld -melf_i386
PROJECT_LIBS = -l$(WM_PROJECT) -ldl
include $(GENERAL_RULES)/standard
include $(RULES)/c
include $(RULES)/c++

View File

@ -0,0 +1,3 @@
PFLAGS =
PINC = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi