Clean-up and reorganisation of solid models

This commit is contained in:
Hrvoje Jasak 2013-10-29 13:27:25 +00:00
parent 0b4174e6b6
commit 583df8e97c
18 changed files with 578 additions and 704 deletions

View file

@ -31,7 +31,7 @@ Description
element access using xxxx(), xxyy() etc. member functions element access using xxxx(), xxyy() etc. member functions
and double dot product with a second order tensor. and double dot product with a second order tensor.
It is assumed that the 4th order tensor takes the form (in 6x6 matrix form): It is assumed that the 4th order tensor takes the form (6x6 matrix form):
/ xxxx xxyy xxzz \ / xxxx xxyy xxzz \
| yyyy yyzz | | yyyy yyzz |
| zzzz | | zzzz |
@ -40,11 +40,16 @@ Description
\ zxzx / \ zxzx /
where the tensor is symmetric and unspecified entries are zero. where the tensor is symmetric and unspecified entries are zero.
Note:
Order is currently hacked due to missing operations on symmetry planes
HJ, 29/Oct/2013
SourceFiles SourceFiles
SymmTensor4thOrderI.H SymmTensor4thOrderI.H
Author Author
Philip Cardiff UCD Philip Cardiff UCD
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef SymmTensor4thOrder_H #ifndef SymmTensor4thOrder_H
@ -59,7 +64,7 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class SymmTensor4thOrder Declaration Class SymmTensor4thOrder Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
template <class Cmpt> template <class Cmpt>
@ -78,7 +83,7 @@ public:
enum enum
{ {
rank = 2 // check: Rank of SymmTensor4thOrder is 4 rank = 2 // Hacked by PC: Actual rank of SymmTensor4thOrder is 4
}; };
@ -93,8 +98,19 @@ public:
static const SymmTensor4thOrder min; static const SymmTensor4thOrder min;
//- Component labeling enumeration //- Component labeling enumeration
enum components { XXXX, XXYY, XXZZ, YYYY, YYZZ, ZZZZ, XYXY, YZYZ, ZXZX }; enum components
{
XXXX,
XXYY,
XXZZ,
YYYY,
YYZZ,
ZZZZ,
XYXY,
YZYZ,
ZXZX
};
// Constructors // Constructors
@ -103,7 +119,10 @@ public:
inline SymmTensor4thOrder(); inline SymmTensor4thOrder();
//- Construct given VectorSpace //- Construct given VectorSpace
inline SymmTensor4thOrder(const VectorSpace<SymmTensor4thOrder<Cmpt>, Cmpt, 9>&); inline SymmTensor4thOrder
(
const VectorSpace<SymmTensor4thOrder<Cmpt>, Cmpt, 9>&
);
//- Construct given SymmTensor (for compilation) //- Construct given SymmTensor (for compilation)
inline SymmTensor4thOrder(const SymmTensor<Cmpt>&); inline SymmTensor4thOrder(const SymmTensor<Cmpt>&);
@ -112,11 +131,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

@ -63,12 +63,12 @@ inline SymmTensor4thOrder<Cmpt>::SymmTensor4thOrder
const Cmpt tzxzx const Cmpt tzxzx
) )
{ {
this->v_[XXXX] = txxxx; this->v_[XXYY] = txxyy; this->v_[XXZZ] = txxzz; this->v_[XXXX] = txxxx; this->v_[XXYY] = txxyy; this->v_[XXZZ] = txxzz;
this->v_[YYYY] = tyyyy; this->v_[YYZZ] = tyyzz; this->v_[YYYY] = tyyyy; this->v_[YYZZ] = tyyzz;
this->v_[ZZZZ] = tzzzz; this->v_[ZZZZ] = tzzzz;
this->v_[XYXY] = txyxy; this->v_[XYXY] = txyxy;
this->v_[YZYZ] = tyzyz; this->v_[YZYZ] = tyzyz;
this->v_[ZXZX] = tzxzx; this->v_[ZXZX] = tzxzx;
} }
@ -195,7 +195,8 @@ inline Cmpt& SymmTensor4thOrder<Cmpt>::zxzx()
// * * * * * * * * * * * * * * * Global Operators * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Global Operators * * * * * * * * * * * * * //
//- Double-dot-product between a fourth order symmetric tensor and a symmetric tensor //- Double-dot-product between a fourth order symmetric tensor and
// a symmetric tensor
template <class Cmpt> template <class Cmpt>
inline SymmTensor<Cmpt> inline SymmTensor<Cmpt>
operator&&(const SymmTensor4thOrder<Cmpt>& t4th, const SymmTensor<Cmpt>& st) operator&&(const SymmTensor4thOrder<Cmpt>& t4th, const SymmTensor<Cmpt>& st)
@ -203,18 +204,19 @@ operator&&(const SymmTensor4thOrder<Cmpt>& t4th, const SymmTensor<Cmpt>& st)
//- s_ij = C_ijkl E_kl //- s_ij = C_ijkl E_kl
return SymmTensor<Cmpt> return SymmTensor<Cmpt>
( (
t4th.xxxx()*st.xx() + t4th.xxyy()*st.yy() + t4th.xxzz()*st.zz(), t4th.xxxx()*st.xx() + t4th.xxyy()*st.yy() + t4th.xxzz()*st.zz(),
t4th.xyxy()*st.xy(), t4th.xyxy()*st.xy(),
t4th.zxzx()*st.xz(), t4th.zxzx()*st.xz(),
t4th.xxyy()*st.xx() + t4th.yyyy()*st.yy() + t4th.yyzz()*st.zz(), t4th.xxyy()*st.xx() + t4th.yyyy()*st.yy() + t4th.yyzz()*st.zz(),
t4th.yzyz()*st.yz(), t4th.yzyz()*st.yz(),
t4th.xxzz()*st.xx() + t4th.yyzz()*st.yy() + t4th.zzzz()*st.zz() t4th.xxzz()*st.xx() + t4th.yyzz()*st.yy() + t4th.zzzz()*st.zz()
); );
} }
//- Double-dot-product between a symmetric tensor and a symmetric fourth order tensor //- Double-dot-product between a symmetric tensor and a symmetric
// fourth order tensor
template <class Cmpt> template <class Cmpt>
inline SymmTensor<Cmpt> inline SymmTensor<Cmpt>
operator&&(const SymmTensor<Cmpt>& st, const SymmTensor4thOrder<Cmpt>& t4th) operator&&(const SymmTensor<Cmpt>& st, const SymmTensor4thOrder<Cmpt>& t4th)
@ -224,19 +226,19 @@ operator&&(const SymmTensor<Cmpt>& st, const SymmTensor4thOrder<Cmpt>& t4th)
//- then s_ij = C_ijkl E_kl //- then s_ij = C_ijkl E_kl
return SymmTensor<Cmpt> return SymmTensor<Cmpt>
( (
t4th.xxxx()*st.xx() + t4th.xxyy()*st.yy() + t4th.xxzz()*st.zz(), t4th.xxxx()*st.xx() + t4th.xxyy()*st.yy() + t4th.xxzz()*st.zz(),
t4th.xyxy()*st.xy(), t4th.xyxy()*st.xy(),
t4th.zxzx()*st.xz(), t4th.zxzx()*st.xz(),
t4th.xxyy()*st.xx() + t4th.yyyy()*st.yy() + t4th.yyzz()*st.zz(), t4th.xxyy()*st.xx() + t4th.yyyy()*st.yy() + t4th.yyzz()*st.zz(),
t4th.yzyz()*st.yz(), t4th.yzyz()*st.yz(),
t4th.xxzz()*st.xx() + t4th.yyzz()*st.yy() + t4th.zzzz()*st.zz() t4th.xxzz()*st.xx() + t4th.yyzz()*st.yy() + t4th.zzzz()*st.zz()
); );
} }
//- Inner-product between a symmTensor4thOrder and a vector //- Inner-product between a symmTensor4thOrder and a vector
//- this is not implemented // this is not implemented
template <class Cmpt> template <class Cmpt>
inline Vector<Cmpt> inline Vector<Cmpt>
operator&(const SymmTensor4thOrder<Cmpt>& st, const Vector<Cmpt>& v) operator&(const SymmTensor4thOrder<Cmpt>& st, const Vector<Cmpt>& v)
@ -257,7 +259,7 @@ operator&(const SymmTensor4thOrder<Cmpt>& st, const Vector<Cmpt>& v)
//- Inner-product between a vector and a symmTensor4thOrder //- Inner-product between a vector and a symmTensor4thOrder
//- this is not implemented // this is not implemented
template <class Cmpt> template <class Cmpt>
inline Vector<Cmpt> inline Vector<Cmpt>
operator&(const Vector<Cmpt>& v, const SymmTensor4thOrder<Cmpt>& st) operator&(const Vector<Cmpt>& v, const SymmTensor4thOrder<Cmpt>& st)

