Replace tabs by 4 spaces in bin, tutorials, src, ... & clean-up by hand

This commit is contained in:
Henrik Rusche 2015-05-15 20:07:49 +02:00
parent 4eb1b1f016
commit 82a0e1e7df
120 changed files with 1279 additions and 1226 deletions

View file

@ -75,13 +75,13 @@ runParallel ()
echo "$APP_NAME already run on $PWD: remove log file to run" echo "$APP_NAME already run on $PWD: remove log file to run"
else else
echo "Running $APP_NAME in parallel on $PWD using $1 processes" echo "Running $APP_NAME in parallel on $PWD using $1 processes"
if [ -z "$WM_MPIRUN_PROG" ] if [ -z "$WM_MPIRUN_PROG" ]
then then
mpirunProg=mpirun mpirunProg=mpirun
else else
# Allow exceentric systems to override the hardcoded mpirun # Allow exceentric systems to override the hardcoded mpirun
mpirunProg=$WM_MPIRUN_PROG mpirunProg=$WM_MPIRUN_PROG
fi fi
( $mpirunProg -np $1 $APP_RUN -parallel < /dev/null > $LOG_NAME 2>&1 ) ( $mpirunProg -np $1 $APP_RUN -parallel < /dev/null > $LOG_NAME 2>&1 )
fi fi
} }

View file

@ -258,102 +258,102 @@ Darwin)
which -s port >/dev/null which -s port >/dev/null
if [ $? -eq "0" -a -d '/opt/local/etc/macports' ] if [ $? -eq "0" -a -d '/opt/local/etc/macports' ]
then then
if [ "$FOAM_VERBOSE" -a "$PS1" ] if [ "$FOAM_VERBOSE" -a "$PS1" ]
then then
echo "Using Macports binaries" echo "Using Macports binaries"
fi fi
export WM_USE_MACPORT=1 export WM_USE_MACPORT=1
export WM_BASE_COMPILER=`echo $WM_COMPILER | tr -d "[:digit:]"` export WM_BASE_COMPILER=`echo $WM_COMPILER | tr -d "[:digit:]"`
export WM_MACPORT_MPI_VERSION=`echo $WM_COMPILER | tr "[:upper:]" "[:lower:]"` export WM_MACPORT_MPI_VERSION=`echo $WM_COMPILER | tr "[:upper:]" "[:lower:]"`
export WM_MACPORT_VERSION=`echo $WM_MACPORT_MPI_VERSION | tr -d "[:alpha:]" | sed -e "s/\(.\)\(.\)/\1\.\2/"` export WM_MACPORT_VERSION=`echo $WM_MACPORT_MPI_VERSION | tr -d "[:alpha:]" | sed -e "s/\(.\)\(.\)/\1\.\2/"`
if [ -z "$WM_CHOSEN_MAC_MPI" ] if [ -z "$WM_CHOSEN_MAC_MPI" ]
then then
if [ -e '/opt/local/bin/mpicc' ] if [ -e '/opt/local/bin/mpicc' ]
then then
readlink /opt/local/bin/mpicc | grep openmpi >/dev/null readlink /opt/local/bin/mpicc | grep openmpi >/dev/null
if [ $? -eq "0" ] if [ $? -eq "0" ]
then then
export WM_MPLIB=MACPORTOPENMPI export WM_MPLIB=MACPORTOPENMPI
if [ "$FOAM_VERBOSE" -a "$PS1" ] if [ "$FOAM_VERBOSE" -a "$PS1" ]
then then
echo "Using OpenMPI from MacPorts" echo "Using OpenMPI from MacPorts"
fi fi
else else
readlink /opt/local/bin/mpicc | grep mpich >/dev/null readlink /opt/local/bin/mpicc | grep mpich >/dev/null
if [ $? -eq "0" ] if [ $? -eq "0" ]
then then
export WM_MPLIB=MACPORTMPICH export WM_MPLIB=MACPORTMPICH
if [ "$FOAM_VERBOSE" -a "$PS1" ] if [ "$FOAM_VERBOSE" -a "$PS1" ]
then then
echo "Using MPICH from MacPorts" echo "Using MPICH from MacPorts"
fi fi
else else
echo "/opt/local/bin/mpicc neither OpenMPI nor MPICH. Confused. Defaulting to OPENMPI" echo "/opt/local/bin/mpicc neither OpenMPI nor MPICH. Confused. Defaulting to OPENMPI"
export WM_MPLIB=OPENMPI export WM_MPLIB=OPENMPI
fi fi
fi fi
fi fi
else else
export WM_MPLIB=$WM_CHOSEN_MAC_MPI export WM_MPLIB=$WM_CHOSEN_MAC_MPI
if [ "$FOAM_VERBOSE" -a "$PS1" ] if [ "$FOAM_VERBOSE" -a "$PS1" ]
then then
echo "User chose WM_CHOSEN_MAC_MPI=$WM_CHOSEN_MAC_MPI" echo "User chose WM_CHOSEN_MAC_MPI=$WM_CHOSEN_MAC_MPI"
fi fi
fi fi
if [ "$WM_MPLIB" == "MACPORTOPENMPI" ] if [ "$WM_MPLIB" == "MACPORTOPENMPI" ]
then then
if [ ! -e "/opt/local/lib/openmpi-$WM_MACPORT_MPI_VERSION" ] if [ ! -e "/opt/local/lib/openmpi-$WM_MACPORT_MPI_VERSION" ]
then then
export WM_MACPORT_MPI_VERSION=mp export WM_MACPORT_MPI_VERSION=mp
if [ ! -e "/opt/local/lib/openmpi-$WM_MACPORT_MPI_VERSION" ] if [ ! -e "/opt/local/lib/openmpi-$WM_MACPORT_MPI_VERSION" ]
then then
echo "Proper OpenMPI not installed. Either do 'port install openmpi-$WM_MACPORT_MPI_VERSION' or 'port install openmpi-default'" echo "Proper OpenMPI not installed. Either do 'port install openmpi-$WM_MACPORT_MPI_VERSION' or 'port install openmpi-default'"
fi fi
fi fi
else else
if [ "$WM_MPLIB" == "MACPORTMPICH" ] if [ "$WM_MPLIB" == "MACPORTMPICH" ]
then then
if [ ! -e "/opt/local/lib/mpich-$WM_MACPORT_MPI_VERSION" ] if [ ! -e "/opt/local/lib/mpich-$WM_MACPORT_MPI_VERSION" ]
then then
echo "MPICH wants the same version as the used compiler. Do 'port install mpich-$WM_MACPORT_MPI_VERSION'" echo "MPICH wants the same version as the used compiler. Do 'port install mpich-$WM_MACPORT_MPI_VERSION'"
fi fi
fi fi
fi fi
if [ "$WM_COMPILER" != "Gcc" ] if [ "$WM_COMPILER" != "Gcc" ]
then then
if [ "$WM_BASE_COMPILER" == "Gcc" ] if [ "$WM_BASE_COMPILER" == "Gcc" ]
then then
export WM_CC="gcc-mp-$WM_MACPORT_VERSION" export WM_CC="gcc-mp-$WM_MACPORT_VERSION"
export WM_CXX="g++-mp-$WM_MACPORT_VERSION" export WM_CXX="g++-mp-$WM_MACPORT_VERSION"
export WM_FC="gfortran-mp-$WM_MACPORT_VERSION" export WM_FC="gfortran-mp-$WM_MACPORT_VERSION"
elif [ "$WM_BASE_COMPILER" == "Clang" ] elif [ "$WM_BASE_COMPILER" == "Clang" ]
then then
export WM_CC="clang-mp-$WM_MACPORT_VERSION" export WM_CC="clang-mp-$WM_MACPORT_VERSION"
export WM_CXX="clang++-mp-$WM_MACPORT_VERSION" export WM_CXX="clang++-mp-$WM_MACPORT_VERSION"
# Seems like there is no Fortran-frontend for LLVM at thistime # Seems like there is no Fortran-frontend for LLVM at thistime
elif [ "$WM_BASE_COMPILER" == "Dragonegg" ] elif [ "$WM_BASE_COMPILER" == "Dragonegg" ]
then then
export WM_CC="dragonegg-$WM_MACPORT_VERSION-gcc" export WM_CC="dragonegg-$WM_MACPORT_VERSION-gcc"
export WM_CXX="dragonegg-$WM_MACPORT_VERSION-g++" export WM_CXX="dragonegg-$WM_MACPORT_VERSION-g++"
export WM_CXX="dragonegg-$WM_MACPORT_VERSION-gfortran" export WM_CXX="dragonegg-$WM_MACPORT_VERSION-gfortran"
else else
echo "Unknown base compiler $WM_BASE_COMPILER" echo "Unknown base compiler $WM_BASE_COMPILER"
fi fi
ruleDirBase=$WM_PROJECT_DIR/wmake/rules/$WM_ARCH ruleDirBase=$WM_PROJECT_DIR/wmake/rules/$WM_ARCH
ruleDirTarget=$ruleDirBase$WM_BASE_COMPILER ruleDirTarget=$ruleDirBase$WM_BASE_COMPILER
ruleDir=$ruleDirBase$WM_COMPILER ruleDir=$ruleDirBase$WM_COMPILER
if [ ! -e $ruleDir ] if [ ! -e $ruleDir ]
then then
echo "Rule directory $ruleDir not existing. Linking to $ruleDirTarget" echo "Rule directory $ruleDir not existing. Linking to $ruleDirTarget"
ln -s $ruleDirTarget $ruleDir ln -s $ruleDirTarget $ruleDir
fi fi
unset ruleDir ruleDirBase unset ruleDir ruleDirBase
fi fi
else else
export WM_COMPILER=Gcc export WM_COMPILER=Gcc
export WM_MPLIB=OPENMPI export WM_MPLIB=OPENMPI
@ -446,8 +446,8 @@ fi
# then # then
# if [[ `ulimit -n` == "unlimited" || `ulimit -n` < 8192 ]] # if [[ `ulimit -n` == "unlimited" || `ulimit -n` < 8192 ]]
# then # then
# # higher limit needed for wmkdeps # # higher limit needed for wmkdeps
# ulimit -n 8192 # ulimit -n 8192
# fi # fi
# fi # fi

View file

@ -194,14 +194,14 @@ unset compilerBin compilerLib compilerInstall
if [ -z "$WM_CC" ] if [ -z "$WM_CC" ]
then then
case "$WM_COMPILER" in case "$WM_COMPILER" in
Gcc*) Gcc*)
export WM_CC='gcc' export WM_CC='gcc'
export WM_CXX='g++' export WM_CXX='g++'
;; ;;
Icc) Icc)
export WM_CC='icc' export WM_CC='icc'
export WM_CXX='icpc' export WM_CXX='icpc'
;; ;;
esac esac
fi fi
@ -245,24 +245,24 @@ OPENMPI)
;; ;;
MACPORTOPENMPI) MACPORTOPENMPI)
unset OPAL_PREFIX unset OPAL_PREFIX
export FOAM_MPI=openmpi-macport-$WM_MACPORT_MPI_VERSION export FOAM_MPI=openmpi-macport-$WM_MACPORT_MPI_VERSION
# Currently not correctly working on MacPorts # Currently not correctly working on MacPorts
# libDir=`mpicc-openmpi-$WM_MACPORT_MPI_VERSION --showme:libdirs` # libDir=`mpicc-openmpi-$WM_MACPORT_MPI_VERSION --showme:libdirs`
libDir=/opt/local/lib/openmpi-$WM_MACPORT_MPI_VERSION libDir=/opt/local/lib/openmpi-$WM_MACPORT_MPI_VERSION
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/$FOAM_MPI export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/$FOAM_MPI
_foamAddLib $libDir _foamAddLib $libDir
unset libDir unset libDir
which mpirun >/dev/null which mpirun >/dev/null
if [ $? -ne 0 ] if [ $? -ne 0 ]
then then
export WM_MPIRUN_PROG=mpirun-openmpi-$WM_MACPORT_MPI_VERSION export WM_MPIRUN_PROG=mpirun-openmpi-$WM_MACPORT_MPI_VERSION
fi fi
;; ;;
MACPORTMPICH) MACPORTMPICH)
export FOAM_MPI=mpich-macports-$WM_MACPORT_MPI_VERSION export FOAM_MPI=mpich-macports-$WM_MACPORT_MPI_VERSION
@ -277,7 +277,7 @@ MACPORTMPICH)
which mpirun >/dev/null which mpirun >/dev/null
if [ $? -ne 0 ] if [ $? -ne 0 ]
then then
export WM_MPIRUN_PROG=mpirun-mpich-$WM_MACPORT_MPI_VERSION export WM_MPIRUN_PROG=mpirun-mpich-$WM_MACPORT_MPI_VERSION
fi fi
;; ;;

View file

@ -49,10 +49,10 @@ else
# regular sourcing # regular sourcing
set sourced=($_) set sourced=($_)
if ( $#sourced == 0 ) then if ( $#sourced == 0 ) then
echo "Seems you sourced this script (etc/tcshrc from your foam-extend-installation) from .tcshrc." echo "Seems you sourced this script (etc/tcshrc from your foam-extend-installation) from .tcshrc."
echo "In that case tcsh has no way of telling where this script is located and is not able to set up the environment correctly" echo "In that case tcsh has no way of telling where this script is located and is not able to set up the environment correctly"
echo "So before sourcing it set the location with 'setenv FOAM_SOURCED_FROM_ALIAS <path to the script>'" echo "So before sourcing it set the location with 'setenv FOAM_SOURCED_FROM_ALIAS <path to the script>'"
echo "Or consider using a different shell" echo "Or consider using a different shell"
endif endif
set thisScript=($sourced[2]) set thisScript=($sourced[2])

View file

@ -13,11 +13,11 @@ setDestination()
{ {
pkg=$1 pkg=$1
if [ ! -z "$EXTEND_BAZAAR_TO_SITE" ]; then if [ ! -z "$EXTEND_BAZAAR_TO_SITE" ]; then
dst="SITE" dst="SITE"
wrong="USER" wrong="USER"
else else
dst="USER" dst="USER"
wrong="SITE" wrong="SITE"
fi fi
# remove installation to general binaries # remove installation to general binaries

View file

@ -136,7 +136,7 @@ coupledSolverPerformance coupledFvMatrix<scalar>::solve
//HR 17.2.2013: Clear references to internal field without deleting the objects //HR 17.2.2013: Clear references to internal field without deleting the objects
forAll (matrices, rowI) forAll (matrices, rowI)
{ {
psi.set(rowI, NULL).ptr(); psi.set(rowI, NULL).ptr();
} }
return solverPerf; return solverPerf;

View file

@ -147,7 +147,7 @@ extern "C" void bicgAinv
while while
( (
normR > (solverPerf->tol) normR > (solverPerf->tol)
&& count < (solverPerf->maxIter) && count < (solverPerf->maxIter)
&& normR/normR0 >= (solverPerf->relTol) && normR/normR0 >= (solverPerf->relTol)
|| count < solverPerf->minIter || count < solverPerf->minIter

View file

@ -136,7 +136,7 @@ extern "C" void bicgDiag
while while
( (
normR > (solverPerf->tol) normR > (solverPerf->tol)
&& count < (solverPerf->maxIter) && count < (solverPerf->maxIter)
&& normR/normR0 >= (solverPerf->relTol) && normR/normR0 >= (solverPerf->relTol)
|| count < solverPerf->minIter || count < solverPerf->minIter

View file

@ -147,7 +147,7 @@ Foam::lduSolverPerformance Foam::cudaBiCGStab::solve
} }
// copy the x vector back to Openfoam // copy the x vector back to Openfoam
thrust::copy(ces.X.begin(), ces.X.end(), x.begin()); thrust::copy(ces.X.begin(), ces.X.end(), x.begin());
// Return solver output // Return solver output
return lduSolverPerformance return lduSolverPerformance

View file

@ -48,7 +48,7 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class cudaBiCGStab Declaration Class cudaBiCGStab Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class cudaBiCGStab class cudaBiCGStab
@ -57,11 +57,11 @@ class cudaBiCGStab
{ {
// Private Member Functions // Private Member Functions
//- Disallow default bitwise copy construct //- Disallow default bitwise copy construct
cudaBiCGStab(const cudaBiCGStab&); cudaBiCGStab(const cudaBiCGStab&);
//- Disallow default bitwise assignment //- Disallow default bitwise assignment
void operator=(const cudaBiCGStab&); void operator=(const cudaBiCGStab&);
public: public:
@ -72,33 +72,33 @@ public:
// Constructors // Constructors
//- Construct from matrix components and solver data stream //- Construct from matrix components and solver data stream
cudaBiCGStab cudaBiCGStab
( (
const word& fieldName, const word& fieldName,
const lduMatrix& matrix, const lduMatrix& matrix,
const FieldField<Field, scalar>& coupleBouCoeffs, const FieldField<Field, scalar>& coupleBouCoeffs,
const FieldField<Field, scalar>& coupleIntCoeffs, const FieldField<Field, scalar>& coupleIntCoeffs,
const lduInterfaceFieldPtrsList& interfaces, const lduInterfaceFieldPtrsList& interfaces,
const dictionary& dict const dictionary& dict
); );
// Destructor // Destructor
virtual ~cudaBiCGStab() virtual ~cudaBiCGStab()
{} {}
// Member Functions // Member Functions
//- Solve the matrix with this solver //- Solve the matrix with this solver
virtual lduSolverPerformance solve virtual lduSolverPerformance solve
( (
scalarField& x, scalarField& x,
const scalarField& b, const scalarField& b,
const direction cmpt = 0 const direction cmpt = 0
) const; ) const;
}; };

View file

@ -48,7 +48,7 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class cudaCG Declaration Class cudaCG Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class cudaCG class cudaCG
@ -57,11 +57,11 @@ class cudaCG
{ {
// Private Member Functions // Private Member Functions
//- Disallow default bitwise copy construct //- Disallow default bitwise copy construct
cudaCG(const cudaCG&); cudaCG(const cudaCG&);
//- Disallow default bitwise assignment //- Disallow default bitwise assignment
void operator=(const cudaCG&); void operator=(const cudaCG&);
public: public:
@ -72,33 +72,33 @@ public:
// Constructors // Constructors
//- Construct from matrix components and solver data stream //- Construct from matrix components and solver data stream
cudaCG cudaCG
( (
const word& fieldName, const word& fieldName,
const lduMatrix& matrix, const lduMatrix& matrix,
const FieldField<Field, scalar>& coupleBouCoeffs, const FieldField<Field, scalar>& coupleBouCoeffs,
const FieldField<Field, scalar>& coupleIntCoeffs, const FieldField<Field, scalar>& coupleIntCoeffs,
const lduInterfaceFieldPtrsList& interfaces, const lduInterfaceFieldPtrsList& interfaces,
const dictionary& dict const dictionary& dict
); );
// Destructor // Destructor
virtual ~cudaCG() virtual ~cudaCG()
{} {}
// Member Functions // Member Functions
//- Solve the matrix with this solver //- Solve the matrix with this solver
virtual lduSolverPerformance solve virtual lduSolverPerformance solve
( (
scalarField& x, scalarField& x,
const scalarField& b, const scalarField& b,
const direction cmpt = 0 const direction cmpt = 0
) const; ) const;
}; };

View file

@ -64,8 +64,8 @@ thrust::sequence
thrust::copy thrust::copy
( (
A.values.begin() + ces->nCells, A.values.begin() + ces->nCells,
A.values.begin() + ces->nCells + ces->nFaces, A.values.begin() + ces->nCells + ces->nFaces,
A.values.begin() + ces->nCells + ces->nFaces A.values.begin() + ces->nCells + ces->nFaces
); );
// Copy row indices of lower to columns of upper into A COO matrix // Copy row indices of lower to columns of upper into A COO matrix

View file

@ -638,7 +638,7 @@ void Foam::slidingInterface::coupleInterface(polyTopoChange& ref) const
if if
( (
cutOnMaster > edgeEndCutoffTol_() cutOnMaster > edgeEndCutoffTol_()
&& cutOnMaster < 1.0 - edgeEndCutoffTol_() && cutOnMaster < 1.0 - edgeEndCutoffTol_()
) )
{ {
// Master is cut, check the slave // Master is cut, check the slave
@ -678,7 +678,7 @@ void Foam::slidingInterface::coupleInterface(polyTopoChange& ref) const
if if
( (
cutOnSlave > edgeEndCutoffTol_() cutOnSlave > edgeEndCutoffTol_()
&& cutOnSlave < 1.0 - edgeEndCutoffTol_() && cutOnSlave < 1.0 - edgeEndCutoffTol_()
&& slaveCut.distance() < mergeTol && slaveCut.distance() < mergeTol
) )
{ {

View file

@ -632,7 +632,7 @@ void Foam::slidingInterface::modifyMotionPoints(pointField& motionPoints) const
if if
( (
cutOnMaster > edgeEndCutoffTol_() cutOnMaster > edgeEndCutoffTol_()
&& cutOnMaster < 1.0 - edgeEndCutoffTol_() && cutOnMaster < 1.0 - edgeEndCutoffTol_()
) )
{ {
// Master is cut, check the slave // Master is cut, check the slave
@ -663,7 +663,7 @@ void Foam::slidingInterface::modifyMotionPoints(pointField& motionPoints) const
if if
( (
cutOnSlave > edgeEndCutoffTol_() cutOnSlave > edgeEndCutoffTol_()
&& cutOnSlave < 1.0 - edgeEndCutoffTol_() && cutOnSlave < 1.0 - edgeEndCutoffTol_()
&& slaveCut.distance() < mergeTol && slaveCut.distance() < mergeTol
) )
{ {

View file

@ -116,11 +116,11 @@ bool Foam::slidingInterface::projectPoints() const
<< name() << " : " << name() << " : "
<< "Projecting slave points onto master surface using "; << "Projecting slave points onto master surface using ";
const Foam::debug::optimisationSwitch nSquaredProjection const Foam::debug::optimisationSwitch nSquaredProjection
( (
"nSquaredProjection", "nSquaredProjection",
0 0
); );
if (nSquaredProjection() > 0) if (nSquaredProjection() > 0)
{ {
@ -1165,8 +1165,8 @@ bool Foam::slidingInterface::projectPoints() const
if if
( (
cutOnSlave > edgeEndCutoffTol_() cutOnSlave > edgeEndCutoffTol_()
&& cutOnSlave < 1.0 - edgeEndCutoffTol_() // check edge cut && cutOnSlave < 1.0 - edgeEndCutoffTol_() // check edge cut
&& distInEdgePlane < edgeMergeTol_()*edgeMag // merge plane && distInEdgePlane < edgeMergeTol_()*edgeMag // merge plane
&& edgeLineHit.distance() && edgeLineHit.distance()
< min < min
( (

View file

@ -140,16 +140,22 @@ void engineTimeVaryingUniformFixedValueFvPatchField<symmTensor>::updateCoeffs()
template<> template<>
void engineTimeVaryingUniformFixedValueFvPatchField<symmTensor4thOrder>::updateCoeffs() void engineTimeVaryingUniformFixedValueFvPatchField<symmTensor4thOrder>::updateCoeffs()
{ {
notImplemented("engineTimeVaryingUniformFixedValueFvPatchField" notImplemented
"<symmTensor4thOrder>::updateCoeffs()"); (
"engineTimeVaryingUniformFixedValueFvPatchField"
"<symmTensor4thOrder>::updateCoeffs()"
);
} }
template<> template<>
void engineTimeVaryingUniformFixedValueFvPatchField<diagTensor>::updateCoeffs() void engineTimeVaryingUniformFixedValueFvPatchField<diagTensor>::updateCoeffs()
{ {
notImplemented("engineTimeVaryingUniformFixedValueFvPatchField" notImplemented
"<diagTensor>::updateCoeffs()"); (
"engineTimeVaryingUniformFixedValueFvPatchField"
"<diagTensor>::updateCoeffs()"
);
} }

View file

@ -84,11 +84,7 @@ void Foam::cyclicFaPatch::calcTransforms()
half0Normals[edgei] = point(1, 0, 0); half0Normals[edgei] = point(1, 0, 0);
half1Normals[edgei] = half0Normals[edgei]; half1Normals[edgei] = half0Normals[edgei];
} }
else if else if(mag(magLe - nbrMagLe)/avLe > matchTol_())
(
mag(magLe - nbrMagLe)/avLe
> matchTol_()
)
{ {
// Error in area matching. Find largest error // Error in area matching. Find largest error
maxMatchError = maxMatchError =
@ -176,7 +172,7 @@ void cyclicFaPatch::makeWeights(scalarField& w) const
if if
( (
mag(magL[edgei] - magL[edgei + sizeby2])/avL mag(magL[edgei] - magL[edgei + sizeby2])/avL
> matchTol_() > matchTol_()
) )
{ {
// Found error. Look for largest matching error // Found error. Look for largest matching error

View file

@ -40,7 +40,7 @@ Foam::debug::debugSwitch \
faPatchTypeField::disallowDefaultFaPatchField \ faPatchTypeField::disallowDefaultFaPatchField \
( \ ( \
"disallowDefaultFaPatchField", \ "disallowDefaultFaPatchField", \
0 \ 0 \
); \ ); \
defineTemplateRunTimeSelectionTable(faPatchTypeField, patch); \ defineTemplateRunTimeSelectionTable(faPatchTypeField, patch); \
defineTemplateRunTimeSelectionTable(faPatchTypeField, patchMapper); \ defineTemplateRunTimeSelectionTable(faPatchTypeField, patchMapper); \

View file

@ -40,10 +40,10 @@ namespace Foam
defineNamedTemplateTypeNameAndDebug(faePatchTypeField, 0); \ defineNamedTemplateTypeNameAndDebug(faePatchTypeField, 0); \
template<> \ template<> \
Foam::debug::debugSwitch \ Foam::debug::debugSwitch \
faePatchTypeField::disallowDefaultFaePatchField \ faePatchTypeField::disallowDefaultFaePatchField \
( \ ( \
"disallowDefaultFaePatchField", \ "disallowDefaultFaePatchField", \
0 \ 0 \
); \ ); \
defineTemplateRunTimeSelectionTable(faePatchTypeField, patch); \ defineTemplateRunTimeSelectionTable(faePatchTypeField, patch); \
defineTemplateRunTimeSelectionTable(faePatchTypeField, patchMapper); \ defineTemplateRunTimeSelectionTable(faePatchTypeField, patchMapper); \

View file

@ -513,34 +513,34 @@ Foam::genericFvPatchField<Type>::genericFvPatchField
} }
for for
( (
HashPtrTable<symmTensor4thOrderField>::const_iterator iter = HashPtrTable<symmTensor4thOrderField>::const_iterator iter =
ptf.symmTensor4thOrderFields_.begin(); ptf.symmTensor4thOrderFields_.begin();
iter != ptf.symmTensor4thOrderFields_.end(); iter != ptf.symmTensor4thOrderFields_.end();
++iter ++iter
) )
{ {
symmTensor4thOrderFields_.insert symmTensor4thOrderFields_.insert
( (
iter.key(), iter.key(),
new symmTensor4thOrderField(*iter(), mapper) new symmTensor4thOrderField(*iter(), mapper)
); );
} }
for for
( (
HashPtrTable<diagTensorField>::const_iterator iter = HashPtrTable<diagTensorField>::const_iterator iter =
ptf.diagTensorFields_.begin(); ptf.diagTensorFields_.begin();
iter != ptf.diagTensorFields_.end(); iter != ptf.diagTensorFields_.end();
++iter ++iter
) )
{ {
diagTensorFields_.insert diagTensorFields_.insert
( (
iter.key(), iter.key(),
new diagTensorField(*iter(), mapper) new diagTensorField(*iter(), mapper)
); );
} }
for for
( (

View file

@ -40,7 +40,7 @@ Foam::debug::debugSwitch \
fvPatchTypeField::disallowGenericFvPatchField \ fvPatchTypeField::disallowGenericFvPatchField \
( \ ( \
"disallowGenericFvPatchField", \ "disallowGenericFvPatchField", \
0 \ 0 \
); \ ); \
defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \ defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \ defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \

View file

@ -40,7 +40,7 @@ debug::debugSwitch \
fvPatchTypeField::disallowGenericFvPatchField \ fvPatchTypeField::disallowGenericFvPatchField \
( \ ( \
"disallowGenericFvPatchField", \ "disallowGenericFvPatchField", \
0 \ 0 \
); \ ); \
defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \ defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \ defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \

View file

@ -40,7 +40,7 @@ Foam::debug::debugSwitch \
fvsPatchTypeField::disallowDefaultFvsPatchField \ fvsPatchTypeField::disallowDefaultFvsPatchField \
( \ ( \
"disallowDefaultFvsPatchField", \ "disallowDefaultFvsPatchField", \
0 \ 0 \
); \ ); \
defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patch); \ defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patch); \
defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patchMapper); \ defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patchMapper); \

View file

@ -40,7 +40,7 @@ Foam::debug::debugSwitch \
fvsPatchTypeField::disallowDefaultFvsPatchField \ fvsPatchTypeField::disallowDefaultFvsPatchField \
( \ ( \
"disallowDefaultFvsPatchField", \ "disallowDefaultFvsPatchField", \
0 \ 0 \
); \ ); \
defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patch); \ defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patch); \
defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patchMapper); \ defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patchMapper); \

View file

@ -268,10 +268,10 @@ backwardD2dt2Scheme<Type>::fvmD2dt2
( (
coefft0 coefft0
*backwardDdtScheme<Type>(mesh()).fvcDdt(vf.oldTime()) *backwardDdtScheme<Type>(mesh()).fvcDdt(vf.oldTime())
().internalField() ().internalField()
- coefft00 - coefft00
*backwardDdtScheme<Type>(mesh()).fvcDdt(vf.oldTime().oldTime()) *backwardDdtScheme<Type>(mesh()).fvcDdt(vf.oldTime().oldTime())
().internalField() ().internalField()
); );
} }

View file

@ -257,7 +257,7 @@ makeFvDdtTypeScheme(SS, sphericalTensor) \
makeFvDdtTypeScheme(SS, symmTensor) \ makeFvDdtTypeScheme(SS, symmTensor) \
makeFvDdtTypeScheme(SS, symmTensor4thOrder) \ makeFvDdtTypeScheme(SS, symmTensor4thOrder) \
makeFvDdtTypeScheme(SS, diagTensor) \ makeFvDdtTypeScheme(SS, diagTensor) \
makeFvDdtTypeScheme(SS, tensor) \ makeFvDdtTypeScheme(SS, tensor) \
\ \
template<> \ template<> \
tmp<surfaceScalarField> SS<scalar>::fvcDdtPhiCorr \ tmp<surfaceScalarField> SS<scalar>::fvcDdtPhiCorr \

View file

@ -234,17 +234,17 @@ skewCorrectedSnGrad<Type>::correction
( (
min min
( (
limitCoeff_ limitCoeff_*
*mag mag
( (
uncorrectedSnGrad<Type>::snGrad uncorrectedSnGrad<Type>::snGrad
( (
vf, vf,
this->deltaCoeffs(vf), this->deltaCoeffs(vf),
"orthSnGrad" "orthSnGrad"
) )
+ ssf + ssf
) )
/( /(
(1 - limitCoeff_)*mag(ssf) (1 - limitCoeff_)*mag(ssf)
+ dimensionedScalar("small", ssf.dimensions(), SMALL) + dimensionedScalar("small", ssf.dimensions(), SMALL)

View file

@ -37,8 +37,11 @@ defineTypeNameAndDebug(leastSquaresVolPointInterpolation, 0);
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
void leastSquaresVolPointInterpolation::calcA(List<scalarSquareMatrix>& A) const void leastSquaresVolPointInterpolation::calcA
{ (
List<scalarSquareMatrix>& A
) const
{
//Info << "leastSquaresVolPointInterpolation calcA" << endl; //Info << "leastSquaresVolPointInterpolation calcA" << endl;
const fvMesh& mesh = mesh_; const fvMesh& mesh = mesh_;
@ -49,262 +52,293 @@ defineTypeNameAndDebug(leastSquaresVolPointInterpolation, 0);
//- populate A matrix //- populate A matrix
forAll(points, pointi) forAll(points, pointi)
{ {
const labelList& pointCells = mesh.pointCells()[pointi]; const labelList& pointCells = mesh.pointCells()[pointi];
//- this component of matrix does not depend on coordinates //- this component of matrix does not depend on coordinates
A[pointi][3][3] = pointCells.size(); A[pointi][3][3] = pointCells.size();
//- fill the A matrices //- fill the A matrices
forAll(pointCells, pointCelli) forAll(pointCells, pointCelli)
{ {
const label& celli = pointCells[pointCelli]; const label& celli = pointCells[pointCelli];
const scalar& x = mesh.C()[celli].component(vector::X); const scalar& x = mesh.C()[celli].component(vector::X);
const scalar& y = mesh.C()[celli].component(vector::Y); const scalar& y = mesh.C()[celli].component(vector::Y);
const scalar& z = mesh.C()[celli].component(vector::Z); const scalar& z = mesh.C()[celli].component(vector::Z);
A[pointi][0][0] += x*x; A[pointi][0][0] += x*x;
A[pointi][0][1] += x*y; A[pointi][0][1] += x*y;
A[pointi][0][2] += x*z; A[pointi][0][2] += x*z;
A[pointi][0][3] += x; A[pointi][0][3] += x;
A[pointi][1][0] += x*y; A[pointi][1][0] += x*y;
A[pointi][1][1] += y*y; A[pointi][1][1] += y*y;
A[pointi][1][2] += y*z; A[pointi][1][2] += y*z;
A[pointi][1][3] += y; A[pointi][1][3] += y;
A[pointi][2][0] += x*z; A[pointi][2][0] += x*z;
A[pointi][2][1] += y*z; A[pointi][2][1] += y*z;
A[pointi][2][2] += z*z; A[pointi][2][2] += z*z;
A[pointi][2][3] += z; A[pointi][2][3] += z;
A[pointi][3][0] += x; A[pointi][3][0] += x;
A[pointi][3][1] += y; A[pointi][3][1] += y;
A[pointi][3][2] += z; A[pointi][3][2] += z;
//A[pointi][3][3] = pointCells.size(); // set above //A[pointi][3][3] = pointCells.size(); // set above
} }
} }
//- for boundary points we will include the surrounding face centres //- for boundary points we will include the surrounding face centres
forAll(mesh.boundary(), patchi) forAll(mesh.boundary(), patchi)
{ {
const vectorField& faceCentres = mesh.boundaryMesh()[patchi].faceCentres(); const vectorField& faceCentres =
const labelListList& pointFaces = mesh.boundaryMesh()[patchi].pointFaces(); mesh.boundaryMesh()[patchi].faceCentres();
const labelListList& pointFaces =
mesh.boundaryMesh()[patchi].pointFaces();
if(mesh.boundary()[patchi].coupled()) //- for proc boundaries if(mesh.boundary()[patchi].coupled()) //- for proc boundaries
{ {
//- for coupled patches we will use the values at the neighbourField cell centres and we will //- for coupled patches we will use the values at the
//- not use the boundary face values //- neighbourField cell centres and we will not use the boundary
//- neighbour cell centre are equal to the faceCell centres plus the delta vector //- face values neighbour cell centre are equal to the faceCell
vectorField pDelta = mesh.boundary()[patchi].delta(); //- centres plus the delta vector
vectorField faceCellC(faceCentres.size(), vector::zero); vectorField pDelta = mesh.boundary()[patchi].delta();
forAll(faceCentres, facei) vectorField faceCellC(faceCentres.size(), vector::zero);
{ forAll(faceCentres, facei)
label celli = mesh.boundaryMesh()[patchi].faceCells()[facei]; {
faceCellC[facei] = mesh.C()[celli]; label celli = mesh.boundaryMesh()[patchi].faceCells()[facei];
} faceCellC[facei] = mesh.C()[celli];
vectorField neiCellC = faceCellC + pDelta; }
vectorField neiCellC = faceCellC + pDelta;
forAll(pointFaces, pointi) forAll(pointFaces, pointi)
{ {
forAll(pointFaces[pointi], pointFacei) forAll(pointFaces[pointi], pointFacei)
{ {
label neiCelli = pointFaces[pointi][pointFacei]; label neiCelli = pointFaces[pointi][pointFacei];
const scalar& x = neiCellC[neiCelli].component(vector::X); const scalar& x = neiCellC[neiCelli].component(vector::X);
const scalar& y = neiCellC[neiCelli].component(vector::Y); const scalar& y = neiCellC[neiCelli].component(vector::Y);
const scalar& z = neiCellC[neiCelli].component(vector::Z); const scalar& z = neiCellC[neiCelli].component(vector::Z);
label globalPointi = mesh.boundaryMesh()[patchi].meshPoints()[pointi]; label globalPointi =
mesh.boundaryMesh()[patchi].meshPoints()[pointi];
A[globalPointi][0][0] += x*x; A[globalPointi][0][0] += x*x;
A[globalPointi][0][1] += x*y; A[globalPointi][0][1] += x*y;
A[globalPointi][0][2] += x*z; A[globalPointi][0][2] += x*z;
A[globalPointi][0][3] += x; A[globalPointi][0][3] += x;
A[globalPointi][1][0] += x*y; A[globalPointi][1][0] += x*y;
A[globalPointi][1][1] += y*y; A[globalPointi][1][1] += y*y;
A[globalPointi][1][2] += y*z; A[globalPointi][1][2] += y*z;
A[globalPointi][1][3] += y; A[globalPointi][1][3] += y;
A[globalPointi][2][0] += x*z; A[globalPointi][2][0] += x*z;
A[globalPointi][2][1] += y*z; A[globalPointi][2][1] += y*z;
A[globalPointi][2][2] += z*z; A[globalPointi][2][2] += z*z;
A[globalPointi][2][3] += z; A[globalPointi][2][3] += z;
A[globalPointi][3][0] += x; A[globalPointi][3][0] += x;
A[globalPointi][3][1] += y; A[globalPointi][3][1] += y;
A[globalPointi][3][2] += z; A[globalPointi][3][2] += z;
A[globalPointi][3][3] += 1; // = pointCells.size(); A[globalPointi][3][3] += 1; // = pointCells.size();
} }
} }
} }
else else
{ {
//- each point must use at least 4 neighbouring locations otherwise A is singular //- each point must use at least 4 neighbouring locations otherwise
//- and simpleMatrix will cannot invert it //- A is singular and simpleMatrix will cannot invert it therefore
//- therefore empty patches values are included to make sure A is not singular //- empty patches values are included to make sure A is not
forAll(pointFaces, pointi) //- singular
{ forAll(pointFaces, pointi)
label globalPointi = mesh.boundaryMesh()[patchi].meshPoints()[pointi]; {
label globalPointi =
mesh.boundaryMesh()[patchi].meshPoints()[pointi];
forAll(pointFaces[pointi], pointFacei) forAll(pointFaces[pointi], pointFacei)
{ {
//- fix: use pointFace not face philipc //- fix: use pointFace not face philipc
label facei = pointFaces[pointi][pointFacei]; label facei = pointFaces[pointi][pointFacei];
const scalar& x = faceCentres[facei].component(vector::X); const scalar& x = faceCentres[facei].component(vector::X);
const scalar& y = faceCentres[facei].component(vector::Y); const scalar& y = faceCentres[facei].component(vector::Y);
const scalar& z = faceCentres[facei].component(vector::Z); const scalar& z = faceCentres[facei].component(vector::Z);
A[globalPointi][0][0] += x*x; A[globalPointi][0][0] += x*x;
A[globalPointi][0][1] += x*y; A[globalPointi][0][1] += x*y;
A[globalPointi][0][2] += x*z; A[globalPointi][0][2] += x*z;
A[globalPointi][0][3] += x; A[globalPointi][0][3] += x;
A[globalPointi][1][0] += x*y; A[globalPointi][1][0] += x*y;
A[globalPointi][1][1] += y*y; A[globalPointi][1][1] += y*y;
A[globalPointi][1][2] += y*z; A[globalPointi][1][2] += y*z;
A[globalPointi][1][3] += y; A[globalPointi][1][3] += y;
A[globalPointi][2][0] += x*z; A[globalPointi][2][0] += x*z;
A[globalPointi][2][1] += y*z; A[globalPointi][2][1] += y*z;
A[globalPointi][2][2] += z*z; A[globalPointi][2][2] += z*z;
A[globalPointi][2][3] += z; A[globalPointi][2][3] += z;
A[globalPointi][3][0] += x; A[globalPointi][3][0] += x;
A[globalPointi][3][1] += y; A[globalPointi][3][1] += y;
A[globalPointi][3][2] += z; A[globalPointi][3][2] += z;
A[globalPointi][3][3] += 1; // = pointCells.size(); A[globalPointi][3][3] += 1; // = pointCells.size();
} }
} }
} //- end of else } //- end of else
} //- end of forAll boundary } //- end of forAll boundary
} }
void leastSquaresVolPointInterpolation::calcB(List<Field<vector> >& B, const GeometricField<vector, fvPatchField, volMesh>& vf) const void leastSquaresVolPointInterpolation::calcB
{ (
List<Field<vector> >& B,
const GeometricField<vector, fvPatchField, volMesh>& vf
) const
{
//Info << "leastSquaresVolPointInterpolation calcB" << endl; //Info << "leastSquaresVolPointInterpolation calcB" << endl;
const fvMesh& mesh = mesh_; const fvMesh& mesh = mesh_;
const pointField& points = mesh.points(); const pointField& points = mesh.points();
for (direction compi = 0; compi < 3; compi++) for (direction compi = 0; compi < 3; compi++)
{ {
forAll(points, pointi) forAll(points, pointi)
{ {
const labelList& pointCells = mesh.pointCells()[pointi]; const labelList& pointCells = mesh.pointCells()[pointi];
//Info << "\npointCells " << pointCells << endl; //Info << "\npointCells " << pointCells << endl;
forAll(pointCells, pointCelli) forAll(pointCells, pointCelli)
{ {
const label& celli = pointCells[pointCelli]; const label& celli = pointCells[pointCelli];
//Info << "celli " << celli << ", C is " << mesh.C()[celli] << ", mesh.C().size() " << mesh.C().size() << endl; //Info << "celli " << celli << ", C is " << mesh.C()[celli] << ", mesh.C().size() " << mesh.C().size() << endl;
//Info << "mesh.C() is " << mesh.C().internalField() << endl; //Info << "mesh.C() is " << mesh.C().internalField() << endl;
const scalar& x = mesh.C()[celli].component(vector::X); const scalar& x = mesh.C()[celli].component(vector::X);
const scalar& y = mesh.C()[celli].component(vector::Y); const scalar& y = mesh.C()[celli].component(vector::Y);
const scalar& z = mesh.C()[celli].component(vector::Z); const scalar& z = mesh.C()[celli].component(vector::Z);
const scalar& phiCompi = vf.internalField()[celli].component(compi); const scalar& phiCompi =
vf.internalField()[celli].component(compi);
B[pointi][0].component(compi) += phiCompi*x; B[pointi][0].component(compi) += phiCompi*x;
B[pointi][1].component(compi) += phiCompi*y; B[pointi][1].component(compi) += phiCompi*y;
B[pointi][2].component(compi) += phiCompi*z; B[pointi][2].component(compi) += phiCompi*z;
B[pointi][3].component(compi) += phiCompi; B[pointi][3].component(compi) += phiCompi;
} }
} }
//- for boundary points we will include the surrounding face centres //- for boundary points we will include the surrounding face centres
forAll(mesh.boundary(), patchi) forAll(mesh.boundary(), patchi)
{ {
const vectorField& faceCentres = mesh.boundaryMesh()[patchi].faceCentres(); const vectorField& faceCentres =
const labelListList& pointFaces = mesh.boundaryMesh()[patchi].pointFaces(); mesh.boundaryMesh()[patchi].faceCentres();
const labelList& faceCells = mesh.boundaryMesh()[patchi].faceCells(); const labelListList& pointFaces =
mesh.boundaryMesh()[patchi].pointFaces();
const labelList& faceCells =
mesh.boundaryMesh()[patchi].faceCells();
//- fix: do not calculate B for empty patches - philipc //- fix: do not calculate B for empty patches - philipc
if(mesh.boundary()[patchi].coupled()) if(mesh.boundary()[patchi].coupled())
{ {
//- for coupled patches we will use the values at the neighbourField cell centres and we will //- for coupled patches we will use the values at the
//- not use the boundary face values //- neighbourField cell centres and we will not use the
//- neighbour cell centre are equal to the faceCell centres plus the delta vector //- boundary face values neighbour cell centre are equal to
vectorField pDelta = mesh.boundary()[patchi].delta(); //- the faceCell centres plus the delta vector
vectorField faceCellC(faceCentres.size(), vector::zero); vectorField pDelta = mesh.boundary()[patchi].delta();
forAll(faceCentres, facei) vectorField faceCellC(faceCentres.size(), vector::zero);
{ forAll(faceCentres, facei)
label celli = mesh.boundaryMesh()[patchi].faceCells()[facei]; {
faceCellC[facei] = mesh.C()[celli]; label celli =
} mesh.boundaryMesh()[patchi].faceCells()[facei];
vectorField neiCellC = faceCellC + pDelta; faceCellC[facei] = mesh.C()[celli];
}
vectorField neiCellC = faceCellC + pDelta;
vectorField phiNeiField = vf.boundaryField()[patchi].patchNeighbourField(); vectorField phiNeiField =
vf.boundaryField()[patchi].patchNeighbourField();
forAll(pointFaces, pointi) forAll(pointFaces, pointi)
{ {
forAll(pointFaces[pointi], pointFacei) forAll(pointFaces[pointi], pointFacei)
{ {
label neiCelli = pointFaces[pointi][pointFacei]; label neiCelli = pointFaces[pointi][pointFacei];
const scalar& x = neiCellC[neiCelli].component(vector::X); const scalar& x =
const scalar& y = neiCellC[neiCelli].component(vector::Y); neiCellC[neiCelli].component(vector::X);
const scalar& z = neiCellC[neiCelli].component(vector::Z); const scalar& y =
neiCellC[neiCelli].component(vector::Y);
const scalar& z =
neiCellC[neiCelli].component(vector::Z);
label globalPointi = mesh.boundaryMesh()[patchi].meshPoints()[pointi]; label globalPointi =
mesh.boundaryMesh()[patchi].meshPoints()[pointi];
//- this is the value of phi at the cell centre in the neighbour (i.e. across the interface) //- this is the value of phi at the cell centre in the
scalar phiCompi = phiNeiField[neiCelli].component(compi); //- neighbour (i.e. across the interface)
scalar phiCompi =
phiNeiField[neiCelli].component(compi);
B[globalPointi][0].component(compi) += phiCompi*x; B[globalPointi][0].component(compi) += phiCompi*x;
B[globalPointi][1].component(compi) += phiCompi*y; B[globalPointi][1].component(compi) += phiCompi*y;
B[globalPointi][2].component(compi) += phiCompi*z; B[globalPointi][2].component(compi) += phiCompi*z;
B[globalPointi][3].component(compi) += phiCompi; B[globalPointi][3].component(compi) += phiCompi;
} }
} }
} }
else else
{ {
//- each point must use at least 4 neighbouring locations otherwise A is singular //- each point must use at least 4 neighbouring locations
//- and simpleMatrix will cannot invert it //- otherwise A is singular and simpleMatrix will cannot
//- therefore empty patches values are included to make sure A is not singular //- make sure A is not singular invert it therefore empty
forAll(pointFaces, pointi) //- patches values are included to
{ forAll(pointFaces, pointi)
forAll(pointFaces[pointi], pointFacei) {
{ forAll(pointFaces[pointi], pointFacei)
//- fix: use pointFace not face philipc {
label facei = pointFaces[pointi][pointFacei]; //- fix: use pointFace not face philipc
const scalar& x = faceCentres[facei].component(vector::X); label facei = pointFaces[pointi][pointFacei];
const scalar& y = faceCentres[facei].component(vector::Y); const scalar& x =
const scalar& z = faceCentres[facei].component(vector::Z); faceCentres[facei].component(vector::X);
const scalar& y =
faceCentres[facei].component(vector::Y);
const scalar& z =
faceCentres[facei].component(vector::Z);
label globalPointi = mesh.boundaryMesh()[patchi].meshPoints()[pointi]; label globalPointi =
mesh.boundaryMesh()[patchi].meshPoints()[pointi];
scalar phiCompi = 0.0; scalar phiCompi = 0.0;
if(mesh.boundary()[patchi].type() == "empty") if(mesh.boundary()[patchi].type() == "empty")
{ {
//- use faceCell value for empty because empty patches do not store any values //- use faceCell value for empty because empty
const label& ci = faceCells[facei]; //- patches do not store any values
phiCompi = vf.internalField()[ci].component(compi); const label& ci = faceCells[facei];
} phiCompi =
else vf.internalField()[ci].component(compi);
{ }
phiCompi = vf.boundaryField()[patchi][facei].component(compi); else
} {
phiCompi =
vf.boundaryField()[patchi][facei].component(compi);
}
B[globalPointi][0].component(compi) += phiCompi*x; B[globalPointi][0].component(compi) += phiCompi*x;
B[globalPointi][1].component(compi) += phiCompi*y; B[globalPointi][1].component(compi) += phiCompi*y;
B[globalPointi][2].component(compi) += phiCompi*z; B[globalPointi][2].component(compi) += phiCompi*z;
B[globalPointi][3].component(compi) += phiCompi; B[globalPointi][3].component(compi) += phiCompi;
} }
} }
} }
} //- end of forAll boundary } //- end of forAll boundary
} //- end of for all components } //- end of for all components
} }
void leastSquaresVolPointInterpolation::interpolate void leastSquaresVolPointInterpolation::interpolate
( (
const GeometricField<vector, fvPatchField, volMesh>& vf, const GeometricField<vector, fvPatchField, volMesh>& vf,
GeometricField<vector, pointPatchField, pointMesh>& pf //Field<vector>& pf GeometricField<vector, pointPatchField, pointMesh>& pf //Field<vector>& pf
) const ) const
{ {
//Info << "Interpolating cell to point using leastSquaresVolPointInterpolation" << endl; //Info << "Interpolating cell to point using leastSquaresVolPointInterpolation" << endl;
const fvMesh& mesh = mesh_; const fvMesh& mesh = mesh_;
@ -312,10 +346,10 @@ defineTypeNameAndDebug(leastSquaresVolPointInterpolation, 0);
//- first check that point field is the correct size //- first check that point field is the correct size
if(pf.size() != points.size()) if(pf.size() != points.size())
{ {
FatalError << "pointfield should be equal to the number of points in the fvMesh" FatalError << "pointfield should be equal to the number of points in the fvMesh"
<< abort(FatalError); << abort(FatalError);
} }
//- calculate A and B vector //- calculate A and B vector
List<scalarSquareMatrix> A(mesh.points().size(), scalarSquareMatrix(4, 0.0)); List<scalarSquareMatrix> A(mesh.points().size(), scalarSquareMatrix(4, 0.0));
@ -326,52 +360,55 @@ defineTypeNameAndDebug(leastSquaresVolPointInterpolation, 0);
//- solve equations for each component of each point //- solve equations for each component of each point
forAll(points, pointi) forAll(points, pointi)
{ {
Field<vector>& source = B[pointi]; Field<vector>& source = B[pointi];
simpleMatrix<vector> leastSquaresMatrix(A[pointi], source); simpleMatrix<vector> leastSquaresMatrix(A[pointi], source);
//Info << "solving equation for point " << pointi << endl; //Info << "solving equation for point " << pointi << endl;
//Info << "A[pointi] is " << A[pointi] << ", source is " << source << endl; //Info << "A[pointi] is " << A[pointi] << ", source is " << source << endl;
//- solve using Gauss elimination or LU decomposition with pivoting //- solve using Gauss elimination or LU decomposition with pivoting
//Field<vector> leastSquaresSol = leastSquaresMatrix.solve(); //Field<vector> leastSquaresSol = leastSquaresMatrix.solve();
Field<vector> leastSquaresSol = leastSquaresMatrix.LUsolve(); Field<vector> leastSquaresSol = leastSquaresMatrix.LUsolve();
const scalar& x = mesh.points()[pointi].component(vector::X); const scalar& x = mesh.points()[pointi].component(vector::X);
const scalar& y = mesh.points()[pointi].component(vector::Y); const scalar& y = mesh.points()[pointi].component(vector::Y);
const scalar& z = mesh.points()[pointi].component(vector::Z); const scalar& z = mesh.points()[pointi].component(vector::Z);
//- calculate phi at vertex //- calculate phi at vertex
for (direction compi = 0; compi < 3; compi++) for (direction compi = 0; compi < 3; compi++)
{ {
const scalar& a = leastSquaresSol[0].component(compi); const scalar& a = leastSquaresSol[0].component(compi);
const scalar& b = leastSquaresSol[1].component(compi); const scalar& b = leastSquaresSol[1].component(compi);
const scalar& c = leastSquaresSol[2].component(compi); const scalar& c = leastSquaresSol[2].component(compi);
const scalar& d = leastSquaresSol[3].component(compi); const scalar& d = leastSquaresSol[3].component(compi);
pf[pointi].component(compi) = a*x + b*y + c*z + d; pf[pointi].component(compi) = a*x + b*y + c*z + d;
} }
} }
//- proc patches are synchronised //- proc patches are synchronised
pf.correctBoundaryConditions(); pf.correctBoundaryConditions();
} }
// * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * * //
leastSquaresVolPointInterpolation::leastSquaresVolPointInterpolation(const fvMesh& vm) leastSquaresVolPointInterpolation::leastSquaresVolPointInterpolation
: (
const fvMesh& vm
)
:
MeshObject<fvMesh, leastSquaresVolPointInterpolation>(vm), MeshObject<fvMesh, leastSquaresVolPointInterpolation>(vm),
mesh_(vm) //, mesh_(vm) //,
//A_(vm.points().size(), scalarSquareMatrix(4, 0.0)), //A_(vm.points().size(), scalarSquareMatrix(4, 0.0)),
//B_(vm.points().size(), Field<vector>(4, vector::zero)) //B_(vm.points().size(), Field<vector>(4, vector::zero))
{ {
//calcA(); //calcA();
} }
// * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * * //
leastSquaresVolPointInterpolation::~leastSquaresVolPointInterpolation() leastSquaresVolPointInterpolation::~leastSquaresVolPointInterpolation()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //

View file

@ -86,10 +86,17 @@ class leastSquaresVolPointInterpolation
void calcA(List<scalarSquareMatrix>& A) const; void calcA(List<scalarSquareMatrix>& A) const;
//- calc B source for each point //- calc B source for each point
void calcB(List<Field<vector> >& B, const GeometricField<vector, fvPatchField, volMesh>&) const; void calcB
(
List<Field<vector> >& B,
const GeometricField<vector, fvPatchField, volMesh>&
) const;
//- Disallow default bitwise copy construct //- Disallow default bitwise copy construct
leastSquaresVolPointInterpolation(const leastSquaresVolPointInterpolation&); leastSquaresVolPointInterpolation
(
const leastSquaresVolPointInterpolation&
);
//- Disallow default bitwise assignment //- Disallow default bitwise assignment
void operator=(const leastSquaresVolPointInterpolation&); void operator=(const leastSquaresVolPointInterpolation&);
@ -121,13 +128,13 @@ public:
virtual bool movePoints() const virtual bool movePoints() const
{ {
return true; return true;
} }
virtual bool updateMesh(const mapPolyMesh&) const virtual bool updateMesh(const mapPolyMesh&) const
{ {
return true; return true;
} }
// Interpolation functions // Interpolation functions
@ -137,7 +144,7 @@ public:
void interpolate void interpolate
( (
const GeometricField<vector, fvPatchField, volMesh>& vf, const GeometricField<vector, fvPatchField, volMesh>& vf,
GeometricField<vector, pointPatchField, pointMesh>& pf GeometricField<vector, pointPatchField, pointMesh>& pf
) const; ) const;
}; };

View file

@ -34,7 +34,7 @@ License
void Foam::Time::readDict() void Foam::Time::readDict()
{ {
if (debug) if (debug)
Info << "Time::readDict(): reading " << controlDict_.name() << endl; Info << "Time::readDict(): reading " << controlDict_.name() << endl;
if (!deltaTchanged_) if (!deltaTchanged_)
{ {

View file

@ -340,87 +340,87 @@ GenericPointPatchField
tensorFields_.insert(iter().keyword(), fPtr); tensorFields_.insert(iter().keyword(), fPtr);
} }
else if else if
( (
fieldToken.compoundToken().type() fieldToken.compoundToken().type()
== token::Compound<List<symmTensor4thOrder> >::typeName == token::Compound<List<symmTensor4thOrder> >::typeName
) )
{ {
symmTensor4thOrderField* fPtr = new symmTensor4thOrderField; symmTensor4thOrderField* fPtr = new symmTensor4thOrderField;
fPtr->transfer fPtr->transfer
( (
dynamicCast dynamicCast
< <
token::Compound<List<symmTensor4thOrder> > token::Compound<List<symmTensor4thOrder> >
> >
( (
fieldToken.transferCompoundToken() fieldToken.transferCompoundToken()
) )
); );
if (fPtr->size() != this->size()) if (fPtr->size() != this->size())
{ {
FatalIOErrorIn FatalIOErrorIn
( (
"GenericPointPatchField<Type>::" "GenericPointPatchField<Type>::"
"GenericPointPatchField" "GenericPointPatchField"
"(const pointPatch&, const Field<Type>&, " "(const pointPatch&, const Field<Type>&, "
"const dictionary&)", "const dictionary&)",
dict dict
) << "\n size of field " << iter().keyword() ) << "\n size of field " << iter().keyword()
<< " (" << fPtr->size() << ')' << " (" << fPtr->size() << ')'
<< " is not the same size as the patch (" << " is not the same size as the patch ("
<< this->size() << ')' << this->size() << ')'
<< "\n on patch " << this->patch().name() << "\n on patch " << this->patch().name()
<< " of field " << " of field "
<< this->dimensionedInternalField().name() << this->dimensionedInternalField().name()
<< " in file " << " in file "
<< this->dimensionedInternalField().objectPath() << this->dimensionedInternalField().objectPath()
<< exit(FatalIOError); << exit(FatalIOError);
} }
symmTensor4thOrderFields_.insert(iter().keyword(), fPtr); symmTensor4thOrderFields_.insert(iter().keyword(), fPtr);
} }
else if else if
( (
fieldToken.compoundToken().type() fieldToken.compoundToken().type()
== token::Compound<List<diagTensor> >::typeName == token::Compound<List<diagTensor> >::typeName
) )
{ {
diagTensorField* fPtr = new diagTensorField; diagTensorField* fPtr = new diagTensorField;
fPtr->transfer fPtr->transfer
( (
dynamicCast dynamicCast
< <
token::Compound<List<diagTensor> > token::Compound<List<diagTensor> >
> >
( (
fieldToken.transferCompoundToken() fieldToken.transferCompoundToken()
) )
); );
if (fPtr->size() != this->size()) if (fPtr->size() != this->size())
{ {
FatalIOErrorIn FatalIOErrorIn
( (
"GenericPointPatchField<Type>::" "GenericPointPatchField<Type>::"
"GenericPointPatchField" "GenericPointPatchField"
"(const pointPatch&, const Field<Type>&, " "(const pointPatch&, const Field<Type>&, "
"const dictionary&)", "const dictionary&)",
dict dict
) << "\n size of field " << iter().keyword() ) << "\n size of field " << iter().keyword()
<< " (" << fPtr->size() << ')' << " (" << fPtr->size() << ')'
<< " is not the same size as the patch (" << " is not the same size as the patch ("
<< this->size() << ')' << this->size() << ')'
<< "\n on patch " << this->patch().name() << "\n on patch " << this->patch().name()
<< " of field " << " of field "
<< this->dimensionedInternalField().name() << this->dimensionedInternalField().name()
<< " in file " << " in file "
<< this->dimensionedInternalField().objectPath() << this->dimensionedInternalField().objectPath()
<< exit(FatalIOError); << exit(FatalIOError);
} }
diagTensorFields_.insert(iter().keyword(), fPtr); diagTensorFields_.insert(iter().keyword(), fPtr);
} }
else else
{ {
FatalIOErrorIn FatalIOErrorIn
@ -531,34 +531,34 @@ GenericPointPatchField
} }
for for
( (
HashPtrTable<symmTensor4thOrderField>::const_iterator iter = HashPtrTable<symmTensor4thOrderField>::const_iterator iter =
ptf.symmTensor4thOrderFields_.begin(); ptf.symmTensor4thOrderFields_.begin();
iter != ptf.symmTensor4thOrderFields_.end(); iter != ptf.symmTensor4thOrderFields_.end();
++iter ++iter
) )
{ {
symmTensor4thOrderFields_.insert symmTensor4thOrderFields_.insert
( (
iter.key(), iter.key(),
new symmTensor4thOrderField(*iter(), mapper) new symmTensor4thOrderField(*iter(), mapper)
); );
} }
for for
( (
HashPtrTable<diagTensorField>::const_iterator iter = HashPtrTable<diagTensorField>::const_iterator iter =
ptf.diagTensorFields_.begin(); ptf.diagTensorFields_.begin();
iter != ptf.diagTensorFields_.end(); iter != ptf.diagTensorFields_.end();
++iter ++iter
) )
{ {
diagTensorFields_.insert diagTensorFields_.insert
( (
iter.key(), iter.key(),
new diagTensorField(*iter(), mapper) new diagTensorField(*iter(), mapper)
); );
} }
} }

View file

@ -311,7 +311,7 @@ public:
// cellSet -appDict cellSetDict.rotorOnly // cellSet -appDict cellSetDict.rotorOnly
// //
#define AppSpecificDictionary(DefaultAppDict) \ #define AppSpecificDictionary(DefaultAppDict) \
argList::appDictName_ = (DefaultAppDict); \ argList::appDictName_ = (DefaultAppDict); \
argList::validOptions.insert("appDict", argList::appDictName_); argList::validOptions.insert("appDict", argList::appDictName_);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -185,7 +185,7 @@ GGIInterpolation<MasterPatch, SlavePatch>::polygonIntersection
if if
( (
mag(intersectionArea/clippingArea) < areaErrorTol_() mag(intersectionArea/clippingArea) < areaErrorTol_()
|| mag(intersectionArea/subjectArea) < areaErrorTol_() || mag(intersectionArea/subjectArea) < areaErrorTol_()
) )
{ {
WarningIn WarningIn

View file

@ -59,9 +59,9 @@ void Foam::pointMesh::mapFields(const mapPolyMesh& mpm) const
MapGeometricFields MapGeometricFields
< <
symmTensor4thOrder, symmTensor4thOrder,
pointPatchField, pointPatchField,
pointMeshMapper, pointMeshMapper,
pointMesh pointMesh
>(m); >(m);
MapGeometricFields<diagTensor, pointPatchField, pointMeshMapper, pointMesh> MapGeometricFields<diagTensor, pointPatchField, pointMeshMapper, pointMesh>

View file

@ -45,9 +45,9 @@ namespace Foam
{ {
defineTypeNameAndDebugWithDescription defineTypeNameAndDebugWithDescription
( (
ggiPolyPatch, ggiPolyPatch,
0, 0,
"If value > 1, write uncovered GGI patch facets to VTK file" "If value > 1, write uncovered GGI patch facets to VTK file"
); );
addToRunTimeSelectionTable(polyPatch, ggiPolyPatch, word); addToRunTimeSelectionTable(polyPatch, ggiPolyPatch, word);

View file

@ -43,7 +43,7 @@ namespace Foam
polyPatch::disallowGenericPolyPatch polyPatch::disallowGenericPolyPatch
( (
"disallowGenericPolyPatch", "disallowGenericPolyPatch",
0 0
); );
defineRunTimeSelectionTable(polyPatch, word); defineRunTimeSelectionTable(polyPatch, word);

View file

@ -132,11 +132,11 @@ public:
inline SymmTensor4thOrder inline SymmTensor4thOrder
( (
const Cmpt txxxx, const Cmpt txxyy, const Cmpt txxzz, const Cmpt txxxx, const Cmpt txxyy, const Cmpt txxzz,
const Cmpt tyyyy, const Cmpt tyyzz, const Cmpt tyyyy, const Cmpt tyyzz,
const Cmpt tzzzz, const Cmpt tzzzz,
const Cmpt txyxy, const Cmpt txyxy,
const Cmpt tyzyz, const Cmpt tyzyz,
const Cmpt tzxzx const Cmpt tzxzx
); );
//- Construct from Istream //- Construct from Istream

View file

@ -56,7 +56,7 @@ inline SymmTensor4thOrder<Cmpt>::SymmTensor4thOrder
( (
const Cmpt txxxx, const Cmpt txxyy, const Cmpt txxzz, const Cmpt txxxx, const Cmpt txxyy, const Cmpt txxzz,
const Cmpt tyyyy, const Cmpt tyyzz, const Cmpt tyyyy, const Cmpt tyyzz,
const Cmpt tzzzz, const Cmpt tzzzz,
const Cmpt txyxy, const Cmpt txyxy,
const Cmpt tyzyz, const Cmpt tyzyz,
const Cmpt tzxzx const Cmpt tzxzx

View file

@ -302,20 +302,23 @@ inline SymmTensor4thOrder<Cmpt> transform
template<class Cmpt> template<class Cmpt>
inline DiagTensor<Cmpt> transform inline DiagTensor<Cmpt> transform
( (
const tensor& tt, const tensor& tt,
const DiagTensor<Cmpt>& st const DiagTensor<Cmpt>& st
) )
{ {
notImplemented("transform.H\n" notImplemented
"template<>\n" (
"inline DiagTensor<Cmpt> transform\n" "transform.H\n"
"(\n" "template<>\n"
"const tensor& tt,\n" "inline DiagTensor<Cmpt> transform\n"
"const DiagTensor<Cmpt>& st\n" "(\n"
")\n" "const tensor& tt,\n"
"not implemented"); "const DiagTensor<Cmpt>& st\n"
")\n"
"not implemented"
);
return st; return st;
} }
@ -376,9 +379,9 @@ template<>
inline symmTensor4thOrder transformMask<symmTensor4thOrder>(const tensor& t) inline symmTensor4thOrder transformMask<symmTensor4thOrder>(const tensor& t)
{ {
notImplemented("transform.H\n" notImplemented("transform.H\n"
"template<>\n" "template<>\n"
"inline symmTensor4thOrder transformMask<symmTensor4thOrder>(const tensor& t)\n" "inline symmTensor4thOrder transformMask<symmTensor4thOrder>(const tensor& t)\n"
"not implemented"); "not implemented");
return symmTensor4thOrder::zero; return symmTensor4thOrder::zero;
} }

View file

@ -258,7 +258,7 @@ void immersedBoundaryOmegaWallFunctionFvPatchScalarField::updateCoeffs()
{ {
// Calculate tauW from log-law using k and U at sampling point // Calculate tauW from log-law using k and U at sampling point
tauW = UtanOld[ibCellI]*Cmu25*sqrt(k[ibCellI])*kappa_ tauW = UtanOld[ibCellI]*Cmu25*sqrt(k[ibCellI])*kappa_
/log(E_*yPlusSample); /log(E_*yPlusSample);
} }
else else
@ -288,11 +288,11 @@ void immersedBoundaryOmegaWallFunctionFvPatchScalarField::updateCoeffs()
sqr((nutw + nuLam)*magGradUw[ibCellI])/ sqr((nutw + nuLam)*magGradUw[ibCellI])/
(Cmu25*sqrt(k[ibCellI])*kappa_*y[ibCellI]); (Cmu25*sqrt(k[ibCellI])*kappa_*y[ibCellI]);
// Compute k at the IB cell // Compute k at the IB cell
kNew[ibCellI] = tauW/Cmu50; // equilibrium boundary layer kNew[ibCellI] = tauW/Cmu50; // equilibrium boundary layer
// kNew[ibCellI] = k[ibCellI]; // zero-Gradient (less stable) // kNew[ibCellI] = k[ibCellI]; // zero-Gradient (less stable)
// Compute omega at the IB cell // Compute omega at the IB cell
omegaNew[ibCellI] = sqrt(kNew[ibCellI])/(Cmu25*kappa_*y[ibCellI]); omegaNew[ibCellI] = sqrt(kNew[ibCellI])/(Cmu25*kappa_*y[ibCellI]);
// Log-Law for tangential velocity - uTau = Cmu25*sqrt(kNew) // Log-Law for tangential velocity - uTau = Cmu25*sqrt(kNew)
@ -312,7 +312,7 @@ void immersedBoundaryOmegaWallFunctionFvPatchScalarField::updateCoeffs()
// quadratic fit // quadratic fit
kNew[ibCellI] = k[ibCellI]*sqr(yPlusIB/yPlusLam); kNew[ibCellI] = k[ibCellI]*sqr(yPlusIB/yPlusLam);
// Compute omega at the IB cell // Compute omega at the IB cell
omegaNew[ibCellI] = 6.0*nu[ibCellI]/(beta1_*sqr(y[ibCellI])); omegaNew[ibCellI] = 6.0*nu[ibCellI]/(beta1_*sqr(y[ibCellI]));
// Laminar sub-layer for tangential velocity: uPlus = yPlus // Laminar sub-layer for tangential velocity: uPlus = yPlus

View file

@ -549,7 +549,7 @@ public:
template<> \ template<> \
const Foam::word KinematicParcel<Type>::typeName(#Type); \ const Foam::word KinematicParcel<Type>::typeName(#Type); \
template<> \ template<> \
Foam::debug::debugSwitch \ Foam::debug::debugSwitch \
KinematicParcel<Type>::debug \ KinematicParcel<Type>::debug \
( \ ( \
std::string(#Type), DebugSwitch \ std::string(#Type), DebugSwitch \

View file

@ -299,7 +299,7 @@ Foam::iterativePenaltyFriction::iterativePenaltyFriction
// traction to cause slipping // traction to cause slipping
//scalar slipTrac = //scalar slipTrac =
//frictionLawPtr_->slipTraction(magSlavePressure[faceI]); // frictionLawPtr_->slipTraction(magSlavePressure[faceI]);
vector& slaveTrac = slaveTraction_[faceI]; vector& slaveTrac = slaveTraction_[faceI];
// if mag(slaveTrac) is greater than slipTrac and // if mag(slaveTrac) is greater than slipTrac and

View file

@ -18,51 +18,53 @@ internalField uniform 100;
boundaryField boundaryField
{ {
inlet inlet
{ {
type fixedValue; type fixedValue;
value uniform 500; value uniform 500;
} }
outlet outlet
{ {
type fixedValue; type fixedValue;
value uniform 100; value uniform 100;
} }
wallProlongation wallProlongation
{ {
type zeroGradient; type zeroGradient;
} }
wallDiffuser wallDiffuser
{ {
type zeroGradient; type zeroGradient;
} }
statSwirlWallB_C statSwirlWallB_C
{ {
type zeroGradient; type zeroGradient;
} }
rotSwirlWallA_BB rotSwirlWallA_BB
{ {
type zeroGradient; type zeroGradient;
} }
B_UPSTREAM B_UPSTREAM
{ {
type mixingPlane; type mixingPlane;
} }
B_DOWNSTREAM B_DOWNSTREAM
{ {
type mixingPlane; type mixingPlane;
} }
sideWallA_BB_cyclic1 sideWallA_BB_cyclic1
{ {
type cyclicGgi; type cyclicGgi;
} }
sideWallA_BB_cyclic2 sideWallA_BB_cyclic2
{ {
type cyclicGgi; type cyclicGgi;
} }
defaultFaces defaultFaces
{ {
type empty; type empty;
} }
} // ************************************************************************* // }
// ************************************************************************* //

View file

@ -383,9 +383,9 @@ boundary
zone B_UPSTREAMZone; zone B_UPSTREAMZone;
ribbonPatch ribbonPatch
{ {
discretisation bothPatches; discretisation bothPatches;
stackAxis R; stackAxis R;
sweepAxis Theta; sweepAxis Theta;
} }
coordinateSystem coordinateSystem

View file

@ -64,15 +64,15 @@ boundary
frontBack frontBack
{ {
type cyclic; type cyclic;
faces faces
( (
(0 6 7 1) (0 6 7 1)
(1 7 8 2) (1 7 8 2)
(9 3 4 10) (9 3 4 10)
(10 4 5 11) (10 4 5 11)
); );
} }
); );

View file

@ -64,9 +64,9 @@ boundary
flow flow
{ {
type cyclic; type cyclic;
faces faces
( (
(0 6 7 1) (0 6 7 1)
(1 7 8 2) (1 7 8 2)

View file

@ -8,13 +8,13 @@
FoamFile FoamFile
{ {
version 2.0; version 2.0;
format ascii; ; format ascii;
class dictionary; ; class dictionary;
object decomposeParDict; ; object decomposeParDict;
} }
numberOfSubdomains 4; numberOfSubdomains 4;
method metis; //metis; //simple; method metis; //metis; //simple;
globalFaceZones globalFaceZones
( (
@ -38,6 +38,6 @@ simpleCoeffs
distributed no; distributed no;
roots roots
( (
); );

View file

@ -8,13 +8,13 @@
FoamFile FoamFile
{ {
version 2.0; version 2.0;
format ascii; ; format ascii;
class dictionary; ; class dictionary;
object decomposeParDict; ; object decomposeParDict;
} }
numberOfSubdomains 4; numberOfSubdomains 4;
method manual; //metis; //simple; method manual; //metis; //simple;
globalFaceZones ( globalFaceZones (
ggi1DomAZone ggi1DomAZone
@ -35,6 +35,6 @@ simpleCoeffs
distributed no; distributed no;
roots roots
( (
); );

View file

@ -29,7 +29,7 @@ divSchemes
{ {
default none; default none;
div(phi,U) Gauss linearUpwind Gauss; //upwind; div(phi,U) Gauss linearUpwind Gauss; //upwind;
div((nuEff*dev(grad(U).T()))) Gauss linear; div((nuEff*dev(grad(U).T()))) Gauss linear;
div(phi,epsilon) Gauss upwind; div(phi,epsilon) Gauss upwind;
div(phi,k) Gauss upwind; div(phi,k) Gauss upwind;
} }
@ -44,7 +44,7 @@ laplacianSchemes
laplacian((1|A(U)),p) Gauss linear corrected; laplacian((1|A(U)),p) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected; laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected;
laplacian(1,p) Gauss linear corrected; laplacian(1,p) Gauss linear corrected;
} }
interpolationSchemes interpolationSchemes

View file

@ -16,21 +16,21 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application ; application ;
deltaT 1; deltaT 1;
endTime 50; endTime 50;
graphFormat raw; graphFormat raw;
purgeWrite 0; purgeWrite 0;
runTimeModifiable yes; runTimeModifiable yes;
startFrom startTime; startFrom startTime;
startTime 0; startTime 0;
stopAt endTime; stopAt endTime;
timeFormat general; timeFormat general;
timePrecision 6; timePrecision 6;
writeCompression uncompressed; writeCompression uncompressed;
writeControl timeStep; writeControl timeStep;
writeFormat ascii; writeFormat ascii;
writeInterval 20; writeInterval 20;
writePrecision 6; writePrecision 6;
// ************************************************************************* // // ************************************************************************* //

View file

@ -8,18 +8,18 @@
FoamFile FoamFile
{ {
version 2; version 2;
format ascii; format ascii;
class dictionary; class dictionary;
location "system"; location "system";
object meshDict; object meshDict;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
maxCellSize 0.01; maxCellSize 0.01;
surfaceFile "geom.fms"; surfaceFile "geom.fms";
boundaryLayers boundaryLayers
{ {

View file

@ -48,8 +48,8 @@ boundaryLayers
renameBoundary renameBoundary
{ {
defaultName fixedWalls; defaultName fixedWalls;
defaultType wall; defaultType wall;
newPatchNames newPatchNames
{ {

View file

@ -64,7 +64,7 @@ boundaryLayers
allowDiscontinuity 0; allowDiscontinuity 0;
} }
"fixedWalls.*" "fixedWalls.*"
{ {
nLayers 4; nLayers 4;
@ -75,7 +75,7 @@ boundaryLayers
allowDiscontinuity 0; allowDiscontinuity 0;
} }
"tubes.*" "tubes.*"
{ {
nLayers 4; nLayers 4;
@ -90,8 +90,8 @@ boundaryLayers
renameBoundary renameBoundary
{ {
defaultName fixedWalls; defaultName fixedWalls;
defaultType wall; defaultType wall;
newPatchNames newPatchNames
{ {

View file

@ -16,21 +16,21 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application ; application ;
deltaT 0.001; deltaT 0.001;
endTime 2; endTime 2;
graphFormat raw; graphFormat raw;
purgeWrite 0; purgeWrite 0;
runTimeModifiable yes; runTimeModifiable yes;
startFrom latestTime; startFrom latestTime;
startTime 0; startTime 0;
stopAt endTime; stopAt endTime;
timeFormat general; timeFormat general;
timePrecision 6; timePrecision 6;
writeCompression compressed; writeCompression compressed;
writeControl timeStep; writeControl timeStep;
writeFormat binary; writeFormat binary;
writeInterval 100; writeInterval 100;
writePrecision 6; writePrecision 6;
// ************************************************************************* // // ************************************************************************* //

View file

@ -17,21 +17,21 @@ FoamFile
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
maxCellSize 0.1; maxCellSize 0.1;
surfaceFile "sBend.fms"; surfaceFile "sBend.fms";
boundaryLayers boundaryLayers
{ {
nLayers 1; nLayers 1;
patchBoundaryLayers patchBoundaryLayers
{ {
walls walls
{ {
nLayers 3; nLayers 3;
thicknessRatio 1.2; thicknessRatio 1.2;
} }
} }
} }
@ -41,12 +41,12 @@ localRefinement
refFine refFine
{ {
cellSize 0.025; cellSize 0.025;
} }
walls walls
{ {
cellSize 0.05; cellSize 0.05;
} }
} }

View file

@ -17,36 +17,36 @@ FoamFile
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application ; application ;
deltaT 0.05; deltaT 0.05;
endTime 10; endTime 10;
graphFormat raw; graphFormat raw;
purgeWrite 0; purgeWrite 0;
runTimeModifiable yes; runTimeModifiable yes;
startFrom latestTime; startFrom latestTime;
startTime 0; startTime 0;
stopAt endTime; stopAt endTime;
timeFormat general; timeFormat general;
timePrecision 6; timePrecision 6;
writeCompression uncompressed; writeCompression uncompressed;
writeControl timeStep; writeControl timeStep;
writeFormat ascii; writeFormat ascii;
writeInterval 20; writeInterval 20;
writePrecision 6; writePrecision 6;
// ************************************************************************* // // ************************************************************************* //

View file

@ -54,7 +54,7 @@ boundaryLayers
allowDiscontinuity 0; allowDiscontinuity 0;
} }
"fixedWalls.*" "fixedWalls.*"
{ {
nLayers 4; nLayers 4;
@ -69,15 +69,15 @@ boundaryLayers
renameBoundary renameBoundary
{ {
defaultName fixedWalls; defaultName fixedWalls;
defaultType wall; defaultType wall;
newPatchNames newPatchNames
{ {
"orificeRegion.*" "orificeRegion.*"
{ {
newName orificeRegion; newName orificeRegion;
newType wall; newType wall;
} }
"inlet.*" "inlet.*"

View file

@ -17,28 +17,28 @@ FoamFile
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
boundaryCellSize 1.5; boundaryCellSize 1.5;
keepCellsIntersectingBoundary 1; keepCellsIntersectingBoundary 1;
maxCellSize 3; maxCellSize 3;
minCellSize 0.375; minCellSize 0.375;
removeGluedMesh 0; removeGluedMesh 0;
surfaceFile "socket.fms"; surfaceFile "socket.fms";
boundaryLayers boundaryLayers
{ {
maxFirstLayerThickness 0.5; maxFirstLayerThickness 0.5;
nLayers 3; nLayers 3;
thicknessRatio 1.2; thicknessRatio 1.2;
patchBoundaryLayers patchBoundaryLayers
{ {
patch7 patch7
{ {
allowDiscontinuity 0; allowDiscontinuity 0;
maxFirstLayerThickness 0.5; maxFirstLayerThickness 0.5;
nLayers 4; nLayers 4;
thicknessRatio 1.1; thicknessRatio 1.1;
} }
} }
} }
@ -48,17 +48,17 @@ localRefinement
patch15 patch15
{ {
additionalRefinementLevels 1; additionalRefinementLevels 1;
} }
subset1 subset1
{ {
cellSize 1.5; cellSize 1.5;
} }
subset2 subset2
{ {
cellSize 1.5; cellSize 1.5;
} }
} }

View file

@ -24,16 +24,16 @@ boundaryField
bottomLoading bottomLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsBottomDisp"; fileName "$FOAM_CASE/constant/timeVsBottomDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }
topLoading topLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsTopDisp"; fileName "$FOAM_CASE/constant/timeVsTopDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }

View file

@ -24,16 +24,16 @@ boundaryField
bottomLoading bottomLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsBottomDisp"; fileName "$FOAM_CASE/constant/timeVsBottomDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }
topLoading topLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsTopDisp"; fileName "$FOAM_CASE/constant/timeVsTopDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }

View file

@ -1,4 +1,4 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 100 (0 -1e-4 0) ) ( 100 (0 -1e-4 0) )
) )

View file

@ -1,4 +1,4 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 100 (0 1e-4 0) ) ( 100 (0 1e-4 0) )
) )

View file

@ -40,8 +40,8 @@ solidMechanics
infoFrequency 100; infoFrequency 100;
aitkenRelaxation yes; aitkenRelaxation yes;
crackLimitingBoxes 1( crackLimitingBoxes 1(
(0 -1e-5 0)(0.06 1e-5 1) (0 -1e-5 0)(0.06 1e-5 1)
); );
crackPropagationFromSpecifiedPatches no; crackPropagationFromSpecifiedPatches no;
crackPropagationPatches 1(crack); crackPropagationPatches 1(crack);
dynamicTimeStep no; dynamicTimeStep no;

View file

@ -24,7 +24,7 @@ regions
( (
boxToCell boxToCell
{ {
box (0 0 0) (1 1 1); box (0 0 0) (1 1 1);
fieldValues fieldValues
( (
@ -33,7 +33,7 @@ regions
} }
boxToCell boxToCell
{ {
box (0.03 -1 -1) (0.06 1 1); box (0.03 -1 -1) (0.06 1 1);
fieldValues fieldValues
( (

View file

@ -24,16 +24,16 @@ boundaryField
bottomLoading bottomLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsBottomDisp"; fileName "$FOAM_CASE/constant/timeVsBottomDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }
topLoading topLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsTopDisp"; fileName "$FOAM_CASE/constant/timeVsTopDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }

View file

@ -24,16 +24,16 @@ boundaryField
bottomLoading bottomLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsBottomDisp"; fileName "$FOAM_CASE/constant/timeVsBottomDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }
topLoading topLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsTopDisp"; fileName "$FOAM_CASE/constant/timeVsTopDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }

View file

@ -1,4 +1,4 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 100 (0 -1e-4 0) ) ( 100 (0 -1e-4 0) )
) )

View file

@ -1,4 +1,4 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 100 (0 1e-4 0) ) ( 100 (0 1e-4 0) )
) )

View file

@ -40,8 +40,8 @@ solidMechanics
infoFrequency 100; infoFrequency 100;
aitkenRelaxation yes; aitkenRelaxation yes;
crackLimitingBoxes 1( crackLimitingBoxes 1(
(0 -1e-5 0)(0.06 1e-5 1) (0 -1e-5 0)(0.06 1e-5 1)
); );
crackPropagationFromSpecifiedPatches no; crackPropagationFromSpecifiedPatches no;
crackPropagationPatches 1(crack); crackPropagationPatches 1(crack);
dynamicTimeStep no; dynamicTimeStep no;

View file

@ -24,7 +24,7 @@ regions
( (
boxToCell boxToCell
{ {
box (0 0 0) (1 1 1); box (0 0 0) (1 1 1);
fieldValues fieldValues
( (
@ -33,7 +33,7 @@ regions
} }
boxToCell boxToCell
{ {
box (0.03 -1 -1) (0.06 1 1); box (0.03 -1 -1) (0.06 1 1);
fieldValues fieldValues
( (

View file

@ -30,8 +30,8 @@ boundaryField
top top
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsTopDisp"; fileName "$FOAM_CASE/constant/timeVsTopDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }

View file

@ -30,8 +30,8 @@ boundaryField
top top
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsTopDisp"; fileName "$FOAM_CASE/constant/timeVsTopDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }

View file

@ -1,4 +1,4 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 100 (0 0 0) ) ( 100 (0 0 0) )
) )

View file

@ -1,5 +1,5 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 10 (0 -1e-5 0) ) ( 10 (0 -1e-5 0) )
( 100 (1e-4 -1e-5 0) ) ( 100 (1e-4 -1e-5 0) )
) )

View file

@ -40,8 +40,8 @@ solidMechanics
infoFrequency 100; infoFrequency 100;
aitkenRelaxation yes; aitkenRelaxation yes;
crackLimitingBoxes 1( crackLimitingBoxes 1(
(0 -1e-5 0)(0.06 1e-5 1) (0 -1e-5 0)(0.06 1e-5 1)
); );
crackPropagationFromSpecifiedPatches no; crackPropagationFromSpecifiedPatches no;
crackPropagationPatches 1(crack); crackPropagationPatches 1(crack);
dynamicTimeStep no; dynamicTimeStep no;

View file

@ -24,7 +24,7 @@ regions
( (
boxToCell boxToCell
{ {
box (0 0 0) (1 1 1); box (0 0 0) (1 1 1);
fieldValues fieldValues
( (

View file

@ -24,16 +24,16 @@ boundaryField
bottomLoading bottomLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsBottomDisp"; fileName "$FOAM_CASE/constant/timeVsBottomDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }
topLoading topLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsTopDisp"; fileName "$FOAM_CASE/constant/timeVsTopDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }

View file

@ -24,16 +24,16 @@ boundaryField
bottomLoading bottomLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsBottomDisp"; fileName "$FOAM_CASE/constant/timeVsBottomDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }
topLoading topLoading
{ {
type timeVaryingFixedDisplacement; type timeVaryingFixedDisplacement;
fileName "$FOAM_CASE/constant/timeVsTopDisp"; fileName "$FOAM_CASE/constant/timeVsTopDisp";
outOfBounds clamp; outOfBounds clamp;
value uniform (0 0 0); value uniform (0 0 0);
} }

View file

@ -1,4 +1,4 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 100 (-1e-4 -1e-4 0) ) ( 100 (-1e-4 -1e-4 0) )
) )

View file

@ -1,4 +1,4 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 100 (1e-4 1e-4 0) ) ( 100 (1e-4 1e-4 0) )
) )

View file

@ -40,8 +40,8 @@ solidMechanics
infoFrequency 100; infoFrequency 100;
aitkenRelaxation yes; aitkenRelaxation yes;
crackLimitingBoxes 1( crackLimitingBoxes 1(
(0 -1e-5 0)(0.06 1e-5 1) (0 -1e-5 0)(0.06 1e-5 1)
); );
crackPropagationFromSpecifiedPatches no; crackPropagationFromSpecifiedPatches no;
crackPropagationPatches 1(crack); crackPropagationPatches 1(crack);
dynamicTimeStep no; dynamicTimeStep no;

View file

@ -25,7 +25,7 @@ regions
( (
boxToCell boxToCell
{ {
box (0 0 0) (1 1 1); box (0 0 0) (1 1 1);
fieldValues fieldValues
( (
@ -34,7 +34,7 @@ regions
} }
boxToCell boxToCell
{ {
box (0 -0.002 -1) (1 0.002 1); box (0 -0.002 -1) (1 0.002 1);
fieldValues fieldValues
( (

View file

@ -32,53 +32,54 @@ boundaryField
bottomBrickUp bottomBrickUp
{ {
type solidContact; type solidContact;
master yes; master yes;
contactActive yes; contactActive yes;
rigidMaster no; rigidMaster no;
shadowPatch topBrickDown; shadowPatch topBrickDown;
interpolationMethod ggi; interpolationMethod ggi;
//interpolationMethod patchToPatch; //interpolationMethod patchToPatch;
projectionAlgo visible; projectionAlgo visible;
projectionDir contactSphere; projectionDir contactSphere;
correctionFrequency 10; correctionFrequency 10;
normalContactModel standardPenalty;; normalContactModel standardPenalty;;
standardPenaltyNormalModelDict standardPenaltyNormalModelDict
{ {
penaltyScale 1; penaltyScale 1;
relaxationFactor 0.01; relaxationFactor 0.01;
infoFrequency 10; infoFrequency 10;
limitPenetration no; limitPenetration no;
penetrationLimit -0.03; penetrationLimit -0.03;
limitPressure no; limitPressure no;
pressureLimit 1e9; pressureLimit 1e9;
correctMissedVertices yes; correctMissedVertices yes;
distanceMethod point; distanceMethod point;
oscillationCorrection yes; oscillationCorrection yes;
smoothingSteps 1; smoothingSteps 1;
} }
frictionContactModel standardPenalty; frictionContactModel standardPenalty;
standardPenaltyFrictionModelDict standardPenaltyFrictionModelDict
{ {
penaltyScale 0.5; penaltyScale 0.5;
relaxationFactor 0.1; relaxationFactor 0.1;
infoFrequency 10; infoFrequency 10;
oscillationCorrection yes; oscillationCorrection yes;
smoothingSteps 1; smoothingSteps 1;
frictionLaw coulomb; frictionLaw coulomb;
frictionLawDict frictionLawDict
{ {
frictionCoeff 0.3; frictionCoeff 0.3;
} }
} }
value uniform (0 0 0);
value uniform (0 0 0);
} }
topBrickDown topBrickDown
{ {
type solidContact; type solidContact;
master no; master no;
contactActive yes; contactActive yes;
shadowPatch bottomBrickUp; shadowPatch bottomBrickUp;
value uniform (0 0 0); value uniform (0 0 0);
} }
@ -113,7 +114,7 @@ boundaryField
topBrickRight topBrickRight
{ {
type solidTraction; type solidTraction;
traction uniform ( 0 0 0 ); traction uniform ( 0 0 0 );
pressure uniform 0; pressure uniform 0;
value uniform (0 0 0); value uniform (0 0 0);
} }

View file

@ -1,4 +1,4 @@
( (
(0 (0 -1e-4 0)) (0 (0 -1e-4 0))
(100 (4e-2 -1e-4 0)) (100 (4e-2 -1e-4 0))
) )

View file

@ -22,42 +22,42 @@ internalField uniform (0 0 0);
boundaryField boundaryField
{ {
left left
{ {
type fixedDisplacement; type fixedDisplacement;
value uniform (0 0 0); value uniform (0 0 0);
} }
right right
{ {
type solidTraction; type solidTraction;
nonLinear totalLagrangian; nonLinear totalLagrangian;
traction uniform (0 -1e8 0); traction uniform (0 -1e8 0);
pressure uniform 0; pressure uniform 0;
value uniform (0 0 0); value uniform (0 0 0);
} }
top top
{ {
type solidTraction; type solidTraction;
nonLinear totalLagrangian; nonLinear totalLagrangian;
traction uniform (0 0 0); traction uniform (0 0 0);
pressure uniform 0; pressure uniform 0;
value uniform (0 0 0); value uniform (0 0 0);
} }
bottom bottom
{ {
type solidTraction; type solidTraction;
nonLinear totalLagrangian; nonLinear totalLagrangian;
traction uniform (0 0 0); traction uniform (0 0 0);
pressure uniform 0; pressure uniform 0;
value uniform (0 0 0); value uniform (0 0 0);
} }
frontAndBack frontAndBack
{ {
type empty; type empty;
} }
} }
// ************************************************************************* // // ************************************************************************* //

View file

@ -1,4 +1,4 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 64 (0 0.4 0)) ( 64 (0 0.4 0))
) )

View file

@ -1,4 +1,4 @@
( (
( 0 (0 0 0) ) ( 0 (0 0 0) )
( 64 (0 0.4 0)) ( 64 (0 0.4 0))
) )

View file

@ -1,4 +1,4 @@
( (
( 0 0 ) ( 0 0 )
( 90 90 ) ( 90 90 )
) )

View file

@ -1,4 +1,4 @@
( (
( 0 0 ) ( 0 0 )
( 90 90 ) ( 90 90 )
) )

View file

@ -18,14 +18,14 @@ FoamFile
dimensions [0 0 0 0 0 0 0]; dimensions [0 0 0 0 0 0 0];
// internalField uniform ( 0.7071 0.7071 0 // internalField uniform ( 0.7071 0.7071 0
// -0.7071 0.7071 0 // -0.7071 0.7071 0
// 0 0 1 ); // 0 0 1 );
// internalField uniform ( 0 1 0 // internalField uniform ( 0 1 0
// -1 0 0 // -1 0 0
// 0 0 1 ); // 0 0 1 );
internalField uniform ( 1 0 0 internalField uniform ( 1 0 0
0 1 0 0 1 0
0 0 1 ); 0 0 1 );
boundaryField boundaryField
{ {

View file

@ -1,6 +1,6 @@
( (
(0 0) (0 0)
(9.9 0) (9.9 0)
(9.99 1) (9.99 1)
(360 1) (360 1)
) )

View file

@ -18,8 +18,8 @@ FoamFile
dimensions [0 0 0 0 0 0 0]; dimensions [0 0 0 0 0 0 0];
internalField uniform ( 1 0 0 internalField uniform ( 1 0 0
0 1 0 0 1 0
0 0 1 ); 0 0 1 );
boundaryField boundaryField
{ {

View file

@ -18,8 +18,8 @@ FoamFile
dimensions [0 0 0 0 0 0 0]; dimensions [0 0 0 0 0 0 0];
internalField uniform ( 1 0 0 internalField uniform ( 1 0 0
0 1 0 0 1 0
0 0 1 ); 0 0 1 );
boundaryField boundaryField
{ {

View file

@ -18,23 +18,23 @@ convertToMeters 1;
vertices vertices
( (
(0 0 0) //0 (0 0 0) //0
(1 0 0) //1 (1 0 0) //1
(0 0.5 0) //2 (0 0.5 0) //2
(1 0.5 0) //3 (1 0.5 0) //3
(0 0.51 0) //4 (0 0.51 0) //4
(1 0.51 0) //5 (1 0.51 0) //5
(0 1 0) //6 (0 1 0) //6
(1 1 0) //7 (1 1 0) //7
(0 0 0.1) //8 (0 0 0.1) //8
(1 0 0.1) //9 (1 0 0.1) //9
(0 0.5 0.1) //10 (0 0.5 0.1) //10
(1 0.5 0.1) //11 (1 0.5 0.1) //11
(0 0.51 0.1) //12 (0 0.51 0.1) //12
(1 0.51 0.1) //13 (1 0.51 0.1) //13
(0 1 0.1) //14 (0 1 0.1) //14
(1 1 0.1) //15 (1 1 0.1) //15
); );
@ -55,38 +55,38 @@ patches
( (
( 0 1 3 2) ( 0 1 3 2)
( 2 3 5 4) ( 2 3 5 4)
( 4 5 7 6) ( 4 5 7 6)
) )
empty back empty back
( (
( 8 9 11 10) ( 8 9 11 10)
(10 11 13 12) (10 11 13 12)
(12 13 15 14) (12 13 15 14)
) )
patch left patch left
( (
( 0 2 10 8) ( 0 2 10 8)
( 2 4 12 10) ( 2 4 12 10)
( 4 6 14 12) ( 4 6 14 12)
) )
patch bottom patch bottom
( (
( 0 1 9 8) ( 0 1 9 8)
) )
patch right patch right
( (
( 1 3 11 9) ( 1 3 11 9)
( 3 5 13 11) ( 3 5 13 11)
( 5 7 15 13) ( 5 7 15 13)
) )
patch top patch top
( (
( 6 7 15 14) ( 6 7 15 14)
) )
); );

View file

@ -33,18 +33,18 @@ rheology
composite composite
{ {
type orthotropicLinearElastic; type orthotropicLinearElastic;
rho rho [1 -3 0 0 0 0 0] 7854; rho rho [1 -3 0 0 0 0 0] 7854;
Ex Ex [1 -1 -2 0 0 0 0] 200e+9; Ex Ex [1 -1 -2 0 0 0 0] 200e+9;
Ey Ey [1 -1 -2 0 0 0 0] 200e+9; Ey Ey [1 -1 -2 0 0 0 0] 200e+9;
Ez Ez [1 -1 -2 0 0 0 0] 200e+9; Ez Ez [1 -1 -2 0 0 0 0] 200e+9;
nuxy nuxy [0 0 0 0 0 0 0] 0.3; nuxy nuxy [0 0 0 0 0 0 0] 0.3;
nuyz nuyz [0 0 0 0 0 0 0] 0.3; nuyz nuyz [0 0 0 0 0 0 0] 0.3;
nuzx nuzx [0 0 0 0 0 0 0] 0.3; nuzx nuzx [0 0 0 0 0 0 0] 0.3;
Gxy Gxy [1 -1 -2 0 0 0 0] 76.923076923e9; Gxy Gxy [1 -1 -2 0 0 0 0] 76.923076923e9;
Gyz Gyz [1 -1 -2 0 0 0 0] 76.923076923e9; Gyz Gyz [1 -1 -2 0 0 0 0] 76.923076923e9;
Gzx Gzx [1 -1 -2 0 0 0 0] 76.923076923e9; Gzx Gzx [1 -1 -2 0 0 0 0] 76.923076923e9;
} }
); );
} }

View file

@ -1,4 +1,4 @@
( (
(0 (0 0 0)) (0 (0 0 0))
(10 (0 0.01 0)) (10 (0 0.01 0))
) )

View file

@ -18,8 +18,8 @@ FoamFile
dimensions [0 0 0 0 0 0 0]; dimensions [0 0 0 0 0 0 0];
internalField uniform ( 1 0 0 internalField uniform ( 1 0 0
0 1 0 0 1 0
0 0 1 ); 0 0 1 );
boundaryField boundaryField
{ {

View file

@ -18,8 +18,8 @@ FoamFile
dimensions [0 0 0 0 0 0 0]; dimensions [0 0 0 0 0 0 0];
internalField uniform ( 1 0 0 internalField uniform ( 1 0 0
0 1 0 0 1 0
0 0 1 ); 0 0 1 );
boundaryField boundaryField
{ {

View file

@ -33,18 +33,18 @@ rheology
composite composite
{ {
type orthotropicLinearElastic; type orthotropicLinearElastic;
rho rho [1 -3 0 0 0 0 0] 7854; rho rho [1 -3 0 0 0 0 0] 7854;
Ex Ex [1 -1 -2 0 0 0 0] 200e+9; Ex Ex [1 -1 -2 0 0 0 0] 200e+9;
Ey Ey [1 -1 -2 0 0 0 0] 200e+9; Ey Ey [1 -1 -2 0 0 0 0] 200e+9;
Ez Ez [1 -1 -2 0 0 0 0] 200e+9; Ez Ez [1 -1 -2 0 0 0 0] 200e+9;
nuxy nuxy [0 0 0 0 0 0 0] 0.3; nuxy nuxy [0 0 0 0 0 0 0] 0.3;
nuyz nuyz [0 0 0 0 0 0 0] 0.3; nuyz nuyz [0 0 0 0 0 0 0] 0.3;
nuzx nuzx [0 0 0 0 0 0 0] 0.3; nuzx nuzx [0 0 0 0 0 0 0] 0.3;
Gxy Gxy [1 -1 -2 0 0 0 0] 76.923076923e9; Gxy Gxy [1 -1 -2 0 0 0 0] 76.923076923e9;
Gyz Gyz [1 -1 -2 0 0 0 0] 76.923076923e9; Gyz Gyz [1 -1 -2 0 0 0 0] 76.923076923e9;
Gzx Gzx [1 -1 -2 0 0 0 0] 76.923076923e9; Gzx Gzx [1 -1 -2 0 0 0 0] 76.923076923e9;
} }
); );
} }

View file

@ -1,4 +1,4 @@
( (
(0 (0 0 0)) (0 (0 0 0))
(10 (0 0.01 0)) (10 (0 0.01 0))
) )

Some files were not shown because too many files have changed in this diff Show more