View file

@ -212,6 +212,7 @@ $(interpolation)/interpolationCellPointWallModified/makeInterpolationCellPointWa
volPointInterpolation = interpolation/volPointInterpolation volPointInterpolation = interpolation/volPointInterpolation
$(volPointInterpolation)/pointPatchInterpolation/pointPatchInterpolation.C $(volPointInterpolation)/pointPatchInterpolation/pointPatchInterpolation.C
$(volPointInterpolation)/volPointInterpolation.C $(volPointInterpolation)/volPointInterpolation.C
$(volPointInterpolation)/leastSquaresVolPointInterpolation/leastSquaresVolPointInterpolation.C
pointVolInterpolation = interpolation/pointVolInterpolation pointVolInterpolation = interpolation/pointVolInterpolation
$(pointVolInterpolation)/pointVolInterpolation.C $(pointVolInterpolation)/pointVolInterpolation.C
@ -306,6 +307,7 @@ d2dt2Schemes = finiteVolume/d2dt2Schemes
$(d2dt2Schemes)/d2dt2Scheme/d2dt2Schemes.C $(d2dt2Schemes)/d2dt2Scheme/d2dt2Schemes.C
$(d2dt2Schemes)/steadyStateD2dt2Scheme/steadyStateD2dt2Schemes.C $(d2dt2Schemes)/steadyStateD2dt2Scheme/steadyStateD2dt2Schemes.C
$(d2dt2Schemes)/EulerD2dt2Scheme/EulerD2dt2Schemes.C $(d2dt2Schemes)/EulerD2dt2Scheme/EulerD2dt2Schemes.C
$(d2dt2Schemes)/backwardD2dt2Scheme/backwardD2dt2Schemes.C
divSchemes = finiteVolume/divSchemes divSchemes = finiteVolume/divSchemes
$(divSchemes)/divScheme/divSchemes.C $(divSchemes)/divScheme/divSchemes.C
@ -332,6 +334,7 @@ $(snGradSchemes)/snGradScheme/snGradSchemes.C
$(snGradSchemes)/correctedSnGrad/correctedSnGrads.C $(snGradSchemes)/correctedSnGrad/correctedSnGrads.C
$(snGradSchemes)/limitedSnGrad/limitedSnGrads.C $(snGradSchemes)/limitedSnGrad/limitedSnGrads.C
$(snGradSchemes)/uncorrectedSnGrad/uncorrectedSnGrads.C $(snGradSchemes)/uncorrectedSnGrad/uncorrectedSnGrads.C
$(snGradSchemes)/skewCorrectedSnGrad/skewCorrectedSnGrads.C
$(snGradSchemes)/fourthSnGrad/fourthSnGrads.C $(snGradSchemes)/fourthSnGrad/fourthSnGrads.C
/* /*
$(snGradSchemes)/quadraticFitSnGrad/quadraticFitSnGradData.C $(snGradSchemes)/quadraticFitSnGrad/quadraticFitSnGradData.C

View file

@ -29,11 +29,11 @@ Description
Interpolate volVectorField to mesh points using least squares best fit Interpolate volVectorField to mesh points using least squares best fit
planes. planes.
Please cite: Please cite:
Cardiff P, Karac A & Ivankovic A, A Large Strain Finite Volume Method for Cardiff P, Karac A & Ivankovic A, A Large Strain Finite Volume Method for
Orthotropic Bodies with General Material Orientations, Computer Methods Orthotropic Bodies with General Material Orientations, Computer Methods
in Applied Mechanics & Engineering, 2013, in Applied Mechanics & Engineering, 2013,
http://dx.doi.org/10.1016/j.cma.2013.09.008. http://dx.doi.org/10.1016/j.cma.2013.09.008.
SourceFiles SourceFiles
leastSquaresVolPointInterpolation.C leastSquaresVolPointInterpolation.C
@ -47,7 +47,6 @@ Author
#define leastSquaresVolPointInterpolation_H #define leastSquaresVolPointInterpolation_H
#include "MeshObject.H" #include "MeshObject.H"
//#include "fvMesh.H"
#include "volFields.H" #include "volFields.H"
#include "pointFields.H" #include "pointFields.H"
#include "simpleMatrix.H" #include "simpleMatrix.H"
@ -61,7 +60,7 @@ class fvMesh;
class pointMesh; class pointMesh;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class leastSquaresVolPointInterpolation Declaration Class leastSquaresVolPointInterpolation Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class leastSquaresVolPointInterpolation class leastSquaresVolPointInterpolation
: :

View file

@ -1,139 +0,0 @@
Making dependency list for source file cfdTools/general/MRF/MRFZone.C
Making dependency list for source file interpolation/surfaceInterpolation/schemes/linearPureUpwindFit/linearPureUpwindFit.C
Making dependency list for source file interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFit.C
Making dependency list for source file interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFit.C
Making dependency list for source file interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFit.C
Making dependency list for source file interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFit.C
Making dependency list for source file interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFit.C
Making dependency list for source file interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFit.C
Making dependency list for source file interpolation/surfaceInterpolation/schemes/linearFit/linearFit.C
Making dependency list for source file interpolation/surfaceInterpolation/schemes/outletStabilised/outletStabilised.C
Making dependency list for source file interpolation/volPointInterpolation/volPointInterpolation.C
Making dependency list for source file interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C
Making dependency list for source file interpolation/interpolation/interpolationCellPointWallModified/makeInterpolationCellPointWallModified.C
Making dependency list for source file interpolation/interpolation/interpolationCellPointFace/makeInterpolationCellPointFace.C
Making dependency list for source file interpolation/interpolation/interpolationCellPoint/makeInterpolationCellPoint.C
Making dependency list for source file fvMatrices/solvers/MULES/MULES.C
Making dependency list for source file fields/fvsPatchFields/constraint/regionCoupling/regionCouplingFvsPatchFields.C
Making dependency list for source file fields/fvsPatchFields/constraint/mixingPlane/mixingPlaneFvsPatchFields.C
Making dependency list for source file fields/fvsPatchFields/constraint/overlapGgi/overlapGgiFvsPatchFields.C
Making dependency list for source file fields/fvsPatchFields/constraint/cyclicGgi/cyclicGgiFvsPatchFields.C
Making dependency list for source file fields/fvsPatchFields/constraint/ggi/ggiFvsPatchFields.C
Making dependency list for source file fields/fvsPatchFields/constraint/cyclic/cyclicFvsPatchFields.C
Making dependency list for source file fields/fvPatchFields/derived/slip/slipFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/derived/rotatingPressureInletOutletVelocity/rotatingPressureInletOutletVelocityFvPatchVectorField.C
Making dependency list for source file fields/fvPatchFields/derived/pressureInletOutletVelocity/pressureInletOutletVelocityFvPatchVectorField.C
Making dependency list for source file fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/derived/fan/fanFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/regionCoupling/regionCouplingFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/mixingPlane/mixingPlaneFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/overlapGgi/overlapGgiFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/cyclicGgi/cyclicGgiFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/ggi/ggiFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/wedge/wedgeFvPatchScalarField.C
Making dependency list for source file fields/fvPatchFields/constraint/wedge/wedgeFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/symmetry/symmetryFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/processor/processorFvPatchScalarField.C
Making dependency list for source file fields/fvPatchFields/constraint/processor/processorFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/constraint/cyclic/cyclicFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/basic/transform/transformFvPatchScalarField.C
Making dependency list for source file fields/fvPatchFields/basic/transform/transformFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchFields.C
Making dependency list for source file fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchScalarField.C
Making dependency list for source file fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchFields.C
Making dependency list for source file fvMesh/extendedStencil/faceToCell/fullStencils/CFCFaceToCellStencil.C
Making dependency list for source file fvMesh/extendedStencil/cellToFace/extendedUpwindCellToFaceStencil.C
Making dependency list for source file fvMesh/extendedStencil/cellToFace/extendedCellToFaceStencil.C
Making dependency list for source file fvMesh/extendedStencil/cellToFace/fullStencils/FECCellToFaceStencil.C
Making dependency list for source file fvMesh/extendedStencil/cellToFace/fullStencils/cellToFaceStencil.C
Making dependency list for source file fvMesh/extendedStencil/cellToCell/fullStencils/CECCellToCellStencil.C
Making dependency list for source file fvMesh/extendedStencil/cellToCell/fullStencils/CPCCellToCellStencil.C
Making dependency list for source file fvMesh/extendedStencil/cellToCell/fullStencils/CFCCellToCellStencil.C
Making dependency list for source file fvMesh/extendedStencil/cellToCell/fullStencils/cellToCellStencil.C
Making dependency list for source file fvMesh/wallDist/wallDistReflection.C
Making dependency list for source file fvMesh/wallDist/nearWallDistNoSearch.C
Making dependency list for source file fvMesh/wallDist/wallPointYPlus/wallPointYPlus.C
Making dependency list for source file fvMesh/fvPatches/derived/cohesive/cohesiveFvPatch.C
Making dependency list for source file fvMesh/fvPatches/constraint/regionCouple/regionCoupleFvPatch.C
Making dependency list for source file fvMesh/fvPatches/constraint/mixingPlane/mixingPlaneFvPatch.C
Making dependency list for source file fvMesh/fvPatches/constraint/overlapGgi/overlapGgiFvPatch.C
Making dependency list for source file fvMesh/fvPatches/constraint/cyclicGgi/cyclicGgiFvPatch.C
Making dependency list for source file fvMesh/fvPatches/constraint/ggi/ggiFvPatch.C
Making dependency list for source file fvMesh/fvPatches/constraint/processor/processorFvPatch.C
Making dependency list for source file fvMesh/fvPatches/constraint/cyclic/cyclicFvPatch.C
Making dependency list for source file fvMesh/fvMeshSubset/fvMeshSubset.C
Making dependency list for source file fvMesh/singleCellFvMesh/singleCellFvMesh.C
Making dependency list for source file fvMesh/fvMesh.C
Making dependency list for source file fvMesh/fvMeshGeometry.C
SOURCE=fvMesh/fvMeshGeometry.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/fvMeshGeometry.o
SOURCE=fvMesh/fvMesh.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/fvMesh.o
SOURCE=fvMesh/fvMeshSubset/fvMeshSubset.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/fvMeshSubset.o
SOURCE=fvMesh/singleCellFvMesh/singleCellFvMesh.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/singleCellFvMesh.o
SOURCE=fvMesh/fvPatches/constraint/cyclic/cyclicFvPatch.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cyclicFvPatch.o
SOURCE=fvMesh/fvPatches/constraint/processor/processorFvPatch.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/processorFvPatch.o
SOURCE=fvMesh/fvPatches/constraint/ggi/ggiFvPatch.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/ggiFvPatch.o
SOURCE=fvMesh/fvPatches/constraint/cyclicGgi/cyclicGgiFvPatch.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cyclicGgiFvPatch.o
SOURCE=fvMesh/fvPatches/constraint/overlapGgi/overlapGgiFvPatch.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/overlapGgiFvPatch.o
SOURCE=fvMesh/fvPatches/constraint/mixingPlane/mixingPlaneFvPatch.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/mixingPlaneFvPatch.o
SOURCE=fvMesh/fvPatches/constraint/regionCouple/regionCoupleFvPatch.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/regionCoupleFvPatch.o
SOURCE=fvMesh/fvPatches/derived/cohesive/cohesiveFvPatch.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cohesiveFvPatch.o
SOURCE=fvMesh/wallDist/wallPointYPlus/wallPointYPlus.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/wallPointYPlus.o
SOURCE=fvMesh/wallDist/nearWallDistNoSearch.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/nearWallDistNoSearch.o
SOURCE=fvMesh/wallDist/wallDistReflection.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/wallDistReflection.o
SOURCE=fvMesh/extendedStencil/cellToCell/fullStencils/cellToCellStencil.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cellToCellStencil.o
SOURCE=fvMesh/extendedStencil/cellToCell/fullStencils/CFCCellToCellStencil.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/CFCCellToCellStencil.o
SOURCE=fvMesh/extendedStencil/cellToCell/fullStencils/CPCCellToCellStencil.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/CPCCellToCellStencil.o
SOURCE=fvMesh/extendedStencil/cellToCell/fullStencils/CECCellToCellStencil.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/CECCellToCellStencil.o
SOURCE=fvMesh/extendedStencil/cellToFace/fullStencils/cellToFaceStencil.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cellToFaceStencil.o
SOURCE=fvMesh/extendedStencil/cellToFace/fullStencils/FECCellToFaceStencil.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/FECCellToFaceStencil.o
SOURCE=fvMesh/extendedStencil/cellToFace/extendedCellToFaceStencil.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/extendedCellToFaceStencil.o
SOURCE=fvMesh/extendedStencil/cellToFace/extendedUpwindCellToFaceStencil.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/extendedUpwindCellToFaceStencil.o
SOURCE=fvMesh/extendedStencil/faceToCell/fullStencils/CFCFaceToCellStencil.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/CFCFaceToCellStencil.o
SOURCE=fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/basicSymmetryFvPatchFields.o
SOURCE=fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchScalarField.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/basicSymmetryFvPatchScalarField.o
SOURCE=fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/directionMixedFvPatchFields.o
SOURCE=fields/fvPatchFields/basic/transform/transformFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/transformFvPatchFields.o
SOURCE=fields/fvPatchFields/basic/transform/transformFvPatchScalarField.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/transformFvPatchScalarField.o
SOURCE=fields/fvPatchFields/constraint/cyclic/cyclicFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cyclicFvPatchFields.o
SOURCE=fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/jumpCyclicFvPatchFields.o
SOURCE=fields/fvPatchFields/constraint/processor/processorFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/processorFvPatchFields.o
SOURCE=fields/fvPatchFields/constraint/processor/processorFvPatchScalarField.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/processorFvPatchScalarField.o
SOURCE=fields/fvPatchFields/constraint/symmetry/symmetryFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/symmetryFvPatchFields.o
SOURCE=fields/fvPatchFields/constraint/wedge/wedgeFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/wedgeFvPatchFields.o
SOURCE=fields/fvPatchFields/constraint/wedge/wedgeFvPatchScalarField.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/wedgeFvPatchScalarField.o
SOURCE=fields/fvPatchFields/constraint/ggi/ggiFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/ggiFvPatchFields.o
SOURCE=fields/fvPatchFields/constraint/cyclicGgi/cyclicGgiFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cyclicGgiFvPatchFields.o
SOURCE=fields/fvPatchFields/constraint/overlapGgi/overlapGgiFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/overlapGgiFvPatchFields.o
SOURCE=fields/fvPatchFields/constraint/mixingPlane/mixingPlaneFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/mixingPlaneFvPatchFields.o
SOURCE=fields/fvPatchFields/constraint/regionCoupling/regionCouplingFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/regionCouplingFvPatchFields.o
SOURCE=fields/fvPatchFields/derived/fan/fanFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/fanFvPatchFields.o
SOURCE=fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/fixedNormalSlipFvPatchFields.o
SOURCE=fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/partialSlipFvPatchFields.o
SOURCE=fields/fvPatchFields/derived/pressureInletOutletVelocity/pressureInletOutletVelocityFvPatchVectorField.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/pressureInletOutletVelocityFvPatchVectorField.o
SOURCE=fields/fvPatchFields/derived/rotatingPressureInletOutletVelocity/rotatingPressureInletOutletVelocityFvPatchVectorField.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/rotatingPressureInletOutletVelocityFvPatchVectorField.o
SOURCE=fields/fvPatchFields/derived/slip/slipFvPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/slipFvPatchFields.o
SOURCE=fields/fvsPatchFields/constraint/cyclic/cyclicFvsPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cyclicFvsPatchFields.o
SOURCE=fields/fvsPatchFields/constraint/ggi/ggiFvsPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/ggiFvsPatchFields.o
SOURCE=fields/fvsPatchFields/constraint/cyclicGgi/cyclicGgiFvsPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cyclicGgiFvsPatchFields.o
SOURCE=fields/fvsPatchFields/constraint/overlapGgi/overlapGgiFvsPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/overlapGgiFvsPatchFields.o
SOURCE=fields/fvsPatchFields/constraint/mixingPlane/mixingPlaneFvsPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/mixingPlaneFvsPatchFields.o
SOURCE=fields/fvsPatchFields/constraint/regionCoupling/regionCouplingFvsPatchFields.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/regionCouplingFvsPatchFields.o
SOURCE=fvMatrices/solvers/MULES/MULES.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/MULES.o
SOURCE=interpolation/interpolation/interpolationCellPoint/makeInterpolationCellPoint.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/makeInterpolationCellPoint.o
SOURCE=interpolation/interpolation/interpolationCellPointFace/makeInterpolationCellPointFace.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/makeInterpolationCellPointFace.o
SOURCE=interpolation/interpolation/interpolationCellPointWallModified/makeInterpolationCellPointWallModified.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/makeInterpolationCellPointWallModified.o
SOURCE=interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/pointPatchInterpolation.o
SOURCE=interpolation/volPointInterpolation/volPointInterpolation.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/volPointInterpolation.o
SOURCE=interpolation/surfaceInterpolation/schemes/outletStabilised/outletStabilised.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/outletStabilised.o
SOURCE=interpolation/surfaceInterpolation/schemes/linearFit/linearFit.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/linearFit.o
SOURCE=interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFit.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/biLinearFit.o
SOURCE=interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFit.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/quadraticLinearFit.o
SOURCE=interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFit.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/quadraticFit.o
SOURCE=interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFit.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/quadraticLinearUpwindFit.o
SOURCE=interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFit.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/quadraticUpwindFit.o
SOURCE=interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFit.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/cubicUpwindFit.o
SOURCE=interpolation/surfaceInterpolation/schemes/linearPureUpwindFit/linearPureUpwindFit.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/linearPureUpwindFit.o
SOURCE=cfdTools/general/MRF/MRFZone.C ; ccache g++ -m64 -fPIC -DdarwinIntel64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-200 -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/triSurface/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/meshTools/lnInclude -IlnInclude -I. -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude -I/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/src/OSspecific/POSIX/lnInclude -fPIC -Ddarwin -c $SOURCE -o Make/darwinIntel64GccDPOpt/MRFZone.o
'/Users/philipc/OpenFOAM/OpenFOAM-1.6-ext/lib/darwinIntel64GccDPOpt/libfiniteVolume.dylib' is up to date.

View file

@ -64,11 +64,8 @@ $(constitutiveModel)/solidInterfaces/none/noneSolidInterface.C
$(constitutiveModel)/tractionBoundaryGradient/tractionBoundaryGradient.C $(constitutiveModel)/tractionBoundaryGradient/tractionBoundaryGradient.C
finiteVolume = finiteVolume finiteVolume = finiteVolume
$(finiteVolume)/d2dt2Schemes/backwardD2dt2Scheme/backwardD2dt2Schemes.C
$(finiteVolume)/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrads.C
$(finiteVolume)/gradSchemes/leastSquaresSolidInterfaceGrad/leastSquaresSolidInterfaceGrads.C $(finiteVolume)/gradSchemes/leastSquaresSolidInterfaceGrad/leastSquaresSolidInterfaceGrads.C
$(finiteVolume)/gradSchemes/leastSquaresSolidInterfaceGrad/leastSquaresSolidInterfaceVectors.C $(finiteVolume)/gradSchemes/leastSquaresSolidInterfaceGrad/leastSquaresSolidInterfaceVectors.C
$(finiteVolume)/interpolation/leastSquaresVolPointInterpolation/leastSquaresVolPointInterpolation.C
rheologyLaws = $(constitutiveModel)/rheologyLaws rheologyLaws = $(constitutiveModel)/rheologyLaws
$(rheologyLaws)/rheologyLaw/rheologyLaw.C $(rheologyLaws)/rheologyLaw/rheologyLaw.C

View file

@ -87,8 +87,8 @@ class constitutiveModel
autoPtr<solidInterface> solidInterfacePtr_; autoPtr<solidInterface> solidInterfacePtr_;
// we use IOReferencer to allow lookup of solidInterface object in // we use IOReferencer to allow lookup of solidInterface object in
// the objectRegistry, for instance to be used by leastSquaresSolidInterface // the objectRegistry, for instance to be used by
// gradScheme // leastSquaresSolidInterface gradScheme
IOReferencer<solidInterface>* solidInterfaceRefPtr_; IOReferencer<solidInterface>* solidInterfaceRefPtr_;
// if solidInterface is on/off // if solidInterface is on/off

View file

@ -30,7 +30,7 @@ Description
interfaces between cells of differing material properties. interfaces between cells of differing material properties.
Tukovic et al. Int. J. Numer. Meth. Engng (2012) DOI: 10.1002/nme.4390 Tukovic et al. Int. J. Numer. Meth. Engng (2012) DOI: 10.1002/nme.4390
This is the abstract base class and there are different specific This is the abstract base class and there are different specific
implmentations depending on if there are thermal terms, nonlinear terms, implmentations depending on if there are thermal terms, nonlinear terms,
non-orthogonal correction, orthotropic solver, etc. non-orthogonal correction, orthotropic solver, etc.
@ -82,6 +82,7 @@ class solidInterface
const constitutiveModel& rheology_; const constitutiveModel& rheology_;
// Demand-driven data // Demand-driven data
//- Interface fvMeshSubMesh //- Interface fvMeshSubMesh
@ -135,10 +136,11 @@ class solidInterface
// -1 for non-interface faces // -1 for non-interface faces
mutable labelListList* processorPatchFacesMapPtr_; mutable labelListList* processorPatchFacesMapPtr_;
// Private Member Functions // Private Member Functions
// Make demand-driven data // Make demand-driven data
//- Make sub-mesh //- Make sub-mesh
void makeSubMesh() const; void makeSubMesh() const;
@ -196,9 +198,9 @@ public:
solidInterface, solidInterface,
dictionary, dictionary,
( (
const word& name, const word& name,
const fvMesh& mesh, const fvMesh& mesh,
const constitutiveModel& rheology const constitutiveModel& rheology
), ),
(name, mesh, rheology) (name, mesh, rheology)
); );
@ -209,9 +211,9 @@ public:
//- Return a reference to the selected rheology model //- Return a reference to the selected rheology model
static autoPtr<solidInterface> New static autoPtr<solidInterface> New
( (
const word& name, const word& name,
const fvMesh& mesh, const fvMesh& mesh,
const constitutiveModel& rheology const constitutiveModel& rheology
); );
@ -220,9 +222,9 @@ public:
//- Construct from dictionary //- Construct from dictionary
solidInterface solidInterface
( (
const word& name, const word& name,
const fvMesh& mesh, const fvMesh& mesh,
const constitutiveModel& rheology const constitutiveModel& rheology
); );
@ -245,82 +247,70 @@ public:
return mesh_; return mesh_;
} }
const fvMeshSubset& subMesh() const; const fvMeshSubset& subMesh() const;
const labelList& globalInterFaces() const;
const labelList& localInterFaces() const; const labelList& globalInterFaces() const;
vectorField& interfaceDisplacement(); const labelList& localInterFaces() const;
const vectorField& interfaceDisplacement() const; vectorField& interfaceDisplacement();
const labelList& processorPatches() const; const vectorField& interfaceDisplacement() const;
const labelListList& processorPatchFaces() const; const labelList& processorPatches() const;
const FieldField<Field, vector>& processorInterfaceDisplacement() const; const labelListList& processorPatchFaces() const;
FieldField<Field, vector>& processorInterfaceDisplacement(); const FieldField<Field, vector>&
processorInterfaceDisplacement() const;
virtual void correct(fvVectorMatrix& UEqn) = 0; FieldField<Field, vector>& processorInterfaceDisplacement();
// things get messy with a template so we will define all three options here virtual void correct(fvVectorMatrix& UEqn) = 0;
// modify property field (ie mu, lambda or K, C for orthotropic)
// virtual void modifyProperties
// (
// GeometricField<Type, fvsPatchField, surfaceMesh>& A,
// GeometricField<Type, fvsPatchField, surfaceMesh>& B
// ) const = 0;
virtual void modifyProperties virtual void modifyProperties
( (
surfaceScalarField& s surfaceScalarField& s
) const; ) const;
virtual void modifyProperties virtual void modifyProperties
( (
surfaceSymmTensor4thOrderField& st surfaceSymmTensor4thOrderField& st
) const; ) const;
virtual void modifyProperties virtual void modifyProperties
( (
surfaceDiagTensorField& dt surfaceDiagTensorField& dt
) const; ) const;
virtual void modifyProperties virtual void modifyProperties
( (
surfaceScalarField& mu, surfaceScalarField& mu,
surfaceScalarField& lambda surfaceScalarField& lambda
) const; ) const;
virtual void modifyProperties virtual void modifyProperties
( (
surfaceScalarField& mu, surfaceScalarField& mu,
surfaceScalarField& lambda, surfaceScalarField& lambda,
surfaceScalarField& threeKalpha surfaceScalarField& threeKalpha
) const; ) const;
virtual void modifyProperties virtual void modifyProperties
( (
surfaceSymmTensor4thOrderField& C, surfaceSymmTensor4thOrderField& C,
surfaceDiagTensorField& K surfaceDiagTensorField& K
) const; ) const;
// leastSquaresSolidInterface gradScheme should now be used const List<labelPair>& indicator() const;
// instead of this gauss grad
//tmp<volTensorField> grad(volVectorField& U) const;
const List<labelPair>& indicator() const; const labelList& indicatorFieldMap() const;
const labelList& indicatorFieldMap() const; const labelList& processorPatchMap() const;
const labelList& processorPatchMap() const; const labelListList& processorPatchFacesMap() const;
const labelListList& processorPatchFacesMap() const;
virtual void clearOut();
virtual void clearOut();
}; };

View file

@ -47,152 +47,155 @@ namespace Foam
defineTypeNameAndDebug(tractionBoundaryGradient, 0); defineTypeNameAndDebug(tractionBoundaryGradient, 0);
// * * * * * * * * * * * * * * * * Member functions * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Member functions * * * * * * * * * * * * * * //
tmp<vectorField> tractionBoundaryGradient::traction
( tmp<vectorField> tractionBoundaryGradient::traction
const tensorField& gradField, (
const word fieldName, const tensorField& gradField,
const fvPatch& patch, const word fieldName,
Switch orthotropic, const fvPatch& patch,
word nonLinear Switch orthotropic,
) const word nonLinear
{ ) const
{
// create tmp // create tmp
tmp<vectorField> ttraction(new vectorField(gradField.size(), vector::zero)); tmp<vectorField> ttraction
(
new vectorField(gradField.size(), vector::zero)
);
vectorField& traction = ttraction(); vectorField& traction = ttraction();
if(orthotropic) if(orthotropic)
{ {
// for now, turn off orthotropic // for now, turn off orthotropic
FatalError << "tractionBoundaryGradient::traction is not written for orthotropic yet" << nl FatalError << "tractionBoundaryGradient::traction is not written for orthotropic yet" << nl
<< "you are probably trying to use solidContact boundaries with orthotropic solver" << nl << "you are probably trying to use solidContact boundaries with orthotropic solver" << nl
<< "it should be straight-forward but I have not done it yet!" << "it should be straight-forward but I have not done it yet!"
<< exit(FatalError); << exit(FatalError);
} }
else else
{ {
// lookup material properties // lookup material properties
// const constitutiveModel& rheology = // const constitutiveModel& rheology =
// patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties"); // patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties");
// scalarField mu = // scalarField mu =
// rheology.mu()().boundaryField()[patch.index()]; // rheology.mu()().boundaryField()[patch.index()];
// scalarField lambda = // scalarField lambda =
// rheology.lambda()().boundaryField()[patch.index()]; // rheology.lambda()().boundaryField()[patch.index()];
// lookup material properties from the solver // lookup material properties from the solver
const fvPatchField<scalar>& mu = const fvPatchField<scalar>& mu =
patch.lookupPatchField<volScalarField, scalar>("mu"); patch.lookupPatchField<volScalarField, scalar>("mu");
const fvPatchField<scalar>& lambda = const fvPatchField<scalar>& lambda =
patch.lookupPatchField<volScalarField, scalar>("lambda"); patch.lookupPatchField<volScalarField, scalar>("lambda");
// only for nonlinear elastic properties
// if(rheology.type() == plasticityModel::typeName)
// {
// const plasticityModel& plasticity =
// refCast<const plasticityModel>(rheology);
// mu = plasticity.newMu().boundaryField()[patch.index()];
// lambda = plasticity.newLambda().boundaryField()[patch.index()];
// }
// required fields // only for nonlinear elastic properties
vectorField n = patch.nf(); // if(rheology.type() == plasticityModel::typeName)
// {
// const plasticityModel& plasticity =
// refCast<const plasticityModel>(rheology);
// mu = plasticity.newMu().boundaryField()[patch.index()];
// lambda = plasticity.newLambda().boundaryField()[patch.index()];
// }
// required fields
vectorField n = patch.nf();
// calculate traction // calculate traction
traction = 2*mu*(n&symm(gradField)) + lambda*tr(gradField)*n; traction = 2*mu*(n&symm(gradField)) + lambda*tr(gradField)*n;
//- if there is plasticity //- if there is plasticity
const constitutiveModel& rheology = const constitutiveModel& rheology =
patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties"); patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties");
if(rheology.plasticityActive()) if(rheology.plasticityActive())
{ {
traction -= traction -=
2*mu*(n & rheology.DEpsilonP().boundaryField()[patch.index()]); 2*mu*(n & rheology.DEpsilonP().boundaryField()[patch.index()]);
} }
//- if there are thermal effects
if(patch.boundaryMesh().mesh().objectRegistry::foundObject<thermalModel>("thermalProperties"))
{
const thermalModel& thermo =
patch.boundaryMesh().mesh().objectRegistry::lookupObject<thermalModel>("thermalProperties");
const fvPatchField<scalar>& threeKalpha =
patch.lookupPatchField<volScalarField, scalar>("((threeK*rho)*alpha)");
if(fieldName == "DU")
{
const fvPatchField<scalar>& DT =
patch.lookupPatchField<volScalarField, scalar>("DT");
traction -= (n*threeKalpha*DT);
}
else
{
const fvPatchField<scalar>& T =
patch.lookupPatchField<volScalarField, scalar>("T");
const scalarField T0 = thermo.T0()().boundaryField()[patch.index()];
traction -= (n*threeKalpha*(T - T0));
}
}
// non linear terms //- if there are thermal effects
if (nonLinear == "updatedLagrangian" || nonLinear == "totalLagrangian") if(patch.boundaryMesh().mesh().objectRegistry::foundObject<thermalModel>("thermalProperties"))
{ {
traction += const thermalModel& thermo =
(n & (mu*(gradField & gradField.T()))) patch.boundaryMesh().mesh().objectRegistry::lookupObject<thermalModel>("thermalProperties");
+ 0.5*n*lambda*(gradField && gradField);
if(fieldName == "DU" && nonLinear == "totalLagrangian") const fvPatchField<scalar>& threeKalpha =
{ patch.lookupPatchField<volScalarField, scalar>("((threeK*rho)*alpha)");
// incremental total Lagrangian
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
traction += if(fieldName == "DU")
(n & (mu*( (gradU & gradField.T()) + (gradField & gradU.T())))) {
+ 0.5*n*lambda*tr((gradU & gradField.T()) + (gradField & gradU.T())); const fvPatchField<scalar>& DT =
} patch.lookupPatchField<volScalarField, scalar>("DT");
}
traction -= (n*threeKalpha*DT);
}
else
{
const fvPatchField<scalar>& T =
patch.lookupPatchField<volScalarField, scalar>("T");
const scalarField T0 = thermo.T0()().boundaryField()[patch.index()];
traction -= (n*threeKalpha*(T - T0));
}
}
// non linear terms
if (nonLinear == "updatedLagrangian" || nonLinear == "totalLagrangian")
{
traction +=
(n & (mu*(gradField & gradField.T())))
+ 0.5*n*lambda*(gradField && gradField);
if(fieldName == "DU" && nonLinear == "totalLagrangian")
{
// incremental total Lagrangian
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
traction +=
(n & (mu*( (gradU & gradField.T()) + (gradField & gradU.T()))))
+ 0.5*n*lambda*tr((gradU & gradField.T()) + (gradField & gradU.T()));
}
}
//- add old stress for incremental approaches //- add old stress for incremental approaches
if(fieldName == "DU") if(fieldName == "DU")
{ {
// add on old traction // add on old traction
const fvPatchField<symmTensor>& sigma = const fvPatchField<symmTensor>& sigma =
patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma"); patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma");
traction += (n & sigma); traction += (n & sigma);
} }
//- visco-elastic //- visco-elastic
if(rheology.viscoActive()) if(rheology.viscoActive())
{ {
const fvPatchField<symmTensor>& DSigmaCorr = const fvPatchField<symmTensor>& DSigmaCorr =
patch.lookupPatchField<volSymmTensorField, symmTensor>("DSigmaCorr"); patch.lookupPatchField<volSymmTensorField, symmTensor>("DSigmaCorr");
traction += (n & DSigmaCorr);
}
//- updated Lagrangian or total Lagrangian large strain traction += (n & DSigmaCorr);
if (nonLinear == "updatedLagrangian" || nonLinear == "totalLagrangian") }
{
tensorField F = I + gradField;
if(fieldName == "DU" && nonLinear == "totalLagrangian")
{
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
F += gradU;
}
tensorField Finv = inv(F);
scalarField J = det(F);
//- rotate second Piola Kirchhoff traction to be Cauchy traction //- updated Lagrangian or total Lagrangian large strain
traction = (traction & F)/(mag(J * Finv & n)); if (nonLinear == "updatedLagrangian" || nonLinear == "totalLagrangian")
} {
tensorField F = I + gradField;
if(fieldName == "DU" && nonLinear == "totalLagrangian")
{
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
F += gradU;
}
tensorField Finv = inv(F);
scalarField J = det(F);
//- rotate second Piola Kirchhoff traction to be Cauchy traction
traction = (traction & F)/(mag(J * Finv & n));
}
} }
return ttraction; return ttraction;
@ -219,350 +222,350 @@ defineTypeNameAndDebug(tractionBoundaryGradient, 0);
// orthotropic solvers // orthotropic solvers
if(orthotropic) if(orthotropic)
{ {
// mechanical properties // mechanical properties
const constitutiveModel& rheology = const constitutiveModel& rheology =
patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties"); patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties");
// these lookups return zero fields - must be a bug somewhere! // these lookups return zero fields - must be a bug somewhere!
// const fvPatchField<diagTensor>& K = // const fvPatchField<diagTensor>& K =
// patch.lookupPatchField<volDiagTensorField, tensor>("K"); // patch.lookupPatchField<volDiagTensorField, tensor>("K");
// const fvPatchField<symmTensor4thOrder>& C = // const fvPatchField<symmTensor4thOrder>& C =
// patch.lookupPatchField<volSymmTensor4thOrderField, symmTensor4thOrder>("C"); // patch.lookupPatchField<volSymmTensor4thOrderField, symmTensor4thOrder>("C");
const diagTensorField K = rheology.K()().boundaryField()[patch.index()]; const diagTensorField K = rheology.K()().boundaryField()[patch.index()];
const symmTensor4thOrderField C = rheology.C()().boundaryField()[patch.index()]; const symmTensor4thOrderField C = rheology.C()().boundaryField()[patch.index()];
// required fields // required fields
vectorField n = patch.nf(); vectorField n = patch.nf();
const diagTensorField Kinv = inv(K); const diagTensorField Kinv = inv(K);
const fvPatchField<tensor>& gradField = const fvPatchField<tensor>& gradField =
patch.lookupPatchField<volTensorField, tensor>("grad(" + fieldName + ")"); patch.lookupPatchField<volTensorField, tensor>("grad(" + fieldName + ")");
// calculate the traction to apply
vectorField Traction(n.size(), vector::zero);
tensorField sigmaExp(n.size(), tensor::zero);
//- total Lagrangian small strain // calculate the traction to apply
if(fieldName == "U" && nonLinear == "off") vectorField Traction(n.size(), vector::zero);
{ tensorField sigmaExp(n.size(), tensor::zero);
//- total traction
Traction = (traction - n*pressure); //- total Lagrangian small strain
if(fieldName == "U" && nonLinear == "off")
sigmaExp = (n*(n&(C && symm(gradField)))) - (K & gradField); {
} //- total traction
//- incremental total Lagrangian small strain Traction = (traction - n*pressure);
else if(fieldName == "DU" && nonLinear == "off") //- incremental small strain
{ sigmaExp = (n*(n&(C && symm(gradField)))) - (K & gradField);
const fvPatchField<symmTensor>& sigma = }
patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma"); //- incremental total Lagrangian small strain
else if(fieldName == "DU" && nonLinear == "off") //- incremental small strain
//- increment of traction {
Traction = (traction - n*pressure) - (n & sigma); const fvPatchField<symmTensor>& sigma =
patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma");
sigmaExp = (n*(n&(C && symm(gradField)))) - (K & gradField);
} //- increment of traction
//- updated Lagrangian large strain Traction = (traction - n*pressure) - (n & sigma);
else if (nonLinear == "updatedLagrangian")
{ sigmaExp = (n*(n&(C && symm(gradField)))) - (K & gradField);
const fvPatchField<symmTensor>& sigma = }
patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma"); //- updated Lagrangian large strain
else if (nonLinear == "updatedLagrangian")
tensorField F = I + gradField; {
tensorField Finv = inv(F); const fvPatchField<symmTensor>& sigma =
scalarField J = det(F); patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma");
vectorField nCurrent = Finv & n;
nCurrent /= mag(nCurrent); tensorField F = I + gradField;
vectorField tractionCauchy = traction - nCurrent*pressure; tensorField Finv = inv(F);
scalarField J = det(F);
//- increment of 2nd Piola-Kirchhoff traction vectorField nCurrent = Finv & n;
Traction = (mag(J * Finv & n) * tractionCauchy & Finv) - (n & sigma); nCurrent /= mag(nCurrent);
vectorField tractionCauchy = traction - nCurrent*pressure;
sigmaExp = (n*(n&(C && symm(gradField)))) - (K & gradField);
} //- increment of 2nd Piola-Kirchhoff traction
else Traction = (mag(J * Finv & n) * tractionCauchy & Finv) - (n & sigma);
{
FatalError << "solidTractionOrtho boundary condition not suitable for " sigmaExp = (n*(n&(C && symm(gradField)))) - (K & gradField);
<< " field " << fieldName << " and " << nonLinear << abort(FatalError); }
} else
{
gradient = FatalError << "solidTractionOrtho boundary condition not suitable for "
n & << " field " << fieldName << " and " << nonLinear << abort(FatalError);
( }
Kinv & ( n*(Traction) - sigmaExp )
); gradient =
n &
(
Kinv & ( n*(Traction) - sigmaExp )
);
} }
// standard isotropic solvers // standard isotropic solvers
else else
{ {
// lookup material properties // lookup material properties
// const constitutiveModel& rheology = // const constitutiveModel& rheology =
// patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties"); // patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties");
//scalarField mu = //scalarField mu =
//rheology.mu()().boundaryField()[patch.index()]; //rheology.mu()().boundaryField()[patch.index()];
//scalarField lambda = //scalarField lambda =
//rheology.lambda()().boundaryField()[patch.index()]; //rheology.lambda()().boundaryField()[patch.index()];
// lookup material properties from the solver // lookup material properties from the solver
const fvPatchField<scalar>& mu = const fvPatchField<scalar>& mu =
patch.lookupPatchField<volScalarField, scalar>("mu"); patch.lookupPatchField<volScalarField, scalar>("mu");
const fvPatchField<scalar>& lambda = const fvPatchField<scalar>& lambda =
patch.lookupPatchField<volScalarField, scalar>("lambda"); patch.lookupPatchField<volScalarField, scalar>("lambda");
// only for nonlinear elastic properties // only for nonlinear elastic properties
// if(rheology.type() == plasticityModel::typeName) // if(rheology.type() == plasticityModel::typeName)
// { // {
// const plasticityModel& plasticity = // const plasticityModel& plasticity =
// refCast<const plasticityModel>(rheology); // refCast<const plasticityModel>(rheology);
// mu = plasticity.newMu().boundaryField()[patch.index()]; // mu = plasticity.newMu().boundaryField()[patch.index()];
// lambda = plasticity.newLambda().boundaryField()[patch.index()]; // lambda = plasticity.newLambda().boundaryField()[patch.index()];
// } // }
// required fields // required fields
vectorField n = patch.nf(); vectorField n = patch.nf();
// gradient of the field // gradient of the field
const fvPatchField<tensor>& gradField = const fvPatchField<tensor>& gradField =
patch.lookupPatchField<volTensorField, tensor>("grad(" + fieldName + ")"); patch.lookupPatchField<volTensorField, tensor>("grad(" + fieldName + ")");
//---------------------------// //---------------------------//
//- calculate the actual traction to apply //- calculate the actual traction to apply
//---------------------------// //---------------------------//
vectorField Traction(n.size(),vector::zero); vectorField Traction(n.size(),vector::zero);
//- total Lagrangian small strain //- total Lagrangian small strain
if(fieldName == "U" && nonLinear == "off") if(fieldName == "U" && nonLinear == "off")
{ {
//- total traction //- total traction
Traction = (traction - n*pressure); Traction = (traction - n*pressure);
}
//- incremental total Lagrangian small strain
else if(fieldName == "DU" && nonLinear == "off") //- incremental small strain
{
const fvPatchField<symmTensor>& sigma =
patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma");
//- increment of traction
Traction = (traction - n*pressure) - (n & sigma);
}
//- updated Lagrangian or total Lagrangian large strain
else if (nonLinear == "updatedLagrangian" || nonLinear == "totalLagrangian")
{
const fvPatchField<symmTensor>& sigma =
patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma");
tensorField F = I + gradField;
if(fieldName == "DU" && nonLinear == "totalLagrangian") // for incr TL
{
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
F += gradU;
}
tensorField Finv = hinv(F);
scalarField J = det(F);
vectorField nCurrent = Finv & n;
nCurrent /= mag(nCurrent);
vectorField tractionCauchy = traction - nCurrent*pressure;
Traction = (mag(J * Finv & n) * tractionCauchy & Finv);
if(fieldName == "DU")
{
//- increment of 2nd Piola-Kirchhoff traction
Traction -= (n & sigma);
}
}
else
{
FatalError << "Field " << fieldName << " and " << nonLinear << " nonLinear are not compatible!"
<< exit(FatalError);
}
//- visco-elastic
const constitutiveModel& rheology =
patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties");
if(rheology.viscoActive())
{
//Info << "visco active" << endl;
const fvPatchField<symmTensor>& DSigmaCorr =
patch.lookupPatchField<volSymmTensorField, symmTensor>("DSigmaCorr");
Traction -= (n & DSigmaCorr);
}
//---------------------------//
//- calculate the normal gradient based on the traction
//---------------------------//
gradient =
Traction
- (n & (mu*gradField.T() - (mu + lambda)*gradField))
- n*lambda*tr(gradField);
//- if there is plasticity
if(rheology.plasticityActive())
{
//Info << "plasticity is active" << endl;
gradient +=
2*mu*(n & rheology.DEpsilonP().boundaryField()[patch.index()]);
}
//- if there are thermal effects
if(patch.boundaryMesh().mesh().objectRegistry::foundObject<thermalModel>("thermalProperties"))
{
const thermalModel& thermo =
patch.boundaryMesh().mesh().objectRegistry::lookupObject<thermalModel>("thermalProperties");
const fvPatchField<scalar>& threeKalpha =
patch.lookupPatchField<volScalarField, scalar>("((threeK*rho)*alpha)");
if(fieldName == "DU")
{
const fvPatchField<scalar>& DT =
patch.lookupPatchField<volScalarField, scalar>("DT");
gradient += (n*threeKalpha*DT);
}
else
{
const fvPatchField<scalar>& T =
patch.lookupPatchField<volScalarField, scalar>("T");
const scalarField T0 = thermo.T0()().boundaryField()[patch.index()];
gradient += (n*threeKalpha*(T - T0));
}
}
//- higher order non-linear terms
if(nonLinear == "updatedLagrangian" || nonLinear == "totalLagrangian")
{
// apply further under-relation to non-higher order terms
const fvMesh& mesh = patch.boundaryMesh().mesh();
// lookup gradUPrevIter
// NOTE: grad(DU/U).storePrevIter() must be present in the solver
// if(mesh.relax("divDSigmaNonLinExp"))
// {
// const tensorField& gradFieldPrevIter =
// mesh.objectRegistry::lookupObject<volTensorField>("grad("+fieldName+")PrevIter").boundaryField()[patch.index()];
// // lookup relaxation factor
// //scalar relaxFactorNonLin = 1.0;
// //if(mesh.relax("divDSigmaNonLinExp"))
// //{
// scalar relaxFactorNonLin = mesh.relaxationFactor("divDSigmaNonLinExp");
// //Info << "relaxFactorNonLin is " << relaxFactorNonLin << endl;
// // }
// vectorField newHigherOrderTerm =
// -(n & (mu*(gradField & gradField.T())))
// - 0.5*n*lambda*(gradField && gradField);
// vectorField prevHigherOrderTerm =
// -(n & (mu*(gradFieldPrevIter & gradFieldPrevIter.T())))
// - 0.5*n*lambda*(gradFieldPrevIter && gradFieldPrevIter);
// if(fieldName == "DU" && nonLinear == "totalLagrangian") // for incr TL
// {
// // gradU is const in a time step
// const fvPatchField<tensor>& gradU =
// patch.lookupPatchField<volTensorField, tensor>("grad(U)");
// // gradient -=
// // (n &
// // (mu*( (gradField & gradU.T())
// // + (gradU & gradField.T()) ))
// // )
// // + 0.5*n*lambda*tr( (gradField & gradU.T())
// // + (gradU & gradField.T()) );
// newHigherOrderTerm -=
// (n &
// (mu*( (gradField & gradU.T())
// + (gradU & gradField.T()) ))
// )
// + 0.5*n*lambda*tr( (gradField & gradU.T())
// + (gradU & gradField.T()) );
// prevHigherOrderTerm -=
// (n &
// (mu*( (gradFieldPrevIter & gradU.T())
// + (gradU & gradFieldPrevIter.T()) ))
// )
// + 0.5*n*lambda*tr( (gradFieldPrevIter & gradU.T())
// + (gradU & gradFieldPrevIter.T()) );
// }
// gradient += relaxFactorNonLin*newHigherOrderTerm + (1.0-relaxFactorNonLin)*prevHigherOrderTerm;
// }
// else
{
// no extra relaxation
gradient -=
(n & (mu*(gradField & gradField.T())))
// + 0.5*n*lambda*(gradField && gradField);
+ 0.5*n*lambda*tr(gradField & gradField.T());
//- tensorial identity
//- tr(gradField & gradField.T())*I == (gradField && gradField)*I
if(fieldName == "DU" && nonLinear == "totalLagrangian") // for incr TL
{
// gradU is const in a time step
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
gradient -=
(n &
(mu*( (gradField & gradU.T())
+ (gradU & gradField.T()) ))
)
+ 0.5*n*lambda*tr( (gradField & gradU.T())
+ (gradU & gradField.T()) );
}
}
}
gradient /= (2.0*mu + lambda);
/*if(fieldName == "DU" && nonLinear == "totalLagrangian") // for incr TL
{
// hmnn diffusivity is a tensor for incrTL
// so we could set the gradient using a similar method to
// the orthotropic solver i.e.
// symmTensorField sigmaExp = (n*(n&(C && symm(gradField)))) - (K & gradField);
// or it should also work using the standard isotropic approach.
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
// tensorial diffusivity
tensorField K = (2*mu + lambda)*I + (2*mu + lambda)*gradU;
tensorField Kinv = hinv(K);
// explicit component of sigma
// this should be symmetric so maybe get symm of it
// to reduce calculations: OK for now
tensorField sigmaExp =
mu*( gradField.T()
+ (gradU & gradField.T())
+ (gradField & gradField.T()) )
+ lambda*I*tr( gradField + 0.5*( (gradField & gradU.T()) + (gradU & gradField.T()) + (gradField & gradField.T()) ) )
- (mu + lambda)*gradField
- (mu + lambda)*(gradU & gradField);
gradient = n & ( Kinv & ( n*(Traction) - sigmaExp ) );
// use standard isotropic approach
gradient /= (2.0*mu + lambda);
}
else
{
gradient /= (2.0*mu + lambda);
}*/
} }
//- incremental total Lagrangian small strain
else if(fieldName == "DU" && nonLinear == "off") //- incremental small strain
{
const fvPatchField<symmTensor>& sigma =
patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma");
//- increment of traction
Traction = (traction - n*pressure) - (n & sigma);
}
//- updated Lagrangian or total Lagrangian large strain
else if (nonLinear == "updatedLagrangian" || nonLinear == "totalLagrangian")
{
const fvPatchField<symmTensor>& sigma =
patch.lookupPatchField<volSymmTensorField, symmTensor>("sigma");
tensorField F = I + gradField;
if(fieldName == "DU" && nonLinear == "totalLagrangian") // for incr TL
{
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
F += gradU;
}
tensorField Finv = hinv(F);
scalarField J = det(F);
vectorField nCurrent = Finv & n;
nCurrent /= mag(nCurrent);
vectorField tractionCauchy = traction - nCurrent*pressure;
Traction = (mag(J * Finv & n) * tractionCauchy & Finv);
if(fieldName == "DU")
{
//- increment of 2nd Piola-Kirchhoff traction
Traction -= (n & sigma);
}
}
else
{
FatalError << "Field " << fieldName << " and " << nonLinear << " nonLinear are not compatible!"
<< exit(FatalError);
}
//- visco-elastic
const constitutiveModel& rheology =
patch.boundaryMesh().mesh().objectRegistry::lookupObject<constitutiveModel>("rheologyProperties");
if(rheology.viscoActive())
{
//Info << "visco active" << endl;
const fvPatchField<symmTensor>& DSigmaCorr =
patch.lookupPatchField<volSymmTensorField, symmTensor>("DSigmaCorr");
Traction -= (n & DSigmaCorr);
}
//---------------------------//
//- calculate the normal gradient based on the traction
//---------------------------//
gradient =
Traction
- (n & (mu*gradField.T() - (mu + lambda)*gradField))
- n*lambda*tr(gradField);
//- if there is plasticity
if(rheology.plasticityActive())
{
//Info << "plasticity is active" << endl;
gradient +=
2*mu*(n & rheology.DEpsilonP().boundaryField()[patch.index()]);
}
//- if there are thermal effects
if(patch.boundaryMesh().mesh().objectRegistry::foundObject<thermalModel>("thermalProperties"))
{
const thermalModel& thermo =
patch.boundaryMesh().mesh().objectRegistry::lookupObject<thermalModel>("thermalProperties");
const fvPatchField<scalar>& threeKalpha =
patch.lookupPatchField<volScalarField, scalar>("((threeK*rho)*alpha)");
if(fieldName == "DU")
{
const fvPatchField<scalar>& DT =
patch.lookupPatchField<volScalarField, scalar>("DT");
gradient += (n*threeKalpha*DT);
}
else
{
const fvPatchField<scalar>& T =
patch.lookupPatchField<volScalarField, scalar>("T");
const scalarField T0 = thermo.T0()().boundaryField()[patch.index()];
gradient += (n*threeKalpha*(T - T0));
}
}
//- higher order non-linear terms
if(nonLinear == "updatedLagrangian" || nonLinear == "totalLagrangian")
{
// apply further under-relation to non-higher order terms
// const fvMesh& mesh = patch.boundaryMesh().mesh();
// lookup gradUPrevIter
// NOTE: grad(DU/U).storePrevIter() must be present in the solver
// if(mesh.relax("divDSigmaNonLinExp"))
// {
// const tensorField& gradFieldPrevIter =
// mesh.objectRegistry::lookupObject<volTensorField>("grad("+fieldName+")PrevIter").boundaryField()[patch.index()];
// // lookup relaxation factor
// //scalar relaxFactorNonLin = 1.0;
// //if(mesh.relax("divDSigmaNonLinExp"))
// //{
// scalar relaxFactorNonLin = mesh.relaxationFactor("divDSigmaNonLinExp");
// //Info << "relaxFactorNonLin is " << relaxFactorNonLin << endl;
// // }
// vectorField newHigherOrderTerm =
// -(n & (mu*(gradField & gradField.T())))
// - 0.5*n*lambda*(gradField && gradField);
// vectorField prevHigherOrderTerm =
// -(n & (mu*(gradFieldPrevIter & gradFieldPrevIter.T())))
// - 0.5*n*lambda*(gradFieldPrevIter && gradFieldPrevIter);
// if(fieldName == "DU" && nonLinear == "totalLagrangian") // for incr TL
// {
// // gradU is const in a time step
// const fvPatchField<tensor>& gradU =
// patch.lookupPatchField<volTensorField, tensor>("grad(U)");
// // gradient -=
// // (n &
// // (mu*( (gradField & gradU.T())
// // + (gradU & gradField.T()) ))
// // )
// // + 0.5*n*lambda*tr( (gradField & gradU.T())
// // + (gradU & gradField.T()) );
// newHigherOrderTerm -=
// (n &
// (mu*( (gradField & gradU.T())
// + (gradU & gradField.T()) ))
// )
// + 0.5*n*lambda*tr( (gradField & gradU.T())
// + (gradU & gradField.T()) );
// prevHigherOrderTerm -=
// (n &
// (mu*( (gradFieldPrevIter & gradU.T())
// + (gradU & gradFieldPrevIter.T()) ))
// )
// + 0.5*n*lambda*tr( (gradFieldPrevIter & gradU.T())
// + (gradU & gradFieldPrevIter.T()) );
// }
// gradient += relaxFactorNonLin*newHigherOrderTerm + (1.0-relaxFactorNonLin)*prevHigherOrderTerm;
// }
// else
{
// no extra relaxation
gradient -=
(n & (mu*(gradField & gradField.T())))
// + 0.5*n*lambda*(gradField && gradField);
+ 0.5*n*lambda*tr(gradField & gradField.T());
//- tensorial identity
//- tr(gradField & gradField.T())*I == (gradField && gradField)*I
if(fieldName == "DU" && nonLinear == "totalLagrangian") // for incr TL
{
// gradU is const in a time step
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
gradient -=
(n &
(mu*( (gradField & gradU.T())
+ (gradU & gradField.T()) ))
)
+ 0.5*n*lambda*tr( (gradField & gradU.T())
+ (gradU & gradField.T()) );
}
}
}
gradient /= (2.0*mu + lambda);
/*if(fieldName == "DU" && nonLinear == "totalLagrangian") // for incr TL
{
// hmnn diffusivity is a tensor for incrTL
// so we could set the gradient using a similar method to
// the orthotropic solver i.e.
// symmTensorField sigmaExp = (n*(n&(C && symm(gradField)))) - (K & gradField);
// or it should also work using the standard isotropic approach.
const fvPatchField<tensor>& gradU =
patch.lookupPatchField<volTensorField, tensor>("grad(U)");
// tensorial diffusivity
tensorField K = (2*mu + lambda)*I + (2*mu + lambda)*gradU;
tensorField Kinv = hinv(K);
// explicit component of sigma
// this should be symmetric so maybe get symm of it
// to reduce calculations: OK for now
tensorField sigmaExp =
mu*( gradField.T()
+ (gradU & gradField.T())
+ (gradField & gradField.T()) )
+ lambda*I*tr( gradField + 0.5*( (gradField & gradU.T()) + (gradU & gradField.T()) + (gradField & gradField.T()) ) )
- (mu + lambda)*gradField
- (mu + lambda)*(gradU & gradField);
gradient = n & ( Kinv & ( n*(Traction) - sigmaExp ) );
// use standard isotropic approach
gradient /= (2.0*mu + lambda);
}
else
{
gradient /= (2.0*mu + lambda);
}*/
}
return tgradient; return tgradient;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